{"version":3,"sources":["node_modules/react/jsx-runtime.js","node_modules/react/index.js","node_modules/tslib/tslib.es6.js","node_modules/react-native-web/dist/exports/View/index.js","node_modules/@babel/runtime/helpers/defineProperty.js","node_modules/@babel/runtime/helpers/slicedToArray.js","node_modules/react-native-web/dist/exports/Platform/index.js","node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js","node_modules/graphql-tag/lib/index.js","node_modules/@babel/runtime/helpers/getPrototypeOf.js","node_modules/@babel/runtime/helpers/classCallCheck.js","node_modules/@babel/runtime/helpers/createClass.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/createReactDOMStyle.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/hash.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/hyphenateStyleName.js","node_modules/react-native-web/dist/modules/prefixStyles/static.js","node_modules/react-native-web/dist/modules/prefixStyles/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/index.js","node_modules/react-native-web/dist/exports/StyleSheet/index.js","node_modules/@babel/runtime/helpers/inherits.js","node_modules/@babel/runtime/helpers/objectWithoutProperties.js","AvatarIcon.tsx","AvatarImage.tsx","AvatarText.tsx","ListAccordionGroup.tsx","ListAccordion.tsx","ListIcon.tsx","ListItem.tsx","ListSubheader.tsx","ListSection.tsx","node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","node_modules/graphql/language/kinds.mjs","node_modules/@babel/runtime/helpers/asyncToGenerator.js","node_modules/@babel/runtime/helpers/assertThisInitialized.js","node_modules/@aws-sdk/middleware-stack/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/middleware-stack/dist/es/MiddlewareStack.js","node_modules/@aws-sdk/smithy-client/dist/es/client.js","node_modules/@aws-sdk/smithy-client/dist/es/command.js","node_modules/@aws-sdk/smithy-client/dist/es/extended-encode-uri-component.js","node_modules/@aws-sdk/smithy-client/dist/es/get-array-if-single-item.js","node_modules/@aws-sdk/smithy-client/dist/es/get-value-from-text-node.js","node_modules/@aws-sdk/smithy-client/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/smithy-client/dist/es/lazy-json.js","node_modules/@aws-sdk/smithy-client/dist/es/date-utils.js","node_modules/@aws-sdk/smithy-client/dist/es/constants.js","index.ts","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedEvent.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTransform.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedStyle.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedProps.js","node_modules/react-native-web/dist/vendor/react-native/Utilities/setAndForwardRef.js","node_modules/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedFlatList.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedImage.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedScrollView.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedSectionList.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedText.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedView.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedAddition.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDivision.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedModulo.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedMultiplication.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedSubtraction.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTracking.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedImplementation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedMock.js","node_modules/react-native-web/dist/vendor/react-native/Animated/Animated.js","node_modules/react-native-web/dist/exports/Animated/index.js","node_modules/moment/moment.js","../../src/errors/UnavailabilityError.ts","../src/PermissionsInterface.ts","../src/PermissionsHook.ts","../src/index.ts","State.ts","node_modules/@babel/runtime/helpers/get.js","node_modules/graphql/error/GraphQLError.mjs","node_modules/@babel/runtime/helpers/toConsumableArray.js","node_modules/graphql/jsutils/inspect.mjs","node_modules/react-hook-form/dist/index.esm.mjs","node_modules/nanoclone/src/index.js","node_modules/yup/es/util/printValue.js","node_modules/yup/es/locale.js","node_modules/yup/es/util/isSchema.js","node_modules/yup/es/Condition.js","node_modules/yup/es/util/toArray.js","node_modules/yup/es/ValidationError.js","node_modules/yup/es/util/runTests.js","node_modules/yup/es/Reference.js","node_modules/yup/es/util/createValidation.js","node_modules/yup/es/util/reach.js","node_modules/yup/es/util/ReferenceSet.js","node_modules/yup/es/schema.js","node_modules/yup/es/mixed.js","node_modules/yup/es/util/isAbsent.js","node_modules/yup/es/boolean.js","node_modules/yup/es/string.js","node_modules/yup/es/number.js","node_modules/yup/es/util/isodate.js","node_modules/yup/es/date.js","node_modules/yup/es/util/sortByKeyOrder.js","node_modules/yup/es/object.js","node_modules/yup/es/util/sortFields.js","node_modules/graphql/language/tokenKind.mjs","node_modules/fbjs/lib/invariant.js","node_modules/@aws-sdk/protocol-http/dist/es/httpResponse.js","node_modules/@aws-sdk/protocol-http/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/protocol-http/dist/es/httpRequest.js","node_modules/@babel/runtime/helpers/objectSpread2.js","theming.tsx","node_modules/@apollo/client/utilities/globals/DEV.js","node_modules/@apollo/client/utilities/globals/fix-graphql.js","node_modules/@apollo/client/utilities/globals/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedNode.js","node_modules/invariant/browser.js","node_modules/react-native-web/dist/modules/ScrollResponder/index.js","node_modules/react-native-web/dist/exports/ScrollView/ScrollViewBase.js","node_modules/react-native-web/dist/exports/ScrollView/index.js","node_modules/color/index.js","gesture.ts","node_modules/react-native-reanimated/lib/reanimated2/Colors.js","../../src/CommonActions.tsx","../../src/BaseRouter.tsx","../../src/StackRouter.tsx","../../src/TabRouter.tsx","../../src/createNavigationContainerRef.tsx","../../src/EnsureSingleNavigator.tsx","../../src/findFocusedRoute.tsx","../../src/NavigationBuilderContext.tsx","../../src/NavigationContainerRefContext.tsx","../../src/NavigationContext.tsx","../../src/NavigationRouteContext.tsx","../../src/NavigationStateContext.tsx","../../src/UnhandledActionContext.tsx","../../src/useChildListeners.tsx","../../src/useEventEmitter.tsx","../../src/useKeyedChildListeners.tsx","../../src/useOptionsGetters.tsx","../../src/useScheduleUpdate.tsx","../../src/useSyncState.tsx","../../src/BaseNavigationContainer.tsx","../../src/Group.tsx","../../src/Screen.tsx","../../src/createNavigatorFactory.tsx","../../src/CurrentRenderContext.tsx","../../src/getActionFromState.tsx","../../src/useRouteCache.tsx","../../src/getFocusedRouteNameFromRoute.tsx","../../src/fromEntries.tsx","../../src/validatePathConfig.tsx","../../src/getPathFromState.tsx","../../src/getStateFromPath.tsx","../../src/NavigationHelpersContext.tsx","../../src/PreventRemoveContext.tsx","../../src/PreventRemoveProvider.tsx","../../src/types.tsx","../../src/useNavigation.tsx","../../src/useFocusEffect.tsx","../../src/useIsFocused.tsx","../../src/isArrayEqual.tsx","../../src/useComponent.tsx","../../src/StaticContainer.tsx","../../src/SceneView.tsx","../../src/useDescriptors.tsx","../../src/useNavigationCache.tsx","../../src/useOnPreventRemove.tsx","../../src/useOnAction.tsx","../../src/useNavigationBuilder.tsx","../../src/useRegisterNavigator.tsx","../../src/isRecordEqual.tsx","../../src/useFocusEvents.tsx","../../src/useOnRouteFocus.tsx","../../src/useNavigationHelpers.tsx","../../src/useFocusedListenersChildrenAdapter.tsx","../../src/useOnGetState.tsx","../../src/useCurrentRender.tsx","../../src/useNavigationContainerRef.tsx","../../src/useNavigationState.tsx","node_modules/@babel/runtime/helpers/extends.js","node_modules/react-native-reanimated/lib/reanimated2/core.js","node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","node_modules/graphql/language/directiveLocation.mjs","node_modules/graphql/jsutils/devAssert.mjs","../src/ExponentConstants.web.ts","../src/Constants.ts","node_modules/react-native-web/dist/modules/canUseDom/index.js","colors.tsx","node_modules/react-native-web/dist/exports/I18nManager/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedHelper.js","node_modules/react-native-web/dist/exports/findNodeHandle/index.js","node_modules/@hookform/resolvers/dist/resolvers.module.js","node_modules/@hookform/resolvers/yup/dist/yup.module.js","Directions.ts","gestureHandlerRootHOC.tsx","PinchGestureHandler.ts","RotationGestureHandler.ts","NativeViewGestureHandler.ts","createNativeWrapper.tsx","flingGesture.ts","forceTouchGesture.ts","gestureComposition.ts","longPressGesture.ts","panGesture.ts","pinchGesture.ts","rotationGesture.ts","tapGesture.ts","nativeGesture.ts","manualGesture.ts","GestureHandlerButton.web.tsx","GestureButtons.tsx","TouchableNativeFeedback.tsx","GenericTouchable.tsx","TouchableWithoutFeedback.tsx","TouchableOpacity.tsx","TouchableHighlight.tsx","GestureComponents.web.tsx","Swipeable.tsx","DrawerLayout.tsx","init.ts","AsyncStorage.ts","node_modules/react-native-reanimated/lib/reanimated1/derived/useCode.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedCode.js","node_modules/react-native-reanimated/lib/reanimated1/animations/decay.js","node_modules/react-native-reanimated/lib/reanimated1/animations/timing.js","node_modules/react-native-reanimated/lib/reanimated1/animations/spring.js","node_modules/react-native-reanimated/lib/reanimated1/animations/Animation.js","node_modules/react-native-reanimated/lib/reanimated1/Transitioning.js","node_modules/react-native-reanimated/lib/reanimated1/animations/SpringUtils.js","node_modules/react-native-reanimated/lib/reanimated1/useValue.js","node_modules/react-native-reanimated/lib/reanimated1/animations/backwardCompatibleAnimWrapper.js","node_modules/react-native-reanimated/lib/reanimated1/derived/acc.js","node_modules/react-native-reanimated/lib/reanimated1/derived/color.js","node_modules/react-native-reanimated/lib/reanimated1/derived/diff.js","node_modules/react-native-reanimated/lib/reanimated1/derived/diffClamp.js","node_modules/react-native-reanimated/lib/reanimated1/derived/interpolateColors.js","node_modules/react-native-reanimated/lib/reanimated1/derived/onChange.js","node_modules/react-native-reanimated/lib/reanimated1/index.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedSensor.js","node_modules/react-native-reanimated/lib/reanimated2/commonTypes.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useFrameCallback.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedKeyboard.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useScrollViewOffset.js","node_modules/react-native-reanimated/lib/reanimated2/interpolateColor.js","node_modules/react-native-reanimated/lib/reanimated2/PropAdapters.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/animationBuilder/Keyframe.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Flip.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Stretch.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Fade.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Slide.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Zoom.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Bounce.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Rotate.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Roll.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js","node_modules/react-native-reanimated/lib/reanimated2/utils.js","node_modules/react-native-reanimated/lib/reanimated2/component/Text.js","node_modules/react-native-reanimated/lib/reanimated2/component/View.js","node_modules/react-native-reanimated/lib/reanimated2/component/ScrollView.js","node_modules/react-native-reanimated/lib/reanimated2/component/Image.js","node_modules/react-native-reanimated/lib/reanimated2/component/FlatList.js","node_modules/react-native-web/dist/exports/Text/index.js","node_modules/react-native-web/dist/exports/useWindowDimensions/index.js","node_modules/react-native-reanimated/lib/reanimated1/val.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedNode.js","node_modules/@apollo/client/cache/inmemory/helpers.js","node_modules/@aws-amplify/auth/lib-esm/types/Auth.js","node_modules/graphql/jsutils/invariant.mjs","node_modules/react-native-web/dist/exports/Dimensions/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/InternalAnimatedValue.js","node_modules/graphql/language/printer.mjs","node_modules/webpack/buildin/global.js","gestureHandlerCommon.ts","node_modules/react-native-reanimated/lib/reanimated2/NativeReanimated/index.js","node_modules/@apollo/client/node_modules/@wry/equality/lib/index.js","node_modules/node-libs-browser/node_modules/buffer/index.js","node_modules/react-native-web/dist/exports/TouchableWithoutFeedback/index.js","node_modules/react-navigation-header-buttons/src/TouchableItem.js","node_modules/react-navigation-header-buttons/src/HeaderButton.js","node_modules/react-navigation-header-buttons/src/HeaderButtonsContext.js","node_modules/react-navigation-header-buttons/src/ButtonsWrapper.js","node_modules/react-navigation-header-buttons/src/HeaderButtons.js","node_modules/react-navigation-header-buttons/src/overflowMenu/statusBarUtils.js","node_modules/react-navigation-header-buttons/src/overflowMenu/OverflowMenuContext.js","node_modules/react-navigation-header-buttons/src/overflowMenu/vendor/MenuItem.js","node_modules/react-navigation-header-buttons/src/HeaderItems.js","node_modules/react-navigation-header-buttons/src/overflowMenuPressHandlers.js","node_modules/react-navigation-header-buttons/src/overflowMenu/OverflowMenu.js","node_modules/react-navigation-header-buttons/src/overflowMenu/vendor/Divider.js","node_modules/react-native-web/dist/vendor/react-native/Animated/Easing.js","node_modules/react-native-web/dist/vendor/react-native/Animated/bezier.js","node_modules/react-native-web/dist/exports/Easing/index.js","node_modules/react-native-reanimated/lib/reanimated2/hook/utils.js","node_modules/@apollo/client/core/networkStatus.js","node_modules/react-native-reanimated/lib/reanimated2/PlatformChecker.js","../../src/index.tsx","node_modules/react-native-web/dist/exports/NativeModules/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValue.js","node_modules/nanoid/non-secure/index.js","node_modules/react-native-web/dist/modules/forwardedProps/index.js","node_modules/react-native-reanimated/lib/reanimated2/animation/util.js","node_modules/react-native-reanimated/lib/reanimated2/Bezier.js","node_modules/react-native-reanimated/lib/reanimated2/Easing.js","node_modules/graphql/language/ast.mjs","node_modules/react-native-web/dist/modules/AssetRegistry/index.js","node_modules/react-native-web/dist/modules/ImageLoader/index.js","node_modules/react-native-web/dist/exports/Image/index.js","node_modules/react-native-web/dist/modules/unitlessNumbers/index.js","node_modules/react-native-web/dist/modules/setValueForStyles/dangerousStyleValue.js","node_modules/react-native-web/dist/modules/setValueForStyles/index.js","node_modules/react-native-web/dist/exports/UIManager/index.js","node_modules/react-native-web/dist/exports/Alert/index.js","node_modules/react-native-web/dist/exports/TextInput/index.js","TouchableRipple.tsx","node_modules/@aws-sdk/util-hex-encoding/dist/es/index.js","node_modules/react-native-web/dist/exports/Keyboard/index.js","node_modules/graphql/polyfills/symbols.mjs","utils.ts","node_modules/@apollo/client/utilities/policies/pagination.js","node_modules/@apollo/client/utilities/common/stringifyForDisplay.js","node_modules/@apollo/client/utilities/graphql/storeUtils.js","../src/ExpoLocation.web.ts","node_modules/react-native-web/dist/exports/createElement/index.js","node_modules/@aws-sdk/middleware-serde/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/middleware-serde/dist/es/deserializerMiddleware.js","node_modules/@aws-sdk/middleware-serde/dist/es/serdePlugin.js","node_modules/@aws-sdk/middleware-serde/dist/es/serializerMiddleware.js","node_modules/react-native-reanimated/lib/ReanimatedModuleCompat.js","node_modules/react-native-reanimated/lib/ReanimatedModule.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedWithChildren.js","Text.tsx","node_modules/graphql/jsutils/isObjectLike.mjs","node_modules/react-native-web/dist/exports/StatusBar/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedInterpolation.js","node_modules/@apollo/client/utilities/common/objects.js","node_modules/react-native-web/dist/exports/AppState/index.js","node_modules/react-native-web/dist/exports/Clipboard/index.js","node_modules/react-native-web/dist/exports/DeviceInfo/index.js","node_modules/react-native-web/dist/vendor/react-native/LayoutAnimation/index.js","node_modules/react-native-web/dist/exports/LayoutAnimation/index.js","node_modules/react-native-web/dist/exports/Linking/index.js","node_modules/react-native-web/dist/exports/Vibration/index.js","node_modules/react-native-web/dist/exports/Button/index.js","node_modules/react-native-web/dist/exports/CheckBox/index.js","node_modules/react-native-web/dist/exports/ImageBackground/index.js","node_modules/react-native-web/dist/exports/KeyboardAvoidingView/index.js","node_modules/react-native-web/dist/exports/Modal/ModalPortal.js","node_modules/react-native-web/dist/exports/Modal/ModalAnimation.js","node_modules/react-native-web/dist/exports/Modal/ModalContent.js","node_modules/react-native-web/dist/exports/Modal/ModalFocusTrap.js","node_modules/react-native-web/dist/exports/Modal/index.js","node_modules/react-native-web/dist/exports/Picker/index.js","node_modules/react-native-web/dist/exports/Picker/PickerItem.js","node_modules/react-native-web/dist/exports/ProgressBar/index.js","node_modules/react-native-web/dist/exports/SafeAreaView/index.js","node_modules/react-native-web/dist/vendor/react-native/PooledClass/index.js","node_modules/react-native-web/dist/exports/Touchable/BoundingDimensions.js","node_modules/react-native-web/dist/exports/Touchable/Position.js","node_modules/react-native-web/dist/exports/Touchable/index.js","node_modules/react-native-web/dist/exports/YellowBox/index.js","node_modules/react-native-web/dist/exports/InputAccessoryView/index.js","node_modules/react-native-web/dist/exports/ToastAndroid/index.js","node_modules/react-native-web/dist/exports/PermissionsAndroid/index.js","node_modules/react-native-web/dist/exports/Settings/index.js","node_modules/react-native-web/dist/exports/Systrace/index.js","node_modules/react-native-web/dist/exports/TVEventHandler/index.js","node_modules/react-native-web/dist/exports/useLocaleContext/index.js","node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js","node_modules/amazon-cognito-identity-js/es/utils/cryptoSecureRandomInt.web.js","node_modules/amazon-cognito-identity-js/es/utils/WordArray.js","node_modules/amazon-cognito-identity-js/es/BigInteger.js","node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js","node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js","node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js","node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js","node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js","node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js","node_modules/amazon-cognito-identity-js/es/DateHelper.js","node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js","node_modules/amazon-cognito-identity-js/es/StorageHelper.js","node_modules/amazon-cognito-identity-js/es/CognitoUser.js","node_modules/amazon-cognito-identity-js/es/Platform/index.js","node_modules/amazon-cognito-identity-js/es/UserAgent.js","node_modules/amazon-cognito-identity-js/es/Client.js","node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js","node_modules/amazon-cognito-identity-js/es/CookieStorage.js","InteractionManager.ts","interfaces.ts","constants.ts","PointerTracker.ts","GestureHandlerOrchestrator.ts","EventManager.ts","PointerEventManager.ts","TouchEventManager.ts","GestureHandler.ts","PanGestureHandler.ts","TapGestureHandler.ts","LongPressGestureHandler.ts","ScaleGestureDetector.ts","RotationGestureDetector.ts","FlingGestureHandler.ts","ManualGestureHandler.ts","NodeManager.ts","node_modules/@egjs/hammerjs/dist/hammer.esm.js","DiscreteGestureHandler.ts","PressGestureHandler.ts","DraggingGestureHandler.ts","IndiscreteGestureHandler.ts","Errors.ts","RNGestureHandlerModule.web.ts","../../TransitionConfigs/TransitionSpecs.tsx","node_modules/@apollo/client/utilities/graphql/getFromAST.js","node_modules/react-native-web/dist/modules/useMergeRefs/index.js","node_modules/graphql/language/visitor.mjs","node_modules/@aws-amplify/auth/lib-esm/common/AuthErrorStrings.js","node_modules/@polls-platform/core/node_modules/axios/lib/utils.js","MaterialCommunityIcon.tsx","node_modules/@aws-amplify/auth/lib-esm/index.js","node_modules/react-native-reanimated/lib/reanimated1/derived/interpolate.js","handlersRegistry.ts","node_modules/react-native-reanimated/lib/reanimated2/animation/decay.js","node_modules/react-native-reanimated/lib/reanimated2/animation/repeat.js","node_modules/react-native-reanimated/lib/reanimated2/animation/styleAnimation.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedBlock.js","node_modules/react-native-web/dist/vendor/react-native/deepDiffer/index.js","node_modules/react-native-web/dist/vendor/react-native/FlatList/index.js","node_modules/react-native-web/dist/exports/FlatList/index.js","node_modules/react-native-web/dist/exports/PixelRatio/index.js","createHandler.tsx","../../utils/conditional.tsx","../../TransitionConfigs/CardStyleInterpolators.tsx","../../TransitionConfigs/HeaderStyleInterpolators.tsx","node_modules/react-native-reanimated/lib/reanimated2/UpdateProps.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedOperator.js","node_modules/react-native-reanimated/lib/reanimated1/operators.js","TouchEventType.ts","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedDebug.js","node_modules/crypto-js/core.js","node_modules/@apollo/client/link/core/ApolloLink.js","node_modules/@apollo/client/link/utils/createOperation.js","node_modules/@apollo/client/link/utils/transformOperation.js","node_modules/@apollo/client/link/utils/validateOperation.js","node_modules/@apollo/client/errors/index.js","Icon.tsx","node_modules/graphql/jsutils/instanceOf.mjs","node_modules/react-native-web/dist/exports/Appearance/index.js","node_modules/graphql/error/syntaxError.mjs","node_modules/axios/lib/utils.js","node_modules/react-native-web/dist/exports/BackHandler/index.js","../src/Font.types.ts","../src/ExpoFontLoader.web.ts","../src/FontLoader.web.ts","../src/Font.ts","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/ensure-native-module-available.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/icon-button.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/create-icon-set.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/create-icon-source-cache.js","../src/createIconSet.tsx","node_modules/react-native-reanimated/lib/reanimated2/interpolation.js","node_modules/graphql/jsutils/defineInspect.mjs","node_modules/react-native-web/dist/exports/DeviceEventEmitter/index.js","node_modules/@aws-amplify/core/lib-esm/JS.js","node_modules/react-native-web/dist/modules/requestIdleCallback/index.js","node_modules/react-native-web/dist/exports/InteractionManager/index.js","node_modules/url/url.js","node_modules/react-native-web/dist/modules/useLocale/isLocaleRTL.js","node_modules/react-native-web/dist/modules/useLocale/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/unitlessNumbers.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/normalizeValueWithProperty.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useSharedValue.js","node_modules/react-native-reanimated/lib/createAnimatedComponent.js","node_modules/react-native-web/dist/exports/useColorScheme/index.js","Surface.tsx","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedClock.js","node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js","node_modules/uuid/index.js","node_modules/react-native-masked-text/dist/rnmt.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedCond.js","node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js","node_modules/@apollo/client/cache/inmemory/object-canon.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedEvent.js","node_modules/react-native-reanimated/lib/reanimated1/core/createEventObjectProxyPolyfill.js","node_modules/react-native-web/dist/modules/TextInputState/index.js","node_modules/@aws-amplify/core/lib-esm/Amplify.js","node_modules/react-native-web/dist/exports/processColor/index.js","node_modules/@wry/trie/lib/trie.esm.js","node_modules/graphql/language/blockString.mjs","../src/ExpoLinking.web.ts","../src/Schemes.ts","../src/Linking.ts","node_modules/optimism/node_modules/@wry/context/lib/index.js","node_modules/optimism/lib/bundle.esm.js","node_modules/card-validator/dist/index.js","node_modules/axios/index.js","../src/PlatformUtils.web.ts","../src/Location.types.ts","node_modules/react-dom/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedValue.js","node_modules/react-native-web/dist/modules/UnimplementedView/index.js","StyledText.tsx","node_modules/@react-native-segmented-control/segmented-control/js/SegmentedControlTab.js","node_modules/@react-native-segmented-control/segmented-control/js/SegmentsSeparators.js","node_modules/@react-native-segmented-control/segmented-control/js/SegmentedControl.js","EnableExperimentalWebImplementation.ts","node_modules/@apollo/client/utilities/globals/maybe.js","node_modules/@polls-platform/core/index.js","node_modules/@aws-sdk/middleware-retry/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/middleware-retry/dist/es/retryMiddleware.js","node_modules/@aws-sdk/service-error-classification/dist/es/constants.js","node_modules/@aws-sdk/service-error-classification/dist/es/index.js","node_modules/@aws-sdk/middleware-retry/dist/es/delayDecider.js","node_modules/@aws-sdk/middleware-retry/dist/es/constants.js","node_modules/@aws-sdk/middleware-retry/dist/es/retryDecider.js","node_modules/@aws-sdk/middleware-retry/dist/es/defaultStrategy.js","node_modules/@aws-sdk/middleware-retry/dist/es/defaultRetryQuota.js","node_modules/@aws-sdk/middleware-retry/dist/es/configurations.js","node_modules/url-parse/index.js","node_modules/lodash/_root.js","node_modules/@aws-amplify/storage/node_modules/fast-xml-parser/src/util.js","node_modules/react-native-masked-text/dist/lib/masks/_base.mask.js","node_modules/@apollo/client/utilities/graphql/fragments.js","../src/Constants.types.ts","DefaultTheme.tsx","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/models/models_0.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/xml-builder/node_modules/tslib/tslib.es6.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/xml-builder/dist/es/XmlNode.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/xml-builder/dist/es/escape-attribute.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/xml-builder/dist/es/XmlText.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/xml-builder/dist/es/escape-element.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/protocols/Aws_restXml.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/middleware-bucket-endpoint/node_modules/tslib/tslib.es6.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/util-arn-parser/node_modules/tslib/tslib.es6.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/util-arn-parser/dist/es/index.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketHostnameUtils.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketHostname.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketEndpointMiddleware.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/middleware-sdk-s3/node_modules/tslib/tslib.es6.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/middleware-sdk-s3/dist/es/validate-bucket-name.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/middleware-sdk-s3/dist/es/use-regional-endpoint.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/middleware-sdk-s3/dist/es/throw-200-exceptions.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/middleware-ssec/node_modules/tslib/tslib.es6.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/middleware-ssec/dist/es/index.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/commands/CopyObjectCommand.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/commands/GetObjectCommand.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/commands/DeleteObjectCommand.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/commands/ListObjectsV2Command.js","node_modules/@aws-sdk/util-format-url/dist/es/index.js","node_modules/@aws-sdk/util-create-request/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/util-create-request/dist/es/index.js","node_modules/@aws-sdk/s3-request-presigner/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/s3-request-presigner/node_modules/@aws-sdk/signature-v4/dist/es/constants.js","node_modules/@aws-sdk/s3-request-presigner/node_modules/@aws-sdk/signature-v4/dist/es/credentialDerivation.js","node_modules/@aws-sdk/s3-request-presigner/node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalHeaders.js","node_modules/@aws-sdk/s3-request-presigner/node_modules/@aws-sdk/util-uri-escape/dist/es/escape-uri.js","node_modules/@aws-sdk/s3-request-presigner/node_modules/@aws-sdk/signature-v4/dist/es/getPayloadHash.js","node_modules/@aws-sdk/s3-request-presigner/node_modules/@aws-sdk/signature-v4/dist/es/cloneRequest.js","node_modules/@aws-sdk/s3-request-presigner/node_modules/@aws-sdk/signature-v4/dist/es/prepareRequest.js","node_modules/@aws-sdk/s3-request-presigner/node_modules/@aws-sdk/signature-v4/dist/es/utilDate.js","node_modules/@aws-sdk/s3-request-presigner/node_modules/@aws-sdk/signature-v4/dist/es/SignatureV4.js","node_modules/@aws-amplify/storage/lib-esm/common/StorageErrorStrings.js","node_modules/@aws-sdk/s3-request-presigner/node_modules/@aws-sdk/signature-v4/dist/es/moveHeadersToQuery.js","node_modules/@aws-sdk/s3-request-presigner/node_modules/@aws-sdk/signature-v4/dist/es/hasHeader.js","node_modules/@aws-sdk/s3-request-presigner/node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalQuery.js","node_modules/@aws-sdk/s3-request-presigner/dist/es/presigner.js","node_modules/@aws-sdk/s3-request-presigner/dist/es/constants.js","node_modules/@aws-amplify/storage/lib-esm/providers/axios-http-handler.js","node_modules/@aws-amplify/storage/lib-esm/common/StorageConstants.js","node_modules/@aws-amplify/storage/lib-esm/common/StorageUtils.js","node_modules/@aws-sdk/eventstream-marshaller/dist/es/Int64.js","node_modules/@aws-sdk/eventstream-marshaller/dist/es/HeaderMarshaller.js","node_modules/@aws-sdk/eventstream-marshaller/dist/es/EventStreamMarshaller.js","node_modules/@aws-sdk/eventstream-marshaller/dist/es/splitMessage.js","node_modules/@aws-sdk/eventstream-serde-browser/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/eventstream-serde-browser/node_modules/@aws-sdk/eventstream-serde-universal/dist/es/EventStreamMarshaller.js","node_modules/@aws-sdk/eventstream-serde-browser/node_modules/@aws-sdk/eventstream-serde-universal/dist/es/getUnmarshalledStream.js","node_modules/@aws-sdk/eventstream-serde-browser/node_modules/@aws-sdk/eventstream-serde-universal/dist/es/getChunkedStream.js","node_modules/@aws-sdk/eventstream-serde-browser/dist/es/EventStreamMarshaller.js","node_modules/@aws-sdk/eventstream-serde-browser/dist/es/utils.js","node_modules/@aws-sdk/hash-blob-browser/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/chunked-blob-reader/dist/es/index.js","node_modules/@aws-sdk/hash-blob-browser/dist/es/index.js","node_modules/@aws-sdk/md5-js/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/md5-js/dist/es/constants.js","node_modules/@aws-sdk/md5-js/dist/es/index.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/endpoints.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/runtimeConfig.shared.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/runtimeConfig.browser.js","node_modules/@aws-sdk/eventstream-serde-browser/dist/es/provider.js","node_modules/@aws-sdk/eventstream-serde-config-resolver/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/eventstream-serde-config-resolver/dist/es/EventStreamSerdeConfig.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/middleware-expect-continue/node_modules/tslib/tslib.es6.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/middleware-expect-continue/dist/es/index.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/models/models_1.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/S3Client.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/configurations.js","node_modules/@aws-amplify/storage/lib-esm/common/S3ClientUtils.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/commands/PutObjectCommand.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/commands/CreateMultipartUploadCommand.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/commands/UploadPartCommand.js","node_modules/@aws-amplify/storage/lib-esm/providers/AWSS3UploadTask.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/commands/CompleteMultipartUploadCommand.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/commands/AbortMultipartUploadCommand.js","node_modules/@aws-amplify/storage/node_modules/@aws-sdk/client-s3/dist/es/commands/ListPartsCommand.js","node_modules/@aws-amplify/storage/lib-esm/providers/AWSS3ProviderManagedUpload.js","node_modules/@aws-amplify/storage/lib-esm/providers/AWSS3Provider.js","node_modules/@aws-amplify/storage/lib-esm/Storage.js","node_modules/@aws-amplify/storage/lib-esm/index.js","node_modules/react-native-web/dist/modules/useLayoutEffect/index.js","node_modules/graphql/language/parser.mjs","node_modules/react-native-web/dist/vendor/react-native/VirtualizeUtils/index.js","node_modules/@apollo/client/react/parser/index.js","ActionType.ts","node_modules/react-native-reanimated/lib/reanimated2/WorkletEventHandler.js","node_modules/react-native-web/dist/vendor/react-native/emitter/EventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter.js","node_modules/expo-analytics/hits.js","node_modules/expo-analytics/analytics.js","node_modules/process/browser.js","node_modules/lodash/isArray.js","node_modules/graphql/version.mjs","node_modules/graphql/jsutils/isPromise.mjs","node_modules/graphql/polyfills/find.mjs","node_modules/graphql/polyfills/objectValues.mjs","node_modules/graphql/error/locatedError.mjs","node_modules/graphql/utilities/assertValidName.mjs","node_modules/graphql/polyfills/objectEntries.mjs","node_modules/graphql/jsutils/keyMap.mjs","node_modules/graphql/jsutils/mapValue.mjs","node_modules/graphql/jsutils/toObjMap.mjs","node_modules/graphql/jsutils/keyValMap.mjs","node_modules/graphql/jsutils/didYouMean.mjs","node_modules/graphql/jsutils/identityFunc.mjs","node_modules/graphql/jsutils/naturalCompare.mjs","node_modules/graphql/jsutils/suggestionList.mjs","node_modules/graphql/utilities/valueFromASTUntyped.mjs","node_modules/graphql/type/definition.mjs","node_modules/graphql/utilities/typeComparators.mjs","node_modules/graphql/polyfills/arrayFrom.mjs","node_modules/graphql/polyfills/isFinite.mjs","node_modules/graphql/jsutils/safeArrayFrom.mjs","node_modules/graphql/polyfills/isInteger.mjs","node_modules/graphql/type/scalars.mjs","node_modules/graphql/utilities/astFromValue.mjs","node_modules/graphql/type/introspection.mjs","node_modules/graphql/type/directives.mjs","node_modules/graphql/type/schema.mjs","node_modules/graphql/type/validate.mjs","node_modules/graphql/utilities/typeFromAST.mjs","node_modules/graphql/utilities/TypeInfo.mjs","node_modules/graphql/language/predicates.mjs","node_modules/graphql/validation/rules/ExecutableDefinitionsRule.mjs","node_modules/graphql/validation/rules/UniqueOperationNamesRule.mjs","node_modules/graphql/validation/rules/LoneAnonymousOperationRule.mjs","node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.mjs","node_modules/graphql/validation/rules/KnownTypeNamesRule.mjs","node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.mjs","node_modules/graphql/validation/rules/VariablesAreInputTypesRule.mjs","node_modules/graphql/validation/rules/ScalarLeafsRule.mjs","node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.mjs","node_modules/graphql/validation/rules/UniqueFragmentNamesRule.mjs","node_modules/graphql/validation/rules/KnownFragmentNamesRule.mjs","node_modules/graphql/validation/rules/NoUnusedFragmentsRule.mjs","node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.mjs","node_modules/graphql/validation/rules/NoFragmentCyclesRule.mjs","node_modules/graphql/validation/rules/UniqueVariableNamesRule.mjs","node_modules/graphql/validation/rules/NoUndefinedVariablesRule.mjs","node_modules/graphql/validation/rules/NoUnusedVariablesRule.mjs","node_modules/graphql/validation/rules/KnownDirectivesRule.mjs","node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.mjs","node_modules/graphql/validation/rules/KnownArgumentNamesRule.mjs","node_modules/graphql/validation/rules/UniqueArgumentNamesRule.mjs","node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.mjs","node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.mjs","node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.mjs","node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.mjs","node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.mjs","node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.mjs","node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.mjs","node_modules/graphql/validation/rules/UniqueOperationTypesRule.mjs","node_modules/graphql/validation/rules/UniqueTypeNamesRule.mjs","node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.mjs","node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.mjs","node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.mjs","node_modules/graphql/validation/specifiedRules.mjs","node_modules/graphql/validation/ValidationContext.mjs","node_modules/graphql/validation/validate.mjs","node_modules/graphql/jsutils/Path.mjs","node_modules/graphql/utilities/getOperationRootType.mjs","node_modules/graphql/jsutils/printPathArray.mjs","node_modules/graphql/utilities/valueFromAST.mjs","node_modules/graphql/utilities/coerceInputValue.mjs","node_modules/graphql/execution/values.mjs","node_modules/graphql/execution/execute.mjs","node_modules/graphql/jsutils/promiseReduce.mjs","node_modules/graphql/jsutils/promiseForObject.mjs","node_modules/graphql/jsutils/memoize3.mjs","node_modules/graphql/graphql.mjs","node_modules/graphql/jsutils/isAsyncIterable.mjs","node_modules/graphql/subscription/mapAsyncIterator.mjs","node_modules/graphql/subscription/subscribe.mjs","node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.mjs","node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs","node_modules/graphql/error/formatError.mjs","node_modules/graphql/utilities/getIntrospectionQuery.mjs","node_modules/graphql/utilities/getOperationAST.mjs","node_modules/graphql/utilities/introspectionFromSchema.mjs","node_modules/graphql/utilities/buildClientSchema.mjs","node_modules/graphql/utilities/extendSchema.mjs","node_modules/graphql/utilities/buildASTSchema.mjs","node_modules/graphql/utilities/lexicographicSortSchema.mjs","node_modules/graphql/utilities/printSchema.mjs","node_modules/graphql/utilities/concatAST.mjs","node_modules/graphql/utilities/separateOperations.mjs","node_modules/graphql/utilities/stripIgnoredCharacters.mjs","node_modules/graphql/utilities/findBreakingChanges.mjs","node_modules/graphql/utilities/findDeprecatedUsages.mjs","node_modules/@apollo/client/utilities/common/filterInPlace.js","node_modules/@apollo/client/utilities/graphql/transform.js","node_modules/aws-amplify/lib-esm/index.js","../../src/errors/CodedError.ts","node_modules/react-native-web/dist/exports/TouchableOpacity/index.js","node_modules/react-native-web/dist/modules/pick/index.js","node_modules/react-native-web/dist/modules/usePlatformMethods/index.js","node_modules/react-native-reanimated/lib/reanimated2/NativeMethods.js","node_modules/react-native-web/dist/exports/TouchableNativeFeedback/index.js","node_modules/property-expr/index.js","../../src/LinkingContext.tsx","node_modules/react-native-web/dist/modules/usePressEvents/PressResponder.js","node_modules/react-native-web/dist/modules/usePressEvents/index.js","node_modules/@apollo/client/utilities/common/canUse.js","node_modules/@aws-sdk/util-base64-browser/dist/es/index.js","node_modules/@apollo/client/utilities/observables/iteration.js","../../TransitionConfigs/TransitionPresets.tsx","../src/ImagePicker.types.ts","node_modules/@aws-sdk/util-utf8-browser/dist/es/index.js","node_modules/@aws-sdk/util-utf8-browser/dist/es/whatwgEncodingApi.js","node_modules/@aws-sdk/util-utf8-browser/dist/es/pureJs.js","node_modules/aws-appsync-auth-link/lib/index.js","node_modules/warn-once/index.js","node_modules/@aws-amplify/core/lib-esm/Util/Constants.js","node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js","../src/ExpoSecureStore.web.ts","../src/SecureStore.ts","reanimatedWrapper.ts","node_modules/@apollo/client/node_modules/zen-observable-ts/module.js","node_modules/lodash/_getNative.js","node_modules/@babel/runtime/helpers/interopRequireDefault.js","node_modules/react-native-masked-text/dist/lib/masks/custom.mask.js","node_modules/@apollo/client/cache/core/types/Cache.js","node_modules/@apollo/client/link/utils/toPromise.js","node_modules/@apollo/client/link/utils/fromPromise.js","node_modules/@apollo/client/core/index.js","node_modules/@apollo/client/link/core/empty.js","node_modules/@apollo/client/link/core/concat.js","node_modules/@apollo/client/utilities/graphql/directives.js","node_modules/react-native-reanimated/lib/ConfigHelper.js","node_modules/@apollo/client/node_modules/ts-invariant/lib/invariant.esm.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedAlways.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValueXY.js","node_modules/@apollo/client/link/http/serializeFetchParameter.js","node_modules/@apollo/client/core/ObservableQuery.js","../../Header/HeaderHeightContext.tsx","../../Header/HeaderShownContext.tsx","../src/LocationEventEmitter.web.ts","CrossFadeIcon.tsx","IconButton.tsx","node_modules/@babel/runtime/helpers/construct.js","node_modules/react-native-web/dist/exports/Text/TextAncestorContext.js","settings.tsx","addEventListener.tsx","node_modules/lodash/has.js","AnimatedText.tsx","../src/LocationGoogleGeocoding.ts","../src/LocationSubscribers.ts","../src/Location.ts","node_modules/@wry/context/lib/context.esm.js","node_modules/@apollo/client/cache/inmemory/reactiveVars.js","node_modules/timers-browserify/main.js","node_modules/webpack/buildin/module.js","node_modules/@polls-platform/core/node_modules/axios/lib/core/AxiosError.js","node_modules/react-native-web/dist/exports/NativeEventEmitter/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedSet.js","../src/NativeModulesProxy.ts","node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js","DarkTheme.tsx","../../Header/getDefaultHeaderHeight.tsx","node_modules/react-native-web/dist/modules/createEventHandle/index.js","node_modules/react-native-web/dist/modules/modality/index.js","node_modules/react-native-web/dist/modules/useEvent/index.js","node_modules/react-native-web/dist/modules/useHover/index.js","node_modules/react-native-web/dist/exports/Pressable/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedSectionList/index.js","node_modules/react-native-web/dist/vendor/react-native/SectionList/index.js","node_modules/react-native-web/dist/exports/SectionList/index.js","node_modules/react-native-web/dist/modules/multiplyStyleLengthValue/index.js","node_modules/react-native-web/dist/exports/Switch/index.js","node_modules/@babel/runtime/helpers/wrapNativeSuper.js","node_modules/react-native-web/dist/modules/useElementLayout/index.js","node_modules/normalize-css-color/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedParam.js","node_modules/react-native-reanimated/lib/reanimated2/animation/timing.js","node_modules/lodash.isequal/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/Animation.js","node_modules/events/events.js","node_modules/@apollo/client/utilities/common/mergeDeep.js","getContrastingColor.tsx","../../src/getNamedContext.tsx","../../utils/ModalPresentationContext.tsx","node_modules/react-native-web/dist/modules/useResponderEvents/createResponderEvent.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderEventTypes.js","node_modules/react-native-web/dist/modules/useResponderEvents/utils.js","node_modules/react-native-web/dist/modules/isSelectionValid/index.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderTouchHistoryStore.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderSystem.js","node_modules/react-native-web/dist/modules/useResponderEvents/index.js","node_modules/react-native-web/dist/vendor/react-native/Batchinator/index.js","node_modules/react-native-web/dist/vendor/react-native/ViewabilityHelper/index.js","node_modules/react-native-web/dist/vendor/react-native/infoLog/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListContext.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js","node_modules/@aws-sdk/querystring-builder/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/querystring-builder/node_modules/@aws-sdk/util-uri-escape/dist/es/escape-uri.js","node_modules/@aws-sdk/querystring-builder/dist/es/index.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/isDisabled.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAriaRole.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAccessibilityComponent.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedBezier.js","node_modules/react-native-reanimated/lib/reanimated1/Easing.js","node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","node_modules/react-native-reanimated/lib/ReanimatedEventEmitter.js","node_modules/graphql/language/source.mjs","node_modules/graphql/language/lexer.mjs","node_modules/crypto-js/hmac-sha256.js","node_modules/universal-cookie/node_modules/cookie/index.js","node_modules/@aws-sdk/middleware-user-agent/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/middleware-user-agent/dist/es/configurations.js","node_modules/@aws-sdk/middleware-user-agent/dist/es/constants.js","node_modules/@aws-sdk/middleware-user-agent/dist/es/user-agent-middleware.js","node_modules/@aws-sdk/fetch-http-handler/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/fetch-http-handler/dist/es/fetch-http-handler.js","node_modules/@aws-sdk/fetch-http-handler/dist/es/request-timeout.js","node_modules/@aws-sdk/fetch-http-handler/dist/es/stream-collector.js","node_modules/@aws-sdk/config-resolver/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/config-resolver/dist/es/EndpointsConfig.js","node_modules/@aws-sdk/config-resolver/dist/es/RegionConfig.js","../src/ExpoLocalAuthentication.web.ts","../src/LocalAuthentication.ts","node_modules/@aws-sdk/middleware-host-header/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/middleware-host-header/dist/es/index.js","node_modules/js-cookie/src/js.cookie.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/object-utils.js","node_modules/@babel/runtime/helpers/typeof.js","node_modules/lodash/_baseGetTag.js","node_modules/lodash/isObjectLike.js","node_modules/react-native-reanimated/lib/reanimated2/hook/Hooks.js","node_modules/lodash/toString.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedCall.js","../src/LocalAuthentication.types.ts","../../src/environment/browser.web.ts","../src/Platform.ts","node_modules/react-native-web/dist/exports/DrawerLayoutAndroid/index.js","node_modules/@apollo/client/utilities/globals/global.js","node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/crc32/build/index.js","node_modules/@aws-sdk/eventstream-marshaller/node_modules/tslib/tslib.es6.js","node_modules/@apollo/client/utilities/observables/subclassing.js","node_modules/crypto-js/sha256.js","node_modules/react-native-web/dist/exports/render/index.js","node_modules/universal-cookie/es6/utils.js","node_modules/universal-cookie/es6/Cookies.js","node_modules/universal-cookie/es6/index.js","node_modules/@aws-amplify/core/lib-esm/UniversalStorage/index.js","node_modules/@aws-amplify/auth/lib-esm/OAuth/urlOpener.js","node_modules/@aws-amplify/auth/lib-esm/OAuth/OAuth.js","node_modules/@aws-amplify/core/lib-esm/Util/StringUtils.js","node_modules/@aws-amplify/auth/lib-esm/OAuth/oauthStorage.js","node_modules/@aws-amplify/auth/lib-esm/Errors.js","node_modules/@aws-amplify/auth/lib-esm/Auth.js","node_modules/@aws-amplify/auth/lib-esm/urlListener.js","eventReceiver.ts","gestureStateManager.web.ts","node_modules/react-native-web/dist/exports/StyleSheet/preprocess.js","node_modules/react-native-web/dist/modules/useStable/index.js","node_modules/react-native-reanimated/lib/reanimated1/derived/evaluateOnce.js","node_modules/react-native-reanimated/lib/reanimated2/js-reanimated/index.js","node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","node_modules/graphql/language/location.mjs","node_modules/@apollo/client/utilities/common/arrays.js","node_modules/@apollo/client/utilities/common/compact.js","node_modules/crypto-js/enc-base64.js","../src/AssetSourceResolver.web.ts","../../utils/memoize.tsx","node_modules/@react-navigation/stack/node_modules/color/index.js","node_modules/paths-js/pie.js","node_modules/@react-navigation/bottom-tabs/node_modules/color/index.js","node_modules/@aws-sdk/middleware-signing/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/constants.js","node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/credentialDerivation.js","node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalHeaders.js","node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/util-uri-escape/dist/es/escape-uri.js","node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/getPayloadHash.js","node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/cloneRequest.js","node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/prepareRequest.js","node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/utilDate.js","node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/SignatureV4.js","node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/moveHeadersToQuery.js","node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/hasHeader.js","node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalQuery.js","node_modules/@aws-sdk/middleware-signing/dist/es/configurations.js","node_modules/@aws-sdk/middleware-signing/dist/es/middleware.js","node_modules/react-native-web/dist/exports/StyleSheet/dom/createCSSStyleSheet.js","node_modules/react-native-web/dist/exports/StyleSheet/dom/createOrderedCSSStyleSheet.js","node_modules/react-native-web/dist/exports/StyleSheet/dom/index.js","PortalManager.tsx","PortalHost.tsx","node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","node_modules/lodash/_ListCache.js","node_modules/lodash/_assocIndexOf.js","node_modules/lodash/_Symbol.js","node_modules/lodash/_nativeCreate.js","node_modules/lodash/_getMapData.js","node_modules/axios/lib/defaults.js","node_modules/axios/lib/cancel/Cancel.js","node_modules/@aws-amplify/storage/node_modules/fast-xml-parser/src/xmlstr2xmlnode.js","node_modules/@aws-crypto/sha256-browser/node_modules/tslib/tslib.es6.js","node_modules/@apollo/client/link/http/index.js","node_modules/lodash/_toKey.js","node_modules/@polls-platform/core/utils/constants.js","../src/utils.ts","node_modules/@polls-platform/core/node_modules/axios/lib/cancel/CanceledError.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedStyle.js","node_modules/react-native-web/dist/exports/RefreshControl/index.js","node_modules/react-native-web/dist/exports/VirtualizedList/index.js","node_modules/@apollo/client/link/http/createHttpLink.js","node_modules/@apollo/client/link/http/selectURI.js","node_modules/@apollo/client/link/http/createSignalIfSupported.js","node_modules/@apollo/client/link/http/rewriteURIForGET.js","node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js","node_modules/@apollo/client/utilities/common/makeUniqueId.js","fonts.tsx","node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js","node_modules/react-native-web/dist/exports/AccessibilityInfo/index.js","node_modules/react-native-web/dist/exports/Share/index.js","node_modules/react-native-web/dist/exports/ActivityIndicator/index.js","node_modules/react-native-web/dist/exports/TouchableHighlight/index.js","node_modules/react-native-web/dist/exports/LogBox/index.js","Title.tsx","overlay.tsx","shadow.tsx","ActivityIndicator.tsx","../../src/PlatformPressable.tsx","../../Header/HeaderTitle.tsx","../../Header/HeaderBackground.tsx","../../utils/CardAnimationContext.tsx","../../src/Background.tsx","Caption.tsx","../../views/GestureHandler.tsx","../../../../src/views/Header/HeaderContainer.tsx","../../utils/findLastIndex.tsx","../../utils/getInvertedMultiplier.tsx","../../utils/getDistanceForDirection.tsx","../../views/Screens.tsx","../../views/ModalStatusBarManager.tsx","../../../../src/views/Stack/CardSheet.tsx","../../../../src/views/Stack/Card.tsx","../../../../src/views/Stack/CardContainer.tsx","../../utils/useKeyboardManager.tsx","../../../../src/views/Stack/CardStack.tsx","../../../../src/views/Stack/StackView.tsx","TransitionProgressContext.tsx","useTransitionProgress.tsx","index.tsx","node_modules/react-native-web/dist/exports/AppRegistry/AppContainer.js","node_modules/react-native-web/dist/exports/AppRegistry/index.js","node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js","../../../../src/views/Header/HeaderSegment.tsx","../../../../src/views/Header/Header.tsx","../../utils/debounce.tsx","node_modules/react-native-web/dist/vendor/react-native/TouchHistoryMath/index.js","node_modules/react-native-web/dist/vendor/react-native/PanResponder/index.js","node_modules/react-native-web/dist/exports/PanResponder/index.js","PortalConsumer.tsx","Portal.tsx","PlatformConstants.web.ts","ForceTouchGestureHandler.ts","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedCallFunc.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedFunction.js","node_modules/react-native-web/dist/modules/createDOMProps/index.js","node_modules/react-native-web/dist/modules/mergeRefs/index.js","node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/index.js","node_modules/react-native-reanimated/lib/reanimated2/js-reanimated/MutableValue.js","node_modules/react-native-reanimated/lib/reanimated2/NativeReanimated/NativeReanimated.js","node_modules/react-native-web/dist/modules/dismissKeyboard/index.js","node_modules/react-native-web/dist/vendor/react-native/TurboModule/TurboModuleRegistry.js","node_modules/@apollo/client/react/data/OperationData.js","node_modules/@aws-sdk/is-array-buffer/dist/es/index.js","node_modules/@aws-crypto/sha256-browser/build/index.js","node_modules/@aws-sdk/util-body-length-browser/dist/es/index.js","../../theming/DefaultTheme.tsx","node_modules/@apollo/client/cache/core/types/common.js","node_modules/query-string/index.js","node_modules/use-latest-callback/lib/index.js","node_modules/react-native/Libraries/Image/AssetRegistry.js","node_modules/lodash/mapValues.js","../../theming/ThemeContext.tsx","Menu.tsx","node_modules/react-native-youtube-iframe/dist/index.js","TextInputIcon.tsx","enums.tsx","TextInputAffix.tsx","TextInputAdornment.tsx","constants.tsx","InputLabel.tsx","LabelBackground.tsx","helpers.tsx","TextInputOutlined.tsx","TextInputFlat.tsx","TextInput.tsx","../src/ExpoStatusBar.tsx","node_modules/react-native-web/dist/vendor/react-native/emitter/_EmitterSubscription.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EventSubscription.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EventSubscriptionVendor.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EventEmitter.js","node_modules/@aws-sdk/middleware-logger/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/middleware-logger/dist/es/loggerMiddleware.js","node_modules/@aws-sdk/invalid-dependency/dist/es/invalidFunction.js","node_modules/@aws-sdk/invalid-dependency/dist/es/invalidProvider.js","node_modules/@aws-sdk/querystring-parser/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/url-parser/dist/es/index.js","node_modules/@aws-sdk/querystring-parser/dist/es/index.js","node_modules/react-native-web/dist/modules/isWebColor/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/normalizeColor.js","node_modules/@aws-sdk/middleware-content-length/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/middleware-content-length/dist/es/index.js","node_modules/@aws-sdk/util-user-agent-browser/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/util-user-agent-browser/dist/es/index.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Default.js","node_modules/expo-linking/node_modules/qs/lib/index.js","node_modules/lodash/lodash.js","../src/ExpoStoreReview.ts","../src/StoreReview.ts","../../theming/useTheme.tsx","../../src/NativeSafeAreaProvider.web.tsx","../../src/SafeAreaContext.tsx","node_modules/@babel/runtime/helpers/setPrototypeOf.js","node_modules/lodash/_baseIsEqual.js","node_modules/lodash/_Map.js","node_modules/lodash/isObject.js","node_modules/lodash/_MapCache.js","node_modules/lodash/keys.js","node_modules/lodash/isLength.js","node_modules/@aws-sdk/util-locate-window/dist-es/index.js","../src/EventEmitter.ts","node_modules/color-string/index.js","node_modules/color-name/index.js","node_modules/side-channel/index.js","node_modules/get-intrinsic/index.js","node_modules/function-bind/index.js","node_modules/expo-linking/node_modules/qs/lib/formats.js","node_modules/@apollo/client/link/http/checkFetcher.js","node_modules/url/node_modules/qs/lib/formats.js","node_modules/aws-appsync-subscription-link/lib/utils/index.js","node_modules/lodash/_isKey.js","node_modules/lodash/isSymbol.js","node_modules/@polls-platform/core/types/internal/index.js","node_modules/@polls-platform/core/utils/error.js","../src/validate.ts","node_modules/@polls-platform/core/node_modules/axios/lib/defaults/index.js","node_modules/card-validator/dist/expiration-year.js","node_modules/react-native-web-webview/node_modules/qs/lib/formats.js","node_modules/react-native-youtube-iframe/dist/constants.js","node_modules/@apollo/client/core/LocalState.js","node_modules/@apollo/client/core/QueryInfo.js","node_modules/@apollo/client/core/QueryManager.js","node_modules/@apollo/client/core/ApolloClient.js","node_modules/@apollo/client/version.js","node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","node_modules/hyphenate-style-name/index.js","node_modules/optimism/node_modules/@wry/context/lib/slot.js","node_modules/@apollo/client/utilities/common/cloneDeep.js","Divider.tsx","CheckboxIOS.tsx","CheckboxAndroid.tsx","Checkbox.tsx","CheckboxItem.tsx","node_modules/@aws-amplify/cache/lib-esm/Utils/CacheUtils.js","node_modules/@aws-amplify/cache/lib-esm/StorageCache.js","node_modules/@aws-amplify/cache/lib-esm/BrowserStorageCache.js","node_modules/@aws-amplify/cache/lib-esm/index.js","node_modules/react-native-reanimated/lib/reanimated2/ViewDescriptorsSet.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/SpringAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/SpringConfig.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/TimingAnimation.js","node_modules/graphql/language/printLocation.mjs","node_modules/@apollo/client/node_modules/ts-invariant/process/index.js","node_modules/@apollo/client/react/context/ApolloContext.js","node_modules/aws-appsync-subscription-link/lib/index.js","node_modules/@ide/backoff/build/backoff.js","node_modules/path-browserify/index.js","node_modules/lodash/snakeCase.js","../src/ExponentImagePicker.web.ts","../src/ImagePicker.ts","node_modules/@babel/runtime/helpers/arrayLikeToArray.js","node_modules/@babel/runtime/helpers/iterableToArray.js","node_modules/@babel/runtime/helpers/arrayWithHoles.js","node_modules/@babel/runtime/helpers/nonIterableRest.js","node_modules/@babel/runtime/helpers/toPropertyKey.js","node_modules/react-is/index.js","node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","node_modules/css-in-js-utils/lib/isPrefixedValue.js","node_modules/lodash/_Stack.js","node_modules/lodash/eq.js","node_modules/lodash/isFunction.js","node_modules/lodash/_freeGlobal.js","node_modules/lodash/_toSource.js","node_modules/lodash/_equalArrays.js","node_modules/lodash/isArguments.js","node_modules/lodash/isBuffer.js","node_modules/lodash/_isIndex.js","node_modules/lodash/isTypedArray.js","GestureDetector.tsx","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedClockTest.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedStartClock.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedStopClock.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedConcat.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedGestureHandler.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedReaction.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedRef.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedScrollHandler.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useDerivedValue.js","node_modules/react-native-reanimated/lib/reanimated2/animation/spring.js","node_modules/react-native-reanimated/lib/reanimated2/animation/delay.js","node_modules/react-native-reanimated/lib/reanimated2/animation/sequence.js","node_modules/object-assign/index.js","node_modules/fbjs/lib/emptyFunction.js","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/helpers/buildURL.js","node_modules/axios/lib/core/enhanceError.js","node_modules/axios/lib/adapters/xhr.js","node_modules/axios/lib/core/createError.js","node_modules/axios/lib/cancel/isCancel.js","node_modules/axios/lib/core/mergeConfig.js","node_modules/axios/lib/env/data.js","node_modules/uuid/lib/rng-browser.js","node_modules/uuid/lib/bytesToUuid.js","node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js","node_modules/@aws-crypto/sha256-browser/build/constants.js","node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js","node_modules/@aws-crypto/sha256-js/build/index.js","node_modules/@aws-crypto/sha256-js/node_modules/tslib/tslib.es6.js","node_modules/@aws-crypto/sha256-js/build/constants.js","node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/util/build/index.js","../src/requireNativeModule.ts","node_modules/@apollo/client/link/http/HttpLink.js","node_modules/@apollo/client/utilities/observables/asyncMap.js","node_modules/@apollo/client/utilities/common/errorHandling.js","node_modules/@apollo/client/utilities/observables/Concast.js","node_modules/@apollo/client/link/core/execute.js","Headline.tsx","node_modules/color-convert/conversions.js","node_modules/deepmerge/dist/umd.js","Subheading.tsx","node_modules/expo-linking/node_modules/qs/lib/utils.js","node_modules/@apollo/client/utilities/common/maybeDeepFreeze.js","node_modules/@apollo/client/link/core/from.js","node_modules/@apollo/client/link/core/split.js","node_modules/aws-appsync-auth-link/lib/signer/index.js","node_modules/url/node_modules/qs/lib/utils.js","node_modules/crypto-js/lib-typedarrays.js","node_modules/unfetch/dist/unfetch.module.js","node_modules/moment/locale/af.js","node_modules/moment/locale/ar.js","node_modules/moment/locale/ar-dz.js","node_modules/moment/locale/ar-kw.js","node_modules/moment/locale/ar-ly.js","node_modules/moment/locale/ar-ma.js","node_modules/moment/locale/ar-sa.js","node_modules/moment/locale/ar-tn.js","node_modules/moment/locale/az.js","node_modules/moment/locale/be.js","node_modules/moment/locale/bg.js","node_modules/moment/locale/bm.js","node_modules/moment/locale/bn.js","node_modules/moment/locale/bn-bd.js","node_modules/moment/locale/bo.js","node_modules/moment/locale/br.js","node_modules/moment/locale/bs.js","node_modules/moment/locale/ca.js","node_modules/moment/locale/cs.js","node_modules/moment/locale/cv.js","node_modules/moment/locale/cy.js","node_modules/moment/locale/da.js","node_modules/moment/locale/de.js","node_modules/moment/locale/de-at.js","node_modules/moment/locale/de-ch.js","node_modules/moment/locale/dv.js","node_modules/moment/locale/el.js","node_modules/moment/locale/en-au.js","node_modules/moment/locale/en-ca.js","node_modules/moment/locale/en-gb.js","node_modules/moment/locale/en-ie.js","node_modules/moment/locale/en-il.js","node_modules/moment/locale/en-in.js","node_modules/moment/locale/en-nz.js","node_modules/moment/locale/en-sg.js","node_modules/moment/locale/eo.js","node_modules/moment/locale/es.js","node_modules/moment/locale/es-do.js","node_modules/moment/locale/es-mx.js","node_modules/moment/locale/es-us.js","node_modules/moment/locale/et.js","node_modules/moment/locale/eu.js","node_modules/moment/locale/fa.js","node_modules/moment/locale/fi.js","node_modules/moment/locale/fil.js","node_modules/moment/locale/fo.js","node_modules/moment/locale/fr.js","node_modules/moment/locale/fr-ca.js","node_modules/moment/locale/fr-ch.js","node_modules/moment/locale/fy.js","node_modules/moment/locale/ga.js","node_modules/moment/locale/gd.js","node_modules/moment/locale/gl.js","node_modules/moment/locale/gom-deva.js","node_modules/moment/locale/gom-latn.js","node_modules/moment/locale/gu.js","node_modules/moment/locale/he.js","node_modules/moment/locale/hi.js","node_modules/moment/locale/hr.js","node_modules/moment/locale/hu.js","node_modules/moment/locale/hy-am.js","node_modules/moment/locale/id.js","node_modules/moment/locale/is.js","node_modules/moment/locale/it.js","node_modules/moment/locale/it-ch.js","node_modules/moment/locale/ja.js","node_modules/moment/locale/jv.js","node_modules/moment/locale/ka.js","node_modules/moment/locale/kk.js","node_modules/moment/locale/km.js","node_modules/moment/locale/kn.js","node_modules/moment/locale/ko.js","node_modules/moment/locale/ku.js","node_modules/moment/locale/ky.js","node_modules/moment/locale/lb.js","node_modules/moment/locale/lo.js","node_modules/moment/locale/lt.js","node_modules/moment/locale/lv.js","node_modules/moment/locale/me.js","node_modules/moment/locale/mi.js","node_modules/moment/locale/mk.js","node_modules/moment/locale/ml.js","node_modules/moment/locale/mn.js","node_modules/moment/locale/mr.js","node_modules/moment/locale/ms.js","node_modules/moment/locale/ms-my.js","node_modules/moment/locale/mt.js","node_modules/moment/locale/my.js","node_modules/moment/locale/nb.js","node_modules/moment/locale/ne.js","node_modules/moment/locale/nl.js","node_modules/moment/locale/nl-be.js","node_modules/moment/locale/nn.js","node_modules/moment/locale/oc-lnc.js","node_modules/moment/locale/pa-in.js","node_modules/moment/locale/pl.js","node_modules/moment/locale/pt.js","node_modules/moment/locale/pt-br.js","node_modules/moment/locale/ro.js","node_modules/moment/locale/ru.js","node_modules/moment/locale/sd.js","node_modules/moment/locale/se.js","node_modules/moment/locale/si.js","node_modules/moment/locale/sk.js","node_modules/moment/locale/sl.js","node_modules/moment/locale/sq.js","node_modules/moment/locale/sr.js","node_modules/moment/locale/sr-cyrl.js","node_modules/moment/locale/ss.js","node_modules/moment/locale/sv.js","node_modules/moment/locale/sw.js","node_modules/moment/locale/ta.js","node_modules/moment/locale/te.js","node_modules/moment/locale/tet.js","node_modules/moment/locale/tg.js","node_modules/moment/locale/th.js","node_modules/moment/locale/tk.js","node_modules/moment/locale/tl-ph.js","node_modules/moment/locale/tlh.js","node_modules/moment/locale/tr.js","node_modules/moment/locale/tzl.js","node_modules/moment/locale/tzm.js","node_modules/moment/locale/tzm-latn.js","node_modules/moment/locale/ug-cn.js","node_modules/moment/locale/uk.js","node_modules/moment/locale/ur.js","node_modules/moment/locale/uz.js","node_modules/moment/locale/uz-latn.js","node_modules/moment/locale/vi.js","node_modules/moment/locale/x-pseudo.js","node_modules/moment/locale/yo.js","node_modules/moment/locale/zh-cn.js","node_modules/moment/locale/zh-hk.js","node_modules/moment/locale/zh-mo.js","node_modules/moment/locale/zh-tw.js","Badge.tsx","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf","../../Header/useHeaderHeight.tsx","Paragraph.tsx","Button.tsx","Switch.tsx","node_modules/lodash/_hasPath.js","node_modules/lodash/_castPath.js","node_modules/lodash/_baseAssignValue.js","node_modules/lodash/_baseForOwn.js","node_modules/lodash/_baseIteratee.js","node_modules/lodash/_isStrictComparable.js","node_modules/lodash/_matchesStrictComparable.js","node_modules/lodash/_baseGet.js","node_modules/lodash/_createCompounder.js","node_modules/lodash/_hasUnicode.js","HelperText.tsx","../../navigators/createStackNavigator.tsx","../../Header/HeaderBackContext.tsx","../../Header/getHeaderTitle.tsx","node_modules/@react-navigation/elements/lib/module/assets/back-icon.png","node_modules/@react-navigation/elements/lib/module/assets/back-icon-mask.png","../../Header/Header.tsx","node_modules/@react-navigation/stack/node_modules/color-convert/conversions.js","node_modules/react-native-masked-text/dist/lib/mask-resolver.js","node_modules/react-native-masked-text/dist/lib/base-text-component.js","node_modules/paths-js/ops.js","node_modules/@polls-platform/core/utils/config.js","../src/parse.ts","../src/unparse.ts","../src/stringify.ts","../src/rng.ts","node_modules/@polls-platform/core/node_modules/axios/lib/helpers/bind.js","node_modules/@polls-platform/core/node_modules/axios/lib/helpers/buildURL.js","node_modules/@polls-platform/core/node_modules/axios/lib/defaults/transitional.js","node_modules/@polls-platform/core/node_modules/axios/lib/helpers/toFormData.js","node_modules/@polls-platform/core/node_modules/axios/lib/adapters/xhr.js","node_modules/@polls-platform/core/node_modules/axios/lib/core/buildFullPath.js","node_modules/@polls-platform/core/node_modules/axios/lib/cancel/isCancel.js","node_modules/@polls-platform/core/node_modules/axios/lib/core/mergeConfig.js","node_modules/@polls-platform/core/node_modules/axios/lib/env/data.js","node_modules/credit-card-type/dist/index.js","node_modules/credit-card-type/dist/lib/clone.js","node_modules/card-validator/dist/expiration-month.js","Searchbar.tsx","node_modules/react-native-web-webview/node_modules/qs/lib/utils.js","node_modules/@react-navigation/bottom-tabs/node_modules/color-convert/conversions.js","../../src/MissingIcon.tsx","../../src/ResourceSavingView.tsx","node_modules/fbemitter/lib/EmitterSubscription.js","node_modules/@aws-amplify/ui/dist/aws-amplify-ui.js","Provider.tsx","node_modules/css-in-js-utils/es/assignStyle.js","node_modules/css-in-js-utils/es/camelCaseProperty.js","node_modules/css-in-js-utils/es/hyphenateProperty.js","node_modules/css-in-js-utils/es/cssifyDeclaration.js","node_modules/css-in-js-utils/es/cssifyObject.js","node_modules/css-in-js-utils/es/isPrefixedProperty.js","node_modules/css-in-js-utils/es/isPrefixedValue.js","node_modules/css-in-js-utils/es/isUnitlessProperty.js","node_modules/css-in-js-utils/es/unprefixProperty.js","node_modules/css-in-js-utils/es/normalizeProperty.js","node_modules/css-in-js-utils/es/resolveArrayValue.js","node_modules/css-in-js-utils/es/unprefixValue.js","RadioButtonGroup.tsx","RadioButtonAndroid.tsx","RadioButtonIOS.tsx","RadioButton.tsx","RadioButtonItem.tsx","CardContent.tsx","CardActions.tsx","CardCover.tsx","CardTitle.tsx","Card.tsx","node_modules/react-native-iphone-x-helper/index.js","useAnimatedValue.tsx","useLazyRef.tsx","Modal.tsx","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","../../src/MaskedView.tsx","../../Header/HeaderBackButton.tsx","../../src/SafeAreaProviderCompat.tsx","node_modules/styleq/dist/styleq.js","node_modules/styleq/transform-localize-style.js","node_modules/inline-style-prefixer/lib/createPrefixer.js","node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js","node_modules/inline-style-prefixer/lib/plugins/crossFade.js","node_modules/inline-style-prefixer/lib/plugins/cursor.js","node_modules/inline-style-prefixer/lib/plugins/filter.js","node_modules/inline-style-prefixer/lib/plugins/imageSet.js","node_modules/inline-style-prefixer/lib/plugins/logical.js","node_modules/inline-style-prefixer/lib/plugins/position.js","node_modules/inline-style-prefixer/lib/plugins/sizing.js","node_modules/inline-style-prefixer/lib/plugins/transition.js","node_modules/lodash/isEqual.js","node_modules/react-native-reanimated/lib/reanimated2/js-reanimated/JSReanimated.js","node_modules/react-native-reanimated/lib/reanimated2/js-reanimated/MapperRegistry.js","node_modules/react-native-reanimated/lib/reanimated2/js-reanimated/Mapper.js","node_modules/react-native-reanimated/lib/reanimated2/platform-specific/checkVersion.web.js","node_modules/react-native-reanimated/lib/reanimated2/frameCallback/FrameCallbackRegistryJS.js","node_modules/react-native-reanimated/lib/reanimated2/frameCallback/FrameCallbackRegistryUI.js","node_modules/react-native-reanimated/lib/setAndForwardRef.js","node_modules/react-native-reanimated/lib/reanimated2/platform-specific/RNRenderer.web.js","node_modules/create-react-class/index.js","node_modules/fbjs/lib/warning.js","node_modules/react-native-web/dist/vendor/react-native/FillRateHelper/index.js","getShadowNodeFromRef.web.ts","node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedTurboModule.js","node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedModule.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/DecayAnimation.js","node_modules/merge-options/index.js","node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js","node_modules/@aws-amplify/storage/node_modules/fast-xml-parser/src/parser.js","node_modules/bowser/es5.js","node_modules/compare-versions/index.js","node_modules/@callstack/react-theme-provider/lib/index.js","node_modules/@babel/runtime/helpers/toArray.js","node_modules/@apollo/client/cache/core/cache.js","node_modules/@react-navigation/core/node_modules/escape-string-regexp/index.js","../src/MaterialCommunityIcons.ts","../src/resolveAssetSource.web.ts","node_modules/fontfaceobserver/fontfaceobserver.standalone.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/AntDesign.ttf","node_modules/react-native-swipe-gestures/index.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome.ttf","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Octicons.ttf","node_modules/lodash/camelCase.js","node_modules/lodash/mapKeys.js","node_modules/toposort/index.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Ionicons.ttf","node_modules/react-native-paper-dropdown/dist/DropDown.js","MenuItem.tsx","node_modules/react-navigation-header-buttons/src/overflowMenu/vendor/Menu.js","node_modules/react-navigation-header-buttons/src/e2e.js","node_modules/moment-timezone/index.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/MaterialIcons.ttf","../../src/useLinkTo.tsx","node_modules/fbemitter/index.js","node_modules/@aws-amplify/core/lib-esm/ServiceWorker/ServiceWorker.js","../../src/useBackButton.tsx","../../src/useDocumentTitle.tsx","node_modules/fast-deep-equal/index.js","../../src/useThenable.tsx","../../theming/ThemeProvider.tsx","external.ts","internal.ts","useBottomSheetInternal.ts","getRefNativeTag.ts","useScrollEventsHandlersDefault.ts","normalizeSnapPoint.ts","animate.ts","getKeyboardAnimationConfigs.ts","logger.ts","noop.ts","useGestureHandler.ts","clamp.ts","snapPoint.ts","useGestureEventsHandlersDefault.tsx","useKeyboard.ts","useReactiveSharedValue.ts","useBottomSheetGestureHandlers.ts","styles.web.ts","BottomSheetContainer.tsx","BottomSheetGestureHandlersProvider.tsx","styles.ts","BottomSheetBackdropContainer.tsx","BottomSheetHandle.tsx","BottomSheetHandleContainer.tsx","BottomSheetBackground.tsx","BottomSheetBackgroundContainer.tsx","BottomSheetFooterContainer.tsx","BottomSheetDraggableView.tsx","BottomSheet.tsx","usePropsValidator.ts","useNormalizedSnapPoints.ts","useScrollable.ts","node_modules/@gorhom/portal/lib/module/state/constants.js","node_modules/@gorhom/portal/lib/module/contexts/portal.js","node_modules/@gorhom/portal/lib/module/hooks/usePortal.js","node_modules/@gorhom/portal/lib/module/components/portal/Portal.js","node_modules/@gorhom/portal/lib/module/hooks/usePortalState.js","node_modules/@gorhom/portal/lib/module/components/portalHost/PortalHost.js","node_modules/@gorhom/portal/lib/module/utilities/logger.js","node_modules/@gorhom/portal/lib/module/state/reducer.js","node_modules/@gorhom/portal/lib/module/components/portalProvider/PortalProvider.js","id.ts","BottomSheetModal.tsx","useBottomSheetModalInternal.ts","BottomSheetModalProvider.tsx","BottomSheetRefreshControl.tsx","createBottomSheetScrollableComponent.tsx","useScrollHandler.ts","useScrollableSetter.ts","BottomSheetSectionList.tsx","BottomSheetFlatList.tsx","BottomSheetScrollView.tsx","BottomSheetVirtualizedList.tsx","BottomSheetView.tsx","BottomSheetTextInput.tsx","BottomSheetBackdrop.tsx","useBottomSheet.ts","BottomSheetFooter.tsx","../src/AbstractChart.tsx","../src/BarChart.tsx","../src/PieChart.tsx","../src/ProgressChart.tsx","../src/StackedBarChart.tsx","../../src/contribution-graph/DateHelpers.ts","../../src/contribution-graph/constants.ts","../../src/contribution-graph/ContributionGraph.tsx","../src/Utils.ts","../../src/line-chart/LegendItem.tsx","../../src/line-chart/LineChart.tsx","../../src/line-chart/index.ts","../src/AssetSources.ts","../src/AssetUris.ts","../src/Asset.ts","../src/LocalAssets.web.ts","../src/ImageAssets.ts","../../src/createMemoryHistory.tsx","../../src/ServerContext.tsx","../../src/useLinking.tsx","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedTransform.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedStyle.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedProps.js","node_modules/@aws-amplify/core/lib-esm/Platform/version.js","node_modules/@aws-amplify/core/lib-esm/Platform/index.js","node_modules/react-native-webview/lib/WebView.js","node_modules/react-native-webview/index.js","node_modules/@apollo/client/link/utils/fromError.js","node_modules/@apollo/client/link/utils/throwServerError.js","node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","node_modules/@babel/runtime/helpers/nonIterableSpread.js","node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","node_modules/@babel/runtime/helpers/toPrimitive.js","node_modules/react/cjs/react.production.min.js","node_modules/@babel/runtime/helpers/superPropBase.js","node_modules/react-dom/cjs/react-dom.production.min.js","node_modules/scheduler/index.js","node_modules/scheduler/cjs/scheduler.production.min.js","node_modules/setimmediate/setImmediate.js","node_modules/@babel/runtime/helpers/isNativeFunction.js","node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","node_modules/react-is/cjs/react-is.production.min.js","node_modules/styleq/dist/transform-localize-style.js","node_modules/inline-style-prefixer/lib/utils/prefixProperty.js","node_modules/inline-style-prefixer/lib/utils/prefixValue.js","node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js","node_modules/inline-style-prefixer/lib/utils/isObject.js","node_modules/css-in-js-utils/lib/hyphenateProperty.js","node_modules/lodash/_baseIsEqualDeep.js","node_modules/lodash/_listCacheClear.js","node_modules/lodash/_listCacheDelete.js","node_modules/lodash/_listCacheGet.js","node_modules/lodash/_listCacheHas.js","node_modules/lodash/_listCacheSet.js","node_modules/lodash/_stackClear.js","node_modules/lodash/_stackDelete.js","node_modules/lodash/_stackGet.js","node_modules/lodash/_stackHas.js","node_modules/lodash/_stackSet.js","node_modules/lodash/_baseIsNative.js","node_modules/lodash/_getRawTag.js","node_modules/lodash/_objectToString.js","node_modules/lodash/_isMasked.js","node_modules/lodash/_coreJsData.js","node_modules/lodash/_getValue.js","node_modules/lodash/_mapCacheClear.js","node_modules/lodash/_Hash.js","node_modules/lodash/_hashClear.js","node_modules/lodash/_hashDelete.js","node_modules/lodash/_hashGet.js","node_modules/lodash/_hashHas.js","node_modules/lodash/_hashSet.js","node_modules/lodash/_mapCacheDelete.js","node_modules/lodash/_isKeyable.js","node_modules/lodash/_mapCacheGet.js","node_modules/lodash/_mapCacheHas.js","node_modules/lodash/_mapCacheSet.js","node_modules/lodash/_SetCache.js","node_modules/lodash/_setCacheAdd.js","node_modules/lodash/_setCacheHas.js","node_modules/lodash/_arraySome.js","node_modules/lodash/_cacheHas.js","node_modules/lodash/_equalByTag.js","node_modules/lodash/_Uint8Array.js","node_modules/lodash/_mapToArray.js","node_modules/lodash/_setToArray.js","node_modules/lodash/_equalObjects.js","node_modules/lodash/_getAllKeys.js","node_modules/lodash/_baseGetAllKeys.js","node_modules/lodash/_arrayPush.js","node_modules/lodash/_getSymbols.js","node_modules/lodash/_arrayFilter.js","node_modules/lodash/stubArray.js","node_modules/lodash/_arrayLikeKeys.js","node_modules/lodash/_baseTimes.js","node_modules/lodash/_baseIsArguments.js","node_modules/lodash/stubFalse.js","node_modules/lodash/_baseIsTypedArray.js","node_modules/lodash/_baseUnary.js","node_modules/lodash/_nodeUtil.js","node_modules/lodash/_baseKeys.js","node_modules/lodash/_isPrototype.js","node_modules/lodash/_nativeKeys.js","node_modules/lodash/_overArg.js","node_modules/lodash/isArrayLike.js","node_modules/lodash/_getTag.js","node_modules/lodash/_DataView.js","node_modules/lodash/_Promise.js","node_modules/lodash/_Set.js","node_modules/lodash/_WeakMap.js","node_modules/react/cjs/react-jsx-runtime.production.min.js","node_modules/create-react-class/factory.js","node_modules/is-plain-obj/index.js","node_modules/axios/lib/axios.js","node_modules/axios/lib/core/Axios.js","node_modules/axios/lib/core/InterceptorManager.js","node_modules/axios/lib/core/dispatchRequest.js","node_modules/axios/lib/core/transformData.js","node_modules/axios/lib/helpers/normalizeHeaderName.js","node_modules/axios/lib/core/settle.js","node_modules/axios/lib/helpers/cookies.js","node_modules/axios/lib/core/buildFullPath.js","node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/axios/lib/helpers/combineURLs.js","node_modules/axios/lib/helpers/parseHeaders.js","node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/axios/lib/helpers/validator.js","node_modules/axios/lib/cancel/CancelToken.js","node_modules/axios/lib/helpers/spread.js","node_modules/axios/lib/helpers/isAxiosError.js","node_modules/@aws-amplify/core/lib-esm/Hub.js","node_modules/@aws-amplify/storage/node_modules/fast-xml-parser/src/node2json.js","node_modules/@aws-amplify/storage/node_modules/fast-xml-parser/src/xmlNode.js","node_modules/strnum/strnum.js","node_modules/@aws-amplify/storage/node_modules/fast-xml-parser/src/validator.js","node_modules/@aws-amplify/storage/node_modules/fast-xml-parser/src/nimndata.js","node_modules/@aws-amplify/storage/node_modules/fast-xml-parser/src/node2json_str.js","node_modules/@aws-amplify/storage/node_modules/fast-xml-parser/src/json2xml.js","node_modules/uuid/v1.js","node_modules/uuid/v4.js","node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js","node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/index.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/convertToBuffer.js","node_modules/base64-js/index.js","node_modules/ieee754/index.js","node_modules/isarray/index.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/isEmptyData.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/numToUint8.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/util/build/uint32ArrayFrom.js","node_modules/@aws-crypto/sha256-js/build/jsSha256.js","node_modules/@aws-crypto/sha256-js/build/RawSha256.js","node_modules/@aws-crypto/sha256-js/node_modules/@aws-crypto/util/build/index.js","node_modules/@aws-crypto/sha256-js/node_modules/@aws-crypto/util/build/convertToBuffer.js","node_modules/@aws-crypto/sha256-js/node_modules/@aws-crypto/util/build/isEmptyData.js","node_modules/@aws-crypto/sha256-js/node_modules/@aws-crypto/util/build/numToUint8.js","node_modules/@aws-crypto/sha256-js/node_modules/@aws-crypto/util/build/uint32ArrayFrom.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/supports-web-crypto/build/index.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/ie11-detection/build/index.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/ie11-detection/build/Key.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js","node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/ie11-detection/build/MsWindow.js","node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/util/build/convertToBuffer.js","node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/util/build/isEmptyData.js","node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/util/build/numToUint8.js","node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/util/build/uint32ArrayFrom.js","node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/crc32/build/aws_crc32.js","../../src/sweet/setUpErrorManager.fx.ts","../../src/sweet/NativeErrorManager.ts","node_modules/simple-swizzle/index.js","node_modules/is-arrayish/index.js","node_modules/color-convert/index.js","node_modules/color-convert/node_modules/color-name/index.js","node_modules/color-convert/route.js","node_modules/@callstack/react-theme-provider/lib/createTheming.js","node_modules/@callstack/react-theme-provider/lib/createThemeProvider.js","node_modules/@callstack/react-theme-provider/lib/createWithTheme.js","node_modules/expo-linking/node_modules/qs/lib/stringify.js","node_modules/has-symbols/index.js","node_modules/has-symbols/shams.js","node_modules/has-proto/index.js","node_modules/function-bind/implementation.js","node_modules/has/src/index.js","node_modules/call-bind/callBound.js","node_modules/call-bind/index.js","node_modules/object-inspect/index.js","node_modules/expo-linking/node_modules/qs/lib/parse.js","node_modules/requires-port/index.js","node_modules/querystringify/index.js","node_modules/aws-appsync-auth-link/lib/auth-link.js","node_modules/aws-appsync-auth-link/lib/signer/signer.js","node_modules/punycode/punycode.js","node_modules/url/node_modules/qs/lib/index.js","node_modules/url/node_modules/qs/lib/stringify.js","node_modules/url/node_modules/qs/lib/parse.js","node_modules/aws-appsync-auth-link/lib/platform.js","node_modules/aws-appsync-subscription-link/lib/subscription-handshake-link.js","node_modules/aws-appsync-subscription-link/lib/utils/logger.js","node_modules/debug/src/browser.js","node_modules/debug/src/debug.js","node_modules/debug/node_modules/ms/index.js","node_modules/aws-appsync-subscription-link/lib/vendor/paho-mqtt.js","node_modules/aws-appsync-subscription-link/lib/non-terminating-link.js","node_modules/@apollo/client/link/context/index.js","node_modules/aws-appsync-subscription-link/lib/realtime-subscription-handshake-link.js","node_modules/aws-appsync-subscription-link/lib/types/index.js","node_modules/aws-appsync-subscription-link/lib/utils/retry.js","node_modules/crypto-js/hmac.js","node_modules/isomorphic-unfetch/browser.js","node_modules/node-libs-browser/node_modules/assert/assert.js","node_modules/node-libs-browser/node_modules/util/util.js","node_modules/node-libs-browser/node_modules/util/support/isBufferBrowser.js","node_modules/node-libs-browser/node_modules/inherits/inherits_browser.js","ReactNativeSVG.web.ts","SvgTouchableMixin.ts","resolve.ts","node_modules/strict-uri-encode/index.js","node_modules/decode-uri-component/index.js","node_modules/split-on-first/index.js","node_modules/filter-obj/index.js","node_modules/@expo/vector-icons/MaterialCommunityIcons.js","node_modules/@react-native/assets/registry.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf","../src/useDimensions.ts","../src/useAppState.ts","../src/useBackHandler.ts","../src/useCameraRoll.ts","../src/useClipboard.ts","../src/useAccessibilityInfo.ts","../src/useKeyboard.ts","../src/useInteractionManager.ts","../src/useDeviceOrientation.ts","../src/useLayout.ts","../src/useImageDimensions.ts","node_modules/lodash/_baseHas.js","node_modules/lodash/_stringToPath.js","node_modules/lodash/_memoizeCapped.js","node_modules/lodash/memoize.js","node_modules/lodash/_baseToString.js","node_modules/lodash/_arrayMap.js","node_modules/lodash/_defineProperty.js","node_modules/lodash/_baseFor.js","node_modules/lodash/_createBaseFor.js","node_modules/lodash/_baseMatches.js","node_modules/lodash/_baseIsMatch.js","node_modules/lodash/_getMatchData.js","node_modules/lodash/_baseMatchesProperty.js","node_modules/lodash/get.js","node_modules/lodash/hasIn.js","node_modules/lodash/_baseHasIn.js","node_modules/lodash/identity.js","node_modules/lodash/property.js","node_modules/lodash/_baseProperty.js","node_modules/lodash/_basePropertyDeep.js","node_modules/lodash/_arrayReduce.js","node_modules/lodash/deburr.js","node_modules/lodash/_deburrLetter.js","node_modules/lodash/_basePropertyOf.js","node_modules/lodash/words.js","node_modules/lodash/_asciiWords.js","node_modules/lodash/_hasUnicodeWord.js","node_modules/lodash/_unicodeWords.js","node_modules/lodash/capitalize.js","node_modules/lodash/upperFirst.js","node_modules/lodash/_createCaseFirst.js","node_modules/lodash/_castSlice.js","node_modules/lodash/_baseSlice.js","node_modules/lodash/_stringToArray.js","node_modules/lodash/_asciiToArray.js","node_modules/lodash/_unicodeToArray.js","node_modules/@react-navigation/stack/node_modules/color-convert/index.js","node_modules/@react-navigation/stack/node_modules/color-convert/route.js","node_modules/react-native-masked-text/dist/lib/mask-service.js","node_modules/react-native-masked-text/dist/lib/masks/index.js","node_modules/react-native-masked-text/dist/lib/masks/cel-phone.mask.js","node_modules/react-native-masked-text/dist/lib/masks/cnpj.mask.js","node_modules/react-native-masked-text/dist/lib/masks/cpf.mask.js","node_modules/react-native-masked-text/dist/lib/masks/datetime.mask.js","node_modules/date-and-time/date-and-time.js","node_modules/react-native-masked-text/dist/lib/masks/money.mask.js","node_modules/react-native-masked-text/dist/lib/internal-dependencies/vanilla-masker.js","node_modules/react-native-masked-text/dist/lib/masks/only-numbers.mask.js","node_modules/react-native-masked-text/dist/lib/masks/zip-code.mask.js","node_modules/react-native-masked-text/dist/lib/masks/credit-card.mask.js","node_modules/react-native-masked-text/dist/lib/text-input-mask.js","node_modules/react-native-masked-text/dist/lib/text-mask.js","node_modules/moment-timezone/moment-timezone.js","node_modules/paths-js/linear.js","node_modules/paths-js/sector.js","node_modules/paths-js/path.js","node_modules/paths-js/geom.js","node_modules/@polls-platform/core/types/external/index.js","node_modules/@polls-platform/core/types/external/pollTypes.js","node_modules/@polls-platform/core/types/external/configTypes.js","node_modules/@polls-platform/core/types/external/analyticsTypes.js","node_modules/@polls-platform/core/api/index.js","node_modules/@polls-platform/core/api/initialize.js","node_modules/@polls-platform/core/utils/schemaValidation.js","node_modules/@polls-platform/core/api/createPoll.js","node_modules/@polls-platform/core/utils/uuid.js","../src/regex.ts","../src/version.ts","../src/v1.ts","../src/v4.ts","../src/v5.ts","../src/v35.ts","../src/sha1.ts","node_modules/@polls-platform/core/utils/urlParams.js","node_modules/@polls-platform/core/node_modules/axios/index.js","node_modules/@polls-platform/core/node_modules/axios/lib/axios.js","node_modules/@polls-platform/core/node_modules/axios/lib/core/Axios.js","node_modules/@polls-platform/core/node_modules/axios/lib/core/InterceptorManager.js","node_modules/@polls-platform/core/node_modules/axios/lib/core/dispatchRequest.js","node_modules/@polls-platform/core/node_modules/axios/lib/core/transformData.js","node_modules/@polls-platform/core/node_modules/axios/lib/helpers/normalizeHeaderName.js","node_modules/@polls-platform/core/node_modules/axios/lib/core/settle.js","node_modules/@polls-platform/core/node_modules/axios/lib/helpers/cookies.js","node_modules/@polls-platform/core/node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/@polls-platform/core/node_modules/axios/lib/helpers/combineURLs.js","node_modules/@polls-platform/core/node_modules/axios/lib/helpers/parseHeaders.js","node_modules/@polls-platform/core/node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/@polls-platform/core/node_modules/axios/lib/helpers/parseProtocol.js","node_modules/@polls-platform/core/node_modules/axios/lib/helpers/null.js","node_modules/@polls-platform/core/node_modules/axios/lib/helpers/validator.js","node_modules/@polls-platform/core/node_modules/axios/lib/cancel/CancelToken.js","node_modules/@polls-platform/core/node_modules/axios/lib/helpers/spread.js","node_modules/@polls-platform/core/node_modules/axios/lib/helpers/isAxiosError.js","node_modules/credit-card-type/dist/lib/card-types.js","node_modules/credit-card-type/dist/lib/add-matching-cards-to-results.js","node_modules/credit-card-type/dist/lib/matches.js","node_modules/credit-card-type/dist/lib/is-valid-input-type.js","node_modules/credit-card-type/dist/lib/find-best-match.js","node_modules/card-validator/dist/cardholder-name.js","node_modules/card-validator/dist/card-number.js","node_modules/card-validator/dist/luhn-10.js","node_modules/card-validator/dist/expiration-date.js","node_modules/card-validator/dist/lib/parse-date.js","node_modules/card-validator/dist/lib/is-array.js","node_modules/card-validator/dist/cvv.js","node_modules/card-validator/dist/postal-code.js","node_modules/react-native-youtube-iframe/dist/YoutubeIframe.js","node_modules/@babel/runtime/helpers/interopRequireWildcard.js","node_modules/react-native-youtube-iframe/dist/WebView.web.js","node_modules/react-native-web-webview/dist/index.js","node_modules/react-native-web-webview/node_modules/qs/lib/index.js","node_modules/react-native-web-webview/node_modules/qs/lib/stringify.js","node_modules/react-native-web-webview/node_modules/qs/lib/parse.js","node_modules/react-native-web-webview/dist/postMock.html","node_modules/react-native-youtube-iframe/dist/PlayerScripts.js","node_modules/react-native-youtube-iframe/dist/utils.js","node_modules/react-native-youtube-iframe/dist/oEmbed.js","node_modules/@babel/runtime/regenerator/index.js","node_modules/@babel/runtime/helpers/regeneratorRuntime.js","node_modules/@react-navigation/bottom-tabs/node_modules/color-convert/index.js","node_modules/@react-navigation/bottom-tabs/node_modules/color-convert/route.js","node_modules/fbemitter/lib/BaseEventEmitter.js","node_modules/fbemitter/lib/EventSubscription.js","node_modules/fbemitter/lib/EventSubscriptionVendor.js","../src/Expo.fx.web.tsx","node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","../../src/launch/registerRootComponent.tsx","node_modules/expo/AppEntry.js","node_modules/aws-appsync-auth-link/node_modules/@smithy/util-hex-encoding/dist-es/index.js","node_modules/@aws-amplify/core/lib-esm/Parser.js","../src/AntDesign.ts","../src/FontAwesome.ts","node_modules/@apollo/client/react/hooks/useApolloClient.js","../../theming/DarkTheme.tsx","../src/Octicons.ts","../src/Ionicons.ts","node_modules/@apollo/client/react/hooks/useReactiveVar.js","../src/MaterialIcons.ts","../src/AssetHooks.ts","node_modules/@apollo/client/react/context/ApolloProvider.js","../../src/NavigationContainer.tsx","node_modules/react-dom/client.js","node_modules/@aws-amplify/core/lib-esm/Util/Retry.js","node_modules/@aws-amplify/core/lib-esm/OAuthHelper/GoogleOAuth.js","node_modules/@aws-amplify/core/lib-esm/OAuthHelper/FacebookOAuth.js","node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js","node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/tslib/tslib.es6.js","node_modules/@aws-sdk/client-cognito-identity/dist/es/models/models_0.js","node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js","node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetCredentialsForIdentityCommand.js","node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/@aws-sdk/property-provider/dist/es/ProviderError.js","node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/resolveLogins.js","node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/fromCognitoIdentity.js","node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetIdCommand.js","node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/IndexedDbStorage.js","node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/localStorage.js","node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/InMemoryStorage.js","node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/fromCognitoIdentityPool.js","node_modules/@aws-sdk/client-cognito-identity/dist/es/endpoints.js","node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.shared.js","node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.browser.js","node_modules/@aws-sdk/client-cognito-identity/dist/es/CognitoIdentityClient.js","node_modules/@aws-amplify/core/lib-esm/Util/CognitoIdentityClient.js","node_modules/@aws-amplify/core/lib-esm/Credentials.js","../../utils/BottomTabBarHeightCallbackContext.tsx","../../utils/BottomTabBarHeightContext.tsx","../../src/useLinkBuilder.tsx","../../src/useLinkProps.tsx","../../src/Link.tsx","../../views/Badge.tsx","../../views/TabBarIcon.tsx","../../views/BottomTabItem.tsx","../../views/BottomTabBar.tsx","../../utils/useIsKeyboardShown.tsx","../../views/ScreenFallback.tsx","../../views/BottomTabView.tsx","../../navigators/createBottomTabNavigator.tsx","../src/Application.ts","../src/ExpoApplication.web.ts","node_modules/event-target-shim/dist/event-target-shim.mjs","node_modules/abort-controller/dist/abort-controller.mjs","node_modules/abort-controller/polyfill.mjs","../src/ServerRegistrationModule.web.ts","../src/PushTokenManager.ts","../src/TokenEmitter.ts","../src/getDevicePushTokenAsync.web.ts","../../src/utils/updateDevicePushTokenAsync.ts","../src/DevicePushTokenAutoRegistration.fx.ts","../src/getExpoPushTokenAsync.ts","../src/Camera.types.ts","../src/WebUserMediaManager.ts","../src/ExponentCameraManager.web.ts","../src/WebCapabilityUtils.ts","../src/WebConstants.ts","../src/WebCameraUtils.ts","../src/useWebCameraStream.ts","../src/useWebQRScanner.ts","../src/ExponentCamera.web.tsx","../../src/utils/props.ts","../src/Camera.tsx","node_modules/@apollo/client/cache/inmemory/entityStore.js","node_modules/@apollo/client/cache/inmemory/readFromStore.js","node_modules/@apollo/client/cache/inmemory/writeToStore.js","node_modules/@apollo/client/cache/inmemory/policies.js","node_modules/@apollo/client/cache/inmemory/inMemoryCache.js","node_modules/@apollo/client/react/data/QueryData.js","node_modules/@apollo/client/react/hooks/utils/useBaseQuery.js","node_modules/@apollo/client/react/hooks/utils/useDeepMemo.js","node_modules/@apollo/client/react/hooks/useQuery.js","../src/createMultiStyleIconSet.ts","../src/FontAwesome5.ts","../src/createIconSetFromFontAwesome5.ts","node_modules/@apollo/client/react/data/MutationData.js","node_modules/@apollo/client/react/hooks/useMutation.js","../src/NotificationPermissionsModule.ts","../src/NotificationPermissions.ts","../src/Updates.ts","../src/ExpoUpdates.web.ts"],"names":["module","exports","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","pop","push","__read","o","m","r","ar","error","__spreadArray","to","from","pack","l","slice","concat","SuppressedError","_excluded","forwardPropsList","forwardedProps","href","lang","onScroll","onWheel","pointerEvents","View","React","props","forwardedRef","hrefAttrs","onLayout","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onResponderEnd","onResponderGrant","onResponderMove","onResponderReject","onResponderRelease","onResponderStart","onResponderTerminate","onResponderTerminationRequest","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture","rest","_objectWithoutPropertiesLoose","hasTextAncestor","TextAncestorContext","hostRef","contextDirection","useLocaleContext","direction","useElementLayout","useResponderEvents","component","langDirection","getLocaleDirection","componentDirection","dir","writingDirection","supportedProps","pick","pickProps","style","styles","view$raw","inline","download","rel","target","charAt","platformMethodsRef","usePlatformMethods","setRef","useMergeRefs","ref","createElement","displayName","StyleSheet","alignItems","backgroundColor","border","boxSizing","display","flexBasis","flexDirection","flexShrink","listStyle","margin","minHeight","minWidth","padding","position","textDecoration","zIndex","toPropertyKey","obj","key","defineProperty","enumerable","configurable","writable","__esModule","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arr","Platform","OS","select","web","default","strings","raw","docCache","Map","fragmentSourceMap","printFragmentWarnings","experimentalFragmentVariables","normalize","string","replace","trim","processFragments","ast","seenKeys","Set","definitions","forEach","fragmentDefinition","kind","fragmentName","name","sourceKey","loc","source","substring","start","end","sourceKeySet","get","has","console","warn","set","add","parseDocument","cacheKey","parsed","allowLegacyFragmentVariables","Error","doc","workSet","node","keys","startToken","endToken","stripLoc","gql","literals","args","_i","arg","resetCaches","clear","disableFragmentWarnings","enableExperimentalFragmentVariables","disableExperimentalFragmentVariables","gql_1","extras","_getPrototypeOf","getPrototypeOf","bind","instance","Constructor","_defineProperties","descriptor","protoProps","staticProps","emptyObject","supportsCSS3TextDecoration","canUseDOM","window","CSS","supports","ignoredProps","elevation","overlayColor","resizeMode","tintColor","SYSTEM_FONT_STACK","STYLE_SHORT_FORM_EXPANSIONS","borderColor","borderRadius","borderStyle","borderWidth","marginHorizontal","marginVertical","overflow","overscrollBehavior","paddingHorizontal","paddingVertical","mapTransform","transform","type","join","normalizeValueWithProperty","createTransformValue","isArray","map","createReactDOMStyle","isInline","resolvedStyle","prop","toString","backgroundClip","WebkitBackgroundClip","flexGrow","flex","stack","split","fontVariant","verticalAlign","textDecorationLine","longFormProperties","marginLeft","marginRight","marginTop","marginBottom","paddingLeft","paddingRight","paddingTop","paddingBottom","longForm","hash","str","seed","k","h","charCodeAt","murmurhash2_32_gc","uppercasePattern","msPattern","cache","toHyphenLower","match","toLowerCase","hyphenateStyleName","hName","test","w","wms","plugins","crossFade","cursor","filter","imageSet","logical","sizing","transition","prefixMap","appearance","userSelect","textEmphasisPosition","textEmphasis","textEmphasisStyle","textEmphasisColor","boxDecorationBreak","clipPath","maskImage","maskMode","maskRepeat","maskPosition","maskClip","maskOrigin","maskSize","maskComposite","mask","maskBorderSource","maskBorderMode","maskBorderSlice","maskBorderWidth","maskBorderOutset","maskBorderRepeat","maskBorder","maskType","textDecorationStyle","textDecorationSkip","textDecorationColor","breakAfter","breakBefore","breakInside","columnCount","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columns","columnSpan","columnWidth","backdropFilter","hyphens","flowInto","flowFrom","regionFragment","textOrientation","tabSize","fontKerning","textSizeAdjust","prefixAll","createPrefixer","staticData","customGroup","PROPERTIES_FLIP","_PROPERTIES_FLIP","_defineProperty","PROPERTIES_I18N","borderTopStartRadius","borderTopEndRadius","borderBottomStartRadius","borderBottomEndRadius","borderStartColor","borderStartStyle","borderStartWidth","borderEndColor","borderEndStyle","borderEndWidth","marginStart","marginEnd","paddingStart","paddingEnd","PROPERTIES_VALUE","atomic","compiledStyle","$$css","compiledRules","atomicCompile","identifier","stringifyValueWithProperty","cachedResult","createIdentifier","order","orderedRules","property","rules","selector","_processKeyframesValu2","processKeyframesValue","animationNames","keyframesRules","block","createDeclarationBlock","animationName","_toConsumableArray","_block","color","opacity","finalValue","_block3","_block4","_block2","_block5","scrollbarWidth","_block6","createAtomicRules","sort","localizeableValue","_left","_right","propPolyfill","ltr","rtl","values","polyfillIndices","val","ltrPolyfillValues","rtlPolyfillValues","ltrVal","ltrPolyfill","rtlPolyfill","_ltr","_rtl","normalizedValue","JSON","stringify","domStyle","prefixStyles","prefix","keyframesValue","keyframes","_createKeyframes","steps","stepName","createKeyframes","staticStyleMap","WeakMap","sheet","createSheet","insertRules","compiledOrderedRules","_ref","rule","insert","compileAndInsertReset","_classic","animationKeyframes","_processKeyframesValu","_objectSpread","classic","absoluteFillObject","left","right","top","bottom","absoluteFill","x","compiledStyles","styleObj","_atomic","preprocess","compileAndInsertAtomic","options","isRTL","styleProps","styleq","factory","localizeStyle","customStyleq","originalStyle","frozenProps","nextStyle","originalProp","originalValue","originalValues","valuePolyfill","compose","style1","style2","flatten","_len","_key","flatArray","flat","Infinity","getSheet","id","textContent","getTextContent","hairlineWidth","__REACT_DEVTOOLS_GLOBAL_HOOK__","resolveRNStyle","stylesheet","subClass","superClass","objectWithoutPropertiesLoose","excluded","sourceSymbolKeys","Avatar","icon","size","theme","colors","primary","restStyle","textColor","getContrastingColor","white","width","height","container","Icon","justifyContent","withTheme","AvatarImage","onError","onLoad","onLoadEnd","onLoadStart","onProgress","Image","AvatarText","labelStyle","customColor","fontScale","useWindowDimensions","Text","text","fontSize","lineHeight","numberOfLines","textAlign","textAlignVertical","ListAccordionGroupContext","ListAccordionGroup","expandedIdProp","expandedId","onAccordionPress","children","undefined","setExpandedId","Provider","newExpandedId","currentExpandedId","ListAccordion","title","description","titleStyle","descriptionStyle","titleNumberOfLines","descriptionNumberOfLines","testID","onPress","onLongPress","expandedProp","expanded","accessibilityLabel","setExpanded","titleColor","alpha","rgb","descriptionColor","expandedInternal","groupContext","isExpanded","handlePress","background","TouchableRipple","accessibilityTraits","accessibilityComponentType","accessibilityRole","accessibilityState","delayPressIn","borderless","row","item","content","selectable","multiline","MaterialCommunityIcon","I18nManager","child","ListIcon","iconColor","ListItem","titleEllipsizeMode","descriptionEllipsizeMode","iconMarginLeft","marginVerticalNone","ellipsizeMode","renderTitle","renderDescription","iconMarginRight","ListSubheader","font","fonts","medium","ListSection","_typeof","assertThisInitialized","self","Kind","freeze","NAME","DOCUMENT","OPERATION_DEFINITION","VARIABLE_DEFINITION","SELECTION_SET","FIELD","ARGUMENT","FRAGMENT_SPREAD","INLINE_FRAGMENT","FRAGMENT_DEFINITION","VARIABLE","INT","FLOAT","STRING","BOOLEAN","NULL","ENUM","LIST","OBJECT","OBJECT_FIELD","DIRECTIVE","NAMED_TYPE","LIST_TYPE","NON_NULL_TYPE","SCHEMA_DEFINITION","OPERATION_TYPE_DEFINITION","SCALAR_TYPE_DEFINITION","OBJECT_TYPE_DEFINITION","FIELD_DEFINITION","INPUT_VALUE_DEFINITION","INTERFACE_TYPE_DEFINITION","UNION_TYPE_DEFINITION","ENUM_TYPE_DEFINITION","ENUM_VALUE_DEFINITION","INPUT_OBJECT_TYPE_DEFINITION","DIRECTIVE_DEFINITION","SCHEMA_EXTENSION","SCALAR_TYPE_EXTENSION","OBJECT_TYPE_EXTENSION","INTERFACE_TYPE_EXTENSION","UNION_TYPE_EXTENSION","ENUM_TYPE_EXTENSION","INPUT_OBJECT_TYPE_EXTENSION","asyncGeneratorStep","gen","_next","_throw","info","fn","err","ReferenceError","__values","__spread","constructStack","absoluteEntries","relativeEntries","entriesNameSet","cloneTo","toStack","entry","middleware","addRelativeTo","expandRelativeMiddlewareList","expandedMiddlewareList","before","after","reverse","getMiddlewareList","entries","normalizedAbsoluteEntries","normalizedRelativeEntries","normalizedEntriesNameMap","normalizedEntry","toMiddleware","relation","a","stepWeights","priorityWeights","priority","reduce","wholeList","expendedMiddlewareList","override","toOverrideIndex","findIndex","toOverride","splice","clone","use","plugin","applyToStack","remove","toRemove","isRemoved","filterCb","delete","removeByName","removeByReference","removeByTag","tags","includes","cloned","handler","context","e_1","_a","_b","_c","e_1_1","return","initialize","serialize","build","finalizeRequest","deserialize","high","normal","low","Client","config","middlewareStack","send","command","optionsOrCb","cb","callback","resolveMiddleware","output","catch","destroy","requestHandler","extendedEncodeURIComponent","encodeURIComponent","c","getArrayIfSingleItem","mayBeArray","getValueFromTextNode","StringWrapper","Class","Function","_super","LazyJsonString","deserializeJSON","parse","toJSON","fromObject","object","days","months","dateToUtcString","date","year","getUTCFullYear","month","getUTCMonth","dayOfWeek","getUTCDay","dayOfMonthInt","getUTCDate","hoursInt","getUTCHours","minutesInt","getUTCMinutes","secondsInt","getUTCSeconds","SENSITIVE_STRING","attachNativeEvent","viewRef","eventName","argMapping","eventMappings","invariant","nativeEvent","traverse","path","AnimatedValue","__makeNative","nativeEventPath","animatedValueTag","__getNativeTag","viewTag","findNodeHandle","mapping","NativeAnimatedHelper","API","addAnimatedEventToView","detach","removeAnimatedEventFromView","AnimatedEvent","_classCallCheck","_listeners","_argMapping","useNativeDriver","listener","__addListener","_callListeners","_attachedEvent","__isNative","shouldUseNativeDriver","_createClass","_this","_len2","_key3","recMapping","recEvt","setValue","mappingKey","idx","_len3","_key4","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","AnimatedTransform","_AnimatedWithChildren","_inherits","transforms","_transforms","AnimatedNode","_get","__getValue","__getAnimatedValue","_this2","__addChild","_this3","__removeChild","transConfigs","nodeTag","transformDataType","validateTransform","AnimatedWithChildren","flattenStyle","AnimatedStyle","_style","updatedStyle","_walkStyleAndGetValues","_walkStyleAndGetAnimatedValues","styleConfig","styleKey","validateStyles","AnimatedProps","_AnimatedNode","_props","_callback","__attach","__getHandler","_animatedView","__disconnectAnimatedView","__connectAnimatedView","animatedView","nativeViewTag","connectAnimatedNodeToView","disconnectAnimatedNodeFromView","restoreDefaultValues","propsConfig","propKey","setAndForwardRef","getForwardedRef","setLocalRef","current","_excluded2","animatedComponentNextId","createAnimatedComponent","Component","isReactComponent","AnimatedComponent","_React$Component","_invokeAnimatedPropsCallbackOnMount","_eventDetachers","_animatedComponentId","_isFabric","_this$_component$_int","_this$_component$_int2","_this$_component$getN","_this$_component$getN2","_this$_component$getS","_this$_component$getS2","_component","stateNode","canonical","getNativeScrollRef","getScrollResponder","_waitForUpdate","setWaitingForIdentifier","_markUpdateComplete","unsetWaitingForIdentifier","_animatedPropsCallback","setNativeProps","forceUpdate","_propsAnimated","_setComponentRef","_prevComponent","getNode","_ref$constructor$name","_this$_component","scrollableNode","getScrollableNode","_loop","__detach","nextProps","oldPropsAnimated","__restoreDefaultValues","_ref$style","_ref2","passthroughAnimatedPropExplicitValues","_ref2$style","passthruStyle","passthruProps","mergedStyle","_extends","_attachProps","setNativeView","_attachNativeEvents","newProps","prevProps","_detachNativeEvents","FlatList","scrollEventThrottle","collapsable","ScrollView","SectionList","AnimatedAddition","AnimatedInterpolation","input","AnimatedDiffClamp","min","max","_min","_max","_value","_lastValue","diff","Math","AnimatedDivision","_warnedAboutDivideByZero","AnimatedModulo","modulus","_modulus","AnimatedMultiplication","AnimatedSubtraction","AnimatedTracking","parent","animationClass","animationConfig","_parent","_animationClass","_animationConfig","_useNativeDriver","animate","toValue","__getNativeAnimationConfig","animationId","generateNewAnimationId","_combineCallbacks","onComplete","maybeVectorAnim","anim","AnimatedValueXY","configX","configY","_config$key","aX","aY","parallel","stopTogether","timing","_start2","animatedValue","configuration","singleValue","singleConfig","stopTracking","track","TimingAnimation","stop","stopAnimation","reset","resetAnimation","_startNativeLoop","iterations","_isUsingNativeDriver","sequence","animations","finished","animation","doneCount","hasEnded","endResult","delay","time","duration","Value","ValueXY","Interpolation","Node","decay","_start3","DecayAnimation","spring","_start","SpringAnimation","subtract","divide","multiply","modulo","diffClamp","stagger","loop","_temp","_ref$iterations","_ref$resetBeforeItera","resetBeforeIteration","isFinished","iterationsSoFar","restart","event","animatedEvent","forkEvent","unforkEvent","__removeListener","Event","__PropsOnlyForTests","emptyAnimation","anyValue","AnimatedImplementation","Animated","isTesting","AnimatedMock","hookCallback","some","hooks","isObject","hasOwnProp","isObjectEmpty","getOwnPropertyNames","isUndefined","isNumber","isDate","Date","res","arrLen","extend","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","fun","len","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","isFunction","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","number","targetLength","forceSign","absNumber","abs","zerosToFill","pow","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","localeData","formatMoment","expandFormat","array","mom","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","isLeapYear","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","modMonth","monthsShort","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","parseTwoDigitYear","parseInt","getSetYear","createDate","M","ms","getFullYear","setFullYear","createUTCDate","UTC","setUTCFullYear","firstWeekOffset","dow","doy","fwd","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","ww","MM","yy","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","getSetGlobalLocale","data","getLocale","defineLocale","abbr","_config","parentLocale","names","j","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","exec","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","extractFromRFC2822Strings","weekdayStr","parsedInput","getDay","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","defaults","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getMonth","getDate","currentDateArray","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","minute","second","millisecond","configFromObject","configFromInput","isUTC","createFromConfig","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","years","quarters","quarter","weeks","isoWeek","milliseconds","unitHasDecimal","orderLen","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","matches","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","parseIso","base","isBefore","positiveMomentsDifference","momentsDifference","inp","isAfter","createAdder","period","tmp","addSubtract","isAdding","invalid","isString","isMomentInput","arrayTest","dataTypeTest","isNumberOrStringArray","objectTest","propertyTest","properties","propertyLen","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","prioritizedLen","toArray","toObject","toDate","toISOString","keepOffset","inspect","suffix","zone","isLocal","for","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","moduleName","propertyName","CodedError","PermissionStatus","createPermissionHook","methods","isMounted","status","setStatus","request","permissionOptions","getPermission","response","getMethod","requestPermission","requestMethod","usePermission","State","UNDETERMINED","FAILED","BEGAN","CANCELLED","ACTIVE","END","superPropBase","receiver","desc","getOwnPropertyDescriptor","ownKeys","enumerableOnly","symbols","sym","_assertThisInitialized","_wrapNativeSuper","_cache","Wrapper","_construct","_setPrototypeOf","Parent","GraphQLError","_Error","message","nodes","positions","originalError","extensions","_nodeLocations","_nodeLocations2","_nodeLocations3","undefinedIfEmpty","nodeLocations","_i2","_ref3","_this$nodes","locations","originalExtensions","getOwnPropertyDescriptors","defineProperties","captureStackTrace","printError","_i4","_error$nodes2","_i6","_error$locations2","location","arrayWithoutHoles","iterableToArray","nonIterableSpread","formatValue","seenValues","previouslySeenValues","customInspectFn","getCustomFn","customValue","remaining","items","formatArray","tag","getObjectTag","formatObject","formatObjectValue","isCheckBoxInput","element","isDateObject","isNullOrUndefined","isObjectType","getEventValue","checked","isNameInFieldArray","search","getNodeParentName","isWeb","HTMLElement","document","cloneObject","copy","Blob","FileList","tempObject","prototypeCopy","isPlainObject","compact","defaultValue","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","HookFormContext","createContext","useFormContext","useContext","getProxyFormState","formState","control","localProxyFormState","isRoot","defaultValues","_defaultValues","_proxyFormState","isEmptyObject","shouldRenderFormState","formStateData","updateFormState","find","convertToArrayPayload","shouldSubscribeByName","signalName","exact","currentName","startsWith","useSubscribe","useRef","useEffect","subscription","disabled","subject","subscribe","unsubscribe","generateWatchOutput","_names","formValues","isGlobal","watch","fieldName","watchAll","isKey","stringToPath","tempPath","newValue","objValue","useController","shouldUnregister","isArrayField","_name","_subjects","updateValue","_formValues","useState","_getWatch","_removeUnmounted","useWatch","_formState","_mounted","_localProxyFormState","isDirty","isLoading","dirtyFields","touchedFields","isValidating","errors","_updateFormState","state","_updateValid","useFormState","_registerProps","register","_shouldUnregisterField","_options","updateMounted","_fields","mount","_state","action","unregister","onChange","useCallback","onBlur","elm","focus","setCustomValidity","reportValidity","fieldState","isTouched","Controller","render","appendErrors","validateAllFieldCriteria","types","focusFieldBy","fields","fieldsNames","currentField","refs","getValidationModes","mode","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isWatched","isBlurEvent","watchName","updateFieldArrayRootError","fieldArrayErrors","isBoolean","isFileInput","isHTMLElement","owner","ownerDocument","defaultView","isMessage","isRadioInput","isRegex","defaultResult","validResult","getCheckboxValue","option","attributes","defaultReturn","getRadioValue","previous","getValidateError","every","getValueAndMessage","validationData","validateField","async","shouldUseNativeValidation","isFieldArray","required","maxLength","minLength","pattern","validate","valueAsNumber","inputValue","inputRef","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueAsDate","convertTimeToDate","toDateString","isTime","isWeek","valueNumber","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","unset","paths","childObject","updatePath","baseGet","isEmptyArray","createSubject","_observers","observer","isPrimitive","deepEqual","object1","object2","keys1","keys2","val1","val2","isMultipleSelect","live","isConnected","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFields","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getFieldValueAs","setValueAs","getFieldValue","files","selectedOptions","getRuleValue","schemaErrorLookup","foundError","defaultOptions","reValidateMode","shouldFocusError","createFormControl","flushRootRender","delayErrorCallback","submitCount","isSubmitted","isSubmitting","isSubmitSuccessful","unMount","timer","shouldCaptureDirtyFields","resetOptions","keepDirtyValues","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","criteriaMode","shouldUpdateValid","resolver","_executeSchema","executeBuiltInValidation","_updateIsValidating","updateValidAndValue","shouldSkipSetValueAs","defaultChecked","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","_getDirty","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","previousFieldError","delayError","updateErrors","wait","clearTimeout","setTimeout","updatedFormState","getResolverOptions","shouldOnlyCheckValid","valid","isFieldArrayRoot","fieldError","getValues","fieldReference","optionRef","selected","checkboxRef","radioRef","shouldTouch","shouldValidate","trigger","setValues","fieldKey","cloneValue","isFieldValueUpdated","shouldSkipValidation","deps","skipValidation","watched","previousErrorLookupResult","errorLookupResult","fieldNames","executeSchemaAndUpdateState","all","shouldFocus","getFieldState","setError","keepValue","keepError","keepDirty","keepTouched","keepDefaultValue","keepIsValid","disabledIsDefined","progressive","fieldRef","querySelectorAll","radioOrCheckbox","_focusError","handleSubmit","onValid","onInvalid","preventDefault","persist","fieldValues","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","keepDefaultValues","keepValues","form","closest","keepSubmitCount","keepIsSubmitted","keepErrors","_updateFieldArray","method","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","unsetEmptyArray","_getFieldArray","_resetDefaultValues","payload","resetField","clearErrors","inputName","setFocus","shouldSelect","useForm","_formControl","_values","src","baseClone","circulars","clones","nodeType","cloneNode","errorToString","regExpToString","symbolToString","SYMBOL_REGEXP","printSimpleValue","quoteStrings","typeOf","printNumber","printValue","mixed","oneOf","notOneOf","notType","isCast","defined","email","url","uuid","uppercase","lessThan","moreThan","positive","negative","integer","isValue","noUnknown","boolean","__isYupSchema__","otherwise","is","check","schema","branch","getValue","strReg","params","errorOrErrors","super","inner","isError","runTests","endEarly","tests","fired","once","count","nestedErrors","prefixes","isContext","isSibling","__isYupRef","createValidation","sync","sourceKeys","isRef","createError","overrides","nextParams","formatError","ctx","validOrError","OPTIONS","getIn","lastPart","lastPartDebug","_part","isBracket","part","innerType","_type","parentPath","list","describe","acc","newItems","removeItems","conditions","_mutate","_typeError","_whitelist","_blacklist","exclusiveTests","spec","withMutation","typeError","strip","abortEarly","recursive","nullable","presence","_whitelistError","_blacklistError","meta","combined","mergedSpec","merge","_typeCheck","condition","resolvedSchema","_cast","assert","isType","formattedValue","formattedResult","rawValue","getDefault","initialTests","finalTests","maybeCb","_validate","validateSync","_getDefault","def","exclusive","_isPresent","isNullable","opts","isExclusive","dep","enums","valids","resolved","resolveAll","invalids","optional","notRequired","Mixed","rEmail","rUrl","rUUID","isTrimmed","objStringTag","strValue","excludeEmptyString","Number","less","more","isInteger","_method","avail","truncate","isoReg","timestamp","struct","numericKeys","minutesOffset","param","cast","prepareParam","INVALID_DATE","_err$path","sortByKeyOrder","defaultSort","_sortErrors","_nodes","_excludedEdges","shape","_options$stripUnknown","stripUnknown","intermediateValue","innerOptions","__validating","isChanged","exists","fieldSpec","nextFields","schemaOrRef","dft","getDefaultFromShape","additions","excludes","excludedEdges","edges","addNode","depPath","sortFields","picked","fromGetter","newObj","noAllow","unknownKeys","known","unknown","allow","transformKeys","TokenKind","SOF","EOF","BANG","DOLLAR","AMP","PAREN_L","PAREN_R","SPREAD","COLON","EQUALS","AT","BRACKET_L","BRACKET_R","BRACE_L","PIPE","BRACE_R","BLOCK_STRING","COMMENT","validateFormat","argIndex","framesToPop","HttpResponse","statusCode","headers","isInstance","resp","HttpRequest","hostname","port","query","protocol","req","carry","paramName","createTheming","DefaultTheme","ThemeProvider","useTheme","GLOBAL_KEY","global","maybe","DEV","UPDATED_NODES","loopID","propUpdatesEnqueued","nodeCount","callID","getCallID","setCallID","nextCallID","sanitizeConfig","__nodeID","runPropUpdates","visitedNodes","findAndUpdateNodes","update","__getChildren","scheduleUpdates","requestAnimationFrame","setImmediate","nodeConfig","inputNodes","__lastLoopID","__memoizedValue","__children","__nodeConfig","__initialized","__inputNodes","__nativeInitialize","__nativeTearDown","__onEvaluate","__markUpdated","ReanimatedModule","createNode","dropNode","connectNodes","__dangerouslyRescheduleEvaluate","disconnectNodes","connectNodeToView","disconnectNodeFromView","ScrollResponder","Mixin","scrollResponderMixinGetInitialState","isTouching","lastMomentumScrollBeginTime","lastMomentumScrollEndTime","observedScrollSinceBecomingResponder","becameResponderWhileAnimating","scrollResponderHandleScrollShouldSetResponder","scrollResponderHandleStartShouldSetResponder","scrollResponderHandleStartShouldSetResponderCapture","scrollResponderIsAnimating","scrollResponderHandleResponderReject","warning","scrollResponderHandleTerminationRequest","scrollResponderHandleTouchEnd","touches","onTouchEnd","scrollResponderHandleResponderRelease","currentlyFocusedTextInput","TextInputState","currentlyFocusedField","keyboardShouldPersistTaps","onScrollResponderKeyboardDismissed","blurTextInput","scrollResponderHandleScroll","scrollResponderHandleResponderGrant","scrollResponderHandleScrollBeginDrag","onScrollBeginDrag","scrollResponderHandleScrollEndDrag","onScrollEndDrag","scrollResponderHandleMomentumScrollBegin","onMomentumScrollBegin","scrollResponderHandleMomentumScrollEnd","onMomentumScrollEnd","scrollResponderHandleTouchStart","onTouchStart","scrollResponderHandleTouchMove","onTouchMove","scrollResponderGetScrollableNode","scrollResponderScrollTo","animated","scroll","behavior","scrollLeft","scrollTop","scrollResponderZoomTo","rect","scrollResponderFlashScrollIndicators","scrollResponderScrollNativeHandleToKeyboard","nodeHandle","additionalOffset","preventNegativeScrollOffset","additionalScrollOffset","UIManager","measureLayout","getInnerViewNode","scrollResponderTextInputFocusError","scrollResponderInputMeasureAndScrollToKeyboard","keyboardScreenY","Dimensions","keyboardWillOpenTo","endCoordinates","screenY","scrollOffsetY","UNSAFE_componentWillMount","scrollResponderKeyboardWillShow","onKeyboardWillShow","scrollResponderKeyboardWillHide","onKeyboardWillHide","scrollResponderKeyboardDidShow","onKeyboardDidShow","scrollResponderKeyboardDidHide","onKeyboardDidHide","normalizeScrollEvent","contentOffset","contentSize","scrollHeight","scrollWidth","layoutMeasurement","offsetHeight","offsetWidth","timeStamp","ScrollViewBase","_props$scrollEnabled","scrollEnabled","_props$scrollEventThr","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","scrollState","isScrolling","scrollLastTick","scrollTimeout","scrollRef","createPreventableScrollHandler","handleScrollTick","hideScrollbar","stopPropagation","handleScrollEnd","lastTick","eventThrottle","timeSinceLastTick","shouldEmitScrollEvent","handleScrollStart","scrollDisabled","overflowX","overflowY","touchAction","createReactClass","mixins","getInitialState","flashScrollIndicators","_scrollNodeRef","getInnerViewRef","_innerViewRef","scrollTo","scrollToEnd","horizontal","scrollResponder","scrollResponderNode","_this$props","contentContainerStyle","onContentSizeChange","refreshControl","stickyHeaderIndices","pagingEnabled","centerContent","keyboardDismissMode","contentSizeChangeProps","_handleContentOnLayout","hasStickyHeaderIndices","Children","isSticky","stickyHeader","pagingEnabledChild","contentContainer","_setInnerViewRef","contentContainerHorizontal","contentContainerCenterContent","baseStyle","baseHorizontal","baseVertical","pagingEnabledStyle","pagingEnabledHorizontal","pagingEnabledVertical","_handleScroll","scrollResponderHandleTerminate","ScrollViewClass","scrollView","_setScrollNodeRef","cloneElement","_e$nativeEvent$layout","layout","dismissKeyboard","mergeRefs","commonStyle","translateZ","WebkitOverflowScrolling","scrollSnapType","scrollSnapAlign","ForwardedScrollView","forwardRef","colorString","convert","_slice","skippedModels","hashedModelKeys","labels","limiters","Color","channels","valpha","newArr","zeroArray","hashedKeys","getset","channel","modifier","maxfn","assertArray","places","percentString","percent","unitArray","unitObject","num","roundTo","roundToPlace","red","green","blue","hue","saturationl","lightness","saturationv","chroma","gray","wblack","cyan","magenta","yellow","black","z","keyword","hex","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","isDark","isLight","negate","lighten","ratio","hsl","darken","saturate","desaturate","whiten","hwb","blacken","grayscale","fade","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","newAlpha","CALLBACK_TYPE","UNDEFINED","START","UPDATE","CHANGE","FINALIZE","TOUCHES_DOWN","TOUCHES_MOVE","TOUCHES_UP","TOUCHES_CANCELLED","Gesture","nextGestureId","BaseGesture","gestureId","handlerTag","isWorklet","handlers","addDependency","gesture","withRef","__workletHash","onBegin","onStart","onEnd","onFinalize","onTouchesDown","needsPointerData","onTouchesMove","onTouchesUp","onTouchesCancelled","enabled","shouldCancelWhenOutside","hitSlop","runOnJS","simultaneousWithExternalGesture","gestures","requireExternalGestureToFail","withTestId","testId","cancelsTouchesInView","getNextHandlerTag","toGestureArray","prepare","shouldUseReanimated","isRemoteDebuggingEnabled","ContinousBaseGesture","onUpdate","manualActivation","NUMBER","PERCENTAGE","_closure","asString","__location","jsCachedMatchers","uiCachedMatchers","isConfigured","makeRemote","getMatchers","cachedMatchers","_WORKLET","rgba","hsla","hex3","hex4","hex6","hex8","hue2rgb","q","hslToRgb","parse255","int","parse360","parse1","parsePercentage","makeShareable","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","normalizeColor","_e","_g","_h","matchers","rgbaColor","RGBtoHSV","HSVtoRGB","hsvToColor","_HSVtoRGB","processColorInitially","normalizedColor","isColor","processColor","convertToRGBA","processedColor","rgbaArrayToRGBAColor","RGBA","toLinearSpace","gamma","toGammaSpace","goBack","navigate","setParams","BaseRouter","getStateForAction","routes","nextState","route","routeNames","stale","nanoid","shouldActionChangeFocus","StackActions","popToTop","StackRouter","router","routeParamList","initialRouteName","getRehydratedState","partialState","getStateForRouteNamesChange","routeKeyChanges","getStateForRouteFocus","getId","routeGetIdList","actionCreators","TabActions","jumpTo","getRouteHistory","backBehavior","initialRouteIndex","history","unshift","changeIndex","currentKey","it","TabRouter","currentId","nextId","previousKey","NOT_INITIALIZED_ERROR","createNavigationContainerRef","CommonActions","listeners","removeListener","addListener","isReady","SingleNavigatorContext","EnsureSingleNavigator","navigatorKeyRef","findFocusedRoute","NavigationBuilderContext","onDispatchAction","onOptionsChange","NavigationContainerRefContext","NavigationContext","NavigationRouteContext","MISSING_CONTEXT_ERROR","isDefault","UnhandledActionContext","useChildListeners","removed","useEventEmitter","listen","listenRef","callbacks","emit","canPreventDefault","lastIndexOf","defaultPrevented","useKeyedChildListeners","keyedListeners","getState","beforeRemove","addKeyedListener","useOptionsGetters","navigation","optionsRef","optionsGettersFromChildRef","parentAddOptionsGetter","NavigationStateContext","addOptionsGetter","optionsChangeListener","isFocused","hasChildren","getOptionsFromListener","getCurrentOptions","optionsFromListener","ScheduleUpdateContext","scheduleUpdate","flushUpdates","UNINTIALIZED_STATE","BaseNavigationContainer","initialState","onStateChange","onUnhandledAction","independent","stateRef","isSchedulingRef","isMountedRef","trackingState","setTrackingState","setState","useSyncState","getPartialState","isFirstMountRef","getKey","setKey","dispatch","canGoBack","handled","resetRoot","root","getRootState","getCurrentRoute","emitter","getParent","noop","stackRef","lastEmittedOptionsRef","builderContext","scheduleContext","isInitialRef","getIsInitial","onStateChangeRef","hydratedState","defaultOnUnhandledAction","Group","Screen","createNavigatorFactory","Navigator","CurrentRenderContext","getActionFromState","normalizedConfig","createNormalizedConfigItem","screens","initial","screen","createNormalizedConfigs","CHILD_STATE","getFocusedRouteNameFromRoute","fromEntries","formatToList","validatePathConfig","validKeys","invalidKeys","getPathFromState","configs","allParams","focusedParams","focusedRoute","getActiveRoute","currentOptions","nestedRouteNames","hasNext","currentParams","getParamName","nextRoute","nestedConfig","endsWith","queryString","joinPaths","parentPattern","createConfigItem","getStateFromPath","initialRoutes","parentScreens","segment","decodeURIComponent","createNestedStateObject","localeCompare","aParts","bParts","aWildCard","bWildCard","matchAgainstConfigs","remainingPath","matchedParams","routeConfig","initials","escape","findInitialRoute","routeName","sameParents","createStateObject","initialRoute","flatConfig","nestedState","nestedStateIndex","parseQueryParams","findParseConfigForRoute","parseConfig","NavigationHelpersContext","PreventRemoveContext","transformPreventedRoutes","preventedRoutesMap","routeKey","preventRemove","PreventRemoveProvider","parentId","setPreventedRoutesMap","preventRemoveContextValue","setParentPrevented","setPreventRemove","useLatestCallback","prevPrevented","nextPrevented","isPrevented","preventedRoutes","useNavigation","useFocusEffect","effect","cleanup","unsubscribeFocus","unsubscribeBlur","useIsFocused","setIsFocused","valueToReturn","isArrayEqual","NavigationContent","prevPropKeys","nextPropKeys","SceneView","routeState","clearOptions","getCurrentState","currentRoute","setCurrentState","ScreenComponent","getComponent","useDescriptors","screenOptions","defaultScreenOptions","onAction","onRouteFocus","setOptions","navigations","actions","thunk","withStack","process","helpers","useNavigationCache","useRouteCache","customOptions","curr","mergedOptions","VISITED_ROUTE_KEYS","shouldPreventRemove","beforeRemoveListeners","currentRoutes","nextRoutes","nextRouteKeys","removedRoutes","visitedRouteKeys","beforeRemoveAction","useOnAction","actionListeners","routerConfigOptions","onActionParent","onRouteFocusParent","addListenerParent","routerConfigOptionsRef","visitedNavigators","useOnPreventRemove","isValidKey","useNavigationBuilder","createRouter","navigatorKey","useRegisterNavigator","screenListeners","routeConfigs","getRouteConfigsFromChildren","groupKey","groupOptions","navigationKey","routeKeyList","initialParams","isStateValid","isStateInitialized","currentState","stateCleanedUp","cleanUpState","initialRouteParamList","initialParamsFromParams","initializedState","isFirstStateInitialization","previousRouteKeyListRef","previousRouteKeyList","aKeys","bKeys","isRecordEqual","previousNestedParamsRef","previousParams","updatedState","shouldUpdate","useScheduleUpdate","initializedStateRef","descriptors","lastFocusedKeyRef","currentFocusedKey","lastFocusedKey","useFocusEvents","childListeners","sourceRouteKey","useOnRouteFocus","navigatorId","parentNavigationHelpers","navigationHelpers","useNavigationHelpers","focusedListeners","useFocusedListenersChildrenAdapter","getStateListeners","childState","useOnGetState","useCurrentRender","renderRef","useComponent","useNavigationContainerRef","useNavigationState","setResult","selectorRef","_setGlobalConsole","testWorklet","throwUninitializedReanimatedException","checkPluginState","throwError","shouldBeUseWeb","isConfiguredCheck","pushFrame","frame","NativeReanimatedModule","_getTimestamp","requestFrame","native","runOnUI","worklet","getViewProp","propName","_log","log","nativeShouldBeMock","getTimestamp","_frameTimestamp","_eventTimestamp","_getCurrentTime","workletValueSetter","previousAnimation","_animation","cancelled","onFrame","isHigherOrder","makeMutable","startMapper","mapper","inputs","outputs","updater","viewDescriptors","stopMapper","mapperId","__callAsync","installCoreFunctions","initializeAnimation","_setValue","capturableConsole","debug","featuresConfig","enableLayoutAnimations","setByUser","flag","isCallByUser","configureProps","uiProps","nativeProps","jestResetJsReanimatedModule","jestResetModule","DirectiveLocation","QUERY","MUTATION","SUBSCRIPTION","SCHEMA","SCALAR","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","devAssert","ID_KEY","_sessionId","Bare","installationId","localStorage","getItem","setItem","isDOMAvailable","ua","navigator","userAgent","manifest","sdkVersion","origin","expoVersion","agent","getBrowserName","getWebViewUserAgentAsync","pinkA100","pinkA400","grey50","grey200","grey400","grey800","allowRTL","forceRTL","getConstants","nativeEventEmitter","NativeAnimatedModule","RN$Bridgeless","NativeAnimatedTurboModule","NativeAnimatedNonTurboModule","__nativeAnimatedNodeTagCount","__nativeAnimationIdCount","waitingForQueuedOperations","queueOperations","queue","saveValueCallback","disableQueue","startOperationBatch","finishOperationBatch","queueOperation","createAnimatedNode","startListeningToAnimatedNodeValue","stopListeningToAnimatedNodeValue","connectAnimatedNodes","parentTag","childTag","disconnectAnimatedNodes","startAnimatingNode","endCallback","setAnimatedNodeValue","setAnimatedNodeOffset","flattenAnimatedNodeOffset","extractAnimatedNodeOffset","dropAnimatedNode","eventMapping","animatedNodeTag","SUPPORTED_STYLES","borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius","shadowOpacity","shadowRadius","scaleX","scaleY","translateX","translateY","SUPPORTED_TRANSFORMS","scale","rotateX","rotateY","rotateZ","perspective","SUPPORTED_INTERPOLATION_PARAMS","inputRange","outputRange","extrapolate","extrapolateRight","extrapolateLeft","_warnedMissingNativeAnimated","addWhitelistedStyleProp","addWhitelistedTransformProp","addWhitelistedInterpolationParam","validateInterpolation","_key2","generateNewNodeTag","assertNativeAnimatedModule","PI","NativeEventEmitter","findDOMNode","rawValues","createHandler","allowedProps","baseGestureHandlerProps","nativeViewProps","NativeViewGestureHandler","NATIVE_WRAPPER_PROPS_FILTER","createNativeWrapper","ComponentWrapper","gestureHandlerProps","_gestureHandlerRef","useImperativeHandle","handlerName","numberOfPointers","pointers","changeEventCalculator","changePayload","forceChange","force","minForce","maxForce","feedbackOnActivation","extendRelation","currentRelation","extendWith","ComposedGesture","prepareSingleGesture","simultaneousGestures","requireGesturesToFail","newConfig","simultaneousWith","requireToFail","flatMap","simultaneousArrays","gestureArrays","minDuration","minDurationMs","maxDistance","distance","maxDist","changeX","translationX","changeY","translationY","activeOffsetY","activeOffsetYStart","activeOffsetYEnd","activeOffsetX","activeOffsetXStart","activeOffsetXEnd","failOffsetY","failOffsetYStart","failOffsetYEnd","failOffsetX","failOffsetXStart","failOffsetXEnd","minPointers","maxPointers","minDistance","minDist","minVelocity","velocity","minVelocityX","minVelocityY","averageTouches","avgTouches","enableTrackpadTwoFingerGesture","activateAfterLongPress","scaleChange","rotationChange","rotation","numberOfTaps","maxDuration","maxDurationMs","maxDelay","maxDelayMs","maxDeltaX","delta","maxDeltaY","shouldActivateOnStart","disallowInterruption","_previous","RawButton","GestureHandlerButton","BaseButton","oldState","pointerInside","active","lastActive","onActiveStateChange","longPressDetected","longPressTimeout","delayLongPress","onHandlerStateChange","handleEvent","onGestureEvent","rippleColor","AnimatedBaseButton","btnStyles","underlay","RectButton","activeOpacity","underlayColor","BorderlessButton","TOUCHABLE_STATE","GenericTouchable","onMoveIn","onMoveOut","moveToState","STATE","handlePressIn","shouldCallOnPress","pressOutTimeout","handleGoToUndetermined","pressInTimeout","onLongPressDetected","handleMoveOutside","delayPressOut","componentDidMount","newState","onPressIn","onPressOut","componentWillUnmount","coreProps","accessible","accessibilityHint","accessibilityActions","onAccessibilityAction","nativeID","containerStyle","touchSoundDisabled","extraButtonProps","TouchableWithoutFeedback","defaultProps","TouchableOpacity","childStyle","getChildStyleOpacityWithDefault","easing","Easing","inOut","quad","useNativeAnimations","_from","setOpacityTo","TouchableHighlight","hasPressHandler","extraChildStyle","extraUnderlayStyle","onShowUnderlay","onHideUnderlay","showUnderlay","hideUnderlay","renderChildren","only","RNScrollView","TextInput","RNSwitch","RNTextInput","RNDrawerLayoutAndroid","renderScrollComponent","scrollProps","Swipeable","friction","overshootFriction","dragX","rowTranslation","leftWidth","rowWidth","rightOffset","rightWidth","overshootLeft","overshootRight","transX","interpolate","showLeftAction","leftActionTranslate","MIN_VALUE","showRightAction","rightActionTranslate","close","ev","handleRelease","velocityX","rowState","leftThreshold","rightThreshold","startOffsetX","currentOffset","animateRow","fromValue","restSpeedThreshold","restDisplacementThreshold","bounciness","animationOptions","onSwipeableLeftOpen","onSwipeableOpen","onSwipeableRightOpen","closingDirection","onSwipeableClose","onSwipeableLeftWillOpen","onSwipeableWillOpen","onSwipeableRightWillOpen","onSwipeableWillClose","updateAnimatedEvent","shouldComponentUpdate","renderLeftActions","renderRightActions","leftActions","rightActions","PanGestureHandler","onRowLayout","TapGestureHandler","onTapHandlerStateChange","childrenContainerStyle","DrawerLayout","drawerPosition","drawerWidth","drawerType","dragXValue","touchXValue","touchX","drawerTranslation","containerWidth","dragOffsetFromOnStartPosition","openValue","gestureOptions","onDrawerSlide","drawerWillShow","onDrawerStateChanged","emitStateChanged","drawerState","Keyboard","dismiss","hideStatusBar","StatusBar","setHidden","statusBarAnimation","drawerShown","drawerLockMode","closeDrawer","gestureStartX","dragOffsetBasedOnStart","animateDrawer","showing","accessibilityIsModalView","accessibilityViewIsModal","pointerEventsView","minSwipeDistance","edgeWidth","fromLeft","gestureOrientation","panGestureHandler","speed","nextFramePosition","willShow","updateShowing","drawerOpened","onDrawerOpen","onDrawerClose","dynamicOverlayStyles","overlay","containerStyles","drawerBackgroundColor","drawerContainerStyle","drawerSlide","containerSlide","reverseContentDirection","dynamicDrawerStyles","drawerTranslateX","closedDrawerOffset","drawerStyles","main","handleContainerLayout","containerOnBack","containerInFront","importantForAccessibility","renderOverlay","drawerContainer","renderNavigationView","onGestureRef","setPanGestureRef","openingHandlerStateChange","renderDrawer","Left","Right","startListening","concatArrays","ignoreUndefined","createPromise","createPromiseAll","promises","processResult","AsyncStorage","removeItem","mergeItem","oldValue","oldObject","newObject","nextValue","mergeLocalStorageItem","getAllKeys","numberOfKeys","flushGetRequests","multiGet","multiSet","keyValuePairs","multiRemove","multiMerge","useCode","nodeFactory","dependencies","animatedAlways","always","Code","code","assertNodesNotNull","procDecay","proc","clock","deceleration","lastTime","cond","deltaTime","sub","kv","kx","v0","internalTiming","frameTime","nextProgress","progress","newFrameTime","distanceLeft","fullDistance","startPosition","nextPosition","greaterOrEq","procSpring","prevPosition","damping","mass","stiffness","overshootClamping","x0","zeta","sqrt","omega0","omega1","sin1","sin","cos1","cos","underDampedEnvelope","exp","underDampedFrag1","underDampedPosition","underDampedVelocity","criticallyDampedEnvelope","criticallyDampedPosition","criticallyDampedVelocity","isOvershooting","and","neq","greaterThan","isVelocity","isDisplacement","or","eq","Animation","TransitioningContext","configFromProps","durationMs","interpolation","delayMs","propagation","wrapTransitioningContext","Comp","_jsx","Consumer","In","Change","_React$Component2","_super2","Out","_React$Component3","_super3","Together","_React$Component4","_super4","transitions","Sequence","_React$Component5","_super5","createTransitioningComponent","_React$Component6","Wrapped","_super6","propTypes","createRef","animateMount","animateNextTransition","_objectWithoutProperties","_jsxs","Fragment","Transitioning","Transition","stiffnessFromOrigamiValue","oValue","dampingFromOrigamiValue","stiffnessFromOrigamiNode","dampingFromOrigamiNode","makeDefaultConfig","makeConfigFromBouncinessAndSpeed","prevConfig","startValue","endValue","projectNormal","bouncyTension","bouncyFriction","tension","b3Friction2","b3Friction3","b3Nobounce","linearInterpolation","fromBouncinessAndSpeedNumbers","lessOrEq","fromBouncinessAndSpeedNodes","makeConfigFromOrigamiTensionAndFriction","useValue","initialValue","backwardsCompatibleAnimWrapper","animationStateDefaults","alwaysNode","animationCallback","newClock","Clock","isStarted","isDone","wasStopped","currentAnimationCallback","isNativelyInitialized","evaluateOnce","clockRunning","startClock","__detachAnimation","stopClock","__attachAnimation","__stopImmediately_testOnly","createOldAnimationObject","procAcc","procColor","procDiff","stash","prev","minVal","maxVal","interpolateColors","animationValue","outputColorRange","Extrapolate","CLAMP","procOnChange","prevValue","not","SensorType","decayWrapper","backwardCompatibleAnimWrapper","decayDefaultState","timingWrapper","timingDefaultState","springWrapper","springDefaultState","useAnimatedSensor","sensorType","userConfig","sensorData","sensor","isAvailable","interval","ROTATION","qw","qx","qy","qz","yaw","pitch","roll","NativeReanimated","registerSensor","unregisterSensor","KeyboardState","frameCallbackRegistry","FrameCallbackRegistryJS","useFrameCallback","autostart","setActive","isActive","manageStateFrameCallback","callbackId","registerFrameCallback","unregisterFrameCallback","useAnimatedKeyboard","listenerId","isSubscribed","keyboardEventData","UNKNOWN","subscribeForKeyboardEvents","unsubscribeFromKeyboardEvents","subscribeForEvents","useScrollViewOffset","aref","offsetRef","useSharedValue","useEvent","registerForEvents","ColorSpace","interpolateColorsHSV","_options$useCorrected","useCorrectedHSVInterpolation","correctedInputRange","originalH","correctedH","interpolateColorsRGB","_options$gamma","outputR","outputG","outputB","getInterpolateRGB","getInterpolateHSV","processedHSVColor","interpolateColor","colorSpace","useInterpolateConfig","RGB","interpolateSharableColor","interpolateConfig","HSV","createAnimatedPropAdapter","adapter","nativePropsToAdd","addWhitelistedNativeProps","SVGAdapter","TextInputAdapter","BaseAnimationBuilder","randomizeDelay","durationV","delayV","callbackV","random","withDelay","createInstance","withCallback","randomDelay","ComplexAnimationBuilder","_BaseAnimationBuilder","easingFunction","easingV","degree","rotateV","withSpring","dampingV","massV","stiffnessV","overshootClampingV","restDisplacementThresholdV","restSpeedThresholdV","initialValues","withTiming","springify","withInitialValues","Keyframe","delayFunction","getDelayFunction","_this$parseDefinition","parseDefinitions","_targetValues","addAnimation","keyframePoints","linear","withSequence","keyframePoint","transformProp","transformPropKey","parsedKeyframes","styleProp","transformStyle","animationKeyPoints","getAnimationDuration","currentKeyPoint","keyPoint","keyframe","addKeyPointWith","addKeyPoint","FlipInXUp","_ComplexAnimationBuil","_this$getAnimationAnd","getAnimationAndConfig","_this$getAnimationAnd2","_slicedToArray","getDelay","targetValues","targetHeight","FlipInYLeft","_ComplexAnimationBuil2","_this2$getAnimationAn","_this2$getAnimationAn2","targetWidth","FlipInXDown","_ComplexAnimationBuil3","_this3$getAnimationAn","_this3$getAnimationAn2","FlipInYRight","_ComplexAnimationBuil4","_this4","_this4$getAnimationAn","_this4$getAnimationAn2","FlipInEasyX","_ComplexAnimationBuil5","_this5","_this5$getAnimationAn","_this5$getAnimationAn2","FlipInEasyY","_ComplexAnimationBuil6","_this6","_this6$getAnimationAn","_this6$getAnimationAn2","FlipOutXUp","_ComplexAnimationBuil7","_super7","_this7","_this7$getAnimationAn","_this7$getAnimationAn2","currentHeight","FlipOutYLeft","_ComplexAnimationBuil8","_super8","_this8","_this8$getAnimationAn","_this8$getAnimationAn2","currentWidth","FlipOutXDown","_ComplexAnimationBuil9","_super9","_this9","_this9$getAnimationAn","_this9$getAnimationAn2","FlipOutYRight","_ComplexAnimationBuil10","_super10","_this10","_this10$getAnimationA","_this10$getAnimationA2","FlipOutEasyX","_ComplexAnimationBuil11","_super11","_this11","_this11$getAnimationA","_this11$getAnimationA2","FlipOutEasyY","_ComplexAnimationBuil12","_super12","_this12","_this12$getAnimationA","_this12$getAnimationA2","StretchInX","StretchInY","StretchOutX","StretchOutY","FadeIn","FadeInRight","FadeInLeft","FadeInUp","FadeInDown","FadeOut","FadeOutRight","FadeOutLeft","FadeOutUp","FadeOutDown","SlideInRight","originX","targetOriginX","windowWidth","SlideInLeft","SlideOutRight","currentOriginX","SlideOutLeft","SlideInUp","originY","targetOriginY","windowHeight","SlideInDown","SlideOutUp","currentOriginY","SlideOutDown","ZoomIn","ZoomInRotate","ZoomInLeft","ZoomInRight","ZoomInUp","ZoomInDown","ZoomInEasyUp","ZoomInEasyDown","ZoomOut","ZoomOutRotate","ZoomOutLeft","ZoomOutRight","ZoomOutUp","_ComplexAnimationBuil13","_super13","_this13","_this13$getAnimationA","_this13$getAnimationA2","ZoomOutDown","_ComplexAnimationBuil14","_super14","_this14","_this14$getAnimationA","_this14$getAnimationA2","ZoomOutEasyUp","_ComplexAnimationBuil15","_super15","_this15","_this15$getAnimationA","_this15$getAnimationA2","ZoomOutEasyDown","_ComplexAnimationBuil16","_super16","_this16","_this16$getAnimationA","_this16$getAnimationA2","BounceIn","getDuration","BounceInDown","BounceInUp","BounceInLeft","BounceInRight","BounceOut","BounceOutDown","BounceOutUp","BounceOutLeft","BounceOutRight","LightSpeedInRight","skewX","LightSpeedInLeft","LightSpeedOutRight","LightSpeedOutLeft","PinwheelIn","PinwheelOut","RotateInDownLeft","RotateInDownRight","RotateInUpLeft","RotateInUpRight","RotateOutDownLeft","RotateOutDownRight","RotateOutUpLeft","RotateOutUpRight","RollInLeft","RollInRight","RollOutLeft","RollOutRight","LinearTransition","Layout","FadingTransition","SequencedTransition","reversed","JumpingTransition","bounce","CurvedTransition","easingXV","in","ease","easingYV","easingWidthV","easingHeightV","easingX","easingY","easingWidth","easingHeight","EntryExitTransition","enteringV","exitingV","enteringAnimation","exitingAnimation","exitingDuration","enteringValues","exitingValues","mergedTransform","objectKeys","entering","exiting","combineTransition","getRelativeCoords","parentRef","absoluteX","absoluteY","parentCoords","measure","AnimatedText","AnimatedView","AnimatedScrollView","AnimatedImage","AnimatedFlatList","ReanimatedFlatlist","itemLayoutAnimation","restProps","cellRenderer","useMemo","ReanimatedView","createCellRenderer","CellRendererComponent","onClick","handleClick","WebkitLineClamp","textHasAncestor$raw","text$raw","textOneLine","textMultiLine","notSelectable","pressable","textStyle","whiteSpace","wordWrap","maxWidth","textOverflow","WebkitBoxOrient","_useState","dims","setDims","handleChange","addEventListener","removeEventListener","NativeAnimatedAPI","_uniqueId","__nativeTag","hasListeners","_startListeningToNativeValueUpdates","_stopListeningForNativeValueUpdates","__nativeAnimatedValueListener","__shouldUpdateListenersForNewNativeTag","_onAnimatedValueUpdateReceived","__callListeners","_this$__nativeTag","nativeTag","__getNativeConfig","hasOwn","defaultDataIdFromObject","__typename","_id","keyObject","defaultConfig","dataIdFromObject","addTypename","resultCaching","canonizeResults","normalizeConfig","shouldCanonizeResults","TypeOrFieldNameRegExp","fieldNameFromStoreName","storeFieldName","selectionSetMatchesResult","selectionSet","variables","selections","storeValueIsStoreObject","makeProcessedFieldsMerger","CognitoHostedUIIdentityProvider","AuthErrorTypes","GRAPHQL_AUTH_MODE","isFederatedSignInOptions","isFederatedSignInOptionsCustom","hasCustomState","isCognitoHostedOpts","oauth","redirectSignIn","isUsernamePasswordOpts","username","dimensions","shouldInit","win","visualViewport","docEl","documentElement","clientHeight","clientWidth","devicePixelRatio","handleResize","dimension","initialDimensions","_handler","sanitizeValue","CONSTANT_VALUES","initializeConstantValues","InternalAnimatedValue","constant","_startingValue","_constant","_updateValue","__forceUpdateCache","print","leave","printDocASTReducer","Name","Variable","Document","OperationDefinition","operation","varDefs","wrap","variableDefinitions","directives","VariableDefinition","variable","SelectionSet","Field","argsLine","indent","Argument","_ref4","FragmentSpread","_ref5","InlineFragment","_ref6","typeCondition","FragmentDefinition","_ref7","IntValue","_ref8","FloatValue","_ref9","StringValue","_ref10","BooleanValue","_ref11","NullValue","EnumValue","_ref12","ListValue","_ref13","ObjectValue","_ref14","ObjectField","_ref15","Directive","_ref16","NamedType","_ref17","ListType","_ref18","NonNullType","_ref19","SchemaDefinition","addDescription","_ref20","operationTypes","OperationTypeDefinition","_ref21","ScalarTypeDefinition","_ref22","ObjectTypeDefinition","_ref23","interfaces","FieldDefinition","_ref24","hasMultilineItems","InputValueDefinition","_ref25","InterfaceTypeDefinition","_ref26","UnionTypeDefinition","_ref27","EnumTypeDefinition","_ref28","EnumValueDefinition","_ref29","InputObjectTypeDefinition","_ref30","DirectiveDefinition","_ref31","repeatable","SchemaExtension","_ref32","ScalarTypeExtension","_ref33","ObjectTypeExtension","_ref34","InterfaceTypeExtension","_ref35","UnionTypeExtension","_ref36","EnumTypeExtension","_ref37","InputObjectTypeExtension","_ref38","maybeArray","_maybeArray$filter$jo","maybeString","isMultiline","commonProps","baseGestureHandlerWithMonitorProps","isConfigParam","filterConfig","validProps","filteredConfig","transformIntoHandlerTags","handlerIDs","handle","handlerID","handlerIDToTag","findNodeHandleRN","scheduledFlushOperationsId","scheduleFlushOperations","RNGestureHandlerModule","flushOperations","exportedModule","reanimatedJS","fnToStr","previousComparisons","equal","aTag","bTag","previouslyCompared","definedKeys","keyCount","aIterator","isMap","aKey","aValue","Uint8Array","byteLength","aCode","full","fromIndex","nativeCodeSuffix","isDefinedKey","bSet","base64","ieee754","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","allocUnsafe","ArrayBuffer","byteOffset","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","write","fromString","isBuffer","buffer","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","read","buf","readUInt16BE","foundIndex","found","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","hi","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","fromCharCode","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","equals","thisStart","thisEnd","thisCopy","targetCopy","_arr","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","accessibilityDisabled","accessibilityLiveRegion","accessibilityValue","focusable","onFocus","MemoedTouchableWithoutFeedback","rejectResponderTermination","pressConfig","cancelable","delayPressStart","delayPressEnd","onPressStart","onPressEnd","pressEventHandlers","usePressEvents","elementProps","CAN_USE_RIPLLE","Version","TouchableItem","_ref$borderless","_ref$pressColor","pressColor","rippleRadius","TouchableNativeFeedback","Ripple","useForeground","canUseNativeForeground","BUTTON_HIT_SLOP","HeaderButton","_useTheme","dark","themeColor","ios","themePressColorAndroid","renderButtonElement","iconName","buttonStyle","IconComponent","iconSize","usedPressColor","ButtonElement","buttonContainer","HeaderButtonsContext","ButtonsExtraMarginContext","ButtonsWrapper","marginStatus","extraSideMargin","getMargin","extraEdgeMarginOnLeft","extraEdgeMarginOnRight","android","HeaderButtons","_ref$HeaderButtonComp","HeaderButtonComponent","_ref$left","_NativeModules$Native","_NativeModules$Native2","NativeModules","NativeUnimoduleProxy","_NativeModules$Native3","modulesConstants","_NativeModules$Native4","ExponentConstants","statusBarHeight","widthWithIcon","lightDisabled","darkDisabled","Item","renderVisibleButton","visibleButtonProps","button","fontFamily","textTransform","checkParams","hiddenButtons","overflowMenuPressHandlerDropdownMenu","overflowButtonRef","_private_toggleMenu","measureInWindow","elements","_ref$cancelButtonLabe","cancelButtonLabel","actionTitles","btn","disabledButtonIndices","destructiveButtonIndex","destructive","ActionSheetIOS","showActionSheetWithOptions","cancelButtonIndex","buttonIndex","overflowMenuView","light","inset","float32ArraySupported","Float32Array","A","aA1","aA2","B","C","calcBezier","aT","getSlope","bezier","mX1","mY1","mX2","mY2","sampleValues","getTForX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","_aGuessT","aGuessT","currentSlope","newtonRaphsonIterate","_aA","_aB","currentX","currentT","aA","aB","binarySubdivide","_t","_t2","t2","x1","y1","x2","y2","_bezier","eventNames","rebuild","initRef","WorkletEventHandler","updateWorklet","useHandler","savedDependencies","_initRef$current","doDependenciesDiffer","nextDeps","prevDeps","objectIs","areHookInputsEqual","areDependenciesEqual","handlersList","buildWorkletsHash","workletHash","closure","buildDependencies","useWeb","isJest","hasColorProps","updates","colorPropsSet","colorProps","parseColors","canApplyOptimalisation","upadterFn","optimalization","__optimalization","isAnimated","styleDiff","oldStyle","newStyle","getStyleWithoutAnimations","validateAnimatedStyles","NetworkStatus","isNetworkRequestInFlight","networkStatus","JEST_WORKER_ID","isChromeDebugger","nativeCallSyncHook","__REMOTEDEV__","__isInteraction","InteractionManager","createInteractionHandle","clearInteractionHandle","_tracking","tracking","flush","rootNode","animatedStyles","findAnimatedStyles","animatedStyle","_flush","dataSet","suppressHydrationWarning","accessibilityProps","accessibilityActiveDescendant","accessibilityAtomic","accessibilityAutoComplete","accessibilityBusy","accessibilityChecked","accessibilityColumnCount","accessibilityColumnIndex","accessibilityColumnSpan","accessibilityControls","accessibilityCurrent","accessibilityDescribedBy","accessibilityDetails","accessibilityErrorMessage","accessibilityExpanded","accessibilityFlowTo","accessibilityHasPopup","accessibilityHidden","accessibilityInvalid","accessibilityKeyShortcuts","accessibilityLabelledBy","accessibilityLevel","accessibilityModal","accessibilityMultiline","accessibilityMultiSelectable","accessibilityOrientation","accessibilityOwns","accessibilityPlaceholder","accessibilityPosInSet","accessibilityPressed","accessibilityReadOnly","accessibilityRequired","accessibilityRoleDescription","accessibilityRowCount","accessibilityRowIndex","accessibilityRowSpan","accessibilitySelected","accessibilitySetSize","accessibilitySort","accessibilityValueMax","accessibilityValueMin","accessibilityValueNow","accessibilityValueText","clickProps","onClickCapture","onContextMenu","focusProps","keyboardProps","onKeyDown","onKeyDownCapture","onKeyUp","onKeyUpCapture","mouseProps","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOver","onMouseOut","onMouseUp","touchProps","onTouchCancel","onTouchCancelCapture","onTouchEndCapture","onTouchMoveCapture","onTouchStartCapture","classList","IN_STYLE_UPDATER","initialUpdaterRun","recognizePrefixSuffix","strippedValue","decorateAnimation","baseOnStart","baseOnFrame","animationCopy","prefNumberSuffOnFrame","strippedCurrent","__prefix","__suffix","tab","colorOnFrame","RGBACurrent","arrayOnFrame","RGBAValue","RGBAToValue","colorOnStart","arrayOnStart","_recognizePrefixSuffi","strippedToValue","_recognizePrefixSuffi3","paPrefix","paSuffix","paStrippedValue","prefNumberSuffOnStart","defineAnimation","starting","cancelAnimation","sharedValue","Bezier","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","NEWTON_ITERATIONS","LinearEasing","kSampleStepSize","NEWTON_MIN_SLOPE","EasingObject","cubic","poly","circle","elastic","back","bezierFn","createChecker","workletName","prevArgs","checkIfReaOne","EasingNode","Location","Token","line","column","isNode","maybeNode","assets","getAssetByID","assetId","dataUriPattern","ImageUriCache","uri","_entries","lastUsedTimestamp","refCount","_cleanUpIfNeeded","leastRecentlyUsedKey","leastRecentlyUsedEntry","imageUris","_maximumEntries","requests","ImageLoader","abort","requestId","image","onerror","onload","getSize","success","failure","complete","setInterval","load","clearInterval","naturalHeight","naturalWidth","onDecode","decode","prefetch","queryCache","uris","_filterId","svgDataUriPattern","resolveAssetUri","asset","scales","preferredScale","PixelRatio","scaleSuffix","httpServerLocation","svg","blurRadius","defaultSource","draggable","_React$useState","updateState","_React$useState2","updateLayout","hiddenImageRef","filterRef","requestRef","shouldDisplaySource","_getFlatStyle","filterId","flatStyle","shadowOffset","filters","_filter","shadowString","createBoxShadowValue","shadowColor","getFlatStyle","_resizeMode","selectedSource","displayImageUri","imageSizeStyle","_getAssetByID","resolveAssetDimensions","backgroundImage","backgroundSize","_hiddenImageRef$curre","_height3","_width3","scaleFactor","getBackgroundSize","hiddenImage","alt","accessibilityImage$raw","abortPendingRequest","_layout","resizeModeStyles","visibility","floodColor","in2","operator","createTintColorSVG","ImageWithStatics","backgroundPosition","backgroundRepeat","center","contain","cover","none","repeat","stretch","unitlessNumbers","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","flexOrder","flexPositive","flexNegative","fontWeight","gridRow","gridRowEnd","gridRowGap","gridRowStart","gridColumn","gridColumnEnd","gridColumnGap","gridColumnStart","lineClamp","orphans","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","scaleZ","prefixKey","dangerousStyleValue","isCustomProperty","isUnitlessNumber","setValueForStyles","styleName","styleValue","setProperty","getRect","_getBoundingClientRec","getBoundingClientRect","relativeToNativeNode","relativeNode","parentNode","relativeRect","_getRect","elementsToIgnore","BODY","INPUT","SELECT","TEXTAREA","blur","nodeName","getAttribute","isContentEditable","setAttribute","_getRect2","onFail","onSuccess","updateView","configureNextLayoutAnimation","onAnimationDidEnd","setLayoutAnimationEnabledExperimental","Alert","autoCapitalize","autoComplete","autoCorrect","autoFocus","placeholder","readOnly","rows","spellCheck","focusTimeout","inputMode","_props$autoCapitalize","autoCompleteType","_props$autoCorrect","blurOnSubmit","clearTextOnFocus","_props$editable","editable","_props$keyboardType","keyboardType","_props$multiline","_props$numberOfLines","onChangeText","onKeyPress","onSelectionChange","onSubmitEditing","placeholderTextColor","returnKeyType","_props$secureTextEntr","secureTextEntry","selection","selectTextOnFocus","handleContentSizeChange","hostNode","newHeight","newWidth","imperativeRef","useLayoutEffect","selectionEnd","selectionStart","isSelectionStale","setSelectionRange","setSelection","activeElement","_currentlyFocusedNode","enterKeyHint","shouldBlurOnSubmit","isComposing","keyCode","isEventComposing","shiftKey","isDefaultPrevented","onSelect","textinput$raw","MozAppearance","WebkitAppearance","resize","disabledProp","centered","touchY","calculatedRippleColor","currentTarget","getComputedStyle","changedTouches","touch","locationX","pageX","locationY","pageY","ripple","transitionProperty","transitionDuration","transitionTimingFunction","transformOrigin","appendChild","containers","firstChild","removeChild","touchable","supported","SHORT_TO_HEX","HEX_TO_SHORT","encodedByte","fromHex","encoded","removeAllListeners","SYMBOL_ITERATOR","SYMBOL_ASYNC_ITERATOR","asyncIterator","SYMBOL_TO_STRING_TAG","toStringTag","majorStr","minorStr","isJestEnv","tagMessage","isFabric","nativeFabricUIManager","concatPagination","keyArgs","existing","incoming","offsetLimitPagination","merged","relayStylePagination","canRead","readField","firstEdgeCursor","lastEdgeCursor","edge","pageInfo","startCursor","endCursor","getExtras","isReference","hasPreviousPage","hasNextPage","incomingEdges","pageInfo_1","firstEdge","lastEdge","firstCursor","mergeDeep","lastCursor","notExtras","stringifyForDisplay","undefId","makeUniqueId","makeReference","__ref","isDocumentNode","valueToObjectRepresentation","argObj","isIntValue","isFloatValue","isBooleanValue","isStringValue","isObjectValue","nestedArgObj_1","isVariable","variableValue","isListValue","listValue","nestedArgArrayObj","isEnumValue","isNullValue","storeKeyNameFromField","directivesObj","directive","getStoreKeyName","KNOWN_DIRECTIVES","filterKeys","filteredArgs_1","completeFieldName","stringifiedArgs","setStringify","stringifyReplacer","argumentsObjectFromField","argObj_1","resultKeyNameFromField","getTypenameFromResult","fragmentMap","isField","typename","isInlineFragment","GeocoderError","geolocationPositionToJSON","coords","latitude","longitude","altitude","accuracy","altitudeAccuracy","heading","isLocationValid","maxAge","requiredAccuracy","locationAccuracy","getPermissionsAsync","resolveWithStatus","granted","GRANTED","canAskAgain","expires","geolocation","getCurrentPosition","DENIED","enableHighAccuracy","maximumAge","lastKnownPosition","getProviderStatusAsync","locationServicesEnabled","getLastKnownPositionAsync","getCurrentPositionAsync","Balanced","removeWatchAsync","watchId","clearWatch","watchDeviceHeading","headingId","hasServicesEnabledAsync","geocodeAsync","reverseGeocodeAsync","watchPositionImplAsync","watchPosition","requestPermissionsAsync","requestForegroundPermissionsAsync","requestBackgroundPermissionsAsync","getForegroundPermissionsAsync","getBackgroundPermissionsAsync","startObserving","stopObserving","accessibilityComponent","AccessibilityUtil","propsToAccessibilityComponent","domProps","createDOMProps","LocaleProvider","deserializerMiddlewareOption","serializerMiddlewareOption","getSerdePlugin","serializer","deserializer","commandStack","deserializerMiddleware","serializerMiddleware","attachEvent","_viewTag","_eventName","_nodeID","detachEvent","_nativeProps","_uiProps","removeListeners","ReanimatedModuleCompat","_children","_step","_iterator","_createForOfIteratorHelperLoose","_step2","_iterator2","regular","isObjectLike","emptyFunction","setBackgroundColor","setBarStyle","setNetworkActivityIndicatorVisible","setTranslucent","createInterpolation","stringShapeRegex","checkPattern","colorToRgba","outputRanges","interpolations","shouldRound","range","createInterpolationFromStringOutputRange","checkInfiniteRange","checkValidInputRange","findRange","inputMin","inputMax","outputMin","outputMax","_interpolation","parentValue","__transformDataType","__createInterpolation","isNonNullObject","isPrefixed","EVENT_TYPES","VISIBILITY_CHANGE_EVENT","VISIBILITY_STATE_PROPERTY","AppStates","changeEmitter","AppState","EventEmitter","clipboardAvailable","Clipboard","queryCommandSupported","getSelection","removeAllRanges","createRange","selectNodeContents","addRange","execCommand","DeviceInfo","_Dimensions$get","_Dimensions$get2","languages","language","deviceMemory","configureNext","Presets","easeInEaseOut","springDamping","LayoutAnimation","Types","easeIn","easeOut","keyboard","Properties","scaleXY","checkConfig","initialURL","Linking","_eventCallbacks","filteredCallbacks","open","_dispatchEvent","urlToOpen","URL","vibrate","Vibration","cancel","Button","buttonDisabled","textDisabled","CheckBox","onValueChange","fakeControl","fakeControlChecked","fakeControlDisabled","fakeControlCheckedAndDisabled","nativeControl","cursorInherit","cursorDefault","ImageBackground","_props$style","imageStyle","imageRef","_StyleSheet$flatten","KeyboardAvoidingView","keyboardFrame","keyboardY","keyboardVerticalOffset","ModalPortal","elementRef","ReactDOM","createPortal","getAnimationStyle","animationType","visible","animatedSlideInStyles","animatedSlideOutStyles","animatedFadeInStyles","animatedFadeOutStyles","hidden","animatedIn","animationDuration","ANIMATION_DURATION","animationTimingFunction","animatedOut","fadeIn","fadeOut","slideIn","slideOut","ModalAnimation","onDismiss","onShow","isRendering","setIsRendering","wasVisible","animationEndCallback","onAnimationEnd","ModalContent","onRequestClose","closeOnEscape","modal","modalTransparent","modalOpaque","FocusBracket","tabIndex","focusBracket","attemptFocus","ModalFocusTrap","trapElementRef","focusRef","trapFocusInProgress","lastFocusedElement","trapFocus","contains","hasFocused","focusFirstDescendant","childNodes","focusLastDescendant","lastFocusedElementOutsideTrap","outlineStyle","uniqueModalIdentifier","activeModalStack","activeModalListeners","notifyActiveModalListeners","activeModalId","modalId","removeActiveModal","Modal","_props$visible","setIsActive","onDismissCallback","onShowCallback","addActiveModal","Picker","selectedValue","itemStyle","prompt","_e$target","selectedIndex","ProgressBar","_props$color","_props$indeterminate","indeterminate","_props$progress","_props$trackColor","trackColor","percentageProgress","forcedColorAdjust","cssFunction","SafeAreaView","twoArgumentPooler","a1","a2","instancePool","standardReleaser","destructor","DEFAULT_POOLER","PooledClass","addPoolingTo","CopyConstructor","pooler","NewKlass","getPooled","release","BoundingDimensions","getPooledFromElement","Position","extractSingleTouch","hasTouches","hasChangedTouches","States","baseStatesConditions","NOT_RESPONDER","RESPONDER_INACTIVE_PRESS_IN","RESPONDER_INACTIVE_PRESS_OUT","RESPONDER_ACTIVE_PRESS_IN","RESPONDER_ACTIVE_PRESS_OUT","RESPONDER_ACTIVE_LONG_PRESS_IN","RESPONDER_ACTIVE_LONG_PRESS_OUT","ERROR","IsActive","IsPressingIn","IsLongPressingIn","Signals","Transitions","DELAY","RESPONDER_GRANT","RESPONDER_RELEASE","RESPONDER_TERMINATED","ENTER_PRESS_RECT","LEAVE_PRESS_RECT","LONG_PRESS_DETECTED","TouchableMixin","_touchableNode","_touchableBlurListener","_isTouchableKeyboardActive","touchState","touchableHandleResponderTerminate","touchableDelayTimeout","longPressDelayTimeout","pressOutDelayTimeout","pressInLocation","responderID","touchableGetInitialState","touchableHandleResponderTerminationRequest","touchableHandleStartShouldSetResponder","touchableLongPressCancelsPress","touchableHandleResponderGrant","dispatchID","_receiveSignal","delayMS","touchableGetHighlightDelayMS","_handleDelay","longDelayMS","touchableGetLongPressDelayMS","LONG_PRESS_THRESHOLD","_handleLongDelay","touchableHandleResponderRelease","touchableHandleResponderMove","positionOnActivate","dimensionsOnActivate","pressRectOffset","touchableGetPressRectOffset","pressExpandLeft","pressExpandTop","pressExpandRight","pressExpandBottom","touchableGetHitSlop","_getDistanceBetweenPoints","_cancelLongPressDelayTimeout","prevState","touchableHandleFocus","touchableHandleBlur","_remeasureMetricsOnActivation","_handleQueryLayout","globalX","globalY","curState","signal","_performSideEffectsForTransition","_isHighlight","_savePressInLocation","bX","bY","deltaX","deltaY","curIsHighlight","newIsHighlight","isInitialTransition","isActiveTransition","touchableHandleLongPress","_startHighlight","_endHighlight","hasLongPressHandler","pressIsLongButStillCallOnPress","touchableHandlePress","_playTouchSound","playTouchSound","touchableHandleActivePressIn","touchableHandleActivePressOut","touchableGetPressOutDelayMS","touchableHandleKeyEvent","propsToAriaRole","withoutDefaultFocusAndBlur","TouchableMixinWithoutDefaultFocusAndBlur","Touchable","TOUCH_TARGET_DEBUG","renderDebugView","debugHitSlopStyle","hexColor","YellowBox","UnimplementedView","ignoreWarnings","promiseMock","PERMISSIONS","RESULTS","checkPermission","requestMultiple","AuthenticationDetails","ValidationData","Username","Password","AuthParameters","ClientMetadata","authParameters","clientMetadata","password","_proto","getUsername","getPassword","getValidationData","getAuthParameters","getClientMetadata","cryptoSecureRandomInt","getRandomValues","Uint32Array","randomBytes","crypto","msCrypto","dbits","WordArray","words","sigBytes","nBytes","wordArray","hexChars","bite","hexStringify","BigInteger","nbi","inBrowser","appName","am","xl","xh","DB","DM","DV","FV","F1","F2","rr","vv","BI_RC","int2char","intAt","nbv","fromInt","nbits","Montgomery","mp","invDigit","mpl","mph","um","mt2","dlShiftTo","divRemTo","compareTo","ZERO","subTo","revert","copyTo","u0","clamp","drShiftTo","mulTo","multiplyTo","sqrTo","squareTo","mi","sh","lShiftTo","bs","cbs","bm","ds","rShiftTo","pm","pt","ts","nsh","ys","y0","yt","d1","d2","ONE","qd","addTo","km","bitLength","mod","modPow","k1","g2","is1","r2","HEX_MSB_REGEX","AuthenticationHelper","PoolName","N","hexHash","padHex","smallAValue","generateRandomSmallA","getLargeAValue","infoBits","poolName","getSmallAValue","largeAValue","calculateA","hexRandom","generateRandomString","getRandomPassword","randomPassword","getSaltDevices","SaltToHashDevices","getVerifierDevices","verifierDevices","generateHashDevice","deviceGroupKey","combinedString","hashedString","verifierDevicesNotPadded","calculateU","UHexHash","lib","hashHex","hexStr","computehkdf","ikm","salt","infoBitsWordArray","ikmWordArray","saltWordArray","prk","hmac","getPasswordAuthenticationKey","serverBValue","UValue","usernamePassword","usernamePasswordHash","xValue","calculateS","sValue","hkdf","gModPowXN","err2","getNewPasswordRequiredChallengeUserAttributePrefix","bigInt","isNegative","invertedNibbles","invertedNibble","CognitoJwtToken","jwtToken","decodePayload","getJwtToken","getExpiration","getIssuedAt","iat","CognitoAccessToken","_CognitoJwtToken","AccessToken","CognitoIdToken","IdToken","CognitoRefreshToken","RefreshToken","getToken","CognitoUserSession","ClockDrift","idToken","refreshToken","accessToken","clockDrift","calculateClockDrift","getIdToken","getRefreshToken","getAccessToken","getClockDrift","adjusted","monthNames","weekNames","DateHelper","getNowString","weekDay","CognitoUserAttribute","getName","setName","dataMemory","MemoryStorage","StorageHelper","storageWindow","exception","getStorage","CognitoUser","Pool","pool","Session","client","signInUserSession","authenticationFlowType","storage","Storage","keyPrefix","getClientId","userDataKey","setSignInUserSession","clearCachedUserData","cacheTokens","getSignInUserSession","getAuthenticationFlowType","setAuthenticationFlowType","initiateAuth","authDetails","USERNAME","clientMetaData","jsonReq","AuthFlow","ClientId","getUserContextData","UserContextData","onFailure","challengeName","ChallengeName","challengeParameters","ChallengeParameters","customChallenge","getCognitoUserSession","AuthenticationResult","authenticateUser","authenticateUserPlainUsernamePassword","authenticateUserDefaultAuth","authenticationHelper","getUserPoolName","dateHelper","deviceKey","DEVICE_KEY","errOnAValue","SRP_A","CHALLENGE_NAME","USER_ID_FOR_SRP","SRP_B","SALT","getCachedDeviceKeyAndPassword","errOnHkdf","dateNow","SECRET_BLOCK","signatureString","challengeResponses","PASSWORD_CLAIM_SECRET_BLOCK","TIMESTAMP","PASSWORD_CLAIM_SIGNATURE","jsonReqResp","ChallengeResponses","respondToAuthChallenge","challenge","challengeCallback","errChallenge","dataChallenge","clearCachedDeviceKeyAndPassword","errAuthenticate","dataAuthenticate","authenticateUserInternal","PASSWORD","authResult","mfaRequired","selectMFAType","mfaSetup","totpRequired","userAttributes","rawRequiredAttributes","requiredAttributes","userAttributesPrefix","newPasswordRequired","getDeviceResponse","newDeviceMetadata","NewDeviceMetadata","DeviceGroupKey","DeviceKey","errGenHash","deviceSecretVerifierConfig","Salt","PasswordVerifier","DeviceSecretVerifierConfig","DeviceName","errConfirm","dataConfirm","cacheDeviceKeyAndPassword","UserConfirmationNecessary","completeNewPasswordChallenge","newPassword","requiredAttributeData","finalUserAttributes","NEW_PASSWORD","errAValue","errHkdf","confirmRegistration","confirmationCode","forceAliasCreation","ConfirmationCode","ForceAliasCreation","sendCustomChallengeAnswer","answerChallenge","ANSWER","sendMFACode","mfaType","SMS_MFA_CODE","mfaTypeSelection","SOFTWARE_TOKEN_MFA_CODE","changePassword","oldUserPassword","newUserPassword","PreviousPassword","ProposedPassword","enableMFA","mfaOptions","DeliveryMedium","AttributeName","MFAOptions","setUserMfaPreference","smsMfaSettings","softwareTokenMfaSettings","SMSMfaSettings","SoftwareTokenMfaSettings","disableMFA","deleteUser","clearCachedUser","updateAttributes","UserAttributes","getUserData","bypassCache","getUserAttributes","userData","attributeList","attribute","userAttribute","getMFAOptions","createGetUserRequest","promisifyRequest","refreshSessionIfPossible","refresh","refreshSession","getUserDataFromCache","isFetchUserDataAndTokenRequired","fetchUserData","_ref$bypassCache","cacheUserData","deleteAttributes","UserAttributeNames","resendConfirmationCode","getSession","idTokenKey","accessTokenKey","refreshTokenKey","clockDriftKey","cachedSession","wrappedCallback","wrapRefreshSessionCallback","REFRESH_TOKEN","lastUserKey","deviceKeyKey","authenticationResult","clearCachedTokens","randomPasswordKey","deviceGroupKeyKey","forgotPassword","inputVerificationCode","confirmPassword","getAttributeVerificationCode","attributeName","verifyAttribute","getDevice","forgetSpecificDevice","forgetDevice","setDeviceStatusRemembered","DeviceRememberedStatus","setDeviceStatusNotRemembered","listDevices","paginationToken","requestParams","Limit","PaginationToken","globalSignOut","_this17","signOut","revokeTokenCallback","_this18","_session","revokeTokens","cleanClientData","isSessionRevocable","revokeToken","origin_jti","requestWithRetry","sendMFASelectionAnswer","_this19","associateSoftwareToken","_this20","associateSecretCode","SecretCode","verifySoftwareToken","totpCode","friendlyDeviceName","_this21","UserCode","FriendlyDeviceName","errRespond","dataRespond","BASE_USER_AGENT","product","isReactNative","UserAgent","CognitoError","region","endpoint","fetchOptions","credentials","functionToRetry","retry","delayFn","attempt","logger","retryIn","jitteredBackoff","jitteredExponentialRetry","rej","fetch","json","ok","__type","Message","ex","CognitoUserPool","UserPoolId","AdvancedSecurityDataCollectionFlag","userPoolId","clientId","advancedSecurityDataCollectionFlag","getUserPoolId","signUp","cognitoUser","returnData","user","userConfirmed","UserConfirmed","userSub","UserSub","codeDeliveryDetails","CodeDeliveryDetails","getCurrentUser","lastAuthUser","AmazonCognitoAdvancedSecurityData","amazonCognitoAdvancedSecurityDataConst","advancedSecurityData","getData","EncodedData","CookieStorage","domain","secure","sameSite","cookies","numKeys","configureInteractions","dropRelationsForHandlerWithTag","getTag","waitFor","otherHandler","waitForRelations","simultaneousHandlers","simultaneousRelations","shouldWaitForHandlerFailure","shouldWait","shouldRecognizeSimultaneously","shouldRequireHandlerToWaitForFailure","_otherHandler","shouldHandlerBeCancelledBy","getInstance","MouseButtons","EventTypes","TouchEventType","PointerType","Direction","PointerTracker","lastMovedPointerId","touchEventsIds","addToTracker","trackedPointers","pointerId","newElement","lastX","lastY","velocityY","mapTouchEventId","cachedAverages","getLastAvgX","getLastAvgY","removeFromTracker","removeMappedTouchId","dx","dy","dt","avgX","avgY","mappedId","touchId","getMappedTouchEventId","touchEventId","getVelocityX","getVelocityY","getLastX","getLastY","getSumX","getSumY","ignoredPointer","sumX","sumY","getTrackedPointersCount","getTrackedPointersID","resetTracker","shareCommonPointers","stPointers","ndPointers","isPointerInBounds","view","GestureHandlerOrchestrator","scheduleFinishedHandlersCleanup","handlingChangeSemaphore","cleanupFinishedHandlers","cleanHandler","setAwaiting","setActivationIndex","MAX_VALUE","removeHandlerFromOrchestrator","gestureHandlers","awaitingHandlers","handlersToCancel","isAwaiting","hasOtherHandlerToWaitFor","hasToWait","shouldHandlerWaitForOther","tryActivate","addAwaitingHandler","shouldActivate","makeActive","fail","cleanupAwaitingHandlers","sendIfDisabled","isEnabled","sendEvent","setShouldResetProgress","activationIndex","alreadyExists","recordHandlerIfNotPresent","MAX_SAFE_INTEGER","shouldRequireToWaitForFailure","canRunSimultaneously","gh1","gh2","shouldBeCancelledByOther","handlerPointers","otherPointers","getView","checkOverlap","overlap","pointer","handlerX","getTracker","handlerY","otherX","otherY","cancelMouseAndPenGestures","currentHandler","getPointerType","MOUSE","PEN","EventManager","activePointersCounter","onPointerDown","_event","onPointerAdd","onPointerUp","onPointerRemove","onPointerMove","onPointerOut","onPointerEnter","onPointerCancel","onPointerOutOfBounds","setOnPointerDown","setOnPointerAdd","setOnPointerUp","setOnPointerRemove","setOnPointerMove","setOnPointerOut","setOnPointerEnter","setOnPointerCancel","setOnPointerOutOfBounds","markAsInBounds","pointersInBounds","markAsOutOfBounds","resetManager","PointerEventManager","setListeners","pointerType","TOUCH","clientX","clientY","adaptedEvent","mapEvent","DOWN","setPointerCapture","eventType","ADDITIONAL_POINTER_DOWN","UP","releasePointerCapture","ADDITIONAL_POINTER_UP","buttons","LEFT","MOVE","inBounds","pointerIndex","ENTER","OUT","CANCEL","offsetX","offsetY","TouchEventManager","touchType","touchEventType","NONE","allTouches","GestureHandler","propsRef","onGestureHandlerEvent","onGestureHandlerStateChange","resultEvent","transformEventData","lastSentState","invokeNullableMethod","hasCustomActivationCriteria","init","setView","addEventManager","manager","eventManagers","onCancel","onReset","resetProgress","tracker","cancelTouches","_newState","_oldState","begin","checkHitSlop","activate","awaiting","getShouldResetProgress","shouldResetProgress","getActivationIndex","sendTouchEvent","tryToSendMoveEvent","shouldCancellWhenOutside","touchEvent","transformTouchEvent","transformNativeEvent","changed","trackerData","numberOfTouches","cancelEvent","updateGestureConfig","setShouldCancelWhenOutside","validateHitSlops","checkCustomActivationCriteria","criterias","vertical","resetConfig","setTag","getConfig","getShouldEnableGestureOnSetup","getEventManagers","shouldCancel","getShouldCancelWhenOutside","nativeValue","DEFAULT_TOUCH_SLOP","MIN_SAFE_INTEGER","customActivationProperties","minDistSq","minVelocitySq","getTranslationX","getTranslationY","startX","startY","clearActivationTimeout","activationTimeout","tryBegin","checkBegan","distanceSq","vx","vy","velocitySq","shouldFail","maxDistSq","minNumberOfPointers","clearTimeouts","waitTimeout","delayTimeout","startTap","endTap","tapsSoFar","currentMaxNumberOfPointers","trySettingPosition","distSq","LongPressGestureHandler","DEFAULT_MAX_DIST_DP","defaultMaxDistSq","oncontextmenu","startTime","checkDistanceFail","previousTime","ScaleGestureDetector","onScaleBegin","onScale","onScaleEnd","spanSlop","minSpan","onTouchEvent","currentTime","numOfPointers","streamComplete","inProgress","initialSpan","configChanged","pointerUp","div","focusX","focusY","devSumX","devSumY","spanX","spanY","span","hypot","wasInProgress","prevSpan","currentSpan","prevTime","getCurrentSpan","getFocusX","getFocusY","getTimeDelta","getScaleFactor","PinchGestureHandler","detector","startingSpan","prevScaleFactor","_detector","scaleDetectorListener","focalX","scaleGestureDetector","focalY","RotationGestureDetector","onRotationBegin","onRotation","onRotationEnd","updateCurrent","keyPointers","firstPointerID","secondPointerID","firstPointerX","firstPointerY","secondPointerX","secondPointerY","vectorX","vectorY","anchorX","anchorY","angle","atan2","previousAngle","finish","isInProgress","setKeyPointers","pointerIDs","getAnchorX","getAnchorY","getRotation","ROTATION_RECOGNITION_THRESHOLD","RotationGestureHandler","previousRotation","rotationGestureListener","rotationGestureDetector","cachedAnchorX","cachedAnchorY","_force","DEFAULT_DIRECTION","FlingGestureHandler","numberOfPointersRequired","startFling","keyPointer","maxNumberOfPointersSimultaneously","tryEndFling","minAcceptableDelta","endFling","newPointerAction","onUp","hasAttribute","buttonRole","disallowsInterruption","canBeInterrupted","ManualGestureHandler","getHandler","getNodes","_inheritsLoose","assign$1","nextKey","VENDOR_PREFIXES","TEST_ELEMENT","prefixed","camelProp","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_MAP","touchMap","cssSupports","getTouchActionProps","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","PROPS_XY","PROPS_CLIENT_XY","each","boolOrFn","inStr","TouchAction","compute","recognizers","recognizer","enable","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","srcEvent","offsetDirection","session","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","DIRECTION_LEFT","DIRECTION_UP","preventSrc","hasParent","getCenter","pointersLength","simpleCloneInputData","getDistance","getAngle","getVelocity","computeInputData","firstInput","firstMultiple","offsetCenter","offsetDelta","prevDelta","prevInput","computeDeltaXY","overallVelocity","overallVelocityX","overallVelocityY","last","lastInterval","computeIntervalInputData","srcEventTarget","composedPath","inputHandler","pointersLen","changedPointersLen","changedPointers","isFirst","isFinal","recognize","splitStr","addEventListeners","removeEventListeners","getWindowForElement","parentWindow","Input","inputTarget","domHandler","evEl","evTarget","evWin","inArray","findByKey","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","2","3","4","5","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","MSPointerEvent","PointerEvent","PointerEventInput","_Input","store","removePointer","eventTypeNormalized","isTouch","storeIndex","uniqueArray","results","TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TouchInput","targetIds","getTouches","targetTouches","changedTargetTouches","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MouseInput","pressed","which","setLastTouch","eventData","primaryTouch","lastTouch","lts","lastTouches","recordTouches","isSyntheticEvent","TouchMouseInput","_manager","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","mouse","invokeArrayArg","getRecognizerByNameIfManager","otherRecognizer","stateStr","Recognizer","simultaneous","requireFail","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","TapRecognizer","_Recognizer","taps","posThreshold","pTime","pCenter","_timer","_input","validPointers","validMovement","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","AttrRecognizer","attrTest","optionPointers","isRecognized","directionStr","PanRecognizer","_AttrRecognizer","DIRECTION_HORIZONTAL","pX","pY","directionTest","hasMoved","SwipeRecognizer","PinchRecognizer","RotateRecognizer","PressRecognizer","validTime","domEvents","inputClass","cssProps","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","preset","toggleCssProps","oldCssProps","Manager","createInputInstance","stopped","curRecognizer","targetRecognizer","on","events","off","gestureEvent","createEvent","initEvent","dispatchEvent","triggerDomEvent","SINGLE_TOUCH_INPUT_MAP","SingleTouchInput","started","normalizeSingleTouches","deprecationMessage","dest","inherit","childP","baseP","bindFn","Hammer","VERSION","DIRECTION_ALL","DIRECTION_DOWN","DIRECTION_RIGHT","DIRECTION_VERTICAL","DIRECTION_NONE","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","Tap","Pan","Swipe","Pinch","Rotate","Press","DEG_RAD","EventMap","gestureInstances","asArray","removePendingGesture","clearSelfAsPending","hammer","getHammerConfig","isGestureRunning","hasGestureFailed","shouldEnableGestureOnSetup","isDiscrete","_stillWaiting","_getPendingGestures","deltaRotation","initialRotation","isGestureEnabledForEvent","failed","simulateCancelEvent","gestureInstance","isNative","onWaitingEnded","_gesture","pendingGestures","addPendingGesture","_recognizer","NativeGestureClass","updateHasCustomActivationCriteria","ensureConfig","changedTouch","isPointInView","previousState","cancelPendingGestures","notifyPendingGestures","onGestureEnded","forceInvalidate","onRawEvent","shouldUseTouchEvents","SUPPORTS_TOUCH","setupEvents","onGestureActivated","__initialX","__initialY","_inputData","NodeManager","isnan","isValidNumber","TEST_MIN_IF_NOT_NAN","VEC_LEN_SQ","TEST_MAX_IF_NOT_NAN","fireAfterInterval","DiscreteGestureHandler","shouldFailUnderCustomCriteria","pointerLength","validPointerCount","PressGestureHandler","onGestureStart","shouldDelayTouchForEvent","shouldDelayTouches","visualFeedbackTimer","initialEvent","sendGestureStartedEvent","timeout","DraggingGestureHandler","getDirection","directions","horizontalDirections","verticalDirections","criteria","shouldActivateUnderCustomCriteria","shouldMultiFingerPanFail","deltaScale","absDeltaRotation","_shouldFireEndEvent","onSuccessfulTap","_multiTapTimer","IndiscreteGestureHandler","GesturePropError","expectedType","getTargetDirections","Gestures","HammerGestures","HammerNativeViewGestureHandler","HammerPanGestureHandler","HammerTapGestureHandler","HammerLongPressGestureHandler","HammerPinchGestureHandler","HammerRotationGestureHandler","handleSetJSResponder","blockNativeResponder","handleClearJSResponder","createGestureHandler","isExperimentalWebImplementationEnabled","GestureClass","HammerNodeManager","updateGestureHandler","attachGestureHandler","newView","_actionType","getGestureHandlerNode","dropGestureHandler","TransitionIOSSpec","FadeInFromBottomAndroidSpec","FadeOutToBottomAndroidSpec","RevealFromBottomAndroidSpec","ScaleFromCenterAndroidSpec","BottomSheetSlideInSpec","BottomSheetSlideOutSpec","checkDocument","operations","definition","getOperationDefinition","getOperationName","getFragmentDefinitions","getQueryDefinition","queryDef","getFragmentDefinition","fragmentDef","getMainDefinition","queryDoc","getDefaultValues","defs","QueryDocumentKeys","BREAK","visit","visitor","visitorKeys","edits","ancestors","newRoot","isLeaving","isEdited","_Object$keys2","editOffset","editKey","editValue","_visitorKeys$node$kin","visitFn","getVisitFn","visitInParallel","visitors","skipping","enter","kindVisitor","kindSpecificVisitor","specificVisitor","specificKindVisitor","AuthErrorStrings","kindOf","thing","kindOfTest","isArrayBuffer","isFile","isBlob","isFileList","isURLSearchParams","TypedArray","isTypedArray","isFormData","FormData","isArrayBufferView","isStream","pipe","isStandardBrowserEnv","assignValue","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","searchString","MaterialCommunityIcons","require","isErrorLogged","role","accessibilityElementsHidden","defaultIcon","allowFontScaling","interpolateInternalSingleProc","inS","inE","outS","outE","resultForNonZeroRange","interpolateInternalSingle","EXTEND","IDENTITY","checkMinElements","checkValidNumbers","_config$extrapolate","checkNonDecreasing","convertToRadians","interpolateInternal","oldHandlers","testIDs","registerHandler","registerOldGestureHandler","unregisterHandler","findHandler","findOldGestureHandler","withDecay","velocityFactor","VELOCITY_EPS","lastTimestamp","startTimestamp","initialVelocity","validateConfig","withRepeat","_nextAnimation","numberOfReps","nextAnimation","reps","numberOfLoops","resolvePath","setPath","currObj","withStyleAnimation","styleAnimations","stillGoing","entriesToCheck","currentEntry","currentStyleAnimation","ColorProperties","prevAnimation","prevVal","currentAnimation","animationsToCheck","AnimatedBlock","el","_array","createAnimatedBlock","adapt","__isProxy","__val","valueForConstant","nodify","deepDiffer","one","two","maxDepth","twoKey","numColumnsOrDefault","numColumns","_React$PureComponent","_virtualizedListPairs","_captureRef","_listRef","_getItem","kk","_item","_getItemCount","_keyExtractor","_this$props$keyExtrac","keyExtractor","defaultKeyExtractor","_renderer","ListItemComponent","renderItem","columnWrapperStyle","virtualizedListRenderKey","renderer","_item2","_index","separators","_checkProps","viewabilityConfigCallbackPairs","pair","viewabilityConfig","onViewableItemsChanged","_createOnViewableItemsChanged","scrollToIndex","scrollToItem","scrollToOffset","recordInteraction","getScrollRef","getItemCount","_this$props$keyExtrac2","viewableItems","_pushMultiColumnViewable","removeClippedSubviews","_this$props2","_removeClippedSubviews","VirtualizedList","layoutSize","UIManagerAny","customGHEventsConfig","registrationName","topOnGestureHandlerEvent","topOnGestureHandlerStateChange","genericDirectEventTypes","UIManagerConstants","getViewManagerConfig","setJSResponder","oldSetJSResponder","clearJSResponder","oldClearJSResponder","allowTouches","hasUnresolvedRefs","extract","stateToPropMappings","transformProps","customNativeProps","Handler","stateEventName","eventHandler","viewNode","newViewTag","ActionType","JS_FUNCTION_OLD_API","onGestureStateChange","actionType","REANIMATED_WORKLET","NATIVE_ANIMATED_EVENT","updateEnqueued","componentDidUpdate","inspectorToggleListener","clearImmediate","remainingTries","mergedProps","gestureEventHandler","gestureStateEventHandler","grandChildren","refHandler","handlerType","conditional","fallback","forHorizontalIOS","inverted","layouts","cardStyle","overlayStyle","shadowStyle","forVerticalIOS","forModalPresentationIOS","insets","hasNotchIos","isPad","isTV","isLandscape","topOffset","overlayOpacity","forFadeFromBottomAndroid","closing","forRevealFromBottomAndroid","forScaleFromCenterAndroid","forBottomSheetAndroid","forFadeFromCenter","forNoAnimation","forUIKit","leftLabelOffset","leftLabel","titleLeftOffset","leftButtonStyle","leftLabelStyle","rightButtonStyle","backgroundStyle","forFade","forSlideLeft","forSlideRight","forSlideUp","header","updateProps","maybeViewRef","_updatePropsJS","viewDescriptor","_updateProps","updatePropsJestWrapper","adapters","reduceFrom","infix","single","OPERATIONS","acos","asin","atan","AnimatedOperator","_op","_operation","AnimatedDebug","_message","createAnimatedDebug","CryptoJS","globalThis","F","subtype","C_lib","Base","mixIn","$super","encoder","Hex","thisWords","thatWords","thisSigBytes","thatSigBytes","thatByte","C_enc","enc","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","utf8Str","unescape","BufferedBlockAlgorithm","_nDataBytes","_append","_process","doFlush","processedWords","dataWords","dataSigBytes","blockSize","nBlocksReady","nWordsReady","_minBufferSize","nBytesReady","_doProcessBlock","C_algo","Hasher","cfg","_doReset","messageUpdate","finalize","_doFinalize","_createHelper","hasher","_createHmacHelper","HMAC","algo","passthrough","forward","of","toLink","isTerminating","link","LinkError","ApolloLink","links","leftLink","rightLink","execute","createOperation","transformedOperation","operationName","transformOperation","OPERATION_FIELDS","validateOperation","first","firstLink","nextLink","setOnError","isApolloError","ApolloError","graphQLErrors","clientErrors","networkError","errorMessage","extraInfo","generateErrorMessage","isImageSource","getIconId","isValidIcon","isEqualIcon","matchMedia","listenerMapping","Appearance","getColorScheme","addChangeListener","mappedListener","colorScheme","syntaxError","BackHandler","exitApp","FontDisplay","getFontFaceStyleSheet","styleSheet","getStyleElement","getFontFaceRulesMatchingResource","fontFamilyName","cssRules","CSSFontFaceRule","getFontFaceRules","fontDisplay","unloadAllAsync","getElementById","ID","HTMLStyleElement","unloadAsync","deleteRule","loadAsync","resource","head","fontStyle","AUTO","styleElement","styleElementIE","cssText","textNode","createTextNode","_createWebStyle","isIOS","isSafari","isEdge","isIE","isFirefox","isFontLoadingListenerSupported","getAssetForSource","uriFromFontSource","localUri","Asset","fromModule","throwInvalidSourceError","loadSingleFontAsync","downloadAsync","loaded","loadPromises","isLoaded","fontFamilyOrFontMap","loadFontInNamespaceAsync","fontMap","NativeIconAPI","RNVectorIconsManager","RNVectorIconsModule","ensureNativeModuleAvailable","TEXT_PROP_NAMES","TOUCHABLE_PROP_NAMES","createIconButtonComponent","_class","_PureComponent","IconButton","iconStyle","iconProps","touchableProps","omit","colorStyle","blockStyle","PureComponent","createIconSet","glyphMap","fontFile","fontBasename","fontReference","windows","handleRef","glyph","fromCodePoint","styleDefaults","styleOverrides","imageSourceCache","_cache$get","createIconSourceCache","resolveGlyph","_getImageSource","_asyncToGenerator","imagePath","getImageForFont","_loadFont","file","loadFontWithFileName","getImageSource","_x","getImageSourceSync","getImageForFontSync","loadFont","hasIcon","getRawGlyphMap","getFontFamily","fontName","expoAssetId","RNVIconComponent","fontIsLoaded","_icon","Extrapolation","__nodeId","getVal","coef","leftEdgeOutput","rightEdgeOutput","isExtrapolate","validateType","extrapolationConfig","internalInterpolate","narrowedInput","leftEdgeInput","rightEdgeInput","interpolateNode","defineInspect","classObject","RCTDeviceEventEmitter","MIME_MAP","sortByField","dirX","a_val","b_val","objectLessAttributes","attr","filenameToContentType","filename","defVal","filtered","mime","isTextFile","contentType","chars","makeQuerablePromise","promise","isResolved","isPending","isRejected","isFullfilled","isWebWorker","selfContext","WorkerGlobalScope","browserOrNode","isBrowser","versions","transferKeyToLowerCase","whiteListForItself","whiteListForChildren","isStrictObject","transferKeyToUpperCase","JS","isSupported","requestIdleCallback","didTimeout","timeRemaining","cancelIdleCallback","Events","interactionStart","interactionComplete","runAfterInteractions","task","punycode","Url","slashes","auth","host","pathname","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","querystring","urlParse","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","simplePath","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","toASCII","ae","esc","qm","relative","resolveObject","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","up","isAbsolute","rtlScripts","rtlLangs","LocaleContext","cachedRTL","Intl","script","maximize","isLocaleRTL","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","textShadowColor","returnValue","Assets","NODE_MAPPING","_updateFromNative","dummyListener","hasAnimatedNodes","flattenArray","resultArr","_flattenArray","isSameAnimatedStyle","viewsRef","isSameAnimatedProps","_styles","_isFirstRender","initialStyle","DefaultLayout","DefaultEntering","DefaultExiting","sv","LayoutAnimationRepository","registerConfig","_detachPropUpdater","_detachStyles","_attachPropUpdater","_attachAnimatedStyles","_getEventViewRef","componentName","unregisterFromEvents","animatedProps","attached","nextEvts","reattachNeeded","createOrReusePropsNode","ReanimatedEventEmitter","onlyAnimatedStyles","prevStyles","viewName","prevAnimatedProps","_animatedProps","hostInstance","RNRenderer","findHostInstance_DEPRECATED","_nativeTag","viewConfig","uiViewClassName","adaptViewConfig","prevStyle","_reattachNativeEvents","inputStyle","inputProps","_loop2","processedStyle","_filterNonAnimatedStyle","animatedProp","_filterNonAnimatedProps","platformProps","useColorScheme","setColorScheme","isDarkTheme","surface","shadow","mainClock","_InternalAnimatedValu","AnimatedMainClock","_runFrame","_frameCallback","cancelAnimationFrame","AnimatedClock","_started","_attached","v1","v4","_maskService2","_interopRequireDefault","_textInputMask2","_textMask2","MaskService","TextInputMask","TextMask","AnimatedCond","ifBlock","elseBlock","_condition","_ifBlock","_elseBlock","createAnimatedCond","allowArrayLike","stringifyCanon","stringifyCache","ObjectCanon","WeakSet","passes","keysByJSON","admit","isKnown","pass","shallowCopy","original","lookupArray","proto_1","array_1","sortedKeys","firstValueIndex_1","sorted","obj_1","canonicalStringify","resetCanonicalStringify","sanitizeArgMapping","alwaysNodes","createAnimatedAlways","proxyHandler","proxy","nodesMap","zoomScale","contentInset","createEventObjectProxyPolyfill","_sanitizeArgMapping","_alwaysNodes","createAnimatedEvent","focusTextInput","textFieldNode","Amplify","AmplifyClass","_components","_modules","Auth","Analytics","Credentials","I18n","Cache","PubSub","Interactions","Pushnotification","UI","XR","Predictions","DataStore","Geo","Logger","ServiceWorker","comp","getModuleName","configure","addPluggable","pluggable","int32Color","defaultMakeData","Trie","weakness","makeData","lookup","getChildTrie","isObjRef","weak","strong","dedentBlockStringValue","rawString","lines","commonIndent","getBlockStringIndentation","startLine","isBlank","endLine","_commonIndent","isFirstLine","isEmptyLine","printBlockString","indentation","preferMultipleLines","isSingleLine","hasLeadingSpace","hasTrailingQuote","printAsMultipleLines","nativeListener","listenerIndex","canOpenURL","getInitialURL","openURL","hasCustomScheme","Constants","executionEnvironment","Standalone","collectManifestSchemes","getSchemes","scheme","EXPO_CLIENT_SCHEMES","platformManifest","expoConfig","schemes","resolveScheme","StoreClient","manifest2","hasConstantsManifest","manifestSchemes","nativeAppId","bundleIdentifier","package","getNativeAppIdScheme","isSilent","extraSchemes","validateURL","getHostUri","hostUri","extra","expoClient","linkingUri","isExpoHosted","developer","expoGo","removeLeadingSlash","ensureTrailingSlash","shouldAppend","hasSlash","ensureLeadingSlash","createURL","queryParams","isTripleSlashed","outputPath","encodeURI","resolvedScheme","queryStringMatchResult","paramsFromHostUri","parsedParams","noContext","defaultDispose","dispose","newest","oldest","older","newer","clean","parentEntrySlot","collection","maybeUnsubscribe","entryOrDep","emptySetPool","optionalMessage","valueGet","Entry","parents","childValues","dirtyChildren","dirty","recomputing","peek","mightBeDirty","rememberParent","recompute","forgetChildren","withValue","recomputeNewValue","setDirty","maybeSubscribe","reportClean","setClean","reallyRecompute","reportDirty","eachParent","forgetChild","forget","dependOn","forgetDeps","reportDirtyChild","reportCleanChild","parentCount","parentWasClean","childValue","valueIs","removeDirtyChild","dc","EntryMethods","depsByKey","depend","dep_1","entryMethodName","m_1","makeDefaultMakeCacheKeyFunction","keyTrie","caches","originalFunction","makeCacheKey","optimistic","hasValue","dirtyKey","peekKey","forgetKey","__createBinding","k2","__setModuleDefault","creditCardType","__importStar","cardholder_name_1","card_number_1","expiration_date_1","expiration_month_1","expiration_year_1","cvv_1","postal_code_1","cardValidator","cardholderName","cardNumber","expirationDate","expirationMonth","expirationYear","cvv","postalCode","IS_ENV_WITH_UPDATES_ENABLED","manifestBaseUrl","getManifest","getManifest2","LocationAccuracy","LocationActivityType","LocationGeofencingEventType","LocationGeofencingRegionState","checkDCE","unimplementedViewStyles","family","SegmentedControlTab","_ref$fontStyle","_ref$activeFontStyle","activeFontStyle","tabStyle","colorSchemeHook","activeColor","activeFontSize","activeFontFamily","activeFontWeight","activeStyle","activeText","idleStyle","segmentImage","SegmentsSeparators","hide","separatorsContainer","darkSeparator","darkControl","slider","segmentsContainer","SegmentedControl","_ref$enabled","segmentWidth","setSegmentWidth","newSegmentWidth","selectedSegmentIndex","EXPERIMENTAL_WEB_IMPLEMENTATION","__exportStar","retryMiddleware","retryStrategy","retryMiddlewareOptions","getRetryPlugin","clientStack","CLOCK_SKEW_ERROR_CODES","THROTTLING_ERROR_CODES","TRANSIENT_ERROR_CODES","TRANSIENT_ERROR_STATUS_CODES","isThrottlingError","$metadata","httpStatusCode","$retryable","throttling","defaultDelayDecider","delayBase","attempts","defaultRetryDecider","isRetryableByTrait","isClockSkewError","isTransientError","DEFAULT_MAX_ATTEMPTS","StandardRetryStrategy","maxAttemptsProvider","retryDecider","delayDecider","retryQuota","initialRetryTokens","MAX_CAPACITY","availableCapacity","getCapacityAmount","hasRetryTokens","retrieveRetryTokens","capacityAmount","releaseRetryTokens","capacityReleaseAmount","getDefaultRetryQuota","shouldRetry","maxAttempts","getMaxAttempts","retryTokenAmount","totalDelay","_loop_1","this_1","state_1","err_1","delay_1","totalRetryDelay","resolveRetryConfig","normalizeMaxAttempts","promisified_1","qs","controlOrWhitespace","CRHTLF","protocolre","windowsDriveLetter","trimLeft","address","isSpecial","ignore","lolcation","finaldestination","extractProtocol","forwardSlashes","otherSlashes","slashesCount","parser","extracted","instruction","instructions","char","ins","freeGlobal","freeSelf","nameStartChar","nameRegexp","regexName","isExist","arrayMode","buildOptions","newOptions","isTagNameInArrayMode","tagName","parentTagName","isName","getAllMatches","allmatches","startIndex","BaseMask","obj1","obj2","obj3","attrname","maskedValue","settings","getFragmentQueryDocument","actualFragmentName","fragments","createFragmentMap","symTable","fragment","getFragmentFromSelection","panGestureHandlerProps","panGestureHandlerCustomNativeProps","__DEV__","transformPanGestureHandlerProps","AppOwnership","ExecutionEnvironment","UserInterfaceIdiom","roundness","accent","onSurface","backdrop","notification","configureFonts","AnalyticsFilter","LifecycleRuleFilter","MetricsFilter","ReplicationRuleFilter","filterSensitiveLog","SSEKMSKeyId","SSEKMSEncryptionContext","SSECustomerKey","CopySourceSSECustomerKey","Prefix","Tag","And","$unknown","Filter","AnalyticsConfiguration","KMSMasterKeyID","ApplyServerSideEncryptionByDefault","Rules","ServerSideEncryptionConfiguration","KeyId","SSEKMS","Encryption","S3BucketDestination","Destination","InventoryConfiguration","MetricsConfiguration","ReplicationConfiguration","AnalyticsConfigurationList","InventoryConfigurationList","MetricsConfigurationList","LifecycleConfiguration","KMSKeyId","XmlNode","withName","addAttribute","addChildNode","removeAttribute","xmlText","XmlText","deserializeAws_restXmlAbortMultipartUploadCommandError","parsedOutput","errorCode","parsedBody","parseBody","loadRestXmlErrorCode","deserializeAws_restXmlNoSuchUploadResponse","deserializeMetadata","$fault","deserializeAws_restXmlCompleteMultipartUploadCommandError","deserializeAws_restXmlCopyObjectCommandError","deserializeAws_restXmlObjectNotInActiveTierErrorResponse","deserializeAws_restXmlCreateMultipartUploadCommandError","deserializeAws_restXmlDeleteObjectCommandError","deserializeAws_restXmlGetObjectCommandError","deserializeAws_restXmlInvalidObjectStateResponse","deserializeAws_restXmlNoSuchKeyResponse","deserializeAws_restXmlListObjectsV2CommandError","deserializeAws_restXmlNoSuchBucketResponse","deserializeAws_restXmlListPartsCommandError","deserializeAws_restXmlPutObjectCommandError","deserializeAws_restXmlUploadPartCommandError","contents","AccessTier","StorageClass","serializeAws_restXmlCompletedMultipartUpload","bodyNode","Parts","serializeAws_restXmlCompletedPartList","ETag","PartNumber","serializeAws_restXmlCompletedPart","deserializeAws_restXmlCommonPrefixList","deserializeAws_restXmlCommonPrefix","deserializeAws_restXmlCopyObjectResult","LastModified","deserializeAws_restXmlInitiator","DisplayName","deserializeAws_restXmlObjectList","Key","Size","Owner","deserializeAws_restXmlOwner","deserializeAws_restXml_Object","deserializeAws_restXmlParts","deserializeAws_restXmlPart","extendedRequestId","cfId","collectBody","streamBody","streamCollector","isSerializableHeaderValue","utf8Encoder","collectBodyString","parsedObj","attributeNamePrefix","ignoreAttributes","parseNodeValue","tagValueProcessor","parsedObjToReturn","DOMAIN_PATTERN","IP_ADDRESS_PATTERN","DOTS_PATTERN","DOT_PATTERN","S3_HOSTNAME_PATTERN","S3_US_EAST_1_ALTNAME_PATTERN","getPseudoRegion","isFipsRegion","getRegionalSuffix","isEqualRegions","regionA","regionB","validateDNSHostLabel","tlsCompatible","bucketHostname","isCustomEndpoint","dualstackEndpoint","baseHostname","accelerateEndpoint","bucketName","isBucketNameOptions","getEndpointFromBucketName","getEndpointFromArn","clientRegion","hostnameSuffix","pathStyleEndpoint","useArnRegion","clientPartition","clientSigningRegion","validateArnEndpointOptions","service","partition","accountId","validateService","validatePartition","validateAccountId","validateRegion","delimiter","resourceType","accesspointName","outpostId","getArnResources","endpointRegion","signingRegion","validateOutpostService","validateNoDualstack","validateNoFIPS","bucketEndpoint","signingService","validateS3Service","isDnsCompatibleBucketName","bucketEndpointMiddleware","replaceBucketInPath","bucketArn","modifiedSigningRegion","Bucket","arn","segments","regionInfoProvider","useAccelerateEndpoint","useDualstackEndpoint","forcePathStyle","bucketEndpointMiddlewareOptions","getBucketEndpointPlugin","validateBucketNameMiddlewareOptions","getValidateBucketNamePlugin","unused","validateBucketNameMiddleware","useRegionalEndpointMiddlewareOptions","getUseRegionalEndpointPlugin","useRegionalEndpointMiddleware","throw200ExceptionsMiddlewareOptions","getThrow200ExceptionsPlugin","bodyBytes","bodyString","throw200ExceptionsMiddleware","ssecMiddlewareOptions","getSsecPlugin","properties_1","properties_1_1","valueView","utf8Decoder","base64Encoder","md5","digest","ssecMiddleware","CopyObjectCommand","handlerExecutionContext","clientName","commandName","inputFilterSensitiveLog","outputFilterSensitiveLog","resolvedPath","labelValue","ACL","CacheControl","ContentDisposition","ContentEncoding","ContentLanguage","ContentType","CopySource","CopySourceIfMatch","CopySourceIfModifiedSince","CopySourceIfNoneMatch","CopySourceIfUnmodifiedSince","Expires","GrantFullControl","GrantRead","GrantReadACP","GrantWriteACP","MetadataDirective","TaggingDirective","ServerSideEncryption","WebsiteRedirectLocation","SSECustomerAlgorithm","SSECustomerKeyMD5","BucketKeyEnabled","CopySourceSSECustomerAlgorithm","CopySourceSSECustomerKeyMD5","RequestPayer","Tagging","ObjectLockMode","ObjectLockRetainUntilDate","ObjectLockLegalHoldStatus","ExpectedBucketOwner","ExpectedSourceBucketOwner","Metadata","serializeAws_restXmlCopyObjectCommand","CopyObjectResult","CopySourceVersionId","Expiration","RequestCharged","VersionId","deserializeAws_restXmlCopyObjectCommand","GetObjectCommand","IfMatch","IfModifiedSince","IfNoneMatch","IfUnmodifiedSince","Range","ResponseCacheControl","ResponseContentDisposition","ResponseContentEncoding","ResponseContentLanguage","ResponseContentType","ResponseExpires","versionId","partNumber","serializeAws_restXmlGetObjectCommand","AcceptRanges","Body","ContentLength","ContentRange","DeleteMarker","MissingMeta","PartsCount","ReplicationStatus","Restore","TagCount","deserializeAws_restXmlGetObjectCommand","DeleteObjectCommand","MFA","BypassGovernanceRetention","serializeAws_restXmlDeleteObjectCommand","deserializeAws_restXmlDeleteObjectCommand","ListObjectsV2Command","Delimiter","EncodingType","MaxKeys","ContinuationToken","FetchOwner","StartAfter","serializeAws_restXmlListObjectsV2Command","CommonPrefixes","Contents","IsTruncated","KeyCount","NextContinuationToken","deserializeAws_restXmlListObjectsV2Command","formatUrl","createRequest","interceptMiddleware","AMZ_DATE_HEADER","GENERATED_HEADERS","SIGNATURE_HEADER","TOKEN_HEADER","ALWAYS_UNSIGNABLE_HEADERS","authorization","connection","expect","pragma","referer","te","trailer","upgrade","PROXY_HEADER_PATTERN","SEC_HEADER_PATTERN","EVENT_ALGORITHM_IDENTIFIER","signingKeyCache","cacheQueue","createScope","shortDate","ctor","secret","getCanonicalHeaders","unsignableHeaders","signableHeaders","headerName","canonicalHeaderName","escapeUri","hexEncode","getPayloadHash","hashConstructor","hashCtor","cloneRequest","cloneQuery","prepareRequest","iso8601","StorageErrorStrings","AWSS3ProviderMultipartCopierErrors","AWSS3ProviderUploadErrorStrings","SignatureV4","applyChecksum","sha256","uriEscapePath","regionProvider","normalizeRegionProvider","credentialProvider","normalizeCredentialsProvider","presign","originalRequest","signingDate","expiresIn","unhoistableHeaders","longDate","scope","canonicalHeaders","_j","_k","formatDate","lname","moveHeadersToQuery","sessionToken","accessKeyId","getCanonicalHeaderList","getSignature","getSigningKey","createCanonicalRequest","toSign","signString","signEvent","signRequest","priorSignature","hashedPayload","hashedHeaders","stringToSign","requestToSign","payloadHash","signature","soughtHeader","hasHeader","ALGORITHM_IDENTIFIER","sortedHeaders","getCanonicalPath","serialized","getCanonicalQuery","createStringToSign","credentialScope","canonicalRequest","hashedRequest","keyPromise","sha256Constructor","credsHash","signable","secretAccessKey","promisified_2","S3RequestPresigner","resolvedOptions","signingName","signer","normalizeHeaders","normalizedName","reactNativeRequestTransformer","transformRequest","AxiosHttpHandler","httpOptions","cancelTokenSource","requestTimeoutInMs","requestTimeout","axiosRequest","onUploadProgress","onDownloadProgress","cancelToken","responseType","raceOfPromises","UPLOAD_PAUSED_MESSAGE","isCancel","hasErrorResponse","race","timeoutInMs","timeoutError","AMPLIFY_SYMBOL","dispatchStorageEvent","attrs","metrics","Hub","Int64","fromNumber","HEADER_VALUE_TYPE","HeaderMarshaller","toUtf8","fromUtf8","e_2","chunks","formatHeaderValue","chunks_1","chunks_1_1","chunk","e_2_1","shortView","DataView","setUint8","setInt16","intView","setInt32","longBytes","binView","setUint16","binBytes","utf8Bytes","strView","strBytes","tsBytes","UUID_PATTERN","uuidBytes","nameLength","getUint8","BOOLEAN_TAG","BYTE_TAG","getInt8","SHORT_TAG","getInt16","INT_TAG","getInt32","LONG_TAG","binaryLength","getUint16","BINARY_TAG","STRING_TAG","TIMESTAMP_TAG","UUID_TAG","EventStreamMarshaller","headerMarshaller","marshall","rawHeaders","checksum","setUint32","unmarshall","PRELUDE_LENGTH","messageLength","getUint32","headerLength","expectedPreludeChecksum","PRELUDE_MEMBER_LENGTH","expectedMessageChecksum","checksummer","splitMessage","formatHeaders","resume","fulfill","settle","eventMarshaller","utfEncoder","source_1","source_1_1","messageType","unmodeledError","deserializedException","deserialized","getUnmarshalledStream","currentMessageTotalLength","currentMessagePendingLength","currentMessage","messageLengthBuffer","allocateMessage","sourceIterator","chunkLength","bytesRemaining","numBytesForTotal","numBytesToWrite","getChunkedStream","input_1","input_1_1","universalMarshaller","bodyIterable","isReadableStream","readableStream","reader","getReader","releaseLock","readableStreamtoIterable","serialziedIterable","ReadableStream","asyncIterable","pull","controller","enqueue","iterableToReadableStream","blobReader","blob","onChunk","chunkSize","fileReader","FileReader","totalBytesRead","readAsArrayBuffer","INIT","Md5","bufferLength","bytesHashed","sourceData","isEmptyData","BYTES_PER_ELEMENT","convertToBuffer","hashBuffer","undecoratedLength","bitsHashed","BLOCK_SIZE","ff","cmn","AWS_REGIONS","AWS_CN_REGIONS","AWS_ISO_REGIONS","AWS_ISO_B_REGIONS","AWS_US_GOV_REGIONS","ClientSharedValues","apiVersion","disableHostPrefix","regionInfo","serviceId","signingEscapePath","urlParser","ClientDefaultValues","runtime","base64Decoder","bodyLengthChecker","credentialDefaultProvider","defaultUserAgentProvider","clientVersion","eventStreamSerdeProvider","streamHasher","FileHeaderInfo","JSONType","QuoteFields","RestoreRequestType","SelectObjectContentEventStream","addExpectContinueMiddlewareOptions","getAddExpectContinuePlugin","Expect","addExpectContinueMiddleware","S3Client","_config_0","_config_1","_config_2","_config_3","_config_4","_config_6","resolveBucketEndpointConfig","_config_7","_config_8","eventStreamMarshaller","INVALID_CRED","getPrefix","resolvedCustomPrefix","customPrefix","resolvedIdentityId","identityId","privatePath","private","protectedPath","protected","publicPath","public","createPrefixMiddleware","opt","_context","cred","clonedInput","shear","autoAdjustClockskewMiddleware","serverDate","ServerTime","systemClockOffset","autoAdjustClockskewMiddlewareOptions","prefixMiddlewareOptions","credentialsProvider","error_1","createS3Client","dangerouslyConnectToHttpEndpointForTesting","localTestingConfig","tls","s3client","customUserAgent","PutObjectCommand","ContentMD5","serializeAws_restXmlPutObjectCommand","deserializeAws_restXmlPutObjectCommand","CreateMultipartUploadCommand","uploads","serializeAws_restXmlCreateMultipartUploadCommand","AbortDate","AbortRuleId","UploadId","deserializeAws_restXmlCreateMultipartUploadCommand","S3","OutputLocation","RestoreRequest","Records","Stats","Progress","Cont","End","Payload","AWSS3UploadTaskState","TaskEvents","UploadPartCommand","uploadId","serializeAws_restXmlUploadPartCommand","deserializeAws_restXmlUploadPartCommand","CompleteMultipartUploadCommand","MultipartUpload","serializeAws_restXmlCompleteMultipartUploadCommand","deserializeAws_restXmlCompleteMultipartUploadCommand","AbortMultipartUploadCommand","serializeAws_restXmlAbortMultipartUploadCommand","deserializeAws_restXmlAbortMultipartUploadCommand","ListPartsCommand","MaxParts","PartNumberMarker","serializeAws_restXmlListPartsCommand","Initiator","NextPartNumberMarker","Part","deserializeAws_restXmlListPartsCommand","AWSS3ProviderManagedUpload","minPartSize","queueSize","completedParts","bytesUploaded","totalBytesToUpload","_createNewS3Client","upload","putObjectCommand","numberOfPartsToUpload","validateAndSanitizeBody","createMultiPartUpload","createParts","uploadParts","finishMultiPartUpload","bodyStart","bodyEnd","bodyPart","_lastUploadedBytes","createMultiPartUploadCommand","error_2","allResults","error_3","setupEventListener","completeUploadCommand","error_4","progressChanged","incrementalUpdate","isGenericObject","comparePartNumber","AWSS3UploadTask","s3Client","prefixPromise","partSize","queued","totalBytes","storageSync","fileId","_getFileId","_validateParams","IN_PROGRESS","_listSingleFile","bucket","listObjectRes","File","lastModified","_findCachedUploadParts","uploadRequests","cachedUploadFileData","_listCachedUploadTasks","lastTouched","_emitEvent","tasks","fileMetadata","_isCached","_removeFromCache","_onPartUploadCompletion","eTag","UPLOAD_PROGRESS","job","uploadPartInput","PAUSED","_startNextPart","_isDone","_completeUpload","_verifyFileSize","UPLOAD_COMPLETE","COMPLETED","_makeUploadPartRequest","err_2","pause","CancelToken","nextPart","s3Request","_createParts","_initCachedUploadParts","cachedParts","uploadedPartNumSet","_initMultipartUpload","fileName","_initializeUploadTask","err_3","_startUpload","_cancel","err_4","removedInProgressReq","AWSS3Provider","_storage","getCategory","CATEGORY","getProviderName","PROVIDER_NAME","amplifyConfig","Parser","parseMobilehubConfig","startResumableUpload","addTaskInput","progressCallback","completeCallback","errorCallback","INVALID_BLOB","acl","cacheControl","serverSideEncryption","srcLevel","srcIdentityId","srcKey","destLevel","destKey","srcPrefix","destPrefix","finalSrcKey","finalDestKey","s3","_ensureCredentials","_isWithCredentials","NO_CREDENTIALS","NO_SRC_KEY","NO_DEST_KEY","_prefix","contentDisposition","contentEncoding","contentLanguage","final_key","getObjectCommand","fileSize","put","resumable","metadata","tagging","uploader","accessLevel","deleteObjectCommand","_list","listObjectsV2Command","nextToken","maxKeys","final_path","listResult","error_5","error_6","_pluggables","_cancelTokenSourceMap","getPluggable","providerName","removePluggable","storageKeysFromConfig","storageArrayKeys","isInStorageArrayKeys","getCancellableTokenSource","updateRequestToBeCancellable","isUploadTask","provider","prov","responsePromise","isCancelError","_instance","vault","old_configure","vaultConfig","useLayoutEffectImpl","parseValue","expectToken","parseValueLiteral","parseType","parseTypeReference","_lexer","parseName","many","parseDefinition","parseOperationDefinition","parseFragmentDefinition","parseTypeSystemDefinition","parseTypeSystemExtension","peekDescription","unexpected","parseSelectionSet","parseOperationType","parseVariableDefinitions","parseDirectives","operationToken","optionalMany","parseVariableDefinition","parseVariable","expectOptionalToken","parseSelection","parseFragment","parseField","nameOrAlias","parseArguments","isConst","parseConstArgument","parseArgument","hasTypeCondition","expectOptionalKeyword","parseFragmentName","parseNamedType","_this$_options","expectKeyword","parseList","parseObject","advance","parseStringLiteral","any","parseObjectField","parseDirective","keywordToken","lookahead","parseSchemaDefinition","parseScalarTypeDefinition","parseObjectTypeDefinition","parseInterfaceTypeDefinition","parseUnionTypeDefinition","parseEnumTypeDefinition","parseInputObjectTypeDefinition","parseDirectiveDefinition","parseDescription","parseOperationTypeDefinition","parseImplementsInterfaces","parseFieldsDefinition","_this$_options2","allowLegacySDLImplementsInterfaces","delimitedMany","_this$_options3","allowLegacySDLEmptyFields","parseFieldDefinition","parseArgumentDefs","parseInputValueDef","parseUnionMemberTypes","parseEnumValuesDefinition","parseEnumValueDefinition","parseInputFieldsDefinition","parseSchemaExtension","parseScalarTypeExtension","parseObjectTypeExtension","parseInterfaceTypeExtension","parseUnionTypeExtension","parseEnumTypeExtension","parseInputObjectTypeExtension","parseDirectiveLocations","parseDirectiveLocation","_this$_options4","noLocation","lastToken","getTokenKindDesc","getTokenDesc","atToken","openKind","parseFn","closeKind","delimiterKind","computeWindowedRenderLimits","maxToRenderPerBatch","windowSize","getFrameMetricsApprox","scrollMetrics","itemCount","visibleLength","visibleBegin","visibleEnd","overscanLength","fillPreference","overscanBegin","overscanEnd","_elementsThatOverlapO","offsets","getFrameMetrics","outLength","trailingOffset","elementsThatOverlapOffsets","overscanFirst","overscanLast","newCellCount","newRangeCount","maxNewCells","firstWillAddMore","firstShouldIncrement","lastWillAddMore","lastShouldIncrement","DocumentType","Query","Mutation","Subscription","cached","queries","mutations","subscriptions","JS_FUNCTION_NEW_API","jsListener","evt","registrations","newWorklet","fallbackEventName","registerEventHandler","unregisterEventHandler","Serializable","Hit","_Serializable","PageHit","_Hit","screenName","screenTitle","dp","_Hit2","ScreenHit","cd","_Hit3","category","ec","ea","_Hit4","Transaction","affiliation","revenue","shipping","tax","ti","ta","tr","tt","_Hit5","AddItem","price","quantity","sku","ip","iq","ic","iv","updatesManifest","devLauncherManifest","rawManifest","ExpoUpdates","manifestString","EXDevLauncher","appOwnership","nativeConstants","warnedAboutDeviceYearClass","warnedAboutIosModel","warnedAboutInstallationId","warnedAboutDeviceId","warnedAboutLinkingUrl","constants","deviceYearClass","deviceId","linkingUrl","__unsafeNoWarnManifest","maybeManifest","isAppManifest","__unsafeNoWarnManifest2","isManifest","__rawManifest_TEST","platform","originalModel","suppressWarning","invalidManifestType","webViewUserAgent","getWebViewUserAgent","propertyId","additionalParameters","customDimensions","customMetrics","parameters","sr","promiseGetWebViewUserAgentAsync","hit","toQueryString","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","nextTick","browser","env","argv","prependListener","prependOnceListener","binding","cwd","chdir","umask","versionInfo","major","minor","patch","preReleaseTag","isPromise","predicate","locatedError","rawOriginalError","NAME_RX","assertValidName","isValidNameError","keyMap","keyFn","mapValue","_objectEntries2","toObjMap","keyValMap","valFn","didYouMean","firstArg","secondArg","subMessage","suggestions","lastItem","identityFunc","naturalCompare","aStr","bStr","aIdx","bIdx","aChar","bChar","isDigit","aNum","DIGIT_0","bNum","suggestionList","optionsByDistance","lexicalDistance","LexicalDistance","distanceDiff","_inputLowerCase","_inputArray","stringToArray","_rows","optionLowerCase","aLength","bLength","upRow","currentRow","smallestCell","cost","currentCell","doubleDiagonalCell","strLength","valueFromASTUntyped","valueNode","isScalarType","isInterfaceType","isUnionType","isEnumType","isInputObjectType","isListType","isNonNullType","assertType","instanceOf","assertScalarType","assertObjectType","assertInterfaceType","assertUnionType","assertEnumType","assertInputObjectType","GraphQLList","assertListType","GraphQLNonNull","assertNonNullType","isInputType","isWrappingType","ofType","assertInputType","isOutputType","assertOutputType","isLeafType","assertLeafType","isCompositeType","assertCompositeType","isAbstractType","assertAbstractType","assertNullableType","assertWrappingType","isNullableType","getNullableType","isNamedType","assertNamedType","unwrappedType","resolveThunk","undefineIfEmpty","GraphQLScalarType","_config$parseValue","_config$serialize","_config$parseLiteral","specifiedByUrl","parseLiteral","astNode","extensionASTNodes","toConfig","_this$extensionASTNod","GraphQLObjectType","isTypeOf","defineFieldMap","_interfaces","defineInterfaces","_proto2","getFields","getInterfaces","fieldsToFieldsConfig","_resolveThunk","fieldMap","isPlainObj","fieldConfig","_fieldConfig$args","argsConfig","argName","argConfig","deprecationReason","isDeprecated","argsToArgsConfig","isRequiredArgument","GraphQLInterfaceType","resolveType","_proto3","_this$extensionASTNod2","GraphQLUnionType","_types","defineTypes","_proto4","getTypes","_this$extensionASTNod3","GraphQLEnumType","typeName","valueMap","valueName","valueConfig","_valueLookup","enumValue","_nameLookup","_proto5","outputValue","valueStr","didYouMeanEnumValue","_variables","_valueStr","_this$extensionASTNod4","enumType","unknownValueStr","GraphQLInputObjectType","defineInputFieldMap","_proto6","_this$extensionASTNod5","isRequiredInputField","isEqualType","typeA","typeB","isTypeSubTypeOf","maybeSubType","superType","isSubType","doTypesOverlap","getPossibleTypes","mapFn","iteratorMethod","_result","safeArrayFrom","GraphQLInt","coercedValue","serializeObject","GraphQLFloat","valueOfResult","GraphQLString","GraphQLBoolean","GraphQLID","specifiedScalarTypes","isSpecifiedScalarType","astFromValue","astValue","itemType","valuesNodes","itemNode","fieldNodes","_objectValues2","stringNum","integerStringRegExp","__Schema","__Type","getTypeMap","queryType","getQueryType","mutationType","getMutationType","subscriptionType","getSubscriptionType","__Directive","getDirectives","isRepeatable","__DirectiveLocation","__InputValue","includeDeprecated","__TypeKind","TypeKind","NON_NULL","__Field","possibleTypes","_args","enumValues","__EnumValue","inputFields","valueAST","SchemaMetaFieldDef","_source","TypeMetaFieldDef","getType","TypeNameMetaFieldDef","parentType","introspectionTypes","isIntrospectionType","isDirective","assertDirective","GraphQLDirective","_config$isRepeatable","_config$args","GraphQLIncludeDirective","if","GraphQLSkipDirective","DEFAULT_DEPRECATION_REASON","GraphQLDeprecatedDirective","reason","GraphQLSpecifiedByDirective","specifiedDirectives","isSpecifiedDirective","isSchema","assertSchema","GraphQLSchema","_config$directives","__validationErrors","assumeValid","_queryType","_mutationType","mutation","_subscriptionType","_directives","allReferencedTypes","_config$types2","collectReferencedTypes","_this$_directives2","_directive$args2","_typeMap","_subTypeMap","_implementationsMap","_i8","_arrayFrom2","namedType","_i10","_namedType$getInterfa2","iface","implementations","objects","_i12","_namedType$getInterfa4","_iface","_implementations","abstractType","getImplementations","interfaceType","isPossibleType","possibleType","_i14","_abstractType$getType2","_i16","_implementations$obje2","_i18","_implementations$inte2","getDirective","typeSet","_i20","_namedType$getTypes2","_i22","_namedType$getInterfa6","_i24","_i26","_field$args2","_i28","_objectValues4","validateSchema","_getOperationTypeNode","reportError","getOperationTypeNode","_getOperationTypeNode2","_getOperationTypeNode3","validateRootTypes","_context$schema$getDi2","validateName","_arg$astNode","getDeprecatedDirectiveNode","validateDirectives","validateInputObjectCircularRefs","visitedTypes","fieldPath","fieldPathIndexByTypeName","detectCycleRecursive","inputObj","_i30","fieldType","cycleIndex","cyclePath","pathStr","fieldObj","createInputObjectCircularRefsValidator","typeMap","validateFields","validateInterfaces","validateUnionMembers","validateEnumValues","validateInputFields","validateTypes","getErrors","assertValidSchema","SchemaValidationContext","_errors","addError","operationNodes","getAllSubNodes","getAllNodes","_field$astNode","_arg$astNode2","_arg$astNode3","ifaceTypeNames","_type$getInterfaces2","getAllImplementsInterfaceNodes","validateTypeImplementsAncestors","validateTypeImplementsInterface","typeFieldMap","ifaceField","typeField","_ifaceField$astNode","_typeField$astNode","_ifaceField$args2","_ifaceArg$astNode","_typeArg$astNode","ifaceArg","typeArg","_typeField$args2","ifaceInterfaces","_iface$getInterfaces2","transitive","union","memberTypes","includedTypeNames","memberType","getUnionMemberTypeNodes","_field$astNode2","_field$astNode3","subNodes","_i32","_getAllNodes2","_getter","typeNode","ifaceNode","unionNode","definitionNode","_definitionNode$direc","typeFromAST","TypeInfo","getFieldDefFn","initialType","_schema","_typeStack","_parentTypeStack","_inputTypeStack","_fieldDefStack","_defaultValueStack","_directive","_argument","_enumValue","_getFieldDef","getFieldDef","getParentType","getInputType","getParentInputType","getDefaultValue","getArgument","getEnumValue","fieldDef","typeConditionAST","outputType","inputType","_this$getDirective","argDef","argType","fieldOrDirective","listType","inputFieldType","inputField","objectType","fieldNode","visitWithTypeInfo","typeInfo","isDefinitionNode","isExecutableDefinitionNode","isTypeSystemDefinitionNode","isTypeSystemExtensionNode","isSelectionNode","isValueNode","isTypeNode","isTypeDefinitionNode","isTypeExtensionNode","ExecutableDefinitionsRule","_node$definitions2","defName","UniqueOperationNamesRule","knownOperationNames","LoneAnonymousOperationRule","operationCount","SingleFieldSubscriptionsRule","KnownTypeNamesRule","getSchema","existingTypesMap","definedTypes","_context$getDocument$2","getDocument","typeNames","_1","_2","_ancestors$","isSDL","standardTypeNames","isStandardTypeName","suggestedTypes","FragmentsOnCompositeTypesRule","typeStr","VariablesAreInputTypesRule","variableName","ScalarLeafsRule","_fieldName","_typeStr","FieldsOnCorrectTypeRule","suggestion","usageCount","_schema$getPossibleTy2","_possibleType$getInte2","_usageCount$possibleI","possibleInterface","usageCountDiff","getSuggestedTypeNames","possibleFieldNames","getSuggestedFieldNames","UniqueFragmentNamesRule","knownFragmentNames","KnownFragmentNamesRule","getFragment","NoUnusedFragmentsRule","operationDefs","fragmentDefs","fragmentNameUsed","_context$getRecursive2","getRecursivelyReferencedFragments","fragName","PossibleFragmentSpreadsRule","fragType","parentTypeStr","fragTypeStr","frag","getFragmentType","NoFragmentCyclesRule","visitedFrags","spreadPath","spreadPathIndexByName","spreadNodes","getFragmentSpreads","spreadNode","spreadName","spreadFragment","viaPath","UniqueVariableNamesRule","knownVariableNames","NoUndefinedVariablesRule","variableNameDefined","usages","getRecursiveVariableUsages","varName","NoUnusedVariablesRule","variableDefs","variableNameUsed","_variableDefs2","variableDef","KnownDirectivesRule","locationsMap","definedDirectives","astDefinitions","_path","candidateLocation","appliedTo","getDirectiveLocationForOperation","getDirectiveLocationForASTPath","UniqueDirectivesPerLocationRule","uniqueDirectiveMap","schemaDirectives","typeDirectivesMap","seenDirectives","_node$directives2","directiveName","KnownArgumentNamesRule","KnownArgumentNamesOnDirectivesRule","argNode","directiveArgs","_def$arguments","argsNodes","directiveNode","knownArgs","_directiveNode$argume2","UniqueArgumentNamesRule","knownArgNames","ValuesOfCorrectTypeRule","isValidValueNode","fieldNodeMap","locationType","_typeStr2","ProvidedRequiredArgumentsRule","ProvidedRequiredArgumentsOnDirectivesRule","_fieldNode$arguments","argNodeMap","_fieldDef$args2","argTypeStr","requiredArgsMap","argNodes","isRequiredArgumentNode","requiredArgs","_directiveNode$argume","VariablesInAllowedPositionRule","varDefMap","varDef","varType","allowedVariableUsage","varTypeStr","varDefaultValue","locationDefaultValue","reasonMessage","responseName","subReason","OverlappingFieldsCanBeMergedRule","comparedFragmentPairs","PairSet","cachedFieldsAndFragmentNames","conflicts","_getFieldsAndFragment","getFieldsAndFragmentNames","fragmentNames","_i5","conflict","findConflict","collectConflictsWithin","collectConflictsBetweenFieldsAndFragment","collectConflictsBetweenFragments","findConflictsWithinSelectionSet","_ref2$","fields1","fields2","reasonMsg","areMutuallyExclusive","_getReferencedFieldsA","getReferencedFieldsAndFragmentNames","fieldMap2","fragmentNames2","collectConflictsBetween","fragmentName1","fragmentName2","fragment1","fragment2","_getReferencedFieldsA2","fieldMap1","fragmentNames1","_getReferencedFieldsA3","parentFieldsAreMutuallyExclusive","_i7","field1","field2","parentType1","node1","def1","parentType2","node2","def2","_node1$arguments","_node2$arguments","name1","name2","arguments1","arguments2","argument1","value1","value2","argument2","argument","sameArguments","type1","type2","doTypesConflict","selectionSet1","selectionSet2","allFields","subfieldConflicts","_getFieldsAndFragment2","_getFieldsAndFragment3","_i3","findConflictsBetweenSubSelectionSets","nodeAndDefs","_collectFieldsAndFragmentNames","_i9","_selectionSet$selecti2","inlineFragmentType","fragmentType","_defKindToExtKind","_pairSetAdd","UniqueInputFieldNamesRule","knownNameStack","knownNames","LoneSchemaDefinitionRule","_oldSchema$astNode","oldSchema","alreadyDefined","schemaDefinitionsCount","UniqueOperationTypesRule","definedOperationTypes","existingOperationTypes","checkOperationTypes","_node$operationTypes","operationTypesNodes","operationType","alreadyDefinedOperationType","UniqueTypeNamesRule","knownTypeNames","checkTypeName","UniqueEnumValueNamesRule","existingTypeMap","knownValueNames","checkValueUniqueness","_node$values","valueNodes","valueNames","valueDef","existingType","UniqueFieldDefinitionNamesRule","knownFieldNames","checkFieldUniqueness","_node$fields","hasField","UniqueDirectiveNamesRule","knownDirectiveNames","PossibleTypeExtensionsRule","checkExtension","expectedKind","defNode","defKindToExtKind","typeToExtKind","kindStr","extensionKindToTypeName","allTypeNames","specifiedRules","specifiedSDLRules","ASTValidationContext","_ast","_fragments","_fragmentSpreads","_recursivelyReferencedFragments","_onError","frags","statement","spreads","setsToVisit","_set$selections2","collectedNames","nodesToVisit","_this$getFragmentSpre2","SDLValidationContext","_ASTValidationContext","_ASTValidationContext2","ValidationContext","_typeInfo","_variableUsages","_recursiveVariableUsages","getVariableUsages","newUsages","_this$getRecursivelyR2","documentAST","maxErrors","abortObj","validateSDL","schemaToExtend","addPath","pathToArray","flattened","getOperationRootType","printPathArray","valueFromAST","coercedValues","_valueNode$values2","isMissingVariable","itemValue","coercedObj","_error","coerceInputValue","defaultOnError","coerceInputValueImpl","invalidValue","errorPrefix","coercedList","itemPath","fieldDefs","parseResult","getVariableValues","varDefNodes","coerced","varDefNode","_varTypeStr","_varTypeStr2","coerceVariableValues","getArgumentValues","variableValues","_node$arguments","_def$args2","argumentNode","isNull","getDirectiveValues","directiveDef","argsOrSchema","rootValue","contextValue","fieldResolver","typeResolver","executeImpl","executeSync","assertValidExecutionArguments","exeContext","buildExecutionContext","collectFields","sourceValue","resolveField","resolvedResult","executeFieldsSerially","executeFields","executeOperation","buildResponse","rawVariableValues","_definition$name","_operation$variableDe","_document$definitions2","coercedVariableValues","containsPromise","valuesAndPromises","resolvedObject","promiseForObject","runtimeType","visitedFragmentNames","shouldIncludeNode","doesFragmentConditionMatch","skip","include","typeConditionNode","conditionalType","_fieldDef$resolve","returnType","resolveFn","buildResolveInfo","completed","completeValue","rawError","handleFieldError","completedResults","completedItem","completeListValue","serializedResult","completeLeafValue","_returnType$resolveTy","resolveTypeFn","resolvedRuntimeType","completeObjectValue","ensureValidRuntimeType","completeAbstractValue","runtimeTypeOrName","runtimeTypeName","resolvedIsTypeOf","invalidReturnTypeError","collectAndExecuteSubfields","collectSubfields","cache0","a3","cache2","cache1","cachedValue","memoize3","subFieldNodes","promisedIsTypeOfResults","isTypeOfResult","isTypeOfResults","graphql","graphqlImpl","graphqlSync","schemaValidationErrors","validationErrors","isAsyncIterable","maybeAsyncIterable","mapAsyncIterator","iterable","rejectCallback","$return","abruptClose","mapReject","mapResult","asyncMapValue","iteratorResult","rethrow","throw","subscribeFieldResolver","subscribeImpl","reportGraphQLError","sourcePromise","createSourceEventStream","mapSourceToResponse","resultOrStream","resolveResult","_fieldDef$subscribe","eventStream","executeSubscription","NoDeprecatedCustomRule","inputObjectDef","inputFieldDef","enumValueDef","enumTypeDef","NoSchemaIntrospectionCustomRule","_error$message","getIntrospectionQuery","optionsWithDefault","descriptions","directiveIsRepeatable","schemaDescription","inputValueDeprecation","inputDeprecation","getOperationAST","_documentAST$definiti2","introspectionFromSchema","optionsWithDefaults","buildClientSchema","introspection","__schema","schemaIntrospection","typeIntrospection","scalarIntrospection","objectIntrospection","buildImplementationsList","buildFieldDefMap","interfaceIntrospection","unionIntrospection","unionIntrospectionStr","getObjectType","buildUnionDef","enumIntrospection","enumIntrospectionStr","valueIntrospection","buildEnumDef","inputObjectIntrospection","inputObjectIntrospectionStr","buildInputValueDefMap","buildInputObjectDef","buildType","stdType","directiveIntrospection","directiveIntrospectionStr","_directiveIntrospectionStr","typeRef","itemRef","nullableRef","getNamedType","getInterfaceType","implementingIntrospection","implementingIntrospectionStr","fieldIntrospection","buildField","fieldIntrospectionStr","inputValueIntrospections","buildInputValue","inputValueIntrospection","extendSchema","assumeValidSDL","assertValidSDLExtension","schemaConfig","extendedConfig","extendSchemaImpl","_schemaDef","_schemaDef$descriptio","_schemaDef2","_options$assumeValid","schemaDef","typeDefs","typeExtensionsMap","directiveDefs","schemaExtensions","extendedTypeName","existingTypeExtensions","_schemaConfig$types2","extendNamedType","_stdTypeMap$name","stdTypeMap","replaceNamedType","getOperationTypes","extendArg","getDescription","buildArgumentMap","replaceType","_typeExtensionsMap$co2","_getSpecifiedByUrl","extensionNode","getSpecifiedByUrl","extendScalarType","_typeExtensionsMap$co3","buildInterfaces","extendField","buildFieldMap","extendObjectType","_typeExtensionsMap$co4","extendInterfaceType","_typeExtensionsMap$co5","buildUnionTypes","extendUnionType","_typeExtensionsMap$ty","buildEnumValueMap","extendEnumType","_typeExtensionsMap$co","buildInputFieldMap","extendInputObjectType","opTypes","_stdTypeMap$name2","getWrappedType","fieldConfigMap","nodeFields","getDeprecationReason","argConfigMap","inputFieldMap","_node$fields2","fieldsNodes","enumValueMap","_node$interfaces","interfacesNodes","_node$types","typeNodes","_i34","_typeExtensionsMap$na","extensionNodes","allNodes","_extensionASTNodes","_allNodes","_extensionASTNodes2","_allNodes2","_extensionASTNodes3","_allNodes3","_extensionASTNodes4","_extensionASTNodes5","_allNodes4","deprecated","specifiedBy","commentDescriptions","comments","getLeadingCommentBlock","buildASTSchema","assertValidSDL","stdDirective","buildSchema","lexicographicSortSchema","sortByName","sortTypes","_config2","_config3","sortObjMap","_config4","sortBy","sortArgs","replaceMaybeType","maybeType","fieldsMap","sortValueFn","sortedMap","mapToKey","printSchema","printFilteredSchema","isDefinedType","printIntrospectionSchema","directiveFilter","typeFilter","printSchemaDefinition","printDescription","printArgs","printDirective","printType","isSchemaOfCommonNames","scalar","urlAST","printSpecifiedByUrl","printScalar","printImplementedInterfaces","printFields","printObject","printInterface","printUnion","printDeprecated","printBlock","printEnum","printInputValue","printInputObject","defaultAST","argDecl","reasonAST","firstInBlock","printDescriptionWithComments","blockString","concatAST","documents","separateOperations","depGraph","collectDependencies","separatedDocumentASTs","_collectDependencies2","collectTransitiveDependencies","collected","fromName","immediateDeps","stripIgnoredCharacters","lexer","strippedBody","wasLastAddedTokenNonPunctuator","currentToken","tokenKind","isNonPunctuator","tokenBody","dedentBlockString","blockStr","rawStr","lastChar","BreakingChangeType","TYPE_REMOVED","TYPE_CHANGED_KIND","TYPE_REMOVED_FROM_UNION","VALUE_REMOVED_FROM_ENUM","REQUIRED_INPUT_FIELD_ADDED","IMPLEMENTED_INTERFACE_REMOVED","FIELD_REMOVED","FIELD_CHANGED_KIND","REQUIRED_ARG_ADDED","ARG_REMOVED","ARG_CHANGED_KIND","DIRECTIVE_REMOVED","DIRECTIVE_ARG_REMOVED","REQUIRED_DIRECTIVE_ARG_ADDED","DIRECTIVE_REPEATABLE_REMOVED","DIRECTIVE_LOCATION_REMOVED","DangerousChangeType","VALUE_ADDED_TO_ENUM","TYPE_ADDED_TO_UNION","OPTIONAL_INPUT_FIELD_ADDED","OPTIONAL_ARG_ADDED","IMPLEMENTED_INTERFACE_ADDED","ARG_DEFAULT_VALUE_CHANGE","findBreakingChanges","newSchema","findSchemaChanges","change","findDangerousChanges","schemaChanges","typesDiff","_typesDiff$removed2","oldType","_typesDiff$persisted2","persisted","_oldType","newType","findEnumTypeChanges","findUnionTypeChanges","findInputObjectTypeChanges","findFieldChanges","findImplementedInterfacesChanges","typeKindName","findTypeChanges","directivesDiff","_directivesDiff$remov2","oldDirective","_directivesDiff$persi2","_oldDirective","newDirective","argsDiff","_argsDiff$added2","added","newArg","_argsDiff$removed2","oldArg","_oldDirective$locatio2","findDirectiveChanges","fieldsDiff","_fieldsDiff$added2","newField","_fieldsDiff$removed2","oldField","_fieldsDiff$persisted2","_oldField","_newField","isChangeSafeForInputObjectFieldOrFieldArg","possibleTypesDiff","_possibleTypesDiff$ad2","newPossibleType","_possibleTypesDiff$re2","oldPossibleType","valuesDiff","_valuesDiff$added2","_valuesDiff$removed2","interfacesDiff","_interfacesDiff$added2","newInterface","_interfacesDiff$remov2","oldInterface","_fieldsDiff$removed4","_i36","_fieldsDiff$persisted4","_oldField2","findArgChanges","isChangeSafeForObjectOrInterfaceField","_i38","_argsDiff$removed4","_i40","_argsDiff$persisted2","_oldArg","oldValueStr","stringifyValue","newValueStr","_i42","_argsDiff$added4","_newArg","sortedAST","objectNode","fieldA","fieldB","oldArray","newArray","oldMap","newMap","_i44","oldItem","newItem","_i46","_newItem","findDeprecatedUsages","filterInPlace","elem","TYPENAME_FIELD","nullIfDocIsEmpty","getDirectiveMatcher","removeDirectivesFromDocument","variablesInUse","variablesToRemove","fragmentSpreadsInUse","fragmentSpreadsToRemove","modifiedDoc","getAllFragmentSpreadsFromSelectionSet","allFragments","removeArgumentsFromDocument","fs","removeFragmentSpreadFromDocument","addTypenameToDocument","connectionRemoveConfig","willRemove","removeConnectionDirectiveFromDocument","argMatcher","aConfig","getArgumentMatcher","argMatchCount_1","buildQueryFromSelectionSet","removeClientSetsFromDocument","tapGestureHandlerProps","actionable","MemoedTouchableOpacity","setDuration","_useState2","opacityOverride","setOpacityOverride","setOpacityActive","setOpacityInactive","isGrant","dispatchConfig","nextObj","didWarn","previousStyleRef","setNativePropsArgsRef","useStable","relativeToNode","nextDomStyle","animatedRef","viewportOffset","offsetLeft","offsetTop","_animatedRef","measured","_measure","_scrollTo","_y","setGestureState","_setGestureState","maxSize","_maxSize","_size","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","pathCache","setCache","getCache","normalizePath","isQuoted","shouldBeQuoted","hasLeadingNumber","hasSpecialChars","safe","iter","LinkingContext","RESPONDER_INACTIVE_PRESS_START","RESPONDER_ACTIVE_PRESS_START","RESPONDER_ACTIVE_LONG_PRESS_START","isActiveSignal","isButtonRole","isPressStartSignal","isValidKeyPress","PressResponder","_eventHandlers","_isPointerTouch","_longPressDelayTimeout","_longPressDispatched","_pressDelayTimeout","_pressOutDelayTimeout","_touchState","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","_createEventHandlers","shouldDelay","_selectionTerminated","normalizeDelay","_handleLongPress","keyupHandler","elementType","onPressMove","getTouchFromResponderEvent","_touchActivatePosition","_this$_config","_this$_config2","altKey","_this$_config3","_performTransitionSideEffects","isTerminalSignal","isPrevActive","isNextActive","_activate","_deactivate","_this$_config4","_onLongPress","_this$_config5","onPressChange","_this$_config6","_event$nativeEvent","pressResponderRef","pressResponder","useDebugValue","getEventHandlers","canUseWeakMap","canUseWeakSet","canUseSymbol","alphabetByEncoding","alphabetByValue","fromBase64","totalByteLength","dataView","bits","toBase64","bitClusterCount","iterateObserversSafely","observers","observersWithMethod","obs","SlideFromRightIOS","gestureDirection","transitionSpec","cardStyleInterpolator","headerStyleInterpolator","ModalPresentationIOS","FadeFromBottomAndroid","RevealFromBottomAndroid","ScaleFromCenterAndroid","BottomSheetAndroid","ModalFadeTransition","forFadeCard","DefaultTransition","ModalTransition","MediaTypeOptions","VideoExportPreset","UIImagePickerControllerQualityType","UIImagePickerPresentationStyle","TextEncoder","encode","surrogatePair","TextDecoder","decoded","byte","nextByte","byteValue","auth_link_1","AuthLink","AUTH_TYPE","USER_AGENT_HEADER","USER_AGENT","createAuthLink","signer_1","Signer","LOG_TYPE","LOG_LEVELS","VERBOSE","DEBUG","INFO","WARN","ConsoleLogger","_padding","_ts","getMinutes","getSeconds","getMilliseconds","logger_level_name","LOG_LEVEL","logger_level","type_level","logEvent","pushLogs","verbose","getCategoryName","listPluggables","AFTER_FIRST_UNLOCK","AFTER_FIRST_UNLOCK_THIS_DEVICE_ONLY","ALWAYS","WHEN_PASSCODE_SET_THIS_DEVICE_ONLY","ALWAYS_THIS_DEVICE_ONLY","WHEN_UNLOCKED","WHEN_UNLOCKED_THIS_DEVICE_ONLY","getItemAsync","_ensureValidKey","getValueWithKeyAsync","setItemAsync","_isValidValue","setValueWithKeyAsync","_isValidKey","_byteCount","Reanimated","minLen","_arrayLikeToArray","_unsupportedIterableToArray","hasSymbols","hasSymbol","getSymbol","observable","SymbolIterator","SymbolObservable","SymbolSpecies","getSpecies","Observable","isObservable","hostReportError","cleanupSubscription","_cleanup","closeSubscription","_observer","_queue","notifySubscription","onNotify","flushSubscription","subscriber","subscriptionObserver","SubscriptionObserver","_subscription","_subscriber","hasSeed","sources","startNext","outer","completeIfDone","closed","symbol","baseIsNative","_base","_base2","DEFAULT_TRANSLATION","S","CustomMask","_BaseMask","translation","maskCharIndex","valueCharIndex","maskChar","valueChar","translationHandler","resolverValue","toPattern","mergeSettings","getRawValue","validator","shared","toPromise","fromPromise","shouldInclude","getInclusionDirectives","ifArgument","evaledValue","getDirectiveNames","hasDirectives","hasClientExports","isInclusionDirective","directiveArguments","ifValue","UI_THREAD_PROPS_WHITELIST","NATIVE_THREAD_PROPS_WHITELIST","borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","maxHeight","textShadowRadius","letterSpacing","backfaceVisibility","jsiConfigureProps","oldSize","addWhitelistedUIProps","PROCESSED_VIEW_NAMES","validAttributes","propsToAdd","InvariantError","genericMessage","verbosityLevels","verbosityLevel","wrapConsoleMethod","setVerbosity","old","AnimatedAlways","what","_what","valueIn","setOffset","flattenOffset","extractOffset","jointCallback","serializeFetchParameter","parseError","ObservableQuery","queryManager","queryInfo","subObserver","defaultSubscriptionObserverErrorCallback","reobserve","tearDownQuery","isTornDown","queryId","generateQueryId","opDef","queryName","initialFetchPolicy","fetchPolicy","removeQuery","getCurrentResult","saveAsLastResult","lastResult","getLastResult","ready","loading","hasForcedResolvers","getDiff","returnPartialData","partial","updateLastResult","isDifferentFromLastResult","newResult","getLast","variablesMustMatch","getLastError","resetLastResults","resetQueryStoreErrors","resetErrors","refetch","reobserveOptions","pollInterval","resetLastWrite","fetchMore","fetchMoreOptions","combinedOptions","qid","notifyOnNetworkStatusChange","observe","fetchQuery","fetchMoreResult","updateQuery","writeQuery","finally","stopQuery","subscribeToMore","startGraphQLSubscription","subscriptionData","setVariables","broadcastQueries","startPolling","updatePolling","stopPolling","newNetworkStatus","setObservableQuery","fetchQueryObservable","ssrMode","pollingInfo","maybeFetch","poll","assumeImmutableResults","useDisposableConcast","oldVariables","concast","reportResult","removeObserver","addObserver","errorResult","hasObservers","applyNextFetchPolicy","nextFetchPolicy","HeaderHeightContext","getNamedContext","HeaderShownContext","LocationEventEmitter","currentIcon","setCurrentIcon","previousIcon","setPreviousIcon","opacityPrev","opacityNext","rotatePrev","rotateNext","CrossFadeIcon","buttonSize","isNativeReflectConstruct","Module","baseHas","hasPath","googleApiKey","GOOGLE_API_URL","googleReverseGeocodeAsync","assertGoogleApiKey","requestGoogleApiAsync","latlng","assertGeocodeResults","reverseGeocodingResultToAddress","resultObject","error_message","address_components","long_name","short_name","city","district","streetNumber","street","subregion","country","isoCountryCode","formatted_address","nextWatchId","eventDataField","eventSubscription","maybeInitializeSubscription","removeSubscription","useGoogleMaps","useForegroundPermissions","currentContext","MISSING_VALUE","idCounter","Slot","context_1","slots","saved","cacheSlot","cacheInfoMap","getCacheInfo","vars","forgetCache","rv","recallCache","attachCache","makeVar","broadcast","oldListeners","attach","onNextChange","broadcastWatches","Timeout","clearFn","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","webpackPolyfill","utils","AxiosError","lineNumber","columnNumber","customProps","axiosError","AnimatedSet","createAnimatedSet","fallbackHttpConfig","includeQuery","includeExtensions","accept","selectHttpOptionsAndBody","fallbackConfig","headersToLowerCase","normalized_1","DarkTheme","getDefaultHeaderHeight","modalPresentation","canUsePassiveEvents","supportsPassiveEvents","isPropagationStopped","cancelBubble","createEventHandle","capture","getOptions","compatListener","previousModality","previousActiveModality","activeModality","modality","isEmulatingMouseEvents","bubbleOptions","passive","captureOptions","addBlurListener","addFocusListener","addVisibilityChangeListener","addKeyDownListener","addPointerDownListener","addPointerMoveListener","addContextMenuListener","addMouseDownListener","addMouseMoveListener","addMouseUpListener","addScrollListener","addSelectiomChangeListener","addTouchCancelListener","addTouchMoveListener","addTouchStartListener","restoreModality","callListeners","onPointerish","metaKey","ctrlKey","visibilityState","targetListeners","removeTargetListener","dispatchCustomEvent","_ref$bubbles","bubbles","_ref$cancelable","detail","initCustomEvent","useHover","targetRef","onHoverStart","onHoverChange","onHoverUpdate","onHoverEnd","canUsePE","addMoveListener","addEnterListener","addLeaveListener","addLockListener","addUnlockListener","hoverEnd","leaveListener","moveListener","hoverStart","lockEvent","useForceableState","forced","MemoedPressable","memo","onHoverIn","onHoverOut","testOnly_hovered","testOnly_pressed","_useForceableState","hovered","setHovered","_useForceableState2","focused","setFocused","_useForceableState3","setPressed","onContextMenuPress","onKeyDownPress","interactionState","blurHandler","focusHandler","contextMenuHandler","keyDownHandler","ItemWithSeparator","LeadingSeparatorComponent","SeparatorComponent","cellKey","prevCellKey","setSelfHighlightCallback","updateHighlightFor","setSelfUpdatePropsCallback","updatePropsFor","section","leadingSeparatorHiglighted","setLeadingSeparatorHighlighted","separatorHighlighted","setSeparatorHighlighted","_React$useState3","leadingItem","leadingSection","trailingItem","trailingSection","leadingSeparatorProps","setLeadingSeparatorProps","_React$useState4","separatorProps","setSeparatorProps","highlight","unhighlight","leadingSeparator","highlighted","VirtualizedSectionList","_subExtractor","_convertViewable","viewable","_info$index","keyExtractorWithNullableIndex","keyExtractorWithNonNullableIndex","_onViewableItemsChanged","_renderItem","listItemCount","infoIndex","renderSectionHeader","renderSectionFooter","_getSeparatorComponent","SectionSeparatorComponent","_setUpdateHighlightFor","_setUpdatePropsFor","_updateHighlightFor","_updatePropsFor","_updatePropsMap","updateHighlight","_updateHighlightMap","updateHighlightFn","updatePropsFn","itemIndex","sectionIndex","sections","viewOffset","stickySectionHeadersEnabled","_getFrameMetricsApprox","toIndexParams","passThroughProps","ItemSeparatorComponent","listHeaderOffset","ListHeaderComponent","itemIdx","sectionData","isLastItemInList","isLastItemInSection","_wrapperListRef","scrollToLocation","listRef","getListRef","_stickySectionHeadersEnabled","CSS_UNIT_RE","multiplyStyleLengthValue","multiple","Switch","activeThumbColor","activeTrackColor","_props$disabled","thumbColor","_props$value","thumbRef","handleFocusState","boxShadow","thumbDefaultBoxShadow","styleHeight","styleWidth","trackBorderRadius","trackCurrentColor","true","false","thumbCurrentColor","thumbHeight","thumbWidth","rootStyle","disabledTrackColor","disabledThumbColor","trackStyle","thumbStyle","thumb","thumbActive","alignSelf","isNativeFunction","resizeObserver","ResizeObserver","unobserve","arrayLike","colorInt","AnimatedParam","argsStack","prevCallID","_prevCallID","_getTopNode","isRunning","createAnimatedParam","argsTag","mapTag","objectTag","reIsHostCtor","reIsUint","typedArrayTags","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","nodeIsTypedArray","arraySome","mapToArray","setToArray","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","uid","IE_PROTO","nativeObjectToString","reIsNative","symToStringTag","nativeGetSymbols","nativeIsBuffer","nativeKeys","getNative","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","skipIndexes","iteratee","baseTimes","isIndex","assocIndexOf","baseGetTag","isOwn","unmasked","getRawTag","objectToString","baseIsArguments","baseIsEqual","bitmask","customizer","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othLength","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","isMasked","baseKeys","Ctor","isPrototype","seen","arrValue","othIndex","keysFunc","symbolsFunc","arrayPush","baseGetAllKeys","getSymbols","getMapData","isKeyable","pairs","LARGE_ARRAY_SIZE","resIndex","arrayFilter","ctorString","isLength","baseUnary","startNativeAnimationNextId","__nativeId","__onEnd","startNativeAnimationWaitId","__debouncedOnEnd","ReflectOwnKeys","R","ReflectApply","NumberIsNaN","errorListener","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","newListener","warned","onceWrapper","wrapFn","_onceWrap","wrapped","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","setMaxListeners","getMaxListeners","doError","er","originalListener","spliceOne","rawListeners","mergeDeepArray","merger","DeepMerger","defaultReconciler","reconciler","pastCopies","targetValue","shallowCopyForMerge","contexts","ModalPresentationContext","emptyArray","normalizeIdentifier","createResponderEvent","domEvent","responderTouchHistoryStore","propagationWasStopped","domEventChangedTouches","domEventType","normalizeTouches","emulatedTouches","responderEvent","eventPhase","isTrusted","touchHistory","isStartish","isMoveish","isEndish","isCancelish","composedPathFallback","getResponderId","getResponderPaths","idPath","nodePath","eventPath","anchorNode","getEventPath","hasValidSelection","focusNode","isTextNode","TEXT_NODE","isSelectionValid","timestampForTouch","getTouchIdentifier","recordTouchStart","touchRecord","touchBank","touchActive","startPageX","startPageY","startTimeStamp","currentPageX","currentPageY","currentTimeStamp","previousPageX","previousPageY","previousTimeStamp","resetTouchRecord","createTouchRecord","mostRecentTimeStamp","printTouch","printTouchBank","printed","ResponderTouchHistoryStore","_touchHistory","numberActiveTouches","indexOfSingleActiveTouch","topLevelType","recordTouchMove","recordTouchEnd","touchTrackToCheck","startRegistration","moveRegistration","shouldSetResponderEvents","emptyResponder","responderListenersMap","trackedTouchCount","currentResponder","changeCurrentResponder","responder","getResponderConfig","eventListener","eventTarget","isStartEvent","noModifiers","isPrimaryPointerDown","isMoveEvent","isEndEvent","isScrollEvent","isScroll","isSelectionChangeEvent","isSelectionChange","recordTouchTrack","wantsResponder","eventPaths","wasNegotiated","currentResponderIdPath","eventIdPath","lowestCommonAncestor","pathA","pathB","pathALength","pathBLength","itemA","indexA","itemB","indexB","depth","getLowestCommonAncestor","shouldSetCallbacks","shouldSetCallbackCaptureName","shouldSetCallbackBubbleName","callbackName","shouldSetCallback","_node","_id2","_node2","findWantsResponder","_currentResponder2","currentNode","_getResponderConfig2","_getResponderConfig3","allowTransfer","attemptTransfer","_currentResponder","_getResponderConfig","isTerminateEvent","relatedTarget","isReleaseEvent","hasTargetTouches","shouldTerminate","documentEventsCapturePhase","documentEventsBubblePhase","removeNode","_currentResponder3","terminateResponder","getInitialValue","isAttachedRef","__reactResponderSystemActive","ResponderSystem","requiresResponderSystem","setResponderId","isResponder","Batchinator","_delay","_taskHandle","timeoutHandle","_isViewable","viewAreaMode","viewablePercentThreshold","viewportHeight","itemLength","_isEntirelyVisible","pixels","visibleHeight","_getPixelsVisible","ViewabilityHelper","viewAreaCoveragePercentThreshold","_hasInteracted","_timers","_viewableIndices","_viewableItems","scrollOffset","renderRange","itemVisiblePercentThreshold","viewableIndices","firstVisible","createViewToken","waitForInteraction","computeViewableItems","minimumViewTime","_onUpdateSync","viewableIndicesToCheck","prevItems","nextItems","_step$value","_step2$value","_viewable","isViewable","infoLog","_console","VirtualizedListContext","VirtualizedListContextProvider","getScrollMetrics","getOutermostParentListRef","getNestedChildState","registerAsNestedChild","unregisterAsNestedChild","debugInfo","listKey","VirtualizedListCellContextProvider","_usedIndexForKey","_keylessItemComponentName","horizontalOrDefault","initialNumToRenderOrDefault","initialNumToRender","maxToRenderPerBatchOrDefault","onEndReachedThresholdOrDefault","onEndReachedThreshold","windowSizeOrDefault","_this$props$updateCel","_getScrollMetrics","_scrollMetrics","_getOutermostParentListRef","_isNestedWithSameOrientation","_getNestedChildState","existingChildData","_nestedChildLists","_registerAsNestedChild","childList","childListsInCell","_cellKeysToChildListKeys","trace","parentDebugInfo","describeNestedLists","_unregisterAsNestedChild","_onUpdateSeparators","_cellRefs","updateSeparatorProps","_getSpacerKey","isVertical","_averageCellLength","_frames","_footerLength","_hasDoneInitialScroll","_hasMore","_hasWarned","_headerLength","_hiPriInProgress","_highestMeasuredFrameIndex","_indicesToKeys","_offsetFromParentVirtualizedList","_prevParentOffset","contentLength","dOffset","_scrollRef","_sentEndForContentLength","_totalCellLength","_totalCellsMeasured","_viewabilityTuples","_captureScrollRef","_defaultRenderScrollComponent","_props$refreshing","onRefresh","refreshing","RefreshControl","progressViewOffset","_onCellUnmount","inLayout","_onLayout","measureLayoutRelativeToContainingList","_selectLength","_scheduleCellsToRenderUpdate","_maybeCallOnEndReached","_onLayoutEmpty","_onLayoutFooter","_triggerRemeasureForChildListsInCell","_getFooterCellKey","_onLayoutHeader","_onContentSizeChange","initialScrollIndex","_convertParentScrollMetrics","_onScroll","_selectOffset","_this$_convertParentS","perf","prevDt","_updateViewableItems","_fillRateHelper","_computeBlankness","_onScrollBeginDrag","tuple","viewabilityHelper","_onScrollEndDrag","_onMomentumScrollBegin","_onMomentumScrollEnd","_updateCellsToRender","_this$props3","isVirtualizationDisabled","_isVirtualizationDisabled","_this$_scrollMetrics","renderAhead","newFirst","newLast","cellKeyForIndex","childListKeys","someChildHasMore","childKey","hasMore","_createViewToken","_this$props4","_getFrameMetrics","getItemLayout","_this$props5","FillRateHelper","_updateCellsToRenderBatcher","updateCellsBatchingPeriod","storedState","_getListKey","frames","invertedWheelEventHandler","wheelDeltaX","wheelDeltaY","veryLast","onScrollToIndexFailed","viewPosition","averageItemLength","highestMeasuredFrameIndex","_this$context","_getCellKey","_this$context2","setupWebWheelHandler","deactivateAndFlush","teardownWebWheelHandler","cells","stickyIndicesFromProps","inversionStyle","_this$props6","stickyOffset","CellRenderer","fillRateHelper","onUpdateSeparators","_onCellLayout","onUnmount","parentProps","disableVirtualization","nestedContext","_this$props7","ListEmptyComponent","ListFooterComponent","_this$props8","horizontallyInverted","verticallyInverted","ListHeaderComponentStyle","spacerKey","lastInitialIndex","_this$state","_pushCells","firstAfterInitial","insertedStickySpacer","initBlock","stickyBlock","leadSpace","trailSpace","_initBlock","firstSpace","lastFrame","endFrame","tailSpacerLength","_element","_element2","ListFooterComponentStyle","invertStickyHeaders","_getDebugInfo","_renderDebugOverlay","_this$props9","extraData","resetViewableIndices","hiPriInProgress","computeBlankness","_step3","_iterator3","framesInLayout","windowTop","frameLast","windowLen","visTop","visLen","debugOverlayBase","debugOverlay","debugOverlayFrame","debugOverlayFrameLast","debugOverlayFrameVis","_this$props10","onEndReached","_this$_scrollMetrics2","distanceFromEnd","_this$state2","_this$_scrollMetrics3","hiPri","scrollingThreshold","distTop","distBottom","schedule","contextType","_separators","_this$props11","_this$props12","_this$props13","_this$props14","_renderElement","itemSeparator","cellStyle","rowReverse","columnReverse","buildQueryString","iLen","qsEntry","accessibilityRoleToWebRole","adjustable","imagebutton","keyboardkey","summary","inferredRole","roleComponents","article","banner","blockquote","complementary","contentinfo","deletion","emphasis","figure","insertion","listitem","isDisabled","accessibilityStates","AnimatedBezier","sq","Source","locationOffset","isSource","Lexer","startOfFileToken","lineStart","_token$next","readToken","isPunctuatorTokenKind","printCharCode","bodyLength","_line","_col","readComment","readBlockString","readString","readNumber","readName","unexpectedCharacterMessage","col","firstCode","isFloat","readDigits","isNameStart","chunkStart","charCode","char2hex","invalidSequence","undef","HmacSHA256","dec","tryDecode","fieldContentRegExp","toUTCString","httpOnly","resolveUserAgentConfig","UA_ESCAPE_REGEX","escapeUserAgent","prefixSeparatorIndex","uaName","getUserAgentMiddlewareOptions","getUserAgentPlugin","defaultUserAgent","normalUAValue","FetchHttpHandler","abortSignal","aborted","abortError","requestOptions","Headers","AbortController","fetchRequest","Request","fetchHeaders","transformedHeaders","onabort","stream","arrayBuffer","readToBase64","collectBlob","prior","collectStream","onloadend","readyState","commaIndex","dataOffset","readAsDataURL","resolveEndpointsConfig","normalizeEndpoint","getEndPointFromRegion","resolveRegionConfig","normalizeRegion","hasHardwareAsync","isEnrolledAsync","getEnrolledLevelAsync","supportedAuthenticationTypesAsync","authenticateAsync","promptMessage","resolveHostHeaderConfig","hostHeaderMiddlewareOptions","getHostHeaderPlugin","handlerProtocol","hostHeaderMiddleware","OldCookies","Cookies","api","noConflict","converter","stringifiedAttributes","cookie","jar","getJSON","withConverter","keysToOmit","keysToOmitSet","useAnimatedProps","useAnimatedStyle","useWorkletCallback","baseToString","AnimatedCall","jsFunction","createAnimatedCall","AuthenticationType","SecurityLevel","canUseEventListeners","canUseViewport","isAsyncDebugging","AwsCrc32","Crc32","crc32","tslib_1","util_1","data_1","data_1_1","lookupTable","uint32ArrayFrom","aws_crc32_1","__decorate","decorators","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","__spreadArrays","il","jl","__await","__asyncGenerator","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__importDefault","__classPrivateFieldGet","privateMap","__classPrivateFieldSet","fixObservableSubclass","subclass","H","K","isPrime","sqrtN","factor","getFractionalBits","nPrime","SHA256","_hash","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","t1","nBitsTotal","nBitsLeft","hydrate","domHydrate","domRender","readCookie","cleanValue","cleanupCookieValue","doNotParse","isParsingCookie","changeListeners","HAS_DOCUMENT_COOKIE","parseCookies","_updateBrowserValues","parseOptions","_emitChange","getAll","name_1","finalOptions","removeChangeListener","UniversalStorage","getLocalItem","getUniversalItem","removeLocalItem","removeUniversalItem","setLocalItem","setUniversalItem","launchUri","windowProxy","dispatchAuthEvent","OAuth","cognitoClientId","scopes","_urlOpener","urlOpener","_cognitoClientId","isValidScopes","_scopes","oauthSignIn","customState","Cognito","generatedState","_generateState","padStart","sessionStorage","private_key","pkce_key","_generateRandom","code_challenge","_generateChallenge","scopesString","redirect_uri","response_type","client_id","identity_provider","code_challenge_method","_handleCodeFlow","currentUrl","currentUrlPathname","redirectSignInPathname","oAuthTokenEndpoint","code_verifier","oAuthTokenBody","access_token","refresh_token","id_token","pairings","accum","clientID","redirectUri","ouath_pkce_key","grant_type","_handleImplicitFlow","handleAuthResponse","urlParams","error_description","_validateState","savedState","oauth_state","returnedState","oAuthLogoutEndpoint","signout_uri","redirectSignOut","returnTo","logout_uri","oAuth","_base64URL","_bufferToString","CHARSET","AuthError","authErrorMessages","NoUserPoolError","noConfig","DEFAULT_MSG","missingAuthConfig","emptyUsername","EMPTY_USERNAME","invalidUsername","INVALID_USERNAME","emptyPassword","EMPTY_PASSWORD","emptyCode","EMPTY_CODE","signUpError","SIGN_UP_ERROR","noMFA","NO_MFA","invalidMFA","INVALID_MFA","emptyChallengeResponse","EMPTY_CHALLENGE","noUserSession","NO_USER_SESSION","deviceConfig","DEVICE_CONFIG","NETWORK_ERROR","autoSignInError","AUTOSIGNIN_ERROR","AuthClass","userPool","oAuthFlowInProgress","autoSignInInitiated","currentCredentials","currentUserCredentials","conf","userPoolWebClientId","cookieStorage","identityPoolId","mandatorySignIn","refreshHandlers","identityPoolRegion","_isValidAuthStorage","ssr","_storageSync","userPoolData","cognitoHostedUIConfig","awsCognito","cognitoAuthParams","_oAuthHandler","usedResponseUrls_1","urlListener","_handleAuthResponse","isTrueStorageValue","AutoSignInError","restOfAttrs","rejectNoUserPool","autoSignIn","autoSignInValidationData","autoSignInClientMetaData","phone_number","rejectAuthError","SignUpError","attrs_1","validationDataObject_1","handleAutoSignIn","EmptyPassword","EmptyUsername","signInAfterUserConfirmed","signUpVerificationMethod","handleLinkAutoSignIn","handleCodeAutoSignIn","listenEvent","autoSignInPollingIntervalId","createCognitoUser","authCallbacks","confirmSignUp","EmptyCode","resendSignUp","signIn","usernameOrSignInOpts","pw","InvalidUsername","signInWithPassword","signInWithoutPassword","currentUser","currentUserPoolUser","challengeParam","pendingSignIn","getPreferredMFA","cleanUpError_1","isSessionInvalid","cleanUpInvalidSession","_getMfaTypeFromUserData","preferredMFA","PreferredMfaSetting","mfaList","UserMFASettingList","_getUserData","cleanUpError_2","setPreferredMFA","mfaMethod","totpMfaSettings","currentMFAType","PreferredMfa","Enabled","InvalidMFA","NoMFA","cleanUpError_3","disableSMS","enableSMS","setupTOTP","secretCode","verifyTotpToken","challengeAnswer","confirmSignIn","e_3","completeNewPassword","e_4","EmptyChallengeResponse","deleteUserAttributes","attributeNames","userSession","e_5","isSignedInHostedUI","user_1","cleanUpError_4","cleanCachedItems","oAuthSignOutRedirect","updateUserAttributes","verifiedContact","attributesToObject","unverified","verified","isErrorWithMessage","isTokenRevokedError","isRefreshTokenRevokedError","isUserDisabledError","isUserDoesNotExistError","isRefreshTokenExpiredError","isOAuthInProgress","timeoutId","hostedUISignCallback","cleanUpError_5","cleanUpError_6","currentAuthenticatedUser","federatedUser","e_7","federatedInfo","e_8","currentSession","NoUserSession","cleanUpError_7","e_9","refreshFederatedToken","verifyUserAttribute","verifyUserAttributeSubmit","verifyCurrentUserAttribute","verifyCurrentUserAttributeSubmit","cognitoIdentitySignOut","e_10","cleanUpError_8","oAuthSignOutRedirectOrReject","oAuthSignOutAndResolve","oldPassword","forgotPasswordSubmit","currentUserInfo","userAttrs","e_12","getCredSource","federatedSignIn","providerOrOptions","loggedInUser","identity_id","expires_at","customProvider","hasCodeOrError","hasTokenOrError","isCustomStateIncluded","replaceState","essentialCredentials","authenticated","isTruthyString","noUserPoolErrorHandler","NoConfig","MissingAuthConfig","rememberDevice","currUser","DeviceConfig","NetworkError","fetchDevices","deviceList","Devices","device","deviceName","DeviceAttributes","gestureHandlerEventSubscription","gestureHandlerStateChangeEventSubscription","gestureStateManagers","lastUpdateEvent","isStateChangeEvent","isTouchEvent","GestureStateManager","oldHandler","stopListening","DeviceEventEmitter","defaultOffset","createTextShadowValue","textShadowOffset","radius","boxShadowValue","textShadowValue","textShadow","UNINITIALIZED","evalNode","JSReanimated","_Object$keys$reduce","rawStyles","dashedKey","previousStyle","currentStyle","nodejsCustomInspectSymbol","getLocation","lineRegexp","isNonEmptyArray","Base64","_map","base64Chars","triplet","paddingChar","base64Str","base64StrLength","reverseMap","_reverseMap","paddingIndex","bits1","bits2","bitsCombined","parseLoop","getScaledAssetPath","AssetSourceResolver","pickScale","serverUrl","jsbundleUrl","assetServerURL","fromUrl","searchParams","fromSource","__packager_asset","deviceScale","memoize","hasChanged","hexa","rgbArray","alphaHex","_model","_n","_s","sliceIterator","_linear2","_sector2","_ops","accessor","sum","curves","_iteratorNormalCompletion","_didIteratorError","_iteratorError","enhance","sector","resolveAwsAuthConfig","normalizedCreds","normalizeProvider","getSkewCorrectedDate","awsAuthMiddleware","dateHeader","serverTime","newServerTime","awsAuthMiddlewareOptions","getAwsAuthPlugin","createCSSStyleSheet","ShadowRoot","insertBefore","createOrderedCSSStyleSheet","group","groups","selectors","cssRule","selectorText","groupPattern","decodeGroupRule","getSelectorText","sheetInsert","orderedGroups","getOrderedGroups","nextGroupIndex","nextGroup","isInserted","insertRule","insertRuleAt","groupNumber","previousStart","groupValue","markerRule","encodeGroupRule","selectorPattern","roots","sheets","initialRules","getRootNode","initialSheet","PortalManager","portals","PortalContext","PortalHost","unmount","setManager","arrayLikeToArray","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","transitional","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","XMLHttpRequest","getDefaultAdapter","stringifySafely","transformResponse","strictJSONParsing","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Cancel","__CANCEL__","util","xmlNode","toNumber","attrNodeName","textNodeName","ignoreNameSpace","allowBooleanAttributes","parseAttributeValue","trimValues","cdataTagName","cdataPositionChar","numParseOptions","leadingZeros","attrValueProcessor","attrName","stopNodes","alwaysCreateTextNode","processTagValue","resolveNameSpace","tagname","shouldParse","newval","attrsRegx","buildAttributesMap","attrStr","attrCollection","closingIndexForOpeningTag","attrBoundary","tagExp","ch","findClosingIndex","xmlData","errMsg","closingIndex","getTraversalObj","xmlObj","textData","closeIndex","colonIndex","attrsMap","childNode","addChild","separatorIndex","shouldBuildAttributesMap","isSymbol","BAD_CONFIG_MESSAGE","INIT_REQUIRED_MESSAGE","REFRESH_POLL_AGE_SECONDS","DRAFT_POLL_PATH","POLL_PATH","QA_DOMAIN_SUFFIX","WEBVIEW_ORIGIN_WHITELIST","ERROR_PREFIX","TOP_LEVEL_DOMAIN","DEFAULT_URL_SCHEME","API_BASE_URL","CanceledError","ERR_CANCELED","longPressGestureHandlerProps","flingGestureHandlerProps","prepareAnimation","lastAnimation","lastValue","callStart","runAnimations","animationsActive","allFinished","styleUpdater","newValues","oldValues","hasAnimations","isAnimationCancelled","isAnimationRunning","jestStyleUpdater","makeViewsRefSet","makeViewDescriptorsSet","adaptersArray","adaptersHash","remoteState","sharableViewDescriptors","rebuildsharableViewDescriptors","updaterFn","checkSharedValueUsage","progressBackgroundColor","backupFetch","createHttpLink","linkOptions","preferredFetch","useGETForQueries","includeUnusedVariables","linkConfig","chosenURI","getContext","clientAwarenessHeaders","clientAwareness","contextHeaders","contextConfig","unusedNames_1","_controller","newURI","setContext","selectURI","fallbackURI","contextURI","createSignalIfSupported","rewriteURIForGET","addQueryParam","serializedVariables","serializedExtensions","preFragment","fragmentStart","queryParamsPrefix","parseAndCheckHttpResponse","bodyText","prefixCounts","fontConfig","thin","unmountComponentAtNode","isScreenReaderEnabled","prefersReducedMotionMedia","AccessibilityInfo","isReduceMotionEnabled","setAccessibilityFocus","reactTag","announceForAccessibility","announcement","Share","share","createSvgCircle","cx","cy","ActivityIndicator","_props$animating","animating","_props$hidesWhenStopp","hidesWhenStopped","_props$size","viewBox","stroke","indicatorSizes","animationPause","animationPlayState","small","large","createExtraStyles","MemoedTouchableHighlight","extraStyles","setExtraStyles","LogBox","ignoreLogs","ignoreAllLogs","uninstall","install","Title","isAnimatedValue","surfaceColor","calculateColor","overlayTransparency","elevationOverlayTransparency","1","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","SHADOW_COLOR","Colors","layer","indicatorColor","indicatorSize","startRotation","isInteraction","stopRotation","busy","frameIndex","layerStyle","viewportStyle","offsetStyle","lineStyle","AnimatedPressable","Pressable","ANDROID_SUPPORTS_RIPPLE","PlatformPressable","android_ripple","pressOpacity","animateTo","HeaderTitle","HeaderBackground","card","Background","Caption","GestureHandlerRootView","GestureState","HeaderContainer","scenes","getPreviousScene","getFocusedRoute","onContentHeightChange","parentHeaderBack","HeaderBackContext","scene","headerMode","headerShown","headerTransparent","previousScene","headerBack","getHeaderTitle","previousDescriptor","nextDescriptor","previousHeaderShown","previousHeaderMode","nextHeaderlessScene","currentHeaderShown","currentHeaderMode","nextHeaderlessGestureDirection","isHeaderStatic","styleInterpolator","findLastIndex","getInvertedMultiplier","getDistanceForDirection","multiplier","Screens","MaybeScreenContainer","MaybeScreen","ModalStatusBarManager","darkTheme","overlapping","setOverlapping","flattenedStyle","darkContent","setFill","setPointerEvents","page","Card","isCurrentlyMounted","isClosing","isSwiping","onOpen","onClose","onTransition","getAnimateToValue","lastToValue","setPointerEventsEnabled","handleStartInteraction","pendingGestureCallback","handleEndInteraction","interactionHandle","handleGestureStateChange","onGestureBegin","onGestureCanceled","onGestureEnd","gestureVelocityImpact","getInterpolatedStyle","getCardAnimation","interpolationIndex","insetTop","insetRight","insetBottom","insetLeft","swiping","gestureActivationCriteria","gestureResponseDistance","minOffsetY","minOffsetX","overlayEnabled","shadowEnabled","gestureEnabled","pageOverflowEnabled","headerDarkContent","customContainerStyle","contentStyle","interpolationProps","interpolatedStyle","handleGestureEvent","isTransparent","getIsModalPresentation","shadowHorizontal","shadowLeft","shadowRight","shadowVertical","shadowTop","shadowBottom","hasAbsoluteFloatHeader","headerHeight","onHeaderHeightChange","isParentHeaderShown","isNextScreenTransparent","detachCurrentScreen","onCloseRoute","onOpenRoute","onGestureCancel","onTransitionEnd","onTransitionStart","renderHeader","renderScene","safeAreaInsetBottom","safeAreaInsetLeft","safeAreaInsetRight","safeAreaInsetTop","parentHeaderHeight","previouslyFocusedTextInputRef","startTimestampRef","keyboardTimeoutRef","clearKeyboardTimeout","onPageChangeStart","currentlyFocusedInput","onPageChangeConfirm","onPageChangeCancel","useKeyboardManager","keyboardHandlingEnabled","backTitle","presentation","animationEnabled","cardOverlay","cardOverlayEnabled","cardShadowEnabled","FALLBACK_DESCRIPTOR","getInterpolationIndex","getIsModal","isParentModal","getHeaderHeights","headerStatusBarHeight","headerStyle","isModal","getDistanceFromOptions","getProgressFromGesture","CardStack","handleLayout","headerHeights","handleHeaderLayout","getPreviousRoute","previousRoute","SafeAreaProviderCompat","initialMetrics","closingRouteKeys","detachInactiveScreens","focusedHeaderHeight","isFloatHeaderAbsolute","activeScreensLimit","detachPreviousScreen","floatingHeader","floating","absolute","isScreenActive","sceneForActivity","headerTintColor","freezeOnBlur","flattenedHeaderStyle","openingRouteKeys","oldScene","currentGesture","previousGesture","nextGesture","optionsForTransitionConfig","defaultTransitionPreset","forNoAnimationCard","__memo","GestureHandlerWrapper","StackView","previousRoutes","previousDescriptors","replacingRouteKeys","handleOpenRoute","handleCloseRoute","handleTransitionStart","handleTransitionEnd","handleGestureStart","handleGestureEnd","handleGestureCancel","previousFocusedRoute","nextFocusedRoute","isAnimationEnabled","animationTypeForReplace","getAnimationTypeForReplace","useTransitionProgress","TransitionProgressContext","isSearchBarAvailableForCurrentPlatform","executeNativeBackPress","ENABLE_SCREENS","enableScreens","shouldEnableScreens","screensEnabled","enableFreeze","NativeScreen","activityState","InnerScreen","ScreenContext","ScreenContainer","NativeScreenContainer","NativeScreenNavigationContainer","ScreenStack","FullWindowOverlay","ScreenStackHeaderBackButtonImage","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenStackHeaderConfig","SearchBar","ScreenStackHeaderSubview","shouldUseActivityState","RootTagContext","AppContainer","WrapperComponent","innerView","appContainer","rootTag","wrapperComponentProvider","runnables","componentProviderInstrumentationHook","AppRegistry","appKey","appParameters","getApplication","componentProvider","RootComponent","initialProps","dangerouslySetInnerHTML","__html","shouldHydrate","renderFn","renderApplication","registerRunnable","registerComponent","hook","HeaderSegment","leftLabelLayout","setLeftLabelLayout","titleLayout","setTitleLayout","handleTitleLayout","handleLeftLabelLayout","onGoBack","headerTitle","headerLeft","headerRight","headerBackImage","headerBackTitle","headerBackTitleVisible","headerTruncatedBackTitle","headerBackAccessibilityLabel","headerBackTestID","headerBackAllowFontScaling","headerBackTitleStyle","headerTitleContainerStyle","headerLeftContainerStyle","headerRightContainerStyle","headerBackgroundContainerStyle","customHeaderStyle","defaultHeight","backImage","truncatedLabel","onLabelLayout","screenLayout","previousTitle","useSafeAreaInsets","debounce","TouchHistoryMath","centroidDimension","touchesChangedAfter","isXAxis","ofCurrent","oneTouchData","touchTrack","noCentroid","currentCentroidXOfTouchesChangedAfter","currentCentroidYOfTouchesChangedAfter","previousCentroidXOfTouchesChangedAfter","previousCentroidYOfTouchesChangedAfter","currentCentroidX","currentCentroidY","PanResponder","_initializeGestureState","gestureState","moveX","moveY","_accountsForMovesUpTo","_updateGestureStateOnMove","movedAfter","prevX","prevY","nextDX","nextDY","shouldCancelClick","stateID","panHandlers","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponderCapture","clearInteractionTimeout","onPanResponderGrant","onShouldBlockNativeResponder","onPanResponderReject","onPanResponderRelease","setInteractionTimeout","onPanResponderStart","onPanResponderMove","onPanResponderEnd","onPanResponderTerminate","onPanResponderTerminationRequest","getInteractionHandle","PortalConsumer","checkManager","Portal","forceTouchGestureHandlerProps","ForceTouchFallback","forceTouchAvailable","AnimatedCallFunc","_params","_previousCallID","beginContext","endContext","createAnimatedCallFunc","AnimatedFunction","createAnimatedFunction","processIDRefList","idRefList","pointerEventsStyles","auto","dataProp","dataName","dataValue","_StyleSheet","className","inlineStyle","nativeModule","_nativeModule","_this$_nativeModule","_this$_nativeModule2","_this$_nativeModule3","_this$_nativeModule4","MutableValue","MUTABLE_ID","_setter","_triggerListener","__reanimatedModuleProxy","installTurboModule","InnerNativeModule","checkVersion","valueSetter","sensorId","eventHash","OperationData","previousOptions","storePrevious","refreshClient","isNew","verifyDocumentType","WebCryptoSha256","Ie11Sha256","ie11Sha256_1","Sha256","webCryptoSha256_1","calculateBodyLength","MissingFieldError","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","validateArrayFormatSeparator","removeHash","hashStart","queryStart","parseNumbers","parseBooleans","arrayFormat","arrayFormatSeparator","formatter","accumulator","isEncodedArray","arrayValue","parserForArrayFormat","keysSorter","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","parseUrl","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","getHash","exclude","exclusionFilter","useIsomorphicLayoutEffect","latestCallback","baseAssignValue","baseForOwn","baseIteratee","ThemeContext","EASING","Menu","rendered","menuLayout","anchorLayout","opacityAnimation","scaleAnimation","menu","isCoordinate","show","focusableNode","querySelector","backHandlerSubscription","handleDismiss","dimensionsSubscription","handleKeypress","windowLayout","measureMenuLayout","measureAnchorLayout","attachListeners","focusFirstDOMNode","updateVisibility","overlayAccessibilityLabel","additionalVerticalValue","scaleTransforms","positionTransforms","scrollableMenuHeight","shadowMenuContainerStyle","positionStyle","wrapper","onAccessibilityEscape","shadowMenuContainer","getDerivedStateFromProps","MenuItem","APPROX_STATUSBAR_HEIGHT","_oEmbed","getYoutubeMeta","_constants","PLAYER_STATES_NAMES","PLAYER_ERROR_NAMES","_YoutubeIframe","_default","StyleContext","isTextInputFocused","forceFocus","IconAdornment","topPosition","side","contextState","TextInputIcon","forceTextInputFocus","onPressWithFocusControl","iconButton","AdornmentType","AdornmentSide","InputMode","AffixContext","AffixAdornment","affix","maxFontSizeMultiplier","TextInputAffix","getAdornmentConfig","adornmentConfig","adornment","isValidElement","Affix","getAdornmentStyleAdjustmentForNativeInput","leftAffixWidth","rightAffixWidth","inputOffset","isLeftSide","inputModeAdornemntOffset","Outlined","ADORNMENT_OFFSET","paddingKey","captalize","isAffix","marginKey","mergedStyles","TextInputAdornment","onAffixChange","inputAdornmentComponent","labelContainer","InputLabel","parentState","labelBackground","labelProps","onLayoutAnimatedText","hasActiveOutline","placeholderStyle","baseLabelTranslateX","baseLabelTranslateY","placeholderOpacity","wiggleOffsetX","labelScale","paddingOffset","placeholderColor","errorColor","labelTranslationXOffset","labelTranslationX","labeled","labelLayout","LabelBackground","hasFocus","outlinedLabel","calculateLabelTopPosition","labelHeight","optionalPadding","customHeight","calculateInputHeight","finalHeight","calculatePadding","calculateTextAreaPadding","calculateInputPadding","dense","isAndroid","refFontSize","interpolatePlaceholder","calculateFlatAffixTopPosition","affixHeight","calculateOutlinedIconAndAffixTopPosition","labelYOffset","TextInputOutlined","inputTextColor","outlineColor","selectionColor","customOutlineColor","underlineColor","activeOutlineColor","innerRef","onLeftAffixLayoutChange","onRightAffixLayoutChange","fontSizeStyle","viewStyle","labelWidth","labelHalfWidth","labelHalfHeight","inputHeight","paddingSettings","inputOutlinedDense","inputOutlined","pad","paddingOut","fontHeight","refFontHeight","adjustPaddingOut","leftLayout","rightLayout","leftAffixTopPosition","rightAffixTopPosition","iconTopPosition","adornmentStyleAdjustmentForNativeInput","affixTopPosition","adornmentProps","underlineColorAndroid","outline","Outline","TextInputFlat","activeUnderlineColor","isPaddingHorizontalPassed","ADORNMENT_SIZE","calculateFlatInputHorizontalPadding","underlineColorCustom","Flat","minInputHeight","MIN_HEIGHT","inputFlatDense","inputFlat","paddingFlat","topResult","bottomResult","adjustPaddingFlat","flatHeight","densePatchContainer","patchContainer","Underline","underline","errorProp","isControlled","validInputValue","setPlaceholder","uncontrolledValue","setUncontrolledValue","setLabelLayout","setLeftLayout","setRightLayout","handleFocus","handleBlur","handleChangeText","handleLayoutAnimatedText","ExpoStatusBar","EmitterSubscription","_EventSubscription2","_EventSubscription","EventSubscriptionVendor","_subscriptionsForType","subscriptionsForType","sparseFilterPredicate","addSubscription","removeAllSubscriptions","getSubscriptionsForType","loggerMiddleware","outputWithoutMetadata","loggerMiddlewareOptions","getLoggerPlugin","invalidProvider","isWebColor","contentLengthMiddlewareOptions","getContentLengthPlugin","contentLengthMiddleware","parsedUA","os","FUNC_ERROR_TEXT","PLACEHOLDER","wrapFlags","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","numberTag","regexpTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsOctal","reLatin","reNoMatch","reUnescapedString","rsComboRange","rsComboMarksRange","rsBreakRange","rsMathOpRange","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","reOptMod","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","cloneableTags","stringEscapes","freeParseFloat","freeParseInt","nodeIsArrayBuffer","nodeIsDate","nodeIsMap","nodeIsRegExp","isRegExp","nodeIsSet","isSet","arrayAggregator","arrayEach","arrayEachRight","arrayEvery","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayReduce","initAccum","arrayReduceRight","asciiSize","baseProperty","baseFindKey","eachFunc","baseFindIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseTrim","trimmedEndIndex","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","countHolders","deburrLetter","escapeHtmlChar","escapeStringChar","chr","hasUnicode","overArg","replaceHolders","setToPairs","stringSize","unicodeSize","unicodeToArray","asciiToArray","unescapeHtmlChar","runInContext","objectCtorString","oldDash","getPrototype","objectCreate","spreadableSymbol","isConcatSpreadable","symIterator","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeIsFinite","nativeJoin","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","metaMap","realNames","lodash","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","arraySample","baseRandom","arraySampleSize","shuffleSelf","copyArray","baseClamp","arrayShuffle","assignMergeValue","baseAggregator","baseEach","baseAssign","copyObject","baseAt","lower","upper","isDeep","isFlat","isFull","initCloneArray","isFunc","cloneBuffer","initCloneObject","getSymbolsIn","copySymbolsIn","keysIn","baseAssignIn","copySymbols","cloneArrayBuffer","cloneDataView","cloneTypedArray","regexp","cloneRegExp","initCloneByTag","subValue","getAllKeysIn","baseConformsTo","baseDelay","baseDifference","isCommon","valuesLength","computed","valuesIndex","templateSettings","createBaseEach","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","baseFilter","baseFlatten","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","castPath","toKey","baseGt","baseHasIn","baseIntersection","arrays","baseInvoke","objStacked","othStacked","baseIsMatch","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","identity","baseMatchesProperty","baseMatches","baseKeysIn","nativeKeysIn","isProto","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isStrictComparable","hasIn","baseMerge","srcIndex","mergeFunc","safeGet","isTyped","isArrayLikeObject","toPlainObject","baseMergeDeep","baseNth","baseOrderBy","iteratees","orders","getIteratee","comparer","baseSortBy","objCriteria","othCriteria","ordersLength","compareAscending","compareMultiple","basePickBy","baseSet","basePullAll","basePullAt","indexes","baseUnset","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","MAX_ARRAY_LENGTH","mid","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseUniq","createSet","seenIndex","baseUpdate","baseWhile","isDrop","baseWrapperValue","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","castRest","castSlice","typedArray","valIsDefined","valIsReflexive","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","createAggregator","initializer","createAssigner","assigner","guard","isIterateeCall","createCaseFirst","methodName","trailing","createCompounder","deburr","createCtor","thisBinding","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","getFuncName","funcName","isLaziable","plant","createHybrid","partialsRight","holdersRight","argPos","ary","arity","isAry","isBind","isBindKey","isFlip","getHolder","holdersCount","newHolders","createRecurry","reorder","createInverter","toIteratee","baseInverter","createMathOperation","createOver","arrayFunc","createPadding","charsLength","toFinite","baseRange","createRelationalOperation","wrapFunc","isCurry","newData","setData","setWrapToString","createRound","precision","toInteger","createToPairs","baseToPairs","createWrap","srcBitmask","newBitmask","isCombo","mergeData","createCurry","createPartial","createBind","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","arrStacked","otherFunc","stubArray","hasFunc","isMaskable","stubFalse","otherArgs","shortOut","reference","details","insertWrapDetails","updateWrapDetails","getWrapDetails","lastCalled","stamp","rand","memoizeCapped","quote","subString","difference","differenceBy","differenceWith","intersection","mapped","intersectionBy","intersectionWith","pullAll","pullAt","unionBy","unionWith","unzip","unzipWith","without","xor","xorBy","xorWith","zip","zipWith","chain","interceptor","wrapperAt","countBy","findLast","forEachRight","groupBy","invokeMap","keyBy","bindKey","WRAP_BIND_FLAG","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","defer","memoized","overArgs","funcsLength","partialRight","rearg","gt","gte","lt","lte","iteratorToArray","remainder","toLength","isBinary","assignIn","assignInWith","assignWith","at","propsIndex","propsLength","defaultsDeep","mergeWith","invert","invertBy","invoke","CLONE_DEEP_FLAG","basePick","toPairs","toPairsIn","camelCase","word","capitalize","upperFirst","kebabCase","lowerFirst","snakeCase","startCase","upperCase","hasUnicodeWord","unicodeWords","asciiWords","bindAll","methodNames","flow","flowRight","methodOf","mixin","over","overEvery","overSome","basePropertyDeep","rangeRight","augend","addend","multiplicand","minuend","subtrahend","castArray","conforms","baseConforms","curry","curryRight","drop","dropRight","dropRightWhile","dropWhile","baseFill","flatMapDeep","flatMapDepth","flattenDeep","flattenDepth","flip","fromPairs","functions","functionsIn","mapKeys","mapValues","matchesProperty","nthArg","omitBy","orderBy","propertyOf","pullAllBy","pullAllWith","sampleSize","setWith","shuffle","sortedUniq","sortedUniqBy","spread","tail","take","takeRight","takeRightWhile","takeWhile","tap","throttle","toPath","isArrLike","unary","uniq","uniqBy","uniqWith","updateWith","valuesIn","zipObject","zipObjectDeep","entriesIn","cloneDeep","cloneDeepWith","cloneWith","conformsTo","defaultTo","escapeRegExp","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","inRange","baseInRange","isElement","isEqual","isEqualWith","isMatch","isMatchWith","isNil","isSafeInteger","isWeakMap","isWeakSet","strictLastIndexOf","maxBy","mean","meanBy","minBy","stubObject","stubString","stubTrue","nth","padEnd","radix","reduceRight","sample","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sumBy","template","isEscaping","isEvaluating","imports","importsKeys","importsValues","reDelimiters","evaluate","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","times","toLower","toSafeInteger","toUpper","trimEnd","trimStart","omission","newEnd","uniqueId","eachRight","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","isRight","iterLength","takeCount","iterIndex","commit","isAvailableAsync","requestReview","storeUrl","appStoreUrl","playStoreUrl","hasAction","CSSTransitions","WebkitTransition","MozTransition","MSTransition","OTransition","NativeSafeAreaProvider","onInsetsChange","transitionDelay","getInset","createContextElement","getSupportedTransitionEvent","_supportedTransitionEvent","_supportedEnv","getSupportedEnv","SafeAreaInsetsContext","SafeAreaFrameContext","SafeAreaProvider","initialSafeAreaInsets","others","parentInsets","parentFrame","setInsets","setFrame","nextFrame","nextInsets","NO_INSETS_ERROR","safeArea","useSafeAreaFrame","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","fallbackWindow","locateWindow","_listenerCount","__expo_module_name__","EXReactNativeEventEmitter","addProxiedListener","removeProxiedListeners","_eventEmitter","nativeEmitterSubscription","removedListenerCount","colorNames","swizzle","reverseNames","cs","hexDouble","hexAlpha","i2","hwba","GetIntrinsic","callBound","$TypeError","$WeakMap","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","$wm","$m","$o","listGet","listHas","listSet","$SyntaxError","SyntaxError","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasProto","getProto","needsEval","INTRINSICS","AggregateError","Atomics","BigInt","BigInt64Array","BigUint64Array","decodeURI","eval","EvalError","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","URIError","WeakRef","errorProto","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","$exec","getBaseIntrinsic","allowMissing","intrinsicName","doEval","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","implementation","percentTwenties","Format","formatters","RFC1738","RFC3986","checkFetcher","fetcher","logger_1","rootLogger","isOptionResponse","isConfig","isAnalyticsParameters","isAnalyticsEvent","isCreatePollResult","EmbeddedMessageEvent","PollUrlParams","EmbeddedState","__1","schemaValidation_1","validateProperty","PropertyType","isDomainConfig","domainConfig","environment","Environment","isSubdomainConfig","DomainConfigType","subdomain","constants_1","transitionalDefaults","toFormData","isObjectPayload","_FormData","ERR_BAD_RESPONSE","verification","isPotentiallyValid","isCurrentYear","maxElapsedYear","currentYear","numericValue","twoDigitYear","DEFAULT_BASE_URL","CUSTOM_USER_AGENT","PLAYER_ERROR","PLAYER_STATES","UNMUTE_MODE","MUTE_MODE","PAUSE_MODE","PLAY_MODE","UNSTARTED","ENDED","PLAYING","BUFFERING","VIDEO_CUED","0","INVALID_PARAMETER","HTML5_ERROR","VIDEO_NOT_FOUND","EMBED_NOT_ALLOWED","100","101","150","LocalState","resolvers","fragmentMatcher","addResolvers","setFragmentMatcher","resolverGroup","setResolvers","getResolvers","runResolvers","remoteResult","onlyRunForcedResolvers","resolveDocument","localResult","getFragmentMatcher","clientQuery","serverQuery","prepareContext","getCacheKey","identify","addExportedVariables","buildRootValueFromCache","exportedVariables","shouldForceResolvers","forceResolvers","mainDefinition","definitionOperation","defaultOperationType","execContext","resolveSelectionSet","resultsToMerge","fieldResult","fragmentResult","aliasedFieldName","aliasUsed","resultPromise","resolverType","resolverMap","resolveSubSelectedArray","destructiveMethodCounts","canUse","wrapDestructiveCacheMethod","cancelNotifyTimeout","QueryInfo","lastRequestId","observableQuery","lastDiff","getDiffOptions","updateWatch","oq","updateLastDiff","setDiff","oldDiff","notifyTimeout","notify","oqListener","fromOptimisticTransaction","shouldNotify","watchOptions","watcher","lastWatch","lastWrite","shouldWrite","dmCount","markResult","cacheWriteBehavior","shouldWriteResult","errorPolicy","performTransaction","overwrite","diffOptions","markReady","markError","ignoreErrors","writeWithErrors","QueryManager","queryDeduplication","onBroadcast","localState","fetchCancelFns","transformCache","queryIdCounter","requestIdCounter","mutationIdCounter","inFlightLinkObservables","mutationStore","_info","stopQueryNoBroadcast","cancelPendingFetches","mutate","optimisticResponse","updateQueries","refetchQueries","awaitRefetchQueries","updateWithProxyFn","onQueryUpdated","keepRootFields","mutationId","mutationStoreValue","generateMutationId","getVariables","markMutationOptimistic","asyncMap","getObservableFromLink","storeResult","markMutationResult","removeOptimistic","cacheWrites","skipCache","dataId","updateQueries_1","currentQueryResult","nextQueryResult","mutationResult","queryVariables","results_1","updateCache","asQuery","modify","DELETE","recordOptimisticTransaction","getQueryStore","transformed","transformDocument","forLink","transformForLink","cacheEntry_1","defaultVars","watchQuery","generateRequestId","stopQueryInStore","stopQueryInStoreNoBroadcast","clearStore","discardWatches","getObservableQueries","queryNamesAndDocs","legacyQueryOptions","getQuery","reFetchObservableQueries","includeStandby","observableQueryPromises","makeObservable","observablePromise_1","getLocalState","deduplication","inFlightLinkObservables_1","forceFetch","byVariables_1","varJson_1","Concast","getResultsFromLink","hasErrors","aqr","normalized","fromVariables","fetchQueryByPolicy","includedQueriesById","batch","onWatchUpdated","refetchWritePolicy","oldNetworkStatus","readCache","resultsFromCache","fromData","resultsFromLink","newContext","mergeOptions","ApolloClient","resetStoreCallbacks","clearStoreCallbacks","ssrForceFetchDelay","connectToDevTools","__APOLLO_CLIENT__","clientAwarenessName","clientAwarenessVersion","HttpLink","disableNetworkFetches","resetStore","devToolsHookCb","dataWithOptimisticResults","readQuery","readFragment","writeFragment","__actionHookForDevTools","__requestRaw","onResetStore","onClearStore","obsQuery","restore","serializedState","setLocalStateFragmentMatcher","setLink","newLink","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","KNOWN_STATICS","caller","callee","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","ignored","globalHost","cloneDeepHelper","copy_1","copy_2","CheckboxIOS","checkedColor","CheckboxAndroid","scaleAnim","isFirstRendering","checkboxColor","uncheckedColor","fillContainer","Checkbox","CheckboxItem","checkbox","checkboxProps","isLeading","CheckboxComponent","Android","IOS","capacityInBytes","itemMaxSize","defaultTTL","defaultPriority","warningThreshold","getByteLength","getCurrTime","_isInteger","CacheObject","StorageCache","cacheCurSizeKey","fillCacheItem","visitedTime","byteSize","BrowserStorageCache","BrowserStorageCacheClass","cacheConfig","_decreaseCurSizeInBytes","amount","curSize","getCacheCurSize","_increaseCurSizeInBytes","_refreshItem","prefixedKey","_isExpired","_removeItem","itemSize","_setItem","setItemErr","_sizeToPop","spaceItemNeed","cacheThresholdSpace","_isCacheFull","_findValidKeys","keyInCache","_popOutItems","sizeToPop","remainedSize","cacheItemOptions","keysToRemove","batchToRemove","waitForInsertSync","waitForRemoveSync","_Animation","_config$overshootClam","_config$restDisplacem","_config$restSpeedThre","_config$velocity","_config$velocity2","_config$delay","_config$isInteraction","_config$iterations","_config$stiffness","_config$damping","_config$mass","_overshootClamping","_restDisplacementThreshold","_restSpeedThreshold","_initialVelocity","_lastVelocity","_toValue","__iterations","_stiffness","_damping","_mass","_config$bounciness","_config$speed","springConfig","SpringConfig","fromBouncinessAndSpeed","_config$tension","_config$friction","_springConfig","fromOrigamiTensionAndFriction","_this$_initialVelocit","__active","_startPosition","_lastPosition","_onUpdate","_lastTime","_frameTime","internalState","getInternalState","lastPosition","lastVelocity","__startNativeAnimation","_timeout","envelope","_envelope","_animationFrame","_easeInOut","_config$easing","_config$duration","_easing","_duration","numFrames","_fromValue","_startTime","printLocation","printSourceLocation","sourceLocation","firstLineColumnOffset","whitespace","lineIndex","lineOffset","lineNum","columnOffset","columnNum","locationStr","locationLine","subLineIndex","subLineColumnNum","subLines","printPrefixedLines","subLine","existingLines","padLen","safeGlobal","needToRemove","NODE_ENV","contextKey","getApolloContext","subscription_handshake_link_1","CONTROL_EVENTS_KEY","core_1","http_1","utilities_1","non_terminating_link_1","realtime_subscription_handshake_link_1","createSubscriptionHandshakeLink","infoOrUrl","theResultsFetcherLink","resultsFetcherLink","subscriptionLinks","NonTerminatingLink","_forward","controlEvents","SubscriptionHandshakeLink","AppSyncRealTimeSubscriptionHandshakeLink","graphqlOperation","assert_1","computeNextBackoffInterval","initialBackoff","previousRetryCount","randomizationFactor","minBackoff","maxBackoff","nextBackoff","jitterFactor","assertPath","normalizeStringPosix","allowAboveRoot","lastSegmentLength","lastSlash","dots","lastSlashIndex","posix","resolvedAbsolute","trailingSeparator","joined","fromStart","fromEnd","fromLen","toStart","toLen","lastCommonSep","fromCode","_makeLong","dirname","hasRoot","matchedSlash","basename","extIdx","firstNonSlashEnd","extname","startDot","startPart","preDotState","pathObject","sep","_format","win32","MediaTypeInput","All","Images","Videos","launchImageLibraryAsync","mediaTypes","allowsMultipleSelection","openFileBrowserAsync","canceled","launchCameraAsync","getCameraPermissionsAsync","permissionGrantedResponse","requestCameraPermissionsAsync","getMediaLibraryPermissionsAsync","_writeOnly","requestMediaLibraryPermissionsAsync","mediaTypeFormat","targetFile","returnRaw","MouseEvent","DEPRECATED_RESULT_KEYS","mergeDeprecatedResult","firstAsset","deprecatedResult","writeOnly","imagePickerMethod","allowsEditing","toPrimitive","RE","stackClear","stackDelete","stackGet","stackHas","stackSet","baseIsTypedArray","REACT_NATIVE_VERSION","Wrap","AnimatedClockTest","clockNode","_clockNode","createAnimatedClockTest","AnimatedStartClock","createAnimatedStartClock","AnimatedStopClock","createAnimatedStopClock","AnimatedConcat","createAnimatedConcat","EventType","useAnimatedGestureHandler","_useHandler","onActive","onFinish","useAnimatedReaction","react","useAnimatedRef","useAnimatedScrollHandler","scrollHandlers","onBeginDrag","onEndDrag","onMomentumBegin","onMomentumEnd","useDerivedValue","processor","_animations","firstAnimation","currentAnim","animationIndex","nextAnim","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","makeEmptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","paramsSerializer","serializedParams","hashmarkIndex","isAxiosError","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","onCanceled","requestData","requestHeaders","Authorization","btoa","fullPath","baseURL","responseHeaders","getAllResponseHeaders","responseText","statusText","onreadystatechange","responseURL","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","setRequestHeader","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","rnds8","rnds","byteToHex","bth","isEmptyData_1","util_utf8_browser_1","util_locate_window_1","keyOperation","subtle","importKey","toArrayBufferView","SHA_256_HMAC_ALGO","oncomplete","getKeyPromise","keyData","toHash","EMPTY_DATA_SHA_256","SHA_256_HASH","MAX_HASHABLE_LENGTH","KEY","DIGEST_LENGTH","numToUint8","convertToBuffer_1","numToUint8_1","uint32ArrayFrom_1","catchFn","activeCallbackCount","promiseQueue","makeCallback","examiner","delegate","both","caught","graphQLResultHasError","isPromiseLike","addCount","latest","deliverLastMessage","nextOrError","quietly","called","Headline","cssKeywords","reverseKeywords","hsv","cmyk","xyz","lab","lch","ansi16","ansi256","hcg","apple","rdif","gdif","bdif","diffc","currentClosestKeyword","currentClosestDistance","t3","smin","lmin","sl","vmin","wh","bl","z2","hr","ansi","mult","rem","mg","pure","isMergeableObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getKeys","getEnumerableOwnPropertySymbols","mergeObject","destination","customMerge","getMergeFunction","arrayMerge","sourceIsArray","Subheading","hexTable","arrayToObject","plainObjects","combine","compacted","compactQueue","decoder","charset","strWithoutPlus","defaultEncoder","$0","maybeMap","allowPrototypes","mergeTarget","targetItem","maybeDeepFreeze","__export","superInit","typedArrayByteLength","moment","symbolMap","numberMap","pluralForm","plurals","pluralize","weekdaysParseExact","suffixes","70","80","50","30","60","90","relativeTimeWithPlural","forms","plural","standalone","lastDigit","last2Digits","monthsParseExact","relativeTimeWithMutation","mutationTable","softMutation","minWeekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","lastNumber","translate","ll","lll","llll","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eraYearOrdinalRegex","$1","$2","40","isUpper","eifelerRegelAppliesToNumber","translateSingular","special","relativeTimeWithSingular","translator","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","numbersNouns","numberNoun","hundred","ten","numberAsNoun","processHoursFunction","nominative","accusative","genitive","useHeaderHeight","Paragraph","iconReverse","compactLabel","uppercaseLabel","buttonColor","touchableStyle","customLabelColor","customLabelSize","reactNativeVersion","PlatformConstants","onTintColor","setColor","thumbTintColor","shown","textHeight","warnOnce","Header","customTitle","headerTitleAlign","headerLeftLabelVisible","headerBackground","titleAllowFontScaling","headerTitleAllowFontScaling","headerTitleStyle","leftContainerStyle","rightContainerStyle","titleContainerStyle","backgroundContainerStyle","headerShadowVisible","headerPressColor","headerPressOpacity","unsafeStyles","safeStyles","leftButton","labelVisible","rightButton","expand","_convert$model","saturation","Masks","_interopRequireWildcard","maskKeys","MaskResolver","maskKey","_react","_maskResolver2","BaseTextComponent","_resolveMaskHandler","_bindProps","maskedText","_getMaskedValue","rawText","includeRawValueInChangeText","getRawValueFor","_maskHandler","_getDefaultValue","_getOptions","xs","plus","minus","_ref42","_ref52","_ref62","_ref72","sumVectors","average","points","onCircle","curve","inclusive","mapObject","setConfig","production","currentConfig","formData","convertValue","parentKey","fullKey","append","parseProtocol","ECONNABORTED","ERR_NETWORK","ETIMEDOUT","ERR_BAD_REQUEST","isAbsoluteURL","combineURLs","requestedURL","cardTypes","add_matching_cards_to_results_1","is_valid_input_type_1","find_best_match_1","clone_1","customCards","cardNames","VISA","MASTERCARD","AMERICAN_EXPRESS","DINERS_CLUB","DISCOVER","JCB","UNIONPAY","MAESTRO","ELO","MIR","HIPER","HIPERCARD","ORIGINAL_TEST_ORDER","testOrder","findType","cardType","getCardPosition","ignoreErrorForNotExisting","isValidInputType","cardConfiguration","addMatchingCardsToResults","bestMatch","findBestMatch","getTypeInfo","removeCard","addCard","existingCardPosition","updateCard","originalObject","clonedCard","changeOrder","currentPosition","resetModifications","isValidForThisYear","currentMonth","Searchbar","clearAccessibilityLabel","clearIcon","customIconColor","onIconPress","searchAccessibilityLabel","keyboardAppearance","MissingIcon","ResourceSavingScene","detached","setHeaderHeight","signInButton","googleSignInButton","signInButtonIcon","auth0SignInButton","facebookSignInButton","amazonSignInButton","oAuthSignInButton","signInButtonContent","formContainer","formSection","formField","formRow","hint","inputLabel","radio","navBar","navRight","nav","navItem","photoPickerButton","photoPlaceholder","photoPlaceholderIcon","actionRow","sectionHeader","sectionHeaderHint","sectionBody","sectionHeaderContent","sectionFooter","sectionFooterPrimaryContent","sectionFooterSecondaryContent","selectInput","strike","strikeContent","toast","toastClose","totpQrcode","sumerianSceneContainer","sumerianScene","loadingOverlay","loadingContainer","loadingLogo","loadingSceneName","loadingBar","loadingBarFill","sceneErrorText","sceneBar","sceneName","sceneActions","actionButton","tooltip","actionIcon","autoShowTooltip","colorSchemeName","reduceMotionEnabled","setReduceMotionEnabled","handleAppearanceChange","preferences","appearanceSubscription","providedTheme","getTheme","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","filterUniqueArray","assignStyle","baseValue","DASH","MS","camelCaseProperty","hyphenateProperty","cssifyDeclaration","cssifyObject","css","isPrefixedProperty","isPrefixedValue","unitlessProperties","prefixedUnitlessProperties","jLen","_property","isUnitlessProperty","unprefixProperty","propertyWithoutPrefix","normalizeProperty","resolveArrayValue","unprefixValue","RadioButtonContext","RadioButtonGroup","isChecked","RadioButtonAndroid","borderAnim","radioAnim","radioColor","radioContainer","dot","RadioButtonIOS","RadioButton","RadioButtonItem","radioButton","radioButtonProps","RadioButtonComponent","CardContent","siblings","CardActions","CardCover","coverStyle","CardTitle","subtitle","subtitleStyle","subtitleNumberOfLines","leftStyle","rightStyle","titles","cardElevation","cardMode","elevationDarkAdaptive","prevDarkRef","prevDark","isAdaptiveMode","runElevationAnimation","pressType","isPressTypeIn","computedElevation","Surface","outlined","innerContainer","Content","Actions","Cover","isIphoneX","dimen","isTVOS","useAnimatedValue","lazyRef","useLazyRef","TOP_INSET","iphoneXStyle","regularStyle","getStatusBarHeight","BOTTOM_INSET","dismissable","visibleRef","setRendered","handleBack","hideModal","showModal","prevVisible","MaskedView","HeaderBackButton","customTintColor","initialLabelWidth","setInitialLabelWidth","handleLabelLayout","iconWithLabel","leftLabelText","labelElement","labelWrapper","iconMaskContainer","iconMask","iconMaskFillerRect","renderLabel","createStyleq","disableCache","disableMix","definedProperties","nextCache","possibleStyle","classNameChunk","cacheEntry","definedPropertiesChunk","weakMap","subStyle","_prop","_isObject2","combinedValue","processedValue","_prefixValue2","_addNewValuesOnly2","_processedValue","_prefixProperty2","_cssInJsUtils","CROSS_FADE_REGEX","grab","grabbing","FILTER_REGEX","_isPrefixedValue2","_isPrefixedValue","alternativeProps","alternativePropList","marginBlockStart","marginBlockEnd","marginInlineStart","marginInlineEnd","paddingBlockStart","paddingBlockEnd","paddingInlineStart","paddingInlineEnd","borderBlockStart","borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth","borderBlockEnd","borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth","borderInlineStart","borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth","borderInlineEnd","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","propertyPrefixMap","multipleValues","dashCaseProperty","_hyphenateProperty2","pLen","prefixMapping","prefixValue","webkitOutput","mozOutput","_capitalizeString2","WebkitTransitionProperty","MozTransitionProperty","Webkit","Moz","_NativeReanimated","_valueSetter","_renderRequested","_mapperRegistry","MapperRegistry","timeProvider","ReanimatedDataMock","performance","maybeRequestRender","_timestampMs","_onRender","timestampMs","needRunOnRender","Mapper","sortedMappers","mappers","updatedSinceLastExecute","_module","updateOrder","mappersById","nodesLen","restNode","outi","outputsLen","resti","restLen","post","postCounter","dfs","postArray","MAPPER_ID","extractMutablesFromArray","markDirty","extractMutables","nextCallbackId","prepareUIRegistry","_frameCallbackRegistry","activeFrameCallbacks","previousFrameTimestamp","runCallbacks","callbackDetails","timeSincePreviousFrame","timeSinceFirstFrame","ReactNoopUpdateQueue","Info","any_blank_count","any_blank_ms","any_blank_speed_sum","mostly_blank_count","mostly_blank_ms","pixels_blank","pixels_sampled","pixels_scrolled","total_time_spent","sample_count","_minSampleCount","_sampleRate","_anyBlankStartTime","_enabled","_mostlyBlankStartTime","_samplesStartTime","_resetData","scrollSpeed","blankTop","firstFrame","blankBottom","bottomEdge","blankness","sampleRate","minSampleCount","getShadowNodeFromRef","TurboModuleRegistry","_config$deceleration","_deceleration","_velocity","isOptionObject","defaultMergeOptions","getEnumerableOwnPropertyKeys","cloneArray","cloneOptionObject","mergeKeys","resultIndex","indices","nodeToJson","xmlToNodeobj","x2xmlnode","givenOptions","validationOption","parseTrueNumberOnly","traversableObj","convertToJson","convertTonimn","convert2nimn","convertToJsonString","j2xParser","parseToNimn","getFirstMatch","getSecondMatch","matchAndReturnConst","getWindowsVersionName","getMacOSVersionName","getAndroidVersionName","getVersionPrecision","compareVersions","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","Bada","BlackBerry","Chrome","Chromium","Electron","Epiphany","Firefox","Focus","Generic","Googlebot","Maxthon","Opera","PhantomJS","Puffin","QupZilla","QQ","QQLite","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","Roku","amazon_silk","bada","blackberry","chrome","chromium","electron","epiphany","firefox","generic","googlebot","google_search","ie","k_meleon","maxthon","mz","naver","opera","opera_coast","phantomjs","puffin","qupzilla","qq","qqlite","safari","sailfish","samsung_internet","seamonkey","sleipnir","swing","tizen","uc","vivaldi","webos","wechat","yandex","tablet","mobile","desktop","tv","WindowsPhone","Windows","MacOS","iOS","WebOS","Linux","ChromeOS","PlayStation4","EdgeHTML","Blink","Trident","Presto","Gecko","WebKit","getParser","getResult","91","_ua","parsedResult","getUA","parseBrowser","getBrowser","getBrowserVersion","getOS","parseOS","getOSName","getOSVersion","getPlatform","parsePlatform","getPlatformType","getEngine","engine","parseEngine","getEngineName","satisfies","isOS","isPlatform","compareVersion","isEngine","92","93","versionName","94","vendor","95","semver","patchIndex","tryParse","v2","s1","s2","n1","n2","sp1","sp2","allowedOperators","operatorResMap","validateOperator","_createTheming","ApolloCache","getFragmentDoc","optimisticId","transaction","gc","rootId","_customSourceTransformer","setCustomSourceTransformer","transformer","resolveAssetSource","defaultAsset","D","G","J","I","O","swipeDirections","swipeConfig","velocityThreshold","directionalOffsetThreshold","gestureIsClickThreshold","isValidSwipe","directionalOffset","GestureRecognizer","_Component","responderEnd","_handlePanResponderEnd","shouldSetResponder","_handleShouldSetPanResponder","_panResponder","_gestureIsClick","swipeDirection","_getSwipeDirection","_triggerSwipeHandlers","onSwipe","onSwipeUp","onSwipeDown","onSwipeLeft","onSwipeRight","SWIPE_LEFT","SWIPE_RIGHT","SWIPE_UP","SWIPE_DOWN","_isValidHorizontalSwipe","_isValidVerticalSwipe","_this$swipeConfig","_this$swipeConfig2","toposort","visited","outgoingEdges","makeOutgoingEdges","nodesHash","makeNodesHash","predecessors","nodeRep","outgoing","uniqueNodes","DropDown","activeTheme","_props$multiSelect","multiSelect","showDropDown","dropDownContainerMaxHeight","dropDownContainerHeight","dropDownStyle","dropDownItemStyle","dropDownItemSelectedStyle","dropDownItemTextStyle","dropDownItemSelectedTextStyle","displayValue","setDisplayValue","_useState3","_useState4","inputLayout","setInputLayout","_labels","_list$find","_label","currentValue","valueIndex","bounces","custom","Divider","disabledColor","estimatedStatusBarHeight","isAnchorCoord","_yield$Promise$all","_yield$Promise$all2","OVERFLOW_BUTTON_TEST_ID","tz","STEP_STATUS","defaultStyles","stepIndicatorSize","currentStepIndicatorSize","separatorStrokeWidth","separatorStrokeUnfinishedWidth","separatorStrokeFinishedWidth","currentStepStrokeWidth","stepStrokeWidth","stepStrokeCurrentColor","stepStrokeFinishedColor","stepStrokeUnFinishedColor","separatorFinishedColor","separatorUnFinishedColor","stepIndicatorFinishedColor","stepIndicatorUnFinishedColor","stepIndicatorCurrentColor","stepIndicatorLabelFontSize","currentStepIndicatorLabelFontSize","stepIndicatorLabelCurrentColor","stepIndicatorLabelFinishedColor","stepIndicatorLabelUnFinishedColor","labelColor","labelSize","labelAlign","currentStepLabelColor","stepIndicatorContainer","stepLabelsContainer","stepContainer","stepLabel","stepLabelItem","stepCount","customStyles","customStylesFromProps","renderCustomStepIndicator","renderStepIndicator","setWidth","setHeight","progressBarSize","setProgressBarSize","setCustomStyles","progressAnim","sizeAnim","staleSizeAnim","borderRadiusAnim","stepPressed","onCurrentPositionChanged","renderStep","stepStyle","indicatorLabelStyle","getStepStatus","stepStatus","stepPosition","animateToPosition","progressBarBackgroundStyle","renderProgressBarBackground","progressBarStyle","renderProgressBar","labelViews","selectedStepLabelStyle","labelFontFamily","renderStepLabels","useLinkTo","linking","fbemitter","ServiceWorkerClass","_logger","_serviceWorker","filePath","serviceWorker","registration","installing","waiting","_registration","_setupListeners","enablePush","publicKey","_publicKey","pushManager","getSubscription","userVisibleOnly","applicationServerKey","_urlB64ToUint8Array","base64String","rawData","atob","outputArray","postMessage","record","useBackButton","useDocumentTitle","useThenable","BottomSheetContext","BottomSheetProvider","BottomSheetInternalContext","BottomSheetInternalProvider","useBottomSheetInternal","unsafe","BottomSheetGestureHandlersContext","BottomSheetModalContext","BottomSheetModalProvider","BottomSheetModalInternalContext","BottomSheetModalInternalProvider","getRefNativeTag","refType","hasNativeTag","GESTURE_SOURCE","SHEET_STATE","SCROLLABLE_STATE","SCROLLABLE_TYPE","ANIMATION_STATE","ANIMATION_SOURCE","ANIMATION_METHOD","KEYBOARD_STATE","WINDOW_HEIGHT","WINDOW_WIDTH","SCREEN_HEIGHT","SCREEN_WIDTH","ANIMATION_EASING","ANIMATION_CONFIGS_ANDROID","ANIMATION_CONFIGS","SCROLLABLE_DECELERATION_RATE_MAPPER","LOCKED","UNLOCKED","MODAL_STACK_BEHAVIOR","KEYBOARD_BEHAVIOR","KEYBOARD_BLUR_BEHAVIOR","KEYBOARD_INPUT_MODE","useScrollEventsHandlersDefault","scrollableRef","scrollableContentOffsetY","animatedSheetState","animatedScrollableState","animatedAnimationState","rootScrollableContentOffsetY","animatedScrollableContentOffsetY","handleOnScroll","EXTENDED","FILL_PARENT","shouldLockInitialPosition","lockPosition","initialContentOffsetY","handleOnBeginDrag","handleOnEndDrag","RUNNING","handleOnMomentumEnd","normalizeSnapPoint","snapPoint","containerHeight","_topInset","_bottomInset","normalizedSnapPoint","point","TIMING","SPRING","getKeyboardAnimationConfigs","workletNoop","resetContext","useGestureHandler","gestureSource","handleOnStart","handleOnActive","handleOnEnd","didStart","gestureHandler","lowerBound","upperBound","deltas","minDelta","useGestureEventsHandlersDefault","animatedPosition","animatedSnapPoints","animatedKeyboardState","animatedKeyboardHeight","animatedContainerHeight","animatedScrollableType","animatedHighestSnapPoint","animatedClosedPosition","enableOverDrag","enablePanDownToClose","overDragResistanceFactor","isInTemporaryPosition","isScrollableRefreshable","initialPosition","initialKeyboardState","isScrollablePositionLocked","highestSnapPoint","SHOWN","lowestSnapPoint","SCROLLABLE","negativeScrollableContentOffset","draggedPosition","clampedPosition","HANDLE","VIEW","resistedPosition","isSheetAtHighestSnapPoint","GESTURE","isScrollable","snapPoints","destinationPoint","KEYBOARD_EVENT_MAPPER","KEYBOARD_SHOW","KEYBOARD_HIDE","DEFAULT_KEYBOARD_BEHAVIOR","DEFAULT_KEYBOARD_BLUR_BEHAVIOR","DEFAULT_KEYBOARD_INPUT_MODE","INITIAL_VALUE","NEGATIVE_INFINITY","INITIAL_CONTAINER_OFFSET","INITIAL_POSITION","useReactiveSharedValue","initialValueRef","valueRef","useBottomSheetGestureHandlers","BottomSheetContainer","containerOffset","topInset","bottomInset","shouldCalculateHeight","containerRef","_width","_height","_pageX","BottomSheetGestureHandlersProvider","gestureEventsHandlersHook","useGestureEventsHandlers","animatedGestureSource","animatedContentGestureState","animatedHandleGestureState","contentPanGestureHandler","CONTENT","scrollablePanGestureHandler","handlePanGestureHandler","BottomSheetBackdropContainer","animatedIndex","BackdropComponent","backdropComponent","indicator","BottomSheetHandle","_indicatorStyle","indicatorStyle","BottomSheetHandleContainer","_internalSimultaneousHandlers","enableHandlePanningGesture","handleHeight","_providedHandleComponent","handleComponent","_providedHandleStyle","handleStyle","_providedIndicatorStyle","handleIndicatorStyle","_providedSimultaneousHandlers","HandleComponent","BottomSheetBackground","BottomSheetBackgroundContainer","_providedBackgroundComponent","backgroundComponent","_providedBackgroundStyle","BackgroundComponent","BottomSheetFooterContainer","FooterComponent","footerComponent","animatedHandleHeight","animatedFooterHeight","animatedKeyboardHeightInContainer","animatedFooterPosition","keyboardHeight","footerTranslateY","BottomSheetDraggableView","gestureType","nativeGestureRef","refreshControlGestureRef","enableContentPanningGesture","panGestureRef","contentMaskContainer","decelerationRate","BottomSheetComponent","BottomSheet","_snapPoints","_snapPoint","usePropsValidator","_providedAnimationConfigs","animationConfigs","_providedIndex","_providedSnapPoints","animateOnMount","_providedStyle","_providedContainerStyle","_providedHandleIndicatorStyle","keyboardBehavior","keyboardBlurBehavior","android_keyboardInputMode","_providedHandleHeight","_providedContainerHeight","_providedContentHeight","contentHeight","_providedContainerOffset","_providedAnimatedPosition","_providedAnimatedIndex","_providedWaitFor","_providedActiveOffsetX","_providedActiveOffsetY","_providedFailOffsetX","_providedFailOffsetY","_providedOnChange","_providedOnClose","_providedOnAnimate","onAnimate","$modal","_animatedContainerHeight","verticalInset","animatedContainerOffset","providedSnapPoints","useNormalizedSnapPoints","closedPosition","animatedSheetHeight","animatedCurrentIndex","animatedNextPosition","animatedNextPositionIndex","isAnimatedOnMount","isContentHeightFixed","isLayoutCalculated","isContainerHeightCalculated","isHandleHeightCalculated","isSnapPointsNormalized","DEFAULT_OVER_DRAG_RESISTANCE_FACTOR","isForcedClosing","previousScrollableRef","animatedScrollableOverrideState","setScrollableRef","removeScrollableRef","useScrollable","shouldHandleKeyboardEvents","keyboardState","keyboardAnimationEasing","keyboardAnimationDuration","temporaryCachedKeyboardEvent","handleKeyboardEvent","showSubscription","hideSubscription","HIDDEN","animationEasing","useKeyboard","animatedAnimationSource","MOUNT","CLOSED","extendedPosition","keyboardHeightInContainer","extendedPositionWithKeyboard","OVER_EXTENDED","OPENED","animatedContentHeight","contentWithKeyboardHeight","adjustedSnapPoints","adjustedSnapPointsIndexes","currentIndex","KEYBOARD","SNAP_POINT_CHANGE","getNextPosition","DEFAULT_ENABLE_CONTENT_PANNING_GESTURE","DEFAULT_ENABLE_OVER_DRAG","handleOnChange","handleOnAnimate","toPoint","toIndex","STOPPED","animateToPositionCompleted","handleSnapToIndex","USER","handleSnapToPosition","handleClose","handleForceClose","handleExpand","handleCollapse","snapToIndex","snapToPosition","collapse","forceClose","internalContextVariables","externalContextVariables","containerAnimatedStyle","contentContainerAnimatedStyle","contentMaskContainerAnimatedStyle","contentMaskContainerStyle","_isLayoutCalculated","_previousResult","_previousSnapPoints","_previousContainerHeight","animationSource","CONTAINER_RESIZE","_keyboardState","_keyboardHeight","_previousKeyboardState","_previousKeyboardHeight","hasActiveGesture","_animatedPosition","_animatedIndex","_animationState","_contentGestureState","_handleGestureState","ACTIONS","INITIAL_STATE","PortalStateContext","PortalDispatchContext","usePortal","hostName","registerHost","REGISTER_HOST","deregisterHost","DEREGISTER_HOST","addUpdatePortal","ADD_UPDATE_PORTAL","portalName","addPortal","updatePortal","removePortal","REMOVE_PORTAL","PortalComponent","_providedName","handleOnMount","_providedHandleOnMount","handleOnUnmount","_providedHandleOnUnmount","handleOnUpdate","_providedHandleOnUpdate","handleOnMountRef","handleOnUnmountRef","handleOnUpdateRef","_handleOnMountRef$cur","_handleOnUnmountRef$c","_handleOnUpdateRef$cu","PortalHostComponent","usePortalState","isDev","reducer","clonedState","PortalProviderComponent","rootHostName","shouldAddRootHost","PortalProvider","BottomSheetModalComponent","stackBehavior","enableDismissOnClose","_providedOnDismiss","bottomSheetProps","useBottomSheetModalInternal","mountSheet","unmountSheet","willUnmountSheet","unmountPortal","bottomSheetRef","currentIndexRef","restoreIndexRef","minimized","forcedDismissed","mounted","resetVariables","handlePresent","handleMinimize","handleRestore","handlePortalOnUnmount","handlePortalRender","handleBottomSheetOnChange","handleBottomSheetOnClose","present","minimize","BottomSheetModal","BottomSheetModalProviderWrapper","sheetsQueueRef","handleMountSheet","_sheetsQueue","sheetIndex","sheetOnTop","currentMountedSheet","willUnmount","handleUnmountSheet","hasMinimizedSheet","minimizedSheet","handleWillUnmountSheet","sheetToBeDismissed","handleDismissAll","dismissAll","BottomSheetRefreshControl","createBottomSheetScrollableComponent","ScrollableComponent","focusHook","scrollEventsHandlersHook","enableFooterMarginAdjustment","overScrollMode","useScrollEventsHandlers","handleOnMomentumBegin","scrollHandler","useScrollHandler","scrollableAnimatedProps","contentOffsetY","refreshable","useFocusHook","handleSettingScrollable","useScrollableSetter","scrollableContent","AnimatedSectionList","RNSectionList","BottomSheetSectionListComponent","SECTIONLIST","BottomSheetSectionList","RNFlatList","BottomSheetFlatListComponent","FLATLIST","BottomSheetFlatList","BottomSheetScrollViewComponent","SCROLLVIEW","BottomSheetScrollView","AnimatedVirtualizedList","RNVirtualizedList","BottomSheetVirtualizedListComponent","VIRTUALIZEDLIST","BottomSheetVirtualizedList","BottomSheetView","containerStylePaddingBottom","BottomSheetTextInputComponent","handleOnFocus","handleOnBlur","BottomSheetTextInput","BottomSheetBackdrop","_providedOpacity","_providedAppearsOnIndex","appearsOnIndex","_providedDisappearsOnIndex","disappearsOnIndex","_providedEnableTouchThrough","enableTouchThrough","pressBehavior","useBottomSheet","handleOnPress","handleContainerTouchability","shouldDisableTouchability","BottomSheetFooter","calcScaler","fromZero","calcBaseHeight","calcHeight","renderHorizontalLines","basePosition","getPropsForBackgroundLines","renderHorizontalLine","verticalLabelsHeightPercentage","renderHorizontalLabels","horizontalLabelRotation","decimalPlaces","formatYLabel","yLabel","yAxisLabel","yAxisSuffix","yLabelsOffset","textAnchor","getPropsForLabels","getPropsForHorizontalLabels","renderVerticalLabels","horizontalOffset","stackedBar","verticalLabelRotation","formatXLabel","xLabel","xAxisLabel","xLabelsOffset","hidePointsAtIndex","fac","getPropsForVerticalLabels","renderVerticalLines","yAxisInterval","renderVerticalLine","renderDefs","backgroundGradientFrom","backgroundGradientTo","useShadowColorFromDataset","fromOpacity","backgroundGradientFromOpacity","toOpacity","backgroundGradientToOpacity","fillShadowGradient","chartConfig","fillShadowGradientOpacity","fillShadowGradientFrom","fillShadowGradientFromOpacity","fillShadowGradientFromOffset","fillShadowGradientTo","fillShadowGradientToOpacity","fillShadowGradientToOffset","gradientUnits","stopColor","dataset","propsForBackgroundLines","propsForLabels","propsForVerticalLabels","propsForHorizontalLabels","getBarPercentage","renderBars","barRadius","withCustomBarColorFromData","baseHeight","barHeight","barWidth","rx","renderBarTops","renderColors","flatColor","colorIndex","highOpacityColor","lowOpacityColor","renderValuesOnTopOfBars","formatTopBarValue","withHorizontalLabels","withVerticalLabels","withInnerLines","showBarTops","showValuesOnTopOfBars","datasets","ry","hasLegend","avoidFalseZero","chart","slices","percentage","legendFontColor","legendFontSize","legendFontFamily","hideLegend","pies","pieData","pieBackgrounds","withLabel","withColor","legend","pie","strokeLinecap","strokeLinejoin","getBarRadius","st","percentile","barsAreaHeight","xC","renderLegend","pv","cv","showLegend","barColors","shiftDate","numDays","newDate","setDate","convertToDate","MONTH_LABELS","getValueCache","maxValue","minValue","valueCache","UNSAFE_componentWillReceiveProps","getSquareSizeWithGutter","squareSize","gutterSize","getMonthLabelSize","showMonthLabels","getStartDate","getEndDate","endDate","getStartDateWithEmptyDays","getNumEmptyDaysAtStart","getNumEmptyDaysAtEnd","DAYS_IN_WEEK","getWeekCount","numDaysRoundedToWeek","getWeekWidth","getWidth","getHeight","titleForValue","tooltipDataAttrs","getTooltipDataAttrsForValue","getValueForIndex","getClassNameForIndex","in_min","in_max","out_min","getTitleForIndex","getTooltipDataAttrsForIndex","getTransformForWeek","weekIndex","getTransformForMonthLabels","getTransformForAllWeeks","getViewBox","getSquareCoordinates","dayIndex","getMonthLabelCoordinates","renderSquare","showOutOfRangeDays","handleDayPress","onDayPress","renderWeek","renderAllWeeks","renderMonthLabels","endOfWeek","getMonthLabel","classForValue","baseLegendItemX","centerAlignedCircle","legendOffset","CIRCLE_WIDTH","centerAlignedText","textLengthOffset","legendText","legendItemNumber","AnimatedCircle","scrollableDotHorizontalOffset","getColor","getStrokeWidth","getDatas","getPropsForDots","getDotProps","renderDots","onDataPointClick","datas","getDotColor","renderDotContent","xMax","getXMaxValues","withDots","indexData","renderScrollableDot","scrollableDotFill","scrollableDotStrokeColor","scrollableDotStrokeWidth","scrollableDotRadius","scrollableInfoViewStyle","scrollableInfoTextStyle","scrollableInfoTextDecorator","scrollableInfoSize","scrollableInfoOffset","vl","perData","withScrollableDot","yValues","xValues","yValuesLabel","xValuesLabel","yval","xval","labelTranslateX","labelTranslateY","renderShadow","useColorFromDataset","renderBezierShadow","renderLine","linejoinType","renderBezierLine","lastPoint","strokeDashArray","strokeDashOffset","cur","getBezierLinePoints","yHeight","x_mid","y_mid","cp_x1","cp_x2","legendItem","withShadow","withOuterLines","withHorizontalLines","withVerticalLines","assetMapOverride","resolveUri","baseUrl","getFilename","getFileExtension","dotIndex","downloading","downloaded","_downloadCallbacks","img","moduleId","moduleIds","virtualAssetModule","fromURI","byHash","fromMetadata","metaHash","fileHashes","fileUris","assetUrlOverride","fileScale","fileExtension","debuggerHost","bundleUrl","selectAssetSource","byUri","extension","createMemoryHistory","pending","interrupt","backIndex","pushState","pathWithHash","go","nextIndex","lastItemIndex","interrupted","onPopState","ServerContext","useLinking","getStateFromPathDefault","getPathFromStateDefault","getActionFromStateDefault","enabledRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","server","thenable","onfulfilled","previousIndexRef","previousStateRef","pendingPopStatePathRef","previousIndex","rootState","getPathForRoute","stateForPath","pendingPath","findMatchingState","aHistoryLength","bHistoryLength","aRoute","bRoute","aChildState","bChildState","previousFocusedState","focusedState","historyDelta","handling","series","createOrReuseTransformNode","oldNode","inputTransform","outputTransform","hasAnimatedTransform","nodeID","sanitizeTransform","extractAnimatedParentNodes","_transform","createOrReuseStyleNode","sanitizeStyle","sanitizeProps","_disconnectAnimatedView","_connectAnimatedView","getAmplifyUserAgent","WebView","fromError","errorValue","throwServerError","_r","prim","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","isPureReactComponent","__self","__source","_owner","Q","T","_status","U","V","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","Profiler","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_currentValue","_currentValue2","_threadCount","_defaultValue","_globalName","createFactory","lazy","_payload","_init","startTransition","unstable_act","useDeferredValue","useId","useInsertionEffect","useReducer","useSyncExternalStore","useTransition","aa","ca","da","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","sa","pa","qa","oa","setAttributeNS","xlinkHref","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","Pa","Ra","Qa","Sa","Ta","Va","_valueTracker","Ua","Wa","Xa","Ya","_wrapperState","initialChecked","Za","controlled","ab","bb","db","eb","fb","defaultSelected","gb","hb","ib","jb","kb","lb","mb","nb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","ob","lastChild","nodeValue","pb","gridArea","gridRowSpan","gridColumnSpan","qb","rb","sb","tb","menuitem","area","br","embed","keygen","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","unstable_requestPaint","unstable_now","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","unstable_UserBlockingPriority","hc","unstable_NormalPriority","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","LN2","rc","sc","tc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","isDehydrated","containerInfo","Xc","Yc","Zc","$c","ad","bd","ed","fd","gd","hd","Uc","jd","kd","ld","md","nd","od","pd","rd","_reactName","_targetInst","isPersistent","wd","xd","yd","sd","td","ud","vd","Ad","screenX","getModifierState","zd","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Up","Down","Del","Win","Apps","Scroll","MozPrintableKey","Nd","27","32","33","34","35","36","37","38","39","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","Od","Alt","Control","Meta","Shift","Pd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","Xd","Zd","wheelDelta","deltaZ","deltaMode","$d","be","documentMode","ce","de","ee","fe","ge","he","le","datetime","tel","me","ne","oe","pe","qe","re","se","ue","ve","we","xe","ye","ze","oninput","Ae","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","Le","compareDocumentPosition","rangeCount","anchorOffset","focusOffset","setStart","setEnd","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ef","gf","hf","lf","mf","nf","Ub","pf","qf","rf","sf","tf","uf","vf","wf","na","xa","$a","ba","je","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","lg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","childLanes","Tg","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","effects","bh","eventTime","lane","dh","eh","fh","gh","ih","jh","kh","nh","_reactInternals","lh","mh","oh","ph","qh","componentWillReceiveProps","rh","getSnapshotBeforeUpdate","componentWillMount","_stringRef","uh","vh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","gi","ji","ki","getSnapshot","li","ni","lastEffect","stores","oi","pi","qi","ri","si","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useMutableSource","unstable_isNewReconciler","identifierPrefix","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","kj","lj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","qj","rj","tj","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tailMode","yj","Ej","Fj","Gj","wasMultiple","onclick","createElementNS","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","X","Yj","Zj","ak","onCommitFiberUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","Xj","Wj","_reactRootContainer","ik","jk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","pk","Y","Z","qk","sk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","pendingChildren","mutableSourceEagerHydrationData","cl","pendingSuspenseBoundaries","dl","fl","gl","hl","zj","$k","ml","_internalRoot","nl","ol","pl","ql","rl","unstable_scheduleHydration","tl","usingClientEntryPoint","ul","findFiberByHostInstance","bundleType","rendererPackageName","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","wl","supportsFiber","inject","createRoot","unstable_strictMode","flushSync","hydrateRoot","hydratedSources","_getVersion","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","sortIndex","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","installMessageChannelImplementation","html","installReadyStateChangeImplementation","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","compiledStyleIndex","_cachedStyles","_compiledStyle","compileStyle","cachedStyles","prefixProperties","requiredPrefixes","capitalizedProperty","prefixedProperty","_capitalizeString","metaData","addIfNew","_hyphenateStyleName2","_hyphenateStyleName","hashClear","hashDelete","hashGet","hashHas","hashSet","setCacheAdd","setCacheHas","jsx","jsxs","_assign","_invariant","ReactComponent","injectedMixins","ReactClassInterface","statics","updateComponent","ReactClassStaticInterface","RESERVED_SPEC_KEYS","mixSpecIntoComponent","createMergedResultFunction","mixStaticSpecIntoComponent","autobind","validateMethodOverride","isAlreadyDefined","specPolicy","ReactClassMixin","autoBindPairs","__reactAutoBindPairs","isReactClassMethod","createChainedFunction","mergeIntoWithNoDuplicateKeys","bindAutoBindMethod","IsMountedPreMixin","__isMounted","IsMountedPostMixin","ReactClassComponent","autoBindKey","bindAutoBindMethods","Axios","mergeConfig","axios","instanceConfig","InterceptorManager","dispatchRequest","validators","interceptors","configOrUrl","assertOptions","requestInterceptorChain","synchronousRequestInterceptors","runWhen","synchronous","responseInterceptorChain","onFulfilled","onRejected","getUri","eject","transformData","throwIfCancellationRequested","throwIfRequested","fns","toGMTString","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","requestURL","deprecatedWarnings","formatMessage","allowUnknown","executor","resolvePromise","_resolve","HubClass","patterns","protectedChannels","pattern_1","holder","ampSymbol","capsule","patternInfo","_toListeners","listenerName","onHubCapsule","isLegacyCallback","payloadStr_1","dispatchingCapsule","jObj","hexRegex","numRegex","consider","decimalPoint","eNotation","trimmedStr","skipLike","numTrimmedByZeros","numStr","trimZeros","readPI","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","tagFound","reachedRoot","tagStartPos","closingTag","readAttributeStr","attrStrStart","validateAttributeString","tagClosed","otg","openPos","afterAmp","validateAmpersand","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","validateAttrName","validateNumberAmpersand","nilChar","missingChar","nilPremitive","missingPremitive","emptyChar","emptyValue","boundryChar","objStart","arrStart","arrayEnd","charsArr","e_schema","hasValidData","itemSchema","arr_len","arr_i","processValue","isAppChar","x2j","_cToJsonStr","indentBy","supressEmptyNode","isAttribute","attrPrefixLen","isCDATA","replaceCDATAstr","replaceCDATAarr","processTextOrObjNode","indentate","tagEndChar","newLine","buildTextNode","buildEmptyTextNode","buildObjNode","buildEmptyObjNode","buildTextValNode","buildObjectNode","j2x","cdata","rootNodeName","Ks","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","clockseq","seedBytes","nsecs","tmh","sha256_js_1","supports_web_crypto_1","ie11_detection_1","supportsWebCrypto","isMsWindow","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","isLE","mLen","eLen","eMax","eBias","nBits","rt","a_lookUpTable","return_array","RawSha256_1","RawSha256","bufferHash","bufferFromSecret","digestSync","bufferView","state0","state1","state2","state3","state4","state5","state6","state7","t1_1","t2_1","supportsZeroByteGCM","supportsSubtleCrypto","supportsSecureRandom","subtleCryptoMethods","generateKey","encrypt","additionalData","tagLength","msSubtleCryptoMethods","quacksLikeAnMsWindow","subtle_1","index_1","ExpoModulesCore_CodedError","isArrayish","conversions","fromModel","toModel","wrappedFn","conversion","wrapRounded","wrapRaw","deriveBFS","graph","models","buildGraph","adjacents","adjacent","wrapConversion","defaultTheme","_createThemeProvider","_createWithTheme","_deepmerge","_hoistNonReactStatics","ThemedComponent","_reactThemeProviderForwardedRef","_merge","ResultComponent","getSideChannel","arrayPrefixGenerators","brackets","comma","pushToArray","valueOrArray","toISO","addQueryPrefix","allowDots","charsetSentinel","encodeValuesOnly","serializeDate","skipNulls","strictNullHandling","sentinel","generateArrayPrefix","commaRoundTrip","sideChannel","tmpSc","findFlag","objKeys","adjustedPrefix","valueSideChannel","normalizeStringifyOptions","origSymbol","hasSymbolSham","symObj","syms","$Object","ERROR_MESSAGE","toStr","bound","binder","boundLength","boundArgs","Empty","callBind","$indexOf","$apply","$call","$reflectApply","$defineProperty","$max","applyBind","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","functionToString","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","isEnumerable","gPO","addNumericSeparator","sepRegex","intStr","utilInspect","inspectCustom","inspectSymbol","wrapQuotes","defaultStyle","quoteChar","quoteStyle","inspect_","maxStringLength","customInspect","numericSeparator","inspectString","lowbyte","bigIntStr","baseIndent","getIndent","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","singleLineValues","indentedJoin","cause","mapParts","collectionOf","setParts","weakCollectionOf","isWeakRef","isBigInt","protoTag","lineJoiner","symMap","allowSparse","arrayLimit","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","numberStr","parseArrayValue","parseKeys","givenKey","valuesParsed","leaf","cleanRoot","normalizeParseOptions","tempObj","cleanStr","skipIndex","bracketEqualsPos","encodedVal","parseValues","printer_1","platform_1","packageInfo","authLink","headerBasedAuth","origContext","AWS_IAM","creds","formatted","getPromise","formatAsRequest","access_key","secret_key","session_token","iamBasedAuth","API_KEY","apiKey","AMAZON_COGNITO_USER_POOLS","OPENID_CONNECT","AWS_LAMBDA","removeTemporaryVariables","signed_headers","access_info","service_info","dt_str","d_str","url_info","request_str","canonical_request","credential_scope","parse_service_info","str_to_sign","algorithm","string_to_sign","signing_key","get_signature","k_date","k_region","k_service","get_signing_key","authorization_header","get_authorization_header","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","mapDomain","ucs2decode","counter","ucs2encode","digitToBasic","digit","numPoints","baseMinusTMin","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","handledCPCountPlusOne","qMinusT","utils_1","Paho","mqttLogger","subsInfoContextKey","topicObservers","clientObservers","onMessage","topic","selectionNames","parsedMessage","subsInfo","controlMessages","newSubscriptions","mqttConnections","newSubscriptionTopics","subKey","existingTopicsWithObserver","newTopics","anObserver","newTopicsConnectionInfo","topics","connectNewClients","disconnect","controlMsgType","connectionInfo","connectNewClient","controlMsgInfo","onConnectionLost","permanent","onMessageArrived","destinationName","payloadString","connect","useSSL","mqttVersion","subscribeToTopics","subscribeToTopic","debug_1","debugLogger","newCategory","namespace","formatArgs","useColors","lastC","save","namespaces","firebug","table","localstorage","createDebug","coerce","logFn","selectColor","disable","skips","long","fmtShort","PahoMQTT","MESSAGE_TYPE","errorStr","validKey","INVALID_TYPE","OK","CONNECT_TIMEOUT","SUBSCRIBE_TIMEOUT","UNSUBSCRIBE_TIMEOUT","PING_TIMEOUT","INTERNAL_ERROR","CONNACK_RETURNCODE","SOCKET_ERROR","SOCKET_CLOSE","MALFORMED_UTF","UNSUPPORTED","INVALID_STATE","INVALID_ARGUMENT","UNSUPPORTED_OPERATION","INVALID_STORED_DATA","INVALID_MQTT_MESSAGE_TYPE","MALFORMED_UNICODE","BUFFER_FULL","CONNACK_RC","substitutions","part1","part2","MqttProtoIdentifierv3","MqttProtoIdentifierv4","WireMessage","decodeMessage","startingPos","messageInfo","remLength","endPos","wireMessage","sessionPresent","returnCode","qos","readUint16","topicName","parseUTF8","messageIdentifier","retained","duplicate","payloadMessage","writeUint16","writeString","utf8Length","stringToUTF8","UTF8Length","lowCharCode","utf16","byte1","byte2","byte3","byte4","willMessagePayloadBytes","topicStrLength","destinationNameLength","willMessage","payloadBytes","userName","requestedQos","mbi","numBytes","encodeMBI","byteStream","connectFlags","cleanSession","keepAliveInterval","Pinger","_client","_keepAliveInterval","isReset","pingReq","doTimeout","pinger","doPing","_trace","socket","_disconnected","timeoutSeconds","ClientImpl","WebSocket","_wsuri","_localKey","_msg_queue","_buffered_msg_queue","_sentMessages","_receivedMessages","_notify_msg_sent","_message_identifier","_sequence","connected","maxMessageIdentifier","connectOptions","hostIndex","onConnected","onMessageDelivered","traceFunction","_connectTimeout","sendPinger","receivePinger","_reconnectInterval","_reconnecting","_reconnectTimeout","disconnectedPublishing","disconnectedBufferSize","receiveBuffer","_traceBuffer","_MAX_TRACE_ENTRIES","connectOptionsMasked","_traceMask","_doConnect","subscribeOptions","grantedQos","invocationContext","timeOut","_requires_ack","_schedule_message","unsubscribeOptions","getTraceLog","startTrace","stopTrace","wsurl","uriParts","binaryType","onopen","_on_socket_open","_on_socket_message","_on_socket_error","onclose","_on_socket_close","_process_queue","storedMessage","pubRecReceived","messageBytes","payloadHex","_socket_send","messageCount","messages","_deframeMessages","_handleMessage","errorStack","sentMessage","receivedMessage","sequencedMessages","msgId","pubRelMessage","reconnected","_connected","_receivePublish","_receiveMessage","pubCompMessage","wireMessageMasked","pubAckMessage","pubRecMessage","reconnect","_reconnect","errorText","mqttVersionExplicit","severity","traceObject","masked","traceObjectMasked","newPayload","newDestinationName","newQos","newRetained","newTopic","newDuplicate","ipv6AddSBracket","clientIdLength","newOnConnected","newDisconnectedPublishing","newDisconnectedBufferSize","newOnConnectionLost","newOnMessageDelivered","newOnMessageArrived","hosts","ports","stringPayload","usingURIs","ipv6","publish","_request","prevContext","aws_appsync_auth_link_1","graphql_1","uuid_1","types_1","retry_1","NON_RETRYABLE_CODES","APPSYNC_REALTIME_HEADERS","theUrl","theRegion","theAuth","socketStatus","SOCKET_STATUS","keepAliveTimeout","subscriptionObserverMap","promiseArray","subscriptionId_1","appSyncGraphqlEndpoint","authenticationType","graphql_headers","_startSubscriptionWithAWSAppSyncRealTime","subscriptionId","_verifySubscriptionAlreadyStarted","subscriptionState","SUBSCRIPTION_STATUS","CONNECTED","_sendUnsubscriptionMessage","_removeSubscriptionObserver","PENDING","subscriptionReadyCallback","subscriptionFailedCallback","awsRealTimeSocket","OPEN","READY","unsubscribeMessage","MESSAGE_TYPES","GQL_STOP","stringToAWSRealTime","_closeSocketWhenFlushed","keepAliveTimeoutId","bufferedAmount","dataString","headerObj","subscriptionMessage","subscriptionFailedCallback_1","startAckTimeoutId","_awsRealTimeHeaderBasedAuth","canonicalUri","GQL_START","_initializeWebSocketConnection","_timeoutStartSubscriptionAck","discoverableEndpoint","headerString","headerQs","payloadQs","awsRealTimeUrl","CONNECTING","_discoverAppSyncRealTimeEndpoint","_initializeRetryableHandshake","headerHandler","_awsRealTimeApiKeyHeader","_awsRealTimeIAMHeader","_awsRealTimeAuthorizationHeader","dtStr","endpointInfo","formattedCredentials","_initializeHandshake","errorType","newSocket","createWebSocket","ackOk","connectionTimeoutMs","GQL_CONNECTION_ACK","_handleIncomingSubscriptionMessage","_errorDisconnect","CONTROL_MSG","CONNECTION_CLOSED","GQL_CONNECTION_ERROR","gqlInit","GQL_CONNECTION_INIT","NonRetryableError","GQL_DATA","GQL_START_ACK","GQL_CONNECTION_KEEP_ALIVE","TIMEOUT_DISCONNECT","GQL_ERROR","nonRetryable","retryIn_1","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","objectAssign","pSlice","functionsHaveNames","pToString","arrbuf","something","rawname","expected","stackStartFunction","AssertionError","_deepEqual","memos","ignoreCase","actualIndex","actualVisitedObjects","aIsArgs","bIsArgs","objEquiv","expectedException","isPrototypeOf","_throws","shouldThrow","_tryBlock","userProvidedMessage","isUnexpectedException","generatedMessage","getMessage","fn_name","next_line","notEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","formatRegExp","noDeprecation","throwDeprecation","traceDeprecation","debugEnviron","debugs","stylize","stylizeNoColor","showHidden","_extend","stylizeWithColor","styleType","recurseTimes","primitive","simple","formatPrimitive","visibleKeys","arrayToHash","braces","formatProperty","numLinesEst","reduceToSingleString","debuglog","NODE_DEBUG","pid","getHours","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","promiseResolve","promiseReject","callbackify","callbackified","superCtor","super_","TempCtor","cE","ucE","hasTouchableProperty","skewY","remeasure","WebShape","Circle","ClipPath","Defs","Ellipse","Line","LinearGradient","Path","Polygon","Polyline","RadialGradient","Rect","Stop","Svg","TSpan","TextPath","Use","Mask","ForeignObject","Marker","Pattern","PRESS_RETENTION_OFFSET","SvgTouchableMixin","pressRetentionOffset","touchKeys","touchVals","numTouchKeys","cleanedProps","singleMatcher","multiMatcher","decodeComponents","components","encodedURI","replaceMap","customDecodeURIComponent","registerAsset","setString","rsModifier","arg0","_maskResolver","getMask","_celPhone2","_cnpj2","_cpf2","_custom2","_datetime2","_money2","_onlyNumbers2","_zipCode2","_creditCard2","CelPhoneMask","CnpjMask","CpfMask","DatetimeMask","MoneyMask","OnlyNumbersMask","ZipCodeMask","CreditCardMask","MASK_TYPES","CEL_PHONE_SETTINGS","withDDD","dddMask","cleanedValue","valueToValidate","mergedSettings","numbers","numbersDDD","validateCnpj","CNPJ_MASK","_custom","cnpj","valida","dig1","dig2","digito","customMaskOptions","validateCPF","CPF_MASK","cpf","maskOptions","_dateAndTime2","DATETIME_MASK_SETTINGS","_getMergedSettings","_res","MMMM","MMM","dddd","ddd","_formatter","YYYY","YY","DD","HH","SSS","SS","_parser","h12","pre","customize","newLocale","dateObj","formatString","addMinutes","dateString","_length","_match","addYears","addMonths","addDays","addHours","addMilliseconds","addSeconds","date1","date2","toMilliseconds","toSeconds","toMinutes","toHours","toDays","isSameDay","_vanillaMasker2","MONEY_MASK_SETTINGS","suffixUnit","sanitized","_sanitize","cleared","removeNotNumbers","toMoney","dotPosition","_insert","define","BY_PASS_KEYS","mergeMoneyOptions","zeroCents","lastOutput","moneyPrecision","addPlaceholdersToOutput","VanillaMasker","unbindElementToMask","onkeyup","onkeydown","bindElementToMask","maskFunction","onType","isAllowedKeyCode","VMasker","maskMoney","maskNumber","maskAlphaNum","maskPattern","unMask","zeroMatcher","zeroRegExp","digitsLength","lastDigitLength","clearDelimiter","clearSeparator","money","cents","beginCents","centsValue","centsLength","centsSliced","patternChars","charsValues","outputLength","toAlphaNumeric","MASK_OPTIONS","CREDIT_CARD_MASKS","obfuscated","CREDIT_CARD_SETTINGS","issuer","MASK_TRANSLATION","selectedMask","_selectMask","_react2","_reactNative","_BaseTextComponent","_inputElement","_checkText","_trySetNativeProps","getElement","checkText","getKeyboardType","customTextInputProps","customTextInput","refInput","_getKeyboardType","_onChangeText","getDisplayValueFor","_baseTextComponent2","cachedGuess","zones","countries","guesses","logError","momentVersion","charCodeToInt","unpackBase60","whole","fractional","arrayToInt","mapIndices","unpack","untils","intToUntil","abbrs","population","Zone","packedString","_set","Country","country_name","zone_names","OffsetAt","timeString","toTimeString","ZoneScore","offsetScore","abbrScore","findChange","sortZoneScores","addToGuesses","guessesForUserOffsets","guessesOffset","offsetsLength","filteredGuesses","rebuildGuess","intlName","DateTimeFormat","timeZone","normalizeName","zoneScore","startYear","userOffsets","zoneScores","getZone","scoreOffsetAt","addZone","packed","addLink","normal0","normal1","needsOffset","isUnixTimestamp","unpacked","zone_name","country_code","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","offsetAt","dataVersion","_zones","_links","_countries","country_zones","addCountries","zoneExists","didShowError","guess","ignoreCache","zonesForCountry","with_offset","abbrWrap","_z","resetZoneWrap","defaultZone","setDefault","inverse","_path2","_Path$moveto$arc$lineto","_Path$moveto$arc","_Path$moveto","_Path","moveto","arc","lineto","closepath","midAngle","midRadius","centroid","_geom","_instructions","printInstrunction","digits","transformParams","matrix","pts","newPts","matrixTransform","transformEllipse","sweepFlag","isDegenerate","ax","newParams","verbosify","hlineto","vlineto","curveto","smoothcurveto","qcurveto","smoothqcurveto","xrot","largeArcFlag","_ret","newInstructions","_ret2","rad","sx","sy","_ret3","shearX","_ret4","shearY","_ret5","ps","b1","b2","areEqualPoints","distPointToPoint","ay","bx","by","distPointToParabol","circumCenter","parabolsCrossX","doHalflinesCross","approx","hp","vec","det","torad","JK","l1","l2","newAx","newRx","newRy","PollState","PostVoteAction","OptionType","OpenPollFlow","initializePolls","internal_1","config_1","createPollAsync","createPoll","urlParams_1","axios_1","pollRequest","processedPollRequest","urlString","subdomainSuffix","pollPath","draft","urlParamOptions","customData","setPollUrlParams","react_native_uuid_1","getThemeFromPollUrl","setQueryParam","embeddedState","generateHTTPMethod","isForm","ERR_DEPRECATED","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","visa","niceType","gaps","lengths","mastercard","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard","matches_1","patternLength","clonedCardConfiguration","matchStrength","maxLengthToCheck","integerRepresentationOfCardNumber","matchesRange","matchesPattern","numberOfResultsWithMaxStrengthProperty","hasEnoughResultsToDetermineBestMatch","CARD_NUMBER_REGEX","luhn10","getCardTypes","testCardValue","potentialTypes","luhnValidateUnionPay","parse_date_1","parseDate","fullDate","monthValid","yearValid","is_array_1","datestring","numberOfDigitsInMonth","assumedYear","firstCharacter","getNumberOfMonthDigitsInDateString","maximum","_extends2","_slicedToArray2","_WebView","_PlayerScripts","_utils","_jsxFileName","webView","videoId","playList","_props$play","play","_props$mute","mute","_props$volume","volume","webViewStyle","webViewProps","useLocalHTML","baseUrlOverride","_props$playbackRate","playbackRate","_props$contentScale","contentScale","_props$onError","_err","_props$onReady","onReady","_props$playListStartI","playListStartIndex","initialPlayerParams","_props$allowWebViewZo","allowWebViewZoom","_props$forceAndroidAu","forceAndroidAutoplay","_props$onChangeState","onChangeState","_props$onFullScreenCh","onFullScreenChange","_props$onPlaybackQual","onPlaybackQualityChange","_quality","_props$onPlaybackRate","onPlaybackRateChange","_playbackRate","playerReady","setPlayerReady","lastVideoIdRef","lastPlayListRef","initialPlayerParamsRef","webViewRef","eventEmitter","getVideoUrl","injectJavaScript","PLAYER_FUNCTIONS","getVideoUrlScript","durationScript","getCurrentTime","currentTimeScript","isMuted","isMutedScript","getVolume","getVolumeScript","getPlaybackRate","getPlaybackRateScript","getAvailablePlaybackRates","getAvailablePlaybackRatesScript","seekTo","allowSeekAhead","seekToScript","playMode","soundMode","setVolume","setPlaybackRate","loadVideoById","deepComparePlayList","loadPlaylist","onWebMessage","onShouldStartLoadWithRequest","mainDocumentURL","ytScript","MAIN_SCRIPT","htmlString","urlEncodedJSON","originWhitelist","allowsInlineMediaPlayback","mediaPlaybackRequiresUserAction","allowsFullscreenVideo","preventFullScreen","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","hasPropertyDescriptor","_reactNativeWebWebview","_qs2","frameRef","handleSource","newWindow","handleSourceInNewWindow","handleSourceInIFrame","features","handleInjectedJavaScript","injectedJavaScript","unstable_createElement","srcDoc","iframe","noScroll","allowFullScreen","allowpaymentrequest","frameBorder","seamless","_playMode","_soundMode","_defineProperty2","muteVideo","unMuteVideo","playVideo","pauseVideo","playlist","playerLang","_initialPlayerParams$","cc_lang_pref","iv_load_policy","modestbranding","_initialPlayerParams$2","controls","showClosedCaptions","_initialPlayerParams$3","rel_s","loop_s","videoId_s","controls_s","cc_lang_pref_s","modestbranding_s","preventFullScreen_s","showClosedCaptions_s","contentScale_s","safeData","lastPlayList","_regenerator","awrap","abrupt","regeneratorRuntime","accidentalStrictMode","_regeneratorRuntime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","unwrapped","delegateResult","maybeInvokeDelegate","_sent","dispatchException","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","genFun","mark","skipTempReset","rootRecord","rval","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","BaseEventEmitter","_currentSubscription","removeCurrentListener","__emitToSubscription","EventSubscription","qualifiedComponent","registerRootComponent","App","parseMobileHubConfig","storageConfig","AWSPinpoint","appId","AWSS3","Logging","geo","AmazonLocationService","useApolloClient","useReactiveVar","probablySameValue","useAssets","setAssets","ApolloProvider","ApolloContext","REACT_NAVIGATION_DEVTOOLS","NavigationContainer","documentTitle","isLinkingEnabled","refContainer","linkingContext","onReadyRef","onTerminate","terminated","wakeUp","lastError","waitForInit","auth2","GoogleOAuth","initialized","refreshGoogleToken","_refreshGoogleTokenImpl","ga","getAuthInstance","googleAuth","googleUser","isSignedIn","reloadAuthResponse","authResponse","FacebookOAuth","refreshFacebookToken","_refreshFacebookTokenImpl","getLoginStatus","fbResponse","AmbiguousRoleResolutionType","ErrorCode","MappingRuleMatchType","RoleMappingType","deserializeAws_json1_1GetCredentialsForIdentityCommandError","_m","loadRestJsonErrorCode","deserializeAws_json1_1ExternalServiceExceptionResponse","deserializeAws_json1_1InternalErrorExceptionResponse","deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse","deserializeAws_json1_1InvalidParameterExceptionResponse","deserializeAws_json1_1NotAuthorizedExceptionResponse","deserializeAws_json1_1ResourceConflictExceptionResponse","deserializeAws_json1_1ResourceNotFoundExceptionResponse","deserializeAws_json1_1TooManyRequestsExceptionResponse","deserializeAws_json1_1GetIdCommandError","deserializeAws_json1_1LimitExceededExceptionResponse","deserializeAws_json1_1ExternalServiceException","deserializeAws_json1_1InternalErrorException","deserializeAws_json1_1InvalidIdentityPoolConfigurationException","deserializeAws_json1_1InvalidParameterException","deserializeAws_json1_1LimitExceededException","deserializeAws_json1_1NotAuthorizedException","deserializeAws_json1_1ResourceConflictException","deserializeAws_json1_1ResourceNotFoundException","deserializeAws_json1_1TooManyRequestsException","serializeAws_json1_1GetCredentialsForIdentityInput","CustomRoleArn","IdentityId","Logins","serializeAws_json1_1LoginsMap","serializeAws_json1_1GetIdInput","AccountId","IdentityPoolId","deserializeAws_json1_1Credentials","AccessKeyId","SecretKey","SessionToken","deserializeAws_json1_1GetCredentialsForIdentityResponse","deserializeAws_json1_1GetIdResponse","buildHttpRpcRequest","resolvedHostname","sanitizeErrorCode","headerKey","GetCredentialsForIdentityCommand","serializeAws_json1_1GetCredentialsForIdentityCommand","deserializeAws_json1_1GetCredentialsForIdentityCommand","ProviderError","tryNextLink","resolveLogins","logins","tokenOrProvider","resolvedPairs","fromCognitoIdentity","customRoleArn","throwOnMissingCredentials","throwOnMissingAccessKeyId","throwOnMissingSecretKey","expiration","GetIdCommand","serializeAws_json1_1GetIdCommand","deserializeAws_json1_1GetIdCommand","IndexedDbStorage","dbName","withObjectStore","onsuccess","getDb","openDbRequest","indexedDB","onblocked","onupgradeneeded","createObjectStore","keyPath","tx","objectStore","inMemoryStorage","InMemoryStorage","fromCognitoIdentityPool","userIdentifier","throwOnMissingId","AWS_TEMPLATE","CognitoIdentityClient","_config_5","createCognitoIdentityClient","middlewareArgs","CredentialsClass","_gettingCredPromise","_refreshHandlers","_credentials_source","_pickupCredentials","_getCognitoIdentityIdStorageKey","_keepAlive","refreshToken_1","_credentials","_isPastTTL","_setCredentialsFromFederation","_providerRefreshWithRetry","refreshHandler","_nextCredentialsRefresh","_setCredentialsForGuest","cognitoClient","_getGuestIdentityId","_identityId","credentialsFromCognitoIdentity","_loadCredentials","_removeGuestIdentityId","google","facebook","amazon","_setCredentialsFromSession","guestIdentityId","generatedOrRetrievedIdentityId","primaryIdentityId","_setGuestIdentityId","useLinkBuilder","getRootStateForNavigate","getStateFromParams","Link","linkTo","getPathFromStateHelper","shouldHandle","useLinkProps","Badge","TabBarIcon","badge","badgeStyle","inactiveOpacity","activeTintColor","inactiveTintColor","renderIcon","iconHorizontal","iconVertical","badgeHorizontal","badgeVertical","BottomTabBarItem","customActiveTintColor","customInactiveTintColor","activeBackgroundColor","inactiveBackgroundColor","showLabel","tabLandscape","tabPortrait","labelBeside","labelBeneath","tabBarLabel","shouldUseHorizontalLabels","tabBarLabelPosition","tabBarItemStyle","getPaddingBottom","getTabBarHeight","horizontalLabels","BottomTabBar","buildLink","focusedOptions","tabBarShowLabel","tabBarHideOnKeyboard","tabBarVisibilityAnimationConfig","tabBarStyle","tabBarBackground","tabBarActiveTintColor","tabBarInactiveTintColor","tabBarActiveBackgroundColor","tabBarInactiveBackgroundColor","isKeyboardShown","setIsKeyboardShown","handleKeyboardShow","handleKeyboardHide","useIsKeyboardShown","onHeightChange","BottomTabBarHeightCallbackContext","shouldShowTabBar","visibilityAnimationConfigRef","isTabBarHidden","setIsTabBarHidden","visibilityAnimationConfig","setLayout","tabBarHeight","hasHorizontalLabels","tabBarBackgroundElement","tabBar","tabBarAccessibilityLabel","tabBarTestID","tabBarAllowFontScaling","tabBarButton","tabBarIcon","tabBarBadge","tabBarBadgeStyle","tabBarLabelStyle","tabBarIconStyle","BottomTabView","safeAreaInsets","sceneContainerStyle","focusedRouteKey","setLoaded","setTabBarHeight","unmountOnBlur","restWithDeprecated","tabBarOptions","keyboardHidesTabBar","labelPosition","adaptive","tabBarVisible","ApplicationReleaseType","getInstallationTimeAsync","nativeApplicationVersion","nativeBuildVersion","applicationName","applicationId","androidId","getIosPushNotificationServiceEnvironmentAsync","getPushNotificationServiceEnvironmentAsync","privateData","wrappers","retv","setCancelFlag","passiveListener","immediateStopped","defineRedirectDescriptor","defineCallDescriptor","getWrapper","BaseEvent","CustomEvent","defineWrapper","isStopped","setPassiveListener","stopImmediatePropagation","composed","listenersMap","getListeners","defineEventAttribute","eventTargetPrototype","listenerType","newNode","defineEventAttributeDescriptor","defineCustomEventTarget","CustomEventTarget","EventTarget","optionsIsObj","wrappedEvent","wrapEvent","setEventPhase","setCurrentTarget","abortedFlags","signals","createAbortSignal","getSignal","AbortSignal","sessionInstallationId","getInstallationIdAsync","getRegistrationInfoAsync","setRegistrationInfoAsync","registrationInfo","warningHasBeenShown","tokenEmitter","PushTokenManager","getDevicePushTokenAsync","_subscribeDeviceToPushNotificationsAsync","devicePushToken","guardPermission","Notification","permission","vapidPublicKey","serviceWorkerPath","_urlBase64ToUint8Array","pushSubscription","pushSubscriptionJson","subscriptionObject","p256dh","notificationIcon","fromExpoWebClient","updateDevicePushTokenAsync","doUpdateDevicePushTokenAsync","shouldUseDevelopmentNotificationService","getDeviceIdAsync","development","deviceToken","getTypeOfToken","shouldTry","retriesCount","backoffOptions","nextBackoffInterval","lastAbortController","updatePushTokenAsync","setAutoServerRegistrationEnabledAsync","latestDevicePushToken","getExpoPushTokenAsync","experienceId","originalFullName","projectId","eas","getDeviceToken","statusInfo","expoPushToken","getExpoPushToken","parseResponse","CameraType","FlashMode","AutoFocus","WhiteBalance","ImageType","VideoCodec","VideoStabilization","VideoQuality","CameraOrientation","requestLegacyUserMediaAsync","optionalSource","sourceId","constraintToSourceId","constraint","ideal","MediaStreamTrack","getSources","audioSource","videoSource","audioSourceId","audioConstraints","videoSourceId","videoConstraints","sourceSelectedAsync","constraints","video","audio","getAnyUserMediaAsync","requestUserMediaAsync","canGetUserMedia","ignoreConstraints","getUserMediaAsync","mediaDevices","getUserMedia","_getUserMedia","isFrontCameraAvailableAsync","devices","supportsCameraType","isBackCameraAvailableAsync","enumerateDevices","cameras","camera","hasCamera","capabilities","getCapabilities","facingMode","isCapable","webkitGetUserMedia","mozGetUserMedia","handleGetUserMediaError","handleRequestPermissionsAsync","handlePermissionsQueryAsync","permissions","front","torch","singleShot","continuous","manual","takePicture","pausePreview","resumePreview","getAvailableCameraTypesAsync","getAvailablePictureSizes","getMicrophonePermissionsAsync","requestMicrophonePermissionsAsync","convertFlashModeJSONToNative","convertWhiteBalanceJSONToNative","convertAutoFocusJSONToNative","PictureSizes","ImageTypeFormat","jpg","png","MinimumConstraints","CameraTypeToFacingMode","FacingModeToCameraType","captureImageData","pictureOptions","HAVE_ENOUGH_DATA","canvas","captureImageContext","imageData","getImageData","isImageMirror","videoWidth","videoHeight","getImageSize","setTransform","drawImage","captureImage","imageType","ensureCameraPictureOptions","quality","toDataURL","getIdealConstraints","preferredCameraType","preferredConstraints","hasValidConstraints","getSupportedConstraints","preferredWidth","preferredHeight","getStreamDevice","OverconstrainedError","nextCameraType","syncTrackCapabilities","cameraType","getVideoTracks","onCapabilitiesReady","clampedValues","convertNormalizedSetting","validatedInternalConstrainedValue","constraintKey","settingsKey","validatedConstrainedValue","convertedSetting","focusMode","flashMode","whiteBalanceMode","whiteBalance","applyConstraints","advanced","stopMediaStream","getAudioTracks","setVideoSource","createObjectURL","webkitURL","srcObject","mozSrcObject","revokeObjectURL","converted","r1","convertRange","VALID_SETTINGS_KEYS","useWebCameraStream","preferredType","onCameraReady","onMountError","isStartingCamera","activeStreams","setStream","mediaTrackSettings","getTracks","getSettings","getStreamDeviceAsync","resumeAsync","nextStream","settingsA","settingsB","isStarting","changes","hasChanges","nextWebCameraSettings","exposureCompensation","colorTemperature","brightness","sharpness","focusDistance","onLoaded","useLoadedVideo","stringifiedFn","worker","Worker","createWorkerAsyncFunction","jsQR","inversionAttempts","cornerPoints","bounds","topLeftCorner","bottomLeftCorner","topRightCorner","bottomRightCorner","poster","pictureSize","isQRScannerEnabled","barCodeScannerSettings","barCodeTypes","onBarCodeScanned","onScanned","scanAsync","intervalToUse","useWebQRScanner","capturedPicture","exif","onPictureSaved","picture","isFrontFacingCamera","Type","videoWrapper","Video","autoPlay","playsInline","muted","objectFit","ConversionTables","ensureNativeProps","convertNativeProps","barCodeScannerEnabled","onFacesDetected","faceDetectorEnabled","useCamera2Api","_PICTURE_SAVED_CALLBACKS","_GLOBAL_PICTURE_ID","_onPictureSaved","_lastEvents","_lastEventsTimes","_onCameraReady","_onMountError","_onResponsiveOrientationChanged","onResponsiveOrientationChanged","_onObjectDetected","_setReference","_cameraRef","_cameraHandle","fastMode","ensurePictureOptions","getSupportedRatios","recordingOptions","ensureRecordingOptions","stopRecording","getAvailableVideoCodecsAsync","focusDepth","faceDetectorSettings","useCameraPermissions","useMicrophonePermissions","delModifier","INVALIDATE","EntityStore","policies","rootIds","objectOrReference","objOrRef","toReference","objOrIdOrRef","mergeIntoStore","storeObject","rootTypenamesById","dependOnExistence","storeObjectReconciler","caching","fieldsToDirty_1","__exists","hasKeyArgs","changedFields_1","needToMerge_1","allDeleted_1","sharedDetails_1","fieldNameOrOptions","getStoreFieldName","evict","evicted","extraRootIds","getRootIdSet","__META","rest_1","retain","ids","snapshot","findChildRefIds","idsToRemove","root_1","found_1","workSet_1","keyMaker","CacheGroup","resetCaching","makeDepKey","maybeDependOnExistenceOfEntity","entityId","supportsResultCaching","Root","stump","storageTrie","addLayer","layerId","replay","removeLayer","Layer","ownStoreObject","parentStoreObject","fromParent","Stump","existingObject","incomingObject","existingValue","incomingValue","missingFromInvariant","execSelectionSetKeyArgs","StoreReader","knownResults","canon","executeSelectionSet","peekArgs","enclosingRef","execSelectionSetImpl","resultCacheMaxSize","varString","executeSubSelectedArray","execSubSelectedArrayImpl","resetCanon","diffQueryAgainstStore","rootRef","execResult","hasMissingFields","missing","isFresh","objectsToMerge","finalResult","getMissing","handleMissing","rootIdsByTypename","fragmentMatches","childResult","StoreWriter","writeToStore","operationDefinition","written","incomingById","clientOnly","processSelectionSet","mergeTree","entityRef","applied","applyMerges","sets","incomingFields","resultFieldKey","wasClientOnly","childTree","getChildMergeTree","processFieldValue","childTypename","maybeRecycleChildMergeTree","mergeMergeTrees","mergeTreeIsEmpty","needToMergeMaps","remainingRightKeys_1","leftTree","getStorageArgs","i_1","getValue_1","eVal","iVal","aVal","runMergeFunction","emptyMergeTreePool","tree","argsFromFieldSpecifier","nullKeyFieldsFn","simpleKeyArgsFn","mergeTrueFn","mergeObjects","mergeFalseFn","Policies","typePolicies","toBeAdded","supertypeMap","fuzzySubtypes","usingPossibleTypes","setRootTypename","addPossibleTypes","addTypePolicies","ROOT_QUERY","policy","getTypePolicy","specifierOrId","keyFieldsFnFromSpecifier","updateTypePolicy","keyFields","setMerge","getFieldPolicy","keyArgsFnFromSpecifier","supertype","getSupertypeSet","policy_1","supertypes","inbox","createIfMissing","fieldPolicies","supertypeSet","typenameSupertypeSet","workQueue_1","maybeEnqueue_1","needToCheckFuzzySubtypes","regExp","fuzzyString","specifierOrString","readOptions","makeFieldFunctionOptions","parentTypename","makeMergeObjectsFunction","eType","iType","specifier","computeKeyObject","trie","aliasMap","makeAliasMap","workQueue","responseKey","storeKey","subsets","lastResponseKey","lastActualKey","keyObj","subset","InMemoryCache","watches","typenameDocumentCache","txCount","rootStore","optimisticData","resetResultCache","resetResultIdentities","previousReader","storeReader","storeWriter","maybeBroadcastWatch","broadcastWatch","immediate","idToRemove","newOptimisticData","perform","alreadyDirty","QueryData","onNewData","runLazy","runLazyQuery","lazyOptions","obsRefetch","currentObservable","obsFetchMore","obsUpdateQuery","obsStartPolling","obsStopPolling","obsSubscribeToMore","removeQuerySubscription","removeObservable","updateObservableQuery","getExecuteSsrResult","getExecuteResult","executeLazy","fetchData","startQuerySubscription","afterExecute","ssrInitiated","handleErrorOrCompleted","renderPromises","ssrDisabled","fetchDisabled","ssrLoading","observableQueryFields","addQueryPromise","prepareObservableQueryOptions","initializeObservableQuery","getSSRObservable","observableQueryOptions","registerSSRObservable","newObservableQueryOptions","currentSubscription","previousResult","resubscribeToQuery","currentResult","partialRefetch","previousData","onCompleted","andDelete","useBaseQuery","tick","updatedOptions","queryDataRef","queryData","memoFn","useDeepMemo","queryResult","useQuery","createMultiStyleIconSet","optionsInput","styleNames","fallbackFamily","_unused","glyphValidator","__unused","iconSets","styleFromProps","getIconSetForProps","selectIconClass","iconSet","iconClass","reduceProps","getStyledIconSet","createStyledIconClass","selectClass","IconClass","SelectedIconClass","StyledIconSet","pro","metadataKeys","createFontAwesomeStyle","brandIcons","lightIcons","regularIcons","solidIcons","brand","solid","createFA5iconSet","Regular","Light","Solid","Brand","MutationData","runMutation","mutationFunctionOptions","onMutationStart","generateNewMutationId","onMutationCompleted","onMutationError","mostRecentMutationId","ignoreResults","updateResult","isMostRecentMutation","useMutation","mutationDataRef","mutationData","convertPermissionStatus","resolvePermissionAsync","shouldAsk","resolveOnce","NotificationPermissionsModule","requestedPlatformPermissions","allowAlert","allowBadge","allowSound","_emitter","reload","updateId","releaseChannel","isEmergencyLaunch","runtimeVersion","localAssets","isEmbeddedLaunch","isUsingEmbeddedAssets","isUsingDeveloperTool","commitTime","tool","isUsingExpoDevelopmentClient","manualUpdatesInstructions","reloadAsync","nativeDebug","checkForUpdateAsync","fetchUpdateAsync"],"mappings":"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","file":"static/js/3.0164a050.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"hrefAttrs\", \"onLayout\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\nimport { useLocaleContext, getLocaleDirection } from '../../modules/useLocale';\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n href: true,\n lang: true,\n onScroll: true,\n onWheel: true,\n pointerEvents: true\n});\n\nvar pickProps = props => pick(props, forwardPropsList);\n\nvar View = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var hrefAttrs = props.hrefAttrs,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n React.Children.toArray(props.children).forEach(item => {\n if (typeof item === 'string') {\n console.error(\"Unexpected text node: \" + item + \". A text node cannot be a child of a .\");\n }\n });\n }\n\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n var component = 'div';\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var supportedProps = pickProps(rest);\n supportedProps.dir = componentDirection;\n supportedProps.style = [styles.view$raw, hasTextAncestor && styles.inline, props.style];\n\n if (props.href != null) {\n component = 'a';\n\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n\n if (download != null) {\n supportedProps.download = download;\n }\n\n if (rel != null) {\n supportedProps.rel = rel;\n }\n\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n }\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement(component, supportedProps, {\n writingDirection\n });\n});\nView.displayName = 'View';\nvar styles = StyleSheet.create({\n view$raw: {\n alignItems: 'stretch',\n backgroundColor: 'transparent',\n border: '0 solid black',\n boxSizing: 'border-box',\n display: 'flex',\n flexBasis: 'auto',\n flexDirection: 'column',\n flexShrink: 0,\n listStyle: 'none',\n margin: 0,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n position: 'relative',\n textDecoration: 'none',\n zIndex: 0\n },\n inline: {\n display: 'inline-flex'\n }\n});\nexport default View;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nvar Platform = {\n OS: 'web',\n select: obj => 'web' in obj ? obj.web : obj.default,\n\n get isTesting() {\n if (process.env.NODE_ENV === 'test') {\n return true;\n }\n\n return false;\n }\n\n};\nexport default Platform;","function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n strings.raw = raw;\n return strings;\n}\nmodule.exports = _taggedTemplateLiteralLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { __assign } from \"tslib\";\nimport { parse } from 'graphql';\nvar docCache = new Map();\nvar fragmentSourceMap = new Map();\nvar printFragmentWarnings = true;\nvar experimentalFragmentVariables = false;\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n}\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n}\nfunction processFragments(ast) {\n var seenKeys = new Set();\n var definitions = [];\n ast.definitions.forEach(function (fragmentDefinition) {\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc);\n var sourceKeySet = fragmentSourceMap.get(fragmentName);\n if (sourceKeySet && !sourceKeySet.has(sourceKey)) {\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\"\n + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\"\n + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n }\n else if (!sourceKeySet) {\n fragmentSourceMap.set(fragmentName, sourceKeySet = new Set);\n }\n sourceKeySet.add(sourceKey);\n if (!seenKeys.has(sourceKey)) {\n seenKeys.add(sourceKey);\n definitions.push(fragmentDefinition);\n }\n }\n else {\n definitions.push(fragmentDefinition);\n }\n });\n return __assign(__assign({}, ast), { definitions: definitions });\n}\nfunction stripLoc(doc) {\n var workSet = new Set(doc.definitions);\n workSet.forEach(function (node) {\n if (node.loc)\n delete node.loc;\n Object.keys(node).forEach(function (key) {\n var value = node[key];\n if (value && typeof value === 'object') {\n workSet.add(value);\n }\n });\n });\n var loc = doc.loc;\n if (loc) {\n delete loc.startToken;\n delete loc.endToken;\n }\n return doc;\n}\nfunction parseDocument(source) {\n var cacheKey = normalize(source);\n if (!docCache.has(cacheKey)) {\n var parsed = parse(source, {\n experimentalFragmentVariables: experimentalFragmentVariables,\n allowLegacyFragmentVariables: experimentalFragmentVariables\n });\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n }\n docCache.set(cacheKey, stripLoc(processFragments(parsed)));\n }\n return docCache.get(cacheKey);\n}\nexport function gql(literals) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (typeof literals === 'string') {\n literals = [literals];\n }\n var result = literals[0];\n args.forEach(function (arg, i) {\n if (arg && arg.kind === 'Document') {\n result += arg.loc.source.body;\n }\n else {\n result += arg;\n }\n result += literals[i + 1];\n });\n return parseDocument(result);\n}\nexport function resetCaches() {\n docCache.clear();\n fragmentSourceMap.clear();\n}\nexport function disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\nexport function enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\nexport function disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n}\nvar extras = {\n gql: gql,\n resetCaches: resetCaches,\n disableFragmentWarnings: disableFragmentWarnings,\n enableExperimentalFragmentVariables: enableExperimentalFragmentVariables,\n disableExperimentalFragmentVariables: disableExperimentalFragmentVariables\n};\n(function (gql_1) {\n gql_1.gql = extras.gql, gql_1.resetCaches = extras.resetCaches, gql_1.disableFragmentWarnings = extras.disableFragmentWarnings, gql_1.enableExperimentalFragmentVariables = extras.enableExperimentalFragmentVariables, gql_1.disableExperimentalFragmentVariables = extras.disableExperimentalFragmentVariables;\n})(gql || (gql = {}));\ngql[\"default\"] = gql;\nexport default gql;\n//# sourceMappingURL=index.js.map","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport canUseDOM from '../../../modules/canUseDom';\n\n/**\n * The browser implements the CSS cascade, where the order of properties is a\n * factor in determining which styles to paint. React Native is different. It\n * gives giving precedence to the more specific style property. For example,\n * the value of `paddingTop` takes precedence over that of `padding`.\n *\n * This module creates mutally exclusive style declarations by expanding all of\n * React Native's supported shortform properties (e.g. `padding`) to their\n * longfrom equivalents.\n */\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\nvar ignoredProps = {\n elevation: true,\n overlayColor: true,\n resizeMode: true,\n tintColor: true\n};\nvar MONOSPACE_FONT_STACK = 'monospace,monospace';\nvar SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';\nvar STYLE_SHORT_FORM_EXPANSIONS = {\n borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n borderRadius: ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n marginHorizontal: ['marginRight', 'marginLeft'],\n marginVertical: ['marginTop', 'marginBottom'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n paddingHorizontal: ['paddingRight', 'paddingLeft'],\n paddingVertical: ['paddingTop', 'paddingBottom']\n};\n/**\n * Transform\n */\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\n\nvar mapTransform = transform => {\n var type = Object.keys(transform)[0];\n var value = transform[type];\n\n if (type === 'matrix' || type === 'matrix3d') {\n return type + \"(\" + value.join(',') + \")\";\n } else {\n var normalizedValue = normalizeValueWithProperty(value, type);\n return type + \"(\" + normalizedValue + \")\";\n }\n};\n\nexport var createTransformValue = style => {\n var transform = style.transform;\n\n if (Array.isArray(style.transform)) {\n transform = style.transform.map(mapTransform).join(' ');\n }\n\n return transform;\n};\n/**\n * Reducer\n */\n\nvar createReactDOMStyle = (style, isInline) => {\n if (!style) {\n return emptyObject;\n }\n\n var resolvedStyle = {};\n\n for (var prop in style) {\n var value = style[prop];\n\n if ( // Ignore everything with a null value\n value == null || // Ignore some React Native styles\n ignoredProps[prop]) {\n continue;\n }\n\n if (prop === 'aspectRatio') {\n resolvedStyle[prop] = value.toString();\n } else if (prop === 'backgroundClip') {\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n if (value === 'text') {\n resolvedStyle.backgroundClip = value;\n resolvedStyle.WebkitBackgroundClip = value;\n }\n } else if (prop === 'flex') {\n if (value === -1) {\n resolvedStyle.flexGrow = 0;\n resolvedStyle.flexShrink = 1;\n resolvedStyle.flexBasis = 'auto';\n } else {\n resolvedStyle.flex = value;\n }\n } else if (prop === 'font') {\n resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n } else if (prop === 'fontFamily') {\n if (value.indexOf('System') > -1) {\n var stack = value.split(/,\\s*/);\n stack[stack.indexOf('System')] = SYSTEM_FONT_STACK;\n resolvedStyle[prop] = stack.join(',');\n } else if (value === 'monospace') {\n resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n } else {\n resolvedStyle[prop] = value;\n }\n } else if (prop === 'fontVariant') {\n if (Array.isArray(value) && value.length > 0) {\n resolvedStyle.fontVariant = value.join(' ');\n }\n } else if (prop === 'textAlignVertical') {\n resolvedStyle.verticalAlign = value === 'center' ? 'middle' : value;\n } else if (prop === 'textDecorationLine') {\n // use 'text-decoration' for browsers that only support CSS2\n // text-decoration (e.g., IE, Edge)\n if (!supportsCSS3TextDecoration) {\n resolvedStyle.textDecoration = value;\n } else {\n resolvedStyle.textDecorationLine = value;\n }\n } else if (prop === 'transform' || prop === 'transformMatrix') {\n resolvedStyle.transform = createTransformValue(style);\n } else if (prop === 'writingDirection') {\n resolvedStyle.direction = value;\n } else {\n (function () {\n var value = normalizeValueWithProperty(style[prop], prop);\n var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n\n if (isInline && prop === 'margin') {\n if (style.marginHorizontal == null) {\n resolvedStyle.marginLeft = value;\n resolvedStyle.marginRight = value;\n }\n\n if (style.marginVertical == null) {\n resolvedStyle.marginTop = value;\n resolvedStyle.marginBottom = value;\n }\n } else if (isInline && prop === 'padding') {\n if (style.paddingHorizontal == null) {\n resolvedStyle.paddingLeft = value;\n resolvedStyle.paddingRight = value;\n }\n\n if (style.paddingVertical == null) {\n resolvedStyle.paddingTop = value;\n resolvedStyle.paddingBottom = value;\n }\n } else if (longFormProperties) {\n longFormProperties.forEach((longForm, i) => {\n // The value of any longform property in the original styles takes\n // precedence over the shortform's value.\n if (style[longForm] == null) {\n resolvedStyle[longForm] = value;\n }\n });\n } else {\n resolvedStyle[prop] = Array.isArray(value) ? value.join(',') : value;\n }\n })();\n }\n }\n\n return resolvedStyle;\n};\n\nexport default createReactDOMStyle;","/* eslint-disable */\n\n/**\n * JS Implementation of MurmurHash2\n *\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} str ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n *\n * \n */\nfunction murmurhash2_32_gc(str, seed) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n}\n\nvar hash = str => murmurhash2_32_gc(str, 1).toString(36);\n\nexport default hash;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateStyleName(name) {\n if (name in cache) {\n return cache[name];\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\n}\n\nexport default hyphenateStyleName;","import backgroundClip from 'inline-style-prefixer/lib/plugins/backgroundClip';\nimport crossFade from 'inline-style-prefixer/lib/plugins/crossFade';\nimport cursor from 'inline-style-prefixer/lib/plugins/cursor';\nimport filter from 'inline-style-prefixer/lib/plugins/filter';\nimport imageSet from 'inline-style-prefixer/lib/plugins/imageSet';\nimport logical from 'inline-style-prefixer/lib/plugins/logical';\nimport position from 'inline-style-prefixer/lib/plugins/position';\nimport sizing from 'inline-style-prefixer/lib/plugins/sizing';\nimport transition from 'inline-style-prefixer/lib/plugins/transition';\nvar w = ['Webkit'];\nvar m = ['Moz'];\nvar wm = ['Webkit', 'Moz'];\nvar wms = ['Webkit', 'ms'];\nvar wmms = ['Webkit', 'Moz', 'ms'];\nexport default {\n plugins: [backgroundClip, crossFade, cursor, filter, imageSet, logical, position, sizing, transition],\n prefixMap: {\n appearance: wmms,\n userSelect: wm,\n textEmphasisPosition: wms,\n textEmphasis: wms,\n textEmphasisStyle: wms,\n textEmphasisColor: wms,\n boxDecorationBreak: wms,\n clipPath: w,\n maskImage: wms,\n maskMode: wms,\n maskRepeat: wms,\n maskPosition: wms,\n maskClip: wms,\n maskOrigin: wms,\n maskSize: wms,\n maskComposite: wms,\n mask: wms,\n maskBorderSource: wms,\n maskBorderMode: wms,\n maskBorderSlice: wms,\n maskBorderWidth: wms,\n maskBorderOutset: wms,\n maskBorderRepeat: wms,\n maskBorder: wms,\n maskType: wms,\n textDecorationStyle: w,\n textDecorationSkip: w,\n textDecorationLine: w,\n textDecorationColor: w,\n filter: w,\n breakAfter: w,\n breakBefore: w,\n breakInside: w,\n columnCount: w,\n columnFill: w,\n columnGap: w,\n columnRule: w,\n columnRuleColor: w,\n columnRuleStyle: w,\n columnRuleWidth: w,\n columns: w,\n columnSpan: w,\n columnWidth: w,\n backdropFilter: w,\n hyphens: w,\n flowInto: w,\n flowFrom: w,\n regionFragment: w,\n textOrientation: w,\n tabSize: m,\n fontKerning: w,\n textSizeAdjust: w\n }\n};","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport createPrefixer from 'inline-style-prefixer/lib/createPrefixer';\nimport staticData from './static';\nvar prefixAll = createPrefixer(staticData);\nexport default prefixAll;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animationKeyframes\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport createReactDOMStyle from './createReactDOMStyle';\nimport hash from './hash';\nimport hyphenateStyleName from './hyphenateStyleName';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport prefixStyles from '../../../modules/prefixStyles';\nvar cache = new Map();\nvar emptyObject = {};\nvar classicGroup = 1;\nvar atomicGroup = 2.2;\nvar customGroup = {\n borderColor: 2,\n borderRadius: 2,\n borderStyle: 2,\n borderWidth: 2,\n display: 2,\n flex: 2,\n margin: 2,\n overflow: 2,\n overscrollBehavior: 2,\n padding: 2,\n marginHorizontal: 2.1,\n marginVertical: 2.1,\n paddingHorizontal: 2.1,\n paddingVertical: 2.1\n};\nvar borderTopLeftRadius = 'borderTopLeftRadius';\nvar borderTopRightRadius = 'borderTopRightRadius';\nvar borderBottomLeftRadius = 'borderBottomLeftRadius';\nvar borderBottomRightRadius = 'borderBottomRightRadius';\nvar borderLeftColor = 'borderLeftColor';\nvar borderLeftStyle = 'borderLeftStyle';\nvar borderLeftWidth = 'borderLeftWidth';\nvar borderRightColor = 'borderRightColor';\nvar borderRightStyle = 'borderRightStyle';\nvar borderRightWidth = 'borderRightWidth';\nvar right = 'right';\nvar marginLeft = 'marginLeft';\nvar marginRight = 'marginRight';\nvar paddingLeft = 'paddingLeft';\nvar paddingRight = 'paddingRight';\nvar left = 'left'; // Map of LTR property names to their BiDi equivalent.\n\nvar PROPERTIES_FLIP = {\n [borderTopLeftRadius]: borderTopRightRadius,\n [borderTopRightRadius]: borderTopLeftRadius,\n [borderBottomLeftRadius]: borderBottomRightRadius,\n [borderBottomRightRadius]: borderBottomLeftRadius,\n [borderLeftColor]: borderRightColor,\n [borderLeftStyle]: borderRightStyle,\n [borderLeftWidth]: borderRightWidth,\n [borderRightColor]: borderLeftColor,\n [borderRightStyle]: borderLeftStyle,\n [borderRightWidth]: borderLeftWidth,\n [left]: right,\n [marginLeft]: marginRight,\n [marginRight]: marginLeft,\n [paddingLeft]: paddingRight,\n [paddingRight]: paddingLeft,\n [right]: left\n}; // Map of I18N property names to their LTR equivalent.\n\nvar PROPERTIES_I18N = {\n borderTopStartRadius: borderTopLeftRadius,\n borderTopEndRadius: borderTopRightRadius,\n borderBottomStartRadius: borderBottomLeftRadius,\n borderBottomEndRadius: borderBottomRightRadius,\n borderStartColor: borderLeftColor,\n borderStartStyle: borderLeftStyle,\n borderStartWidth: borderLeftWidth,\n borderEndColor: borderRightColor,\n borderEndStyle: borderRightStyle,\n borderEndWidth: borderRightWidth,\n end: right,\n marginStart: marginLeft,\n marginEnd: marginRight,\n paddingStart: paddingLeft,\n paddingEnd: paddingRight,\n start: left\n};\nvar PROPERTIES_VALUE = ['clear', 'float', 'textAlign'];\nexport function atomic(style) {\n var compiledStyle = {\n $$css: true\n };\n var compiledRules = [];\n\n function atomicCompile(prop, value) {\n var valueString = stringifyValueWithProperty(value, prop);\n var cacheKey = prop + valueString;\n var cachedResult = cache.get(cacheKey);\n var identifier;\n\n if (cachedResult != null) {\n identifier = cachedResult[0];\n compiledRules.push(cachedResult[1]);\n } else {\n identifier = createIdentifier('r', prop, value);\n var order = customGroup[prop] || atomicGroup;\n var rules = createAtomicRules(identifier, prop, value);\n var orderedRules = [rules, order];\n compiledRules.push(orderedRules);\n cache.set(cacheKey, [identifier, orderedRules]);\n }\n\n return identifier;\n }\n\n Object.keys(style).sort().forEach(prop => {\n var value = style[prop];\n\n if (value != null) {\n var localizeableValue; // BiDi flip values\n\n if (PROPERTIES_VALUE.indexOf(prop) > -1) {\n var _left = atomicCompile(prop, 'left');\n\n var _right = atomicCompile(prop, 'right');\n\n if (value === 'start') {\n localizeableValue = [_left, _right];\n } else if (value === 'end') {\n localizeableValue = [_right, _left];\n }\n } // BiDi flip properties\n\n\n var propPolyfill = PROPERTIES_I18N[prop];\n\n if (propPolyfill != null) {\n var ltr = atomicCompile(propPolyfill, value);\n var rtl = atomicCompile(PROPERTIES_FLIP[propPolyfill], value);\n localizeableValue = [ltr, rtl];\n } // BiDi flip transitionProperty value\n\n\n if (prop === 'transitionProperty') {\n var values = Array.isArray(value) ? value : [value];\n var polyfillIndices = [];\n\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n\n if (typeof val === 'string' && PROPERTIES_I18N[val] != null) {\n polyfillIndices.push(i);\n }\n }\n\n if (polyfillIndices.length > 0) {\n var ltrPolyfillValues = [...values];\n var rtlPolyfillValues = [...values];\n polyfillIndices.forEach(i => {\n var ltrVal = ltrPolyfillValues[i];\n\n if (typeof ltrVal === 'string') {\n var ltrPolyfill = PROPERTIES_I18N[ltrVal];\n var rtlPolyfill = PROPERTIES_FLIP[ltrPolyfill];\n ltrPolyfillValues[i] = ltrPolyfill;\n rtlPolyfillValues[i] = rtlPolyfill;\n\n var _ltr = atomicCompile(prop, ltrPolyfillValues);\n\n var _rtl = atomicCompile(prop, rtlPolyfillValues);\n\n localizeableValue = [_ltr, _rtl];\n }\n });\n }\n }\n\n if (localizeableValue == null) {\n localizeableValue = atomicCompile(prop, value);\n } else {\n compiledStyle['$$css$localize'] = true;\n }\n\n compiledStyle[prop] = localizeableValue;\n }\n });\n return [compiledStyle, compiledRules];\n}\n/**\n * Compile simple style object to classic CSS rules.\n * No support for 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\n\nexport function classic(style, name) {\n var compiledStyle = {\n $$css: true\n };\n var compiledRules = [];\n\n var animationKeyframes = style.animationKeyframes,\n rest = _objectWithoutPropertiesLoose(style, _excluded);\n\n var identifier = createIdentifier('css', name, style);\n var selector = \".\" + identifier;\n var animationName;\n\n if (animationKeyframes != null) {\n var _processKeyframesValu = processKeyframesValue(animationKeyframes),\n animationNames = _processKeyframesValu[0],\n keyframesRules = _processKeyframesValu[1];\n\n animationName = animationNames.join(',');\n compiledRules.push(...keyframesRules);\n }\n\n var block = createDeclarationBlock(_objectSpread(_objectSpread({}, rest), {}, {\n animationName\n }));\n compiledRules.push(\"\" + selector + block);\n compiledStyle[identifier] = identifier;\n return [compiledStyle, [[compiledRules, classicGroup]]];\n}\n/**\n * Compile simple style object to inline DOM styles.\n * No support for 'animationKeyframes', 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\n\nexport function inline(originalStyle, isRTL) {\n var style = originalStyle || emptyObject;\n var frozenProps = {};\n var nextStyle = {};\n\n for (var originalProp in style) {\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue;\n\n if (!Object.prototype.hasOwnProperty.call(style, originalProp) || originalValue == null) {\n continue;\n } // BiDi flip values\n\n\n if (PROPERTIES_VALUE.indexOf(originalProp) > -1) {\n if (originalValue === 'start') {\n value = isRTL ? 'right' : 'left';\n } else if (originalValue === 'end') {\n value = isRTL ? 'left' : 'right';\n }\n } // BiDi flip properties\n\n\n var propPolyfill = PROPERTIES_I18N[originalProp];\n\n if (propPolyfill != null) {\n prop = isRTL ? PROPERTIES_FLIP[propPolyfill] : propPolyfill;\n } // BiDi flip transitionProperty value\n\n\n if (originalProp === 'transitionProperty') {\n (function () {\n // $FlowFixMe\n var originalValues = Array.isArray(originalValue) ? originalValue : [originalValue];\n originalValues.forEach((val, i) => {\n if (typeof val === 'string') {\n var valuePolyfill = PROPERTIES_I18N[val];\n\n if (valuePolyfill != null) {\n originalValues[i] = isRTL ? PROPERTIES_FLIP[valuePolyfill] : valuePolyfill;\n }\n }\n });\n })();\n } // Create finalized style\n\n\n if (!frozenProps[prop]) {\n nextStyle[prop] = value;\n }\n\n if (PROPERTIES_I18N.hasOwnProperty(originalProp)) {\n frozenProps[prop] = true;\n }\n }\n\n return createReactDOMStyle(nextStyle, true);\n}\n/**\n * Create a value string that normalizes different input values with a common\n * output.\n */\n\nexport function stringifyValueWithProperty(value, property) {\n // e.g., 0 => '0px', 'black' => 'rgba(0,0,0,1)'\n var normalizedValue = normalizeValueWithProperty(value, property);\n return typeof normalizedValue !== 'string' ? JSON.stringify(normalizedValue || '') : normalizedValue;\n}\n/**\n * Create the Atomic CSS rules needed for a given StyleSheet rule.\n * Translates StyleSheet declarations to CSS.\n */\n\nfunction createAtomicRules(identifier, property, value) {\n var rules = [];\n var selector = \".\" + identifier; // Handle non-standard properties and object values that require multiple\n // CSS rules to be created.\n\n switch (property) {\n case 'animationKeyframes':\n {\n var _processKeyframesValu2 = processKeyframesValue(value),\n animationNames = _processKeyframesValu2[0],\n keyframesRules = _processKeyframesValu2[1];\n\n var block = createDeclarationBlock({\n animationName: animationNames.join(',')\n });\n rules.push(\"\" + selector + block, ...keyframesRules);\n break;\n }\n // Equivalent to using '::placeholder'\n\n case 'placeholderTextColor':\n {\n var _block = createDeclarationBlock({\n color: value,\n opacity: 1\n });\n\n rules.push(selector + \"::-webkit-input-placeholder\" + _block, selector + \"::-moz-placeholder\" + _block, selector + \":-ms-input-placeholder\" + _block, selector + \"::placeholder\" + _block);\n break;\n }\n // Polyfill for additional 'pointer-events' values\n // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n\n case 'pointerEvents':\n {\n var finalValue = value;\n\n if (value === 'auto' || value === 'box-only') {\n finalValue = 'auto!important';\n\n if (value === 'box-only') {\n var _block3 = createDeclarationBlock({\n pointerEvents: 'none'\n });\n\n rules.push(selector + \">*\" + _block3);\n }\n } else if (value === 'none' || value === 'box-none') {\n finalValue = 'none!important';\n\n if (value === 'box-none') {\n var _block4 = createDeclarationBlock({\n pointerEvents: 'auto'\n });\n\n rules.push(selector + \">*\" + _block4);\n }\n }\n\n var _block2 = createDeclarationBlock({\n pointerEvents: finalValue\n });\n\n rules.push(\"\" + selector + _block2);\n break;\n }\n // Polyfill for draft spec\n // https://drafts.csswg.org/css-scrollbars-1/\n\n case 'scrollbarWidth':\n {\n if (value === 'none') {\n rules.push(selector + \"::-webkit-scrollbar{display:none}\");\n }\n\n var _block5 = createDeclarationBlock({\n scrollbarWidth: value\n });\n\n rules.push(\"\" + selector + _block5);\n break;\n }\n\n default:\n {\n var _block6 = createDeclarationBlock({\n [property]: value\n });\n\n rules.push(\"\" + selector + _block6);\n break;\n }\n }\n\n return rules;\n}\n/**\n * Creates a CSS declaration block from a StyleSheet object.\n */\n\n\nfunction createDeclarationBlock(style) {\n var domStyle = prefixStyles(createReactDOMStyle(style));\n var declarationsString = Object.keys(domStyle).map(property => {\n var value = domStyle[property];\n var prop = hyphenateStyleName(property); // The prefixer may return an array of values:\n // { display: [ '-webkit-flex', 'flex' ] }\n // to represent \"fallback\" declarations\n // { display: -webkit-flex; display: flex; }\n\n if (Array.isArray(value)) {\n return value.map(v => prop + \":\" + v).join(';');\n } else {\n return prop + \":\" + value;\n }\n }) // Once properties are hyphenated, this will put the vendor\n // prefixed and short-form properties first in the list.\n .sort().join(';');\n return \"{\" + declarationsString + \";}\";\n}\n/**\n * An identifier is associated with a unique set of styles.\n */\n\n\nfunction createIdentifier(prefix, name, value) {\n var hashedString = hash(name + stringifyValueWithProperty(value, name));\n return process.env.NODE_ENV !== 'production' ? prefix + \"-\" + name + \"-\" + hashedString : prefix + \"-\" + hashedString;\n}\n/**\n * Create individual CSS keyframes rules.\n */\n\n\nfunction createKeyframes(keyframes) {\n var prefixes = ['-webkit-', ''];\n var identifier = createIdentifier('r', 'animation', keyframes);\n var steps = '{' + Object.keys(keyframes).map(stepName => {\n var rule = keyframes[stepName];\n var block = createDeclarationBlock(rule);\n return \"\" + stepName + block;\n }).join('') + '}';\n var rules = prefixes.map(prefix => {\n return \"@\" + prefix + \"keyframes \" + identifier + steps;\n });\n return [identifier, rules];\n}\n/**\n * Create CSS keyframes rules and names from a StyleSheet keyframes object.\n */\n\n\nfunction processKeyframesValue(keyframesValue) {\n if (typeof keyframesValue === 'number') {\n throw new Error(\"Invalid CSS keyframes type: \" + typeof keyframesValue);\n }\n\n var animationNames = [];\n var rules = [];\n var value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];\n value.forEach(keyframes => {\n if (typeof keyframes === 'string') {\n // Support external animation libraries (identifiers only)\n animationNames.push(keyframes);\n } else {\n // Create rules for each of the keyframes\n var _createKeyframes = createKeyframes(keyframes),\n identifier = _createKeyframes[0],\n keyframesRules = _createKeyframes[1];\n\n animationNames.push(identifier);\n rules.push(...keyframesRules);\n }\n });\n return [animationNames, rules];\n}","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport { atomic, classic, inline } from './compiler';\nimport { createSheet } from './dom';\nimport { localizeStyle } from 'styleq/transform-localize-style';\nimport { preprocess } from './preprocess';\nimport { styleq } from 'styleq';\nimport { validate } from './validate';\nimport canUseDOM from '../../modules/canUseDom';\nvar staticStyleMap = new WeakMap();\nvar sheet = createSheet();\n\nfunction customStyleq(styles, isRTL) {\n return styleq.factory({\n transform(style) {\n var compiledStyle = staticStyleMap.get(style);\n\n if (compiledStyle != null) {\n return localizeStyle(compiledStyle, isRTL);\n }\n\n return style;\n }\n\n })(styles);\n}\n\nfunction insertRules(compiledOrderedRules) {\n compiledOrderedRules.forEach(_ref => {\n var rules = _ref[0],\n order = _ref[1];\n\n if (sheet != null) {\n rules.forEach(rule => {\n sheet.insert(rule, order);\n });\n }\n });\n}\n\nfunction compileAndInsertAtomic(style) {\n var _atomic = atomic(preprocess(style)),\n compiledStyle = _atomic[0],\n compiledOrderedRules = _atomic[1];\n\n insertRules(compiledOrderedRules);\n return compiledStyle;\n}\n\nfunction compileAndInsertReset(style, key) {\n var _classic = classic(style, key),\n compiledStyle = _classic[0],\n compiledOrderedRules = _classic[1];\n\n insertRules(compiledOrderedRules);\n return compiledStyle;\n}\n/* ----- API ----- */\n\n\nvar absoluteFillObject = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n};\nvar absoluteFill = create({\n x: _objectSpread({}, absoluteFillObject)\n}).x;\n/**\n * create\n */\n\nfunction create(styles) {\n Object.keys(styles).forEach(key => {\n var styleObj = styles[key]; // Only compile at runtime if the style is not already compiled\n\n if (styleObj != null && styleObj.$$css !== true) {\n var compiledStyles;\n\n if (key.indexOf('$raw') > -1) {\n compiledStyles = compileAndInsertReset(styleObj, key.split('$raw')[0]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n validate(styleObj);\n styles[key] = Object.freeze(styleObj);\n }\n\n compiledStyles = compileAndInsertAtomic(styleObj);\n }\n\n staticStyleMap.set(styleObj, compiledStyles);\n }\n });\n return styles;\n}\n/**\n * compose\n */\n\n\nfunction compose(style1, style2) {\n if (process.env.NODE_ENV !== 'production') {\n /* eslint-disable prefer-rest-params */\n var len = arguments.length;\n\n if (len > 2) {\n var readableStyles = [...arguments].map(a => flatten(a));\n throw new Error(\"StyleSheet.compose() only accepts 2 arguments, received \" + len + \": \" + JSON.stringify(readableStyles));\n }\n /* eslint-enable prefer-rest-params */\n\n }\n\n if (style1 && style2) {\n return [style1, style2];\n } else {\n return style1 || style2;\n }\n}\n/**\n * flatten\n */\n\n\nfunction flatten() {\n for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {\n styles[_key] = arguments[_key];\n }\n\n var flatArray = styles.flat(Infinity);\n var result = {};\n\n for (var i = 0; i < flatArray.length; i++) {\n var style = flatArray[i];\n\n if (style != null && typeof style === 'object') {\n // $FlowFixMe\n Object.assign(result, style);\n }\n }\n\n return result;\n}\n/**\n * getSheet\n */\n\n\nfunction getSheet() {\n return {\n id: sheet.id,\n textContent: sheet.getTextContent()\n };\n}\n/**\n * resolve\n */\n\n\nfunction StyleSheet(styles, options) {\n var isRTL = options != null && options.writingDirection === 'rtl';\n var styleProps = customStyleq(styles, isRTL);\n\n if (Array.isArray(styleProps) && styleProps[1] != null) {\n styleProps[1] = inline(preprocess(styleProps[1]), isRTL);\n }\n\n return styleProps;\n}\n\nStyleSheet.absoluteFill = absoluteFill;\nStyleSheet.absoluteFillObject = absoluteFillObject;\nStyleSheet.create = create;\nStyleSheet.compose = compose;\nStyleSheet.flatten = flatten;\nStyleSheet.getSheet = getSheet; // `hairlineWidth` is not implemented using screen density as browsers may\n// round sub-pixel values down to `0`, causing the line not to be rendered.\n\nStyleSheet.hairlineWidth = 1;\n\nif (canUseDOM && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;\n}\n\nvar stylesheet = StyleSheet;\nexport default stylesheet;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import * as React from 'react';\nimport { View, ViewStyle, StyleSheet, StyleProp } from 'react-native';\nimport Icon, { IconSource } from '../Icon';\nimport { withTheme } from '../../core/theming';\nimport { white } from '../../styles/colors';\nimport getContrastingColor from '../../utils/getContrastingColor';\n\nconst defaultSize = 64;\n\nexport type Props = React.ComponentPropsWithRef & {\n /**\n * Icon to display for the `Avatar`.\n */\n icon: IconSource;\n /**\n * Size of the avatar.\n */\n size?: number;\n /**\n * Custom color for the icon.\n */\n color?: string;\n style?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\n/**\n * Avatars can be used to represent people in a graphical way.\n *\n *
\n *
\n * \n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Avatar } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n * ```\n */\nconst Avatar = ({ icon, size = defaultSize, style, theme, ...rest }: Props) => {\n const { backgroundColor = theme.colors.primary, ...restStyle } =\n StyleSheet.flatten(style) || {};\n const textColor =\n rest.color ??\n getContrastingColor(backgroundColor, white, 'rgba(0, 0, 0, .54)');\n\n return (\n \n \n
\n );\n};\n\nAvatar.displayName = 'Avatar.Icon';\n\nconst styles = StyleSheet.create({\n container: {\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport default withTheme(Avatar);\n","import * as React from 'react';\nimport {\n Image,\n ImageSourcePropType,\n ImageProps,\n StyleSheet,\n View,\n ViewStyle,\n StyleProp,\n} from 'react-native';\nimport { withTheme } from '../../core/theming';\n\nconst defaultSize = 64;\n\nexport type AvatarImageSource =\n | ImageSourcePropType\n | ((props: { size: number }) => React.ReactNode);\n\nexport type Props = React.ComponentPropsWithRef & {\n /**\n * Image to display for the `Avatar`.\n * It accepts a standard React Native Image `source` prop\n * Or a function that returns an `Image`.\n */\n source: AvatarImageSource;\n /**\n * Size of the avatar.\n */\n size?: number;\n style?: StyleProp;\n /**\n * Invoked on load error.\n */\n onError?: ImageProps['onError'];\n /**\n * Invoked on mount and on layout changes.\n */\n onLayout?: ImageProps['onLayout'];\n /**\n * Invoked when load completes successfully.\n */\n onLoad?: ImageProps['onLoad'];\n /**\n * Invoked when load either succeeds or fails.\n */\n onLoadEnd?: ImageProps['onLoadEnd'];\n /**\n * Invoked on load start.\n */\n onLoadStart?: ImageProps['onLoadStart'];\n /**\n * Invoked on download progress.\n */\n onProgress?: ImageProps['onProgress'];\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\n/**\n * Avatars can be used to represent people in a graphical way.\n *\n *
\n *
\n * \n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Avatar } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n * export default MyComponent\n * ```\n */\nconst AvatarImage = ({\n size = defaultSize,\n source,\n style,\n onError,\n onLayout,\n onLoad,\n onLoadEnd,\n onLoadStart,\n onProgress,\n theme,\n ...rest\n}: Props) => {\n const { colors } = theme;\n\n const { backgroundColor = colors.primary } = StyleSheet.flatten(style) || {};\n\n return (\n \n {typeof source === 'function' && source({ size })}\n {typeof source !== 'function' && (\n \n )}\n \n );\n};\n\nAvatarImage.displayName = 'Avatar.Image';\n\nexport default withTheme(AvatarImage);\n","import * as React from 'react';\nimport {\n View,\n ViewStyle,\n StyleSheet,\n StyleProp,\n TextStyle,\n useWindowDimensions,\n} from 'react-native';\nimport Text from '../Typography/Text';\nimport { withTheme } from '../../core/theming';\nimport { white } from '../../styles/colors';\nimport getContrastingColor from '../../utils/getContrastingColor';\n\nconst defaultSize = 64;\n\nexport type Props = React.ComponentPropsWithRef & {\n /**\n * Initials to show as the text in the `Avatar`.\n */\n label: string;\n /**\n * Size of the avatar.\n */\n size?: number;\n /**\n * Custom color for the text.\n */\n color?: string;\n /**\n * Style for text container\n */\n style?: StyleProp;\n /**\n * Style for the title.\n */\n labelStyle?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\n/**\n * Avatars can be used to represent people in a graphical way.\n *\n *
\n *
\n * \n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Avatar } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n * ```\n */\nconst AvatarText = ({\n label,\n size = defaultSize,\n style,\n theme,\n labelStyle,\n color: customColor,\n ...rest\n}: Props) => {\n const { backgroundColor = theme.colors.primary, ...restStyle } =\n StyleSheet.flatten(style) || {};\n const textColor =\n customColor ??\n getContrastingColor(backgroundColor, white, 'rgba(0, 0, 0, .54)');\n const { fontScale } = useWindowDimensions();\n\n return (\n \n \n {label}\n \n \n );\n};\n\nAvatarText.displayName = 'Avatar.Text';\n\nconst styles = StyleSheet.create({\n container: {\n justifyContent: 'center',\n alignItems: 'center',\n },\n text: {\n textAlign: 'center',\n textAlignVertical: 'center',\n },\n});\n\nexport default withTheme(AvatarText);\n","import * as React from 'react';\n\nexport type Props = {\n /**\n * Function to execute on selection change.\n */\n onAccordionPress?: (expandedId: string | number) => void;\n /**\n * Id of the currently expanded list accordion\n */\n expandedId?: string | number;\n /**\n * React elements containing list accordions\n */\n children: React.ReactNode;\n};\n\nexport type ListAccordionGroupContextType = {\n expandedId: string | number | undefined;\n onAccordionPress: (expandedId: string | number) => void;\n} | null;\n\nexport const ListAccordionGroupContext =\n React.createContext(null);\n\n/**\n * List.AccordionGroup allows to control a group of List Accordions. `id` prop for List.Accordion is required in order for group to work.\n * List.AccordionGroup can be a controlled or uncontrolled component. The example shows the uncontrolled version.\n * At most one Accordion can be expanded at a given time.\n *\n *
\n * \n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View, Text } from 'react-native';\n * import { List } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * List.Accordion can be wrapped because implementation uses React.Context.\n * \n * \n * \n * \n * \n * \n * );\n *\n * export default MyComponent;\n *```\n */\nconst ListAccordionGroup = ({\n expandedId: expandedIdProp,\n onAccordionPress,\n children,\n}: Props) => {\n const [expandedId, setExpandedId] = React.useState<\n string | number | undefined\n >(undefined);\n\n const onAccordionPressDefault = (newExpandedId: string | number) => {\n setExpandedId((currentExpandedId) =>\n currentExpandedId === newExpandedId ? undefined : newExpandedId\n );\n };\n\n return (\n \n {children}\n \n );\n};\n\nListAccordionGroup.displayName = 'List.AccordionGroup';\n\nexport default ListAccordionGroup;\n","import color from 'color';\nimport * as React from 'react';\nimport {\n View,\n ViewStyle,\n StyleSheet,\n StyleProp,\n TextStyle,\n I18nManager,\n GestureResponderEvent,\n} from 'react-native';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport MaterialCommunityIcon from '../MaterialCommunityIcon';\nimport Text from '../Typography/Text';\nimport { withTheme } from '../../core/theming';\n\nimport { ListAccordionGroupContext } from './ListAccordionGroup';\n\nexport type Props = {\n /**\n * Title text for the list accordion.\n */\n title: React.ReactNode;\n /**\n * Description text for the list accordion.\n */\n description?: React.ReactNode;\n /**\n * Callback which returns a React element to display on the left side.\n */\n left?: (props: { color: string }) => React.ReactNode;\n /**\n * Callback which returns a React element to display on the right side.\n */\n right?: (props: { isExpanded: boolean }) => React.ReactNode;\n /**\n * Whether the accordion is expanded\n * If this prop is provided, the accordion will behave as a \"controlled component\".\n * You'll need to update this prop when you want to toggle the component or on `onPress`.\n */\n expanded?: boolean;\n /**\n * Function to execute on press.\n */\n onPress?: () => void;\n /**\n * Function to execute on long press.\n */\n onLongPress?: (e: GestureResponderEvent) => void;\n /**\n * Content of the section.\n */\n children: React.ReactNode;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n /**\n * Style that is passed to the wrapping TouchableRipple element.\n */\n style?: StyleProp;\n /**\n * Style that is passed to Title element.\n */\n titleStyle?: StyleProp;\n /**\n * Style that is passed to Description element.\n */\n descriptionStyle?: StyleProp;\n /**\n * Truncate Title text such that the total number of lines does not\n * exceed this number.\n */\n titleNumberOfLines?: number;\n /**\n * Truncate Description text such that the total number of lines does not\n * exceed this number.\n */\n descriptionNumberOfLines?: number;\n /**\n * Id is used for distinguishing specific accordion when using List.AccordionGroup. Property is required when using List.AccordionGroup and has no impact on behavior when using standalone List.Accordion.\n */\n id?: string | number;\n /**\n * TestID used for testing purposes\n */\n testID?: string;\n /**\n * Accessibility label for the TouchableRipple. This is read by the screen reader when the user taps the touchable.\n */\n accessibilityLabel?: string;\n};\n\n/**\n * A component used to display an expandable list item.\n *\n *
\n * \n * \n * \n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { List } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [expanded, setExpanded] = React.useState(true);\n *\n * const handlePress = () => setExpanded(!expanded);\n *\n * return (\n * \n * }>\n * \n * \n * \n *\n * }\n * expanded={expanded}\n * onPress={handlePress}>\n * \n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst ListAccordion = ({\n left,\n right,\n title,\n description,\n children,\n theme,\n titleStyle,\n descriptionStyle,\n titleNumberOfLines = 1,\n descriptionNumberOfLines = 2,\n style,\n id,\n testID,\n onPress,\n onLongPress,\n expanded: expandedProp,\n accessibilityLabel,\n}: Props) => {\n const [expanded, setExpanded] = React.useState(\n expandedProp || false\n );\n\n const handlePressAction = () => {\n onPress?.();\n\n if (expandedProp === undefined) {\n // Only update state of the `expanded` prop was not passed\n // If it was passed, the component will act as a controlled component\n setExpanded((expanded) => !expanded);\n }\n };\n\n const titleColor = color(theme.colors.text).alpha(0.87).rgb().string();\n const descriptionColor = color(theme.colors.text).alpha(0.54).rgb().string();\n\n const expandedInternal = expandedProp !== undefined ? expandedProp : expanded;\n\n const groupContext = React.useContext(ListAccordionGroupContext);\n if (groupContext !== null && !id) {\n throw new Error(\n 'List.Accordion is used inside a List.AccordionGroup without specifying an id prop.'\n );\n }\n const isExpanded = groupContext\n ? groupContext.expandedId === id\n : expandedInternal;\n const handlePress =\n groupContext && id !== undefined\n ? () => groupContext.onAccordionPress(id)\n : handlePressAction;\n return (\n \n \n \n \n {left\n ? left({\n color: isExpanded ? theme.colors.primary : descriptionColor,\n })\n : null}\n \n \n {title}\n \n {description ? (\n \n {description}\n \n ) : null}\n \n \n {right ? (\n right({\n isExpanded: isExpanded,\n })\n ) : (\n \n )}\n \n \n \n \n\n {isExpanded\n ? React.Children.map(children, (child) => {\n if (\n left &&\n React.isValidElement(child) &&\n !child.props.left &&\n !child.props.right\n ) {\n return React.cloneElement(child, {\n style: [styles.child, child.props.style],\n });\n }\n\n return child;\n })\n : null}\n \n );\n};\n\nListAccordion.displayName = 'List.Accordion';\n\nconst styles = StyleSheet.create({\n container: {\n padding: 8,\n },\n row: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n multiline: {\n height: 40,\n alignItems: 'center',\n justifyContent: 'center',\n },\n title: {\n fontSize: 16,\n },\n description: {\n fontSize: 14,\n },\n item: {\n margin: 8,\n },\n child: {\n paddingLeft: 64,\n },\n content: {\n flex: 1,\n justifyContent: 'center',\n },\n});\n\nexport default withTheme(ListAccordion);\n","import * as React from 'react';\nimport { View, ViewStyle, StyleSheet, StyleProp } from 'react-native';\nimport Icon, { IconSource } from '../Icon';\n\nexport type Props = {\n /**\n * Icon to show.\n */\n icon: IconSource;\n /**\n * Color for the icon.\n */\n color?: string;\n style?: StyleProp;\n};\n\nconst ICON_SIZE = 24;\n\n/**\n * A component to show an icon in a list item.\n *\n *
\n *
\n * \n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { List, Colors } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * <>\n * \n * \n * \n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst ListIcon = ({ icon, color: iconColor, style }: Props) => (\n \n \n \n);\n\nconst styles = StyleSheet.create({\n item: {\n margin: 8,\n height: 40,\n width: 40,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nListIcon.displayName = 'List.Icon';\n\nexport default ListIcon;\n","import color from 'color';\nimport * as React from 'react';\nimport {\n StyleProp,\n StyleSheet,\n TextStyle,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport Text from '../Typography/Text';\nimport { withTheme } from '../../core/theming';\nimport type { $RemoveChildren, EllipsizeProp } from '../../types';\n\ntype Title =\n | React.ReactNode\n | ((props: {\n selectable: boolean;\n ellipsizeMode: EllipsizeProp | undefined;\n color: string;\n fontSize: number;\n }) => React.ReactNode);\n\ntype Description =\n | React.ReactNode\n | ((props: {\n selectable: boolean;\n ellipsizeMode: EllipsizeProp | undefined;\n color: string;\n fontSize: number;\n }) => React.ReactNode);\n\nexport type Props = $RemoveChildren & {\n /**\n * Title text for the list item.\n */\n title: Title;\n /**\n * Description text for the list item or callback which returns a React element to display the description.\n */\n description?: Description;\n /**\n * Callback which returns a React element to display on the left side.\n */\n left?: (props: {\n color: string;\n style: {\n marginLeft: number;\n marginRight: number;\n marginVertical?: number;\n };\n }) => React.ReactNode;\n /**\n * Callback which returns a React element to display on the right side.\n */\n right?: (props: {\n color: string;\n style?: {\n marginRight: number;\n marginVertical?: number;\n };\n }) => React.ReactNode;\n /**\n * Function to execute on press.\n */\n onPress?: () => void;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n /**\n * Style that is passed to the wrapping TouchableRipple element.\n */\n style?: StyleProp;\n /**\n * Style that is passed to Title element.\n */\n titleStyle?: StyleProp;\n /**\n * Style that is passed to Description element.\n */\n descriptionStyle?: StyleProp;\n /**\n * Truncate Title text such that the total number of lines does not\n * exceed this number.\n */\n titleNumberOfLines?: number;\n /**\n * Truncate Description text such that the total number of lines does not\n * exceed this number.\n */\n descriptionNumberOfLines?: number;\n /**\n * Ellipsize Mode for the Title. One of `'head'`, `'middle'`, `'tail'`, `'clip'`.\n *\n * See [`ellipsizeMode`](https://reactnative.dev/docs/text#ellipsizemode)\n */\n titleEllipsizeMode?: EllipsizeProp;\n /**\n * Ellipsize Mode for the Description. One of `'head'`, `'middle'`, `'tail'`, `'clip'`.\n *\n * See [`ellipsizeMode`](https://reactnative.dev/docs/text#ellipsizemode)\n */\n descriptionEllipsizeMode?: EllipsizeProp;\n};\n\n/**\n * A component to show tiles inside a List.\n *\n *
\n * \n * \n * \n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { List } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * }\n * />\n * );\n *\n * export default MyComponent;\n * ```\n *\n * @extends TouchableRipple props https://callstack.github.io/react-native-paper/touchable-ripple.html\n */\nconst ListItem = ({\n left,\n right,\n title,\n description,\n onPress,\n theme,\n style,\n titleStyle,\n titleNumberOfLines = 1,\n descriptionNumberOfLines = 2,\n titleEllipsizeMode,\n descriptionEllipsizeMode,\n descriptionStyle,\n ...rest\n}: Props) => {\n const renderDescription = (\n descriptionColor: string,\n description?: Description | null\n ) => {\n return typeof description === 'function' ? (\n description({\n selectable: false,\n ellipsizeMode: descriptionEllipsizeMode,\n color: descriptionColor,\n fontSize: styles.description.fontSize,\n })\n ) : (\n \n {description}\n \n );\n };\n\n const renderTitle = () => {\n const titleColor = color(theme.colors.text).alpha(0.87).rgb().string();\n\n return typeof title === 'function' ? (\n title({\n selectable: false,\n ellipsizeMode: titleEllipsizeMode,\n color: titleColor,\n fontSize: styles.title.fontSize,\n })\n ) : (\n \n {title}\n \n );\n };\n\n const descriptionColor = color(theme.colors.text).alpha(0.54).rgb().string();\n\n return (\n \n \n {left\n ? left({\n color: descriptionColor,\n style: description\n ? styles.iconMarginLeft\n : {\n ...styles.iconMarginLeft,\n ...styles.marginVerticalNone,\n },\n })\n : null}\n \n {renderTitle()}\n\n {description\n ? renderDescription(descriptionColor, description)\n : null}\n \n {right\n ? right({\n color: descriptionColor,\n style: description\n ? styles.iconMarginRight\n : {\n ...styles.iconMarginRight,\n ...styles.marginVerticalNone,\n },\n })\n : null}\n \n \n );\n};\n\nListItem.displayName = 'List.Item';\n\nconst styles = StyleSheet.create({\n container: {\n padding: 8,\n },\n row: {\n flexDirection: 'row',\n },\n title: {\n fontSize: 16,\n },\n description: {\n fontSize: 14,\n },\n marginVerticalNone: { marginVertical: 0 },\n iconMarginLeft: { marginLeft: 0, marginRight: 16 },\n iconMarginRight: { marginRight: 0 },\n item: {\n marginVertical: 6,\n paddingLeft: 8,\n },\n content: {\n flex: 1,\n justifyContent: 'center',\n },\n});\n\nexport default withTheme(ListItem);\n","import * as React from 'react';\nimport { StyleSheet, StyleProp, TextStyle } from 'react-native';\nimport color from 'color';\nimport Text from '../Typography/Text';\nimport { withTheme } from '../../core/theming';\n\nexport type Props = React.ComponentProps & {\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n /**\n * Style that is passed to Text element.\n */\n style?: StyleProp;\n};\n\n/**\n * A component used to display a header in lists.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { List } from 'react-native-paper';\n *\n * const MyComponent = () => My List Title;\n *\n * export default MyComponent;\n * ```\n */\nconst ListSubheader = ({ style, theme, ...rest }: Props) => {\n const { colors, fonts } = theme;\n const font = fonts.medium;\n const textColor = color(colors.text).alpha(0.54).rgb().string();\n\n return (\n \n );\n};\n\nListSubheader.displayName = 'List.Subheader';\n\nconst styles = StyleSheet.create({\n container: {\n paddingHorizontal: 16,\n paddingVertical: 13,\n },\n});\n\nexport default withTheme(ListSubheader);\n","import * as React from 'react';\nimport {\n View,\n ViewStyle,\n StyleSheet,\n StyleProp,\n TextStyle,\n} from 'react-native';\nimport ListSubheader from './ListSubheader';\nimport { withTheme } from '../../core/theming';\n\nexport type Props = React.ComponentPropsWithRef & {\n /**\n * Title text for the section.\n */\n title?: string;\n /**\n * Content of the section.\n */\n children: React.ReactNode;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n /**\n * Style that is passed to Title element.\n */\n titleStyle?: StyleProp;\n style?: StyleProp;\n};\n\n/**\n * A component used to group list items.\n *\n *
\n * \n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { List } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * Some title\n * } />\n * }\n * />\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst ListSection = ({\n children,\n title,\n titleStyle,\n style,\n ...rest\n}: Props) => (\n \n {title ? {title} : null}\n {children}\n \n);\n\nListSection.displayName = 'List.Section';\n\nconst styles = StyleSheet.create({\n container: {\n marginVertical: 8,\n },\n});\n\nexport default withTheme(ListSection);\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * The set of allowed kind values for AST nodes.\n */\nexport var Kind = Object.freeze({\n // Name\n NAME: 'Name',\n // Document\n DOCUMENT: 'Document',\n OPERATION_DEFINITION: 'OperationDefinition',\n VARIABLE_DEFINITION: 'VariableDefinition',\n SELECTION_SET: 'SelectionSet',\n FIELD: 'Field',\n ARGUMENT: 'Argument',\n // Fragments\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_FRAGMENT: 'InlineFragment',\n FRAGMENT_DEFINITION: 'FragmentDefinition',\n // Values\n VARIABLE: 'Variable',\n INT: 'IntValue',\n FLOAT: 'FloatValue',\n STRING: 'StringValue',\n BOOLEAN: 'BooleanValue',\n NULL: 'NullValue',\n ENUM: 'EnumValue',\n LIST: 'ListValue',\n OBJECT: 'ObjectValue',\n OBJECT_FIELD: 'ObjectField',\n // Directives\n DIRECTIVE: 'Directive',\n // Types\n NAMED_TYPE: 'NamedType',\n LIST_TYPE: 'ListType',\n NON_NULL_TYPE: 'NonNullType',\n // Type System Definitions\n SCHEMA_DEFINITION: 'SchemaDefinition',\n OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n // Type Definitions\n SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n FIELD_DEFINITION: 'FieldDefinition',\n INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n // Directive Definitions\n DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n // Type System Extensions\n SCHEMA_EXTENSION: 'SchemaExtension',\n // Type Extensions\n SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension'\n});\n/**\n * The enum type representing the possible kind values of AST nodes.\n */\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __read, __spread, __values } from \"tslib\";\nexport var constructStack = function () {\n var absoluteEntries = [];\n var relativeEntries = [];\n var entriesNameSet = new Set();\n var sort = function (entries) {\n return entries.sort(function (a, b) {\n return stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"];\n });\n };\n var removeByName = function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n if (entry.name && entry.name === toRemove) {\n isRemoved = true;\n entriesNameSet.delete(toRemove);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n var removeByReference = function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n if (entry.name)\n entriesNameSet.delete(entry.name);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n var cloneTo = function (toStack) {\n absoluteEntries.forEach(function (entry) {\n //@ts-ignore\n toStack.add(entry.middleware, __assign({}, entry));\n });\n relativeEntries.forEach(function (entry) {\n //@ts-ignore\n toStack.addRelativeTo(entry.middleware, __assign({}, entry));\n });\n return toStack;\n };\n var expandRelativeMiddlewareList = function (from) {\n var expandedMiddlewareList = [];\n from.before.forEach(function (entry) {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push.apply(expandedMiddlewareList, __spread(expandRelativeMiddlewareList(entry)));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach(function (entry) {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push.apply(expandedMiddlewareList, __spread(expandRelativeMiddlewareList(entry)));\n }\n });\n return expandedMiddlewareList;\n };\n /**\n * Get a final list of middleware in the order of being executed in the resolved handler.\n */\n var getMiddlewareList = function () {\n var normalizedAbsoluteEntries = [];\n var normalizedRelativeEntries = [];\n var normalizedEntriesNameMap = {};\n absoluteEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), { before: [], after: [] });\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), { before: [], after: [] });\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach(function (entry) {\n if (entry.toMiddleware) {\n var toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n throw new Error(entry.toMiddleware + \" is not found when adding \" + (entry.name || \"anonymous\") + \" middleware \" + entry.relation + \" \" + entry.toMiddleware);\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n var mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce(function (wholeList, expendedMiddlewareList) {\n // TODO: Replace it with Array.flat();\n wholeList.push.apply(wholeList, __spread(expendedMiddlewareList));\n return wholeList;\n }, []);\n return mainChain.map(function (entry) { return entry.middleware; });\n };\n var stack = {\n add: function (middleware, options) {\n if (options === void 0) { options = {}; }\n var name = options.name, override = options.override;\n var entry = __assign({ step: \"initialize\", priority: \"normal\", middleware: middleware }, options);\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(\"Duplicate middleware name '\" + name + \"'\");\n var toOverrideIndex = absoluteEntries.findIndex(function (entry) { return entry.name === name; });\n var toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || toOverride.priority !== entry.priority) {\n throw new Error(\"\\\"\" + name + \"\\\" middleware with \" + toOverride.priority + \" priority in \" + toOverride.step + \" step cannot be \" +\n (\"overridden by same-name middleware with \" + entry.priority + \" priority in \" + entry.step + \" step.\"));\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: function (middleware, options) {\n var name = options.name, override = options.override;\n var entry = __assign({ middleware: middleware }, options);\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(\"Duplicate middleware name '\" + name + \"'\");\n var toOverrideIndex = relativeEntries.findIndex(function (entry) { return entry.name === name; });\n var toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(\"\\\"\" + name + \"\\\" middleware \" + toOverride.relation + \" \\\"\" + toOverride.toMiddleware + \"\\\" middleware cannot be overridden \" +\n (\"by same-name middleware \" + entry.relation + \" \\\"\" + entry.toMiddleware + \"\\\" middleware.\"));\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n relativeEntries.push(entry);\n },\n clone: function () { return cloneTo(constructStack()); },\n use: function (plugin) {\n plugin.applyToStack(stack);\n },\n remove: function (toRemove) {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n var tags = entry.tags, name = entry.name;\n if (tags && tags.includes(toRemove)) {\n if (name)\n entriesNameSet.delete(name);\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: function (from) {\n var cloned = cloneTo(constructStack());\n cloned.use(from);\n return cloned;\n },\n applyToStack: cloneTo,\n resolve: function (handler, context) {\n var e_1, _a;\n try {\n for (var _b = __values(getMiddlewareList().reverse()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var middleware = _c.value;\n handler = middleware(handler, context);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return handler;\n },\n };\n return stack;\n};\nvar stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nvar priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlkZGxld2FyZVN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL01pZGRsZXdhcmVTdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBZ0JBLE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRztJQUM1QixJQUFJLGVBQWUsR0FBNkMsRUFBRSxDQUFDO0lBQ25FLElBQUksZUFBZSxHQUE2QyxFQUFFLENBQUM7SUFDbkUsSUFBTSxjQUFjLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFOUMsSUFBTSxJQUFJLEdBQUcsVUFBbUQsT0FBWTtRQUMxRSxPQUFBLE9BQU8sQ0FBQyxJQUFJLENBQ1YsVUFBQyxDQUFDLEVBQUUsQ0FBQztZQUNILE9BQUEsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDekMsZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDO1FBRGpGLENBQ2lGLENBQ3BGO0lBSkQsQ0FJQyxDQUFDO0lBRUosSUFBTSxZQUFZLEdBQUcsVUFBQyxRQUFnQjtRQUNwQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBTSxRQUFRLEdBQUcsVUFBQyxLQUFxQztZQUNyRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQ3pDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ2pCLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2hDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztRQUNGLGVBQWUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELGVBQWUsR0FBRyxlQUFl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QUM7Q0FDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzb2x1dGVMb2NhdGlvbixcbiAgRGVzZXJpYWxpemVIYW5kbGVyLFxuICBIYW5kbGVyLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgSGFuZGxlck9wdGlvbnMsXG4gIE1pZGRsZXdhcmVTdGFjayxcbiAgTWlkZGxld2FyZVR5cGUsXG4gIFBsdWdnYWJsZSxcbiAgUHJpb3JpdHksXG4gIFJlbGF0aXZlTG9jYXRpb24sXG4gIFN0ZXAsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBBYnNvbHV0ZU1pZGRsZXdhcmVFbnRyeSwgTWlkZGxld2FyZUVudHJ5LCBOb3JtYWxpemVkLCBSZWxhdGl2ZU1pZGRsZXdhcmVFbnRyeSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBjb25zdHJ1Y3RTdGFjayA9IDxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0PigpOiBNaWRkbGV3YXJlU3RhY2s8SW5wdXQsIE91dHB1dD4gPT4ge1xuICBsZXQgYWJzb2x1dGVFbnRyaWVzOiBBYnNvbHV0ZU1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PltdID0gW107XG4gIGxldCByZWxhdGl2ZUVudHJpZXM6IFJlbGF0aXZlTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+W10gPSBbXTtcbiAgY29uc3QgZW50cmllc05hbWVTZXQ6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpO1xuXG4gIGNvbnN0IHNvcnQgPSA8VCBleHRlbmRzIEFic29sdXRlTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+PihlbnRyaWVzOiBUW10pOiBUW10gPT5cbiAgICBlbnRyaWVzLnNvcnQoXG4gICAgICAoYSwgYikgPT5cbiAgICAgICAgc3RlcFdlaWdodHNbYi5zdGVwXSAtIHN0ZXBXZWlnaHRzW2Euc3RlcF0gfHxcbiAgICAgICAgcHJpb3JpdHlXZWlnaHRzW2IucHJpb3JpdHkgfHwgXCJub3JtYWxcIl0gLSBwcmlvcml0eVdlaWdodHNbYS5wcmlvcml0eSB8fCBcIm5vcm1hbFwiXVxuICAgICk7XG5cbiAgY29uc3QgcmVtb3ZlQnlOYW1lID0gKHRvUmVtb3ZlOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICBsZXQgaXNSZW1vdmVkID0gZmFsc2U7XG4gICAgY29uc3QgZmlsdGVyQ2IgPSAoZW50cnk6IE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKGVudHJ5Lm5hbWUgJiYgZW50cnkubmFtZSA9PT0gdG9SZW1vdmUpIHtcbiAgICAgICAgaXNSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgZW50cmllc05hbWVTZXQuZGVsZXRlKHRvUmVtb3ZlKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICBhYnNvbHV0ZUVudHJpZXMgPSBhYnNvbHV0ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZWxhdGl2ZUVudHJpZXMgPSByZWxhdGl2ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZXR1cm4gaXNSZW1vdmVkO1xuICB9O1xuXG4gIGNvbnN0IHJlbW92ZUJ5UmVmZXJlbmNlID0gKHRvUmVtb3ZlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4gPT4ge1xuICAgIGxldCBpc1JlbW92ZWQgPSBmYWxzZTtcbiAgICBjb25zdCBmaWx0ZXJDYiA9IChlbnRyeTogTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+KTogYm9vbGVhbiA9PiB7XG4gICAgICBpZiAoZW50cnkubWlkZGxld2FyZSA9PT0gdG9SZW1vdmUpIHtcbiAgICAgICAgaXNSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKGVudHJ5Lm5hbWUpIGVudHJpZXNOYW1lU2V0LmRlbGV0ZShlbnRyeS5uYW1lKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICBhYnNvbHV0ZUVudHJpZXMgPSBhYnNvbHV0ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZWxhdGl2ZUVudHJpZXMgPSByZWxhdGl2ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZXR1cm4gaXNSZW1vdmVkO1xuICB9O1xuXG4gIGNvbnN0IGNsb25lVG8gPSA8SW5wdXRUeXBlIGV4dGVuZHMgSW5wdXQsIE91dHB1dFR5cGUgZXh0ZW5kcyBPdXRwdXQ+KFxuICAgIHRvU3RhY2s6IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+XG4gICk6IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+ID0+IHtcbiAgICBhYnNvbHV0ZUVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgdG9TdGFjay5hZGQoZW50cnkubWlkZGxld2FyZSwgeyAuLi5lbnRyeSB9KTtcbiAgICB9KTtcbiAgICByZWxhdGl2ZUVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgdG9TdGFjay5hZGRSZWxhdGl2ZVRvKGVudHJ5Lm1pZGRsZXdhcmUsIHsgLi4uZW50cnkgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRvU3RhY2s7XG4gIH07XG5cbiAgY29uc3QgZXhwYW5kUmVsYXRpdmVNaWRkbGV3YXJlTGlzdCA9IChcbiAgICBmcm9tOiBOb3JtYWxpemVkPE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PiwgSW5wdXQsIE91dHB1dD5cbiAgKTogTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+W10gPT4ge1xuICAgIGNvbnN0IGV4cGFuZGVkTWlkZGxld2FyZUxpc3Q6IE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PltdID0gW107XG4gICAgZnJvbS5iZWZvcmUuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGlmIChlbnRyeS5iZWZvcmUubGVuZ3RoID09PSAwICYmIGVudHJ5LmFmdGVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBleHBhbmRlZE1pZGRsZXdhcmVMaXN0LnB1c2goZW50cnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhwYW5kZWRNaWRkbGV3YXJlTGlzdC5wdXNoKC4uLmV4cGFuZFJlbGF0aXZlTWlkZGxld2FyZUxpc3QoZW50cnkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBleHBhbmRlZE1pZGRsZXdhcmVMaXN0LnB1c2goZnJvbSk7XG4gICAgZnJvbS5hZnRlci5yZXZlcnNlKCkuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGlmIChlbnRyeS5iZWZvcmUubGVuZ3RoID09PSAwICYmIGVudHJ5LmFmdGVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBleHBhbmRlZE1pZGRsZXdhcmVMaXN0LnB1c2goZW50cnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhwYW5kZWRNaWRkbGV3YXJlTGlzdC5wdXNoKC4uLmV4cGFuZFJlbGF0aXZlTWlkZGxld2FyZUxpc3QoZW50cnkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZXhwYW5kZWRNaWRkbGV3YXJlTGlzdDtcbiAgfTtcblxuICAvKipcbiAgICogR2V0IGEgZmluYWwgbGlzdCBvZiBtaWRkbGV3YXJlIGluIHRoZSBvcmRlciBvZiBiZWluZyBleGVjdXRlZCBpbiB0aGUgcmVzb2x2ZWQgaGFuZGxlci5cbiAgICovXG4gIGNvbnN0IGdldE1pZGRsZXdhcmVMaXN0ID0gKCk6IEFycmF5PE1pZGRsZXdhcmVUeXBlPElucHV0LCBPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZEFic29sdXRlRW50cmllczogTm9ybWFsaXplZDxBYnNvbHV0ZU1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PiwgSW5wdXQsIE91dHB1dD5bXSA9IFtdO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJpZXM6IE5vcm1hbGl6ZWQ8UmVsYXRpdmVNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4sIElucHV0LCBPdXRwdXQ+W10gPSBbXTtcbiAgICBjb25zdCBub3JtYWxpemVkRW50cmllc05hbWVNYXA6IHtcbiAgICAgIFttaWRkbGV3YXJlTmFtZTogc3RyaW5nXTogTm9ybWFsaXplZDxNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4sIElucHV0LCBPdXRwdXQ+O1xuICAgIH0gPSB7fTtcblxuICAgIGFic29sdXRlRW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZEVudHJ5ID0ge1xuICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgYmVmb3JlOiBbXSxcbiAgICAgICAgYWZ0ZXI6IFtdLFxuICAgICAgfTtcbiAgICAgIGlmIChub3JtYWxpemVkRW50cnkubmFtZSkgbm9ybWFsaXplZEVudHJpZXNOYW1lTWFwW25vcm1hbGl6ZWRFbnRyeS5uYW1lXSA9IG5vcm1hbGl6ZWRFbnRyeTtcbiAgICAgIG5vcm1hbGl6ZWRBYnNvbHV0ZUVudHJpZXMucHVzaChub3JtYWxpemVkRW50cnkpO1xuICAgIH0pO1xuXG4gICAgcmVsYXRpdmVFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICBjb25zdCBub3JtYWxpemVkRW50cnkgPSB7XG4gICAgICAgIC4uLmVudHJ5LFxuICAgICAgICBiZWZvcmU6IFtdLFxuICAgICAgICBhZnRlcjogW10sXG4gICAgICB9O1xuICAgICAgaWYgKG5vcm1hbGl6ZWRFbnRyeS5uYW1lKSBub3JtYWxpemVkRW50cmllc05hbWVNYXBbbm9ybWFsaXplZEVudHJ5Lm5hbWVdID0gbm9ybWFsaXplZEVudHJ5O1xuICAgICAgbm9ybWFsaXplZFJlbGF0aXZlRW50cmllcy5wdXNoKG5vcm1hbGl6ZWRFbnRyeSk7XG4gICAgfSk7XG5cbiAgICBub3JtYWxpemVkUmVsYXRpdmVFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICBpZiAoZW50cnkudG9NaWRkbGV3YXJlKSB7XG4gICAgICAgIGNvbnN0IHRvTWlkZGxld2FyZSA9IG5vcm1hbGl6ZWRFbnRyaWVzTmFtZU1hcFtlbnRyeS50b01pZGRsZXdhcmVdO1xuICAgICAgICBpZiAodG9NaWRkbGV3YXJlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgJHtlbnRyeS50b01pZGRsZXdhcmV9IGlzIG5vdCBmb3VuZCB3aGVuIGFkZGluZyAke2VudHJ5Lm5hbWUgfHwgXCJhbm9ueW1vdXNcIn0gbWlkZGxld2FyZSAke2VudHJ5LnJlbGF0aW9ufSAke1xuICAgICAgICAgICAgICBlbnRyeS50b01pZGRsZXdhcmVcbiAgICAgICAgICAgIH1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkucmVsYXRpb24gPT09IFwiYWZ0ZXJcIikge1xuICAgICAgICAgIHRvTWlkZGxld2FyZS5hZnRlci5wdXNoKGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkucmVsYXRpb24gPT09IFwiYmVmb3JlXCIpIHtcbiAgICAgICAgICB0b01pZGRsZXdhcmUuYmVmb3JlLnB1c2goZW50cnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBtYWluQ2hhaW4gPSBzb3J0KG5vcm1hbGl6ZWRBYnNvbHV0ZUVudHJpZXMpXG4gICAgICAubWFwKGV4cGFuZFJlbGF0aXZlTWlkZGxld2FyZUxpc3QpXG4gICAgICAucmVkdWNlKCh3aG9sZUxpc3QsIGV4cGVuZGVkTWlkZGxld2FyZUxpc3QpID0+IHtcbiAgICAgICAgLy8gVE9ETzogUmVwbGFjZSBpdCB3aXRoIEFycmF5LmZsYXQoKTtcbiAgICAgICAgd2hvbGVMaXN0LnB1c2goLi4uZXhwZW5kZWRNaWRkbGV3YXJlTGlzdCk7XG4gICAgICAgIHJldHVybiB3aG9sZUxpc3Q7XG4gICAgICB9LCBbXSBhcyBNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD5bXSk7XG4gICAgcmV0dXJuIG1haW5DaGFpbi5tYXAoKGVudHJ5KSA9PiBlbnRyeS5taWRkbGV3YXJlKTtcbiAgfTtcblxuICBjb25zdCBzdGFjayA9IHtcbiAgICBhZGQ6IChtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Piwgb3B0aW9uczogSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uID0ge30pID0+IHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgb3ZlcnJpZGUgfSA9IG9wdGlvbnM7XG4gICAgICBjb25zdCBlbnRyeTogQWJzb2x1dGVNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4gPSB7XG4gICAgICAgIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICAgICAgICBwcmlvcml0eTogXCJub3JtYWxcIixcbiAgICAgICAgbWlkZGxld2FyZSxcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIH07XG4gICAgICBpZiAobmFtZSkge1xuICAgICAgICBpZiAoZW50cmllc05hbWVTZXQuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgaWYgKCFvdmVycmlkZSkgdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgbWlkZGxld2FyZSBuYW1lICcke25hbWV9J2ApO1xuICAgICAgICAgIGNvbnN0IHRvT3ZlcnJpZGVJbmRleCA9IGFic29sdXRlRW50cmllcy5maW5kSW5kZXgoKGVudHJ5KSA9PiBlbnRyeS5uYW1lID09PSBuYW1lKTtcbiAgICAgICAgICBjb25zdCB0b092ZXJyaWRlID0gYWJzb2x1dGVFbnRyaWVzW3RvT3ZlcnJpZGVJbmRleF07XG4gICAgICAgICAgaWYgKHRvT3ZlcnJpZGUuc3RlcCAhPT0gZW50cnkuc3RlcCB8fCB0b092ZXJyaWRlLnByaW9yaXR5ICE9PSBlbnRyeS5wcmlvcml0eSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgXCIke25hbWV9XCIgbWlkZGxld2FyZSB3aXRoICR7dG9PdmVycmlkZS5wcmlvcml0eX0gcHJpb3JpdHkgaW4gJHt0b092ZXJyaWRlLnN0ZXB9IHN0ZXAgY2Fubm90IGJlIGAgK1xuICAgICAgICAgICAgICAgIGBvdmVycmlkZGVuIGJ5IHNhbWUtbmFtZSBtaWRkbGV3YXJlIHdpdGggJHtlbnRyeS5wcmlvcml0eX0gcHJpb3JpdHkgaW4gJHtlbnRyeS5zdGVwfSBzdGVwLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFic29sdXRlRW50cmllcy5zcGxpY2UodG9PdmVycmlkZUluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgICBlbnRyaWVzTmFtZVNldC5hZGQobmFtZSk7XG4gICAgICB9XG4gICAgICBhYnNvbHV0ZUVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgfSxcblxuICAgIGFkZFJlbGF0aXZlVG86IChtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Piwgb3B0aW9uczogSGFuZGxlck9wdGlvbnMgJiBSZWxhdGl2ZUxvY2F0aW9uKSA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUsIG92ZXJyaWRlIH0gPSBvcHRpb25zO1xuICAgICAgY29uc3QgZW50cnk6IFJlbGF0aXZlTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+ID0ge1xuICAgICAgICBtaWRkbGV3YXJlLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgfTtcbiAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgIGlmIChlbnRyaWVzTmFtZVNldC5oYXMobmFtZSkpIHtcbiAgICAgICAgICBpZiAoIW92ZXJyaWRlKSB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZSBtaWRkbGV3YXJlIG5hbWUgJyR7bmFtZX0nYCk7XG4gICAgICAgICAgY29uc3QgdG9PdmVycmlkZUluZGV4ID0gcmVsYXRpdmVFbnRyaWVzLmZpbmRJbmRleCgoZW50cnkpID0+IGVudHJ5Lm5hbWUgPT09IG5hbWUpO1xuICAgICAgICAgIGNvbnN0IHRvT3ZlcnJpZGUgPSByZWxhdGl2ZUVudHJpZXNbdG9PdmVycmlkZUluZGV4XTtcbiAgICAgICAgICBpZiAodG9PdmVycmlkZS50b01pZGRsZXdhcmUgIT09IGVudHJ5LnRvTWlkZGxld2FyZSB8fCB0b092ZXJyaWRlLnJlbGF0aW9uICE9PSBlbnRyeS5yZWxhdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgXCIke25hbWV9XCIgbWlkZGxld2FyZSAke3RvT3ZlcnJpZGUucmVsYXRpb259IFwiJHt0b092ZXJyaWRlLnRvTWlkZGxld2FyZX1cIiBtaWRkbGV3YXJlIGNhbm5vdCBiZSBvdmVycmlkZGVuIGAgK1xuICAgICAgICAgICAgICAgIGBieSBzYW1lLW5hbWUgbWlkZGxld2FyZSAke2VudHJ5LnJlbGF0aW9ufSBcIiR7ZW50cnkudG9NaWRkbGV3YXJlfVwiIG1pZGRsZXdhcmUuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVsYXRpdmVFbnRyaWVzLnNwbGljZSh0b092ZXJyaWRlSW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIGVudHJpZXNOYW1lU2V0LmFkZChuYW1lKTtcbiAgICAgIH1cbiAgICAgIHJlbGF0aXZlRW50cmllcy5wdXNoKGVudHJ5KTtcbiAgICB9LFxuXG4gICAgY2xvbmU6ICgpID0+IGNsb25lVG8oY29uc3RydWN0U3RhY2s8SW5wdXQsIE91dHB1dD4oKSksXG5cbiAgICB1c2U6IChwbHVnaW46IFBsdWdnYWJsZTxJbnB1dCwgT3V0cHV0PikgPT4ge1xuICAgICAgcGx1Z2luLmFwcGx5VG9TdGFjayhzdGFjayk7XG4gICAgfSxcblxuICAgIHJlbW92ZTogKHRvUmVtb3ZlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0PiB8IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKHR5cGVvZiB0b1JlbW92ZSA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIHJlbW92ZUJ5TmFtZSh0b1JlbW92ZSk7XG4gICAgICBlbHNlIHJldHVybiByZW1vdmVCeVJlZmVyZW5jZSh0b1JlbW92ZSk7XG4gICAgfSxcblxuICAgIHJlbW92ZUJ5VGFnOiAodG9SZW1vdmU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgbGV0IGlzUmVtb3ZlZCA9IGZhbHNlO1xuICAgICAgY29uc3QgZmlsdGVyQ2IgPSAoZW50cnk6IE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4gPT4ge1xuICAgICAgICBjb25zdCB7IHRhZ3MsIG5hbWUgfSA9IGVudHJ5O1xuICAgICAgICBpZiAodGFncyAmJiB0YWdzLmluY2x1ZGVzKHRvUmVtb3ZlKSkge1xuICAgICAgICAgIGlmIChuYW1lKSBlbnRyaWVzTmFtZVNldC5kZWxldGUobmFtZSk7XG4gICAgICAgICAgaXNSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9O1xuICAgICAgYWJzb2x1dGVFbnRyaWVzID0gYWJzb2x1dGVFbnRyaWVzLmZpbHRlcihmaWx0ZXJDYik7XG4gICAgICByZWxhdGl2ZUVudHJpZXMgPSByZWxhdGl2ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICAgIHJldHVybiBpc1JlbW92ZWQ7XG4gICAgfSxcblxuICAgIGNvbmNhdDogPElucHV0VHlwZSBleHRlbmRzIElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgT3V0cHV0PihcbiAgICAgIGZyb206IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+XG4gICAgKTogTWlkZGxld2FyZVN0YWNrPElucHV0VHlwZSwgT3V0cHV0VHlwZT4gPT4ge1xuICAgICAgY29uc3QgY2xvbmVkID0gY2xvbmVUbyhjb25zdHJ1Y3RTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+KCkpO1xuICAgICAgY2xvbmVkLnVzZShmcm9tKTtcbiAgICAgIHJldHVybiBjbG9uZWQ7XG4gICAgfSxcblxuICAgIGFwcGx5VG9TdGFjazogY2xvbmVUbyxcblxuICAgIHJlc29sdmU6IDxJbnB1dFR5cGUgZXh0ZW5kcyBJbnB1dCwgT3V0cHV0VHlwZSBleHRlbmRzIE91dHB1dD4oXG4gICAgICBoYW5kbGVyOiBEZXNlcmlhbGl6ZUhhbmRsZXI8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPixcbiAgICAgIGNvbnRleHQ6IEhhbmRsZXJFeGVjdXRpb25Db250ZXh0XG4gICAgKTogSGFuZGxlcjxJbnB1dFR5cGUsIE91dHB1dFR5cGU+ID0+IHtcbiAgICAgIGZvciAoY29uc3QgbWlkZGxld2FyZSBvZiBnZXRNaWRkbGV3YXJlTGlzdCgpLnJldmVyc2UoKSkge1xuICAgICAgICBoYW5kbGVyID0gbWlkZGxld2FyZShoYW5kbGVyIGFzIEhhbmRsZXI8SW5wdXQsIE91dHB1dFR5cGU+LCBjb250ZXh0KSBhcyBhbnk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFuZGxlciBhcyBIYW5kbGVyPElucHV0VHlwZSwgT3V0cHV0VHlwZT47XG4gICAgfSxcbiAgfTtcbiAgcmV0dXJuIHN0YWNrO1xufTtcblxuY29uc3Qgc3RlcFdlaWdodHM6IHsgW2tleSBpbiBTdGVwXTogbnVtYmVyIH0gPSB7XG4gIGluaXRpYWxpemU6IDUsXG4gIHNlcmlhbGl6ZTogNCxcbiAgYnVpbGQ6IDMsXG4gIGZpbmFsaXplUmVxdWVzdDogMixcbiAgZGVzZXJpYWxpemU6IDEsXG59O1xuXG5jb25zdCBwcmlvcml0eVdlaWdodHM6IHsgW2tleSBpbiBQcmlvcml0eV06IG51bWJlciB9ID0ge1xuICBoaWdoOiAzLFxuICBub3JtYWw6IDIsXG4gIGxvdzogMSxcbn07XG4iXX0=","import { constructStack } from \"@aws-sdk/middleware-stack\";\nvar Client = /** @class */ (function () {\n function Client(config) {\n this.middlewareStack = constructStack();\n this.config = config;\n }\n Client.prototype.send = function (command, optionsOrCb, cb) {\n var options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n var callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n var handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n if (callback) {\n handler(command)\n .then(function (result) { return callback(null, result.output); }, function (err) { return callback(err); })\n .catch(\n // prevent any errors thrown in the callback from triggering an\n // unhandled promise rejection\n function () { });\n }\n else {\n return handler(command).then(function (result) { return result.output; });\n }\n };\n Client.prototype.destroy = function () {\n if (this.config.requestHandler.destroy)\n this.config.requestHandler.destroy();\n };\n return Client;\n}());\nexport { Client };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFlM0Q7SUFRRSxnQkFBWSxNQUFtQztRQUZ4QyxvQkFBZSxHQUFHLGNBQWMsRUFBNkIsQ0FBQztRQUduRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBY0QscUJBQUksR0FBSixVQUNFLE9BQStHLEVBQy9HLFdBQXNFLEVBQ3RFLEVBQTBDO1FBRTFDLElBQU0sT0FBTyxHQUFHLE9BQU8sV0FBVyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDNUUsSUFBTSxRQUFRLEdBQUcsT0FBTyxXQUFXLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBRSxXQUFxRCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakgsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxlQUFzQixFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0YsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLENBQUMsT0FBTyxDQUFDO2lCQUNiLElBQUksQ0FDSCxVQUFDLE1BQU0sSUFBSyxPQUFBLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUE3QixDQUE2QixFQUN6QyxVQUFDLEdBQVEsSUFBSyxPQUFBLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBYixDQUFhLENBQzVCO2lCQUNBLEtBQUs7WUFDSiwrREFBK0Q7WUFDL0QsOEJBQThCO1lBQzlCLGNBQU8sQ0FBQyxDQUNULENBQUM7U0FDTDthQUFNO1lBQ0wsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsTUFBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLE1BQU0sRUFBYixDQUFhLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFFRCx3QkFBTyxHQUFQO1FBQ0UsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDL0UsQ0FBQztJQUNILGFBQUM7QUFBRCxDQUFDLEFBbkRELElBbURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uc3RydWN0U3RhY2sgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1zdGFja1wiO1xuaW1wb3J0IHsgQ2xpZW50IGFzIElDbGllbnQsIENvbW1hbmQsIE1ldGFkYXRhQmVhcmVyLCBSZXF1ZXN0SGFuZGxlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNtaXRoeUNvbmZpZ3VyYXRpb248SGFuZGxlck9wdGlvbnM+IHtcbiAgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyPGFueSwgYW55LCBIYW5kbGVyT3B0aW9ucz47XG4gIC8qKlxuICAgKiBUaGUgQVBJIHZlcnNpb24gc2V0IGludGVybmFsbHkgYnkgdGhlIFNESywgYW5kIGlzXG4gICAqIG5vdCBwbGFubmVkIHRvIGJlIHVzZWQgYnkgY3VzdG9tZXIgY29kZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICByZWFkb25seSBhcGlWZXJzaW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFNtaXRoeVJlc29sdmVkQ29uZmlndXJhdGlvbjxIYW5kbGVyT3B0aW9ucz4gPSBTbWl0aHlDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPjtcblxuZXhwb3J0IGNsYXNzIENsaWVudDxcbiAgSGFuZGxlck9wdGlvbnMsXG4gIENsaWVudElucHV0IGV4dGVuZHMgb2JqZWN0LFxuICBDbGllbnRPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlcixcbiAgUmVzb2x2ZWRDbGllbnRDb25maWd1cmF0aW9uIGV4dGVuZHMgU21pdGh5UmVzb2x2ZWRDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPlxuPiBpbXBsZW1lbnRzIElDbGllbnQ8Q2xpZW50SW5wdXQsIENsaWVudE91dHB1dCwgUmVzb2x2ZWRDbGllbnRDb25maWd1cmF0aW9uPiB7XG4gIHB1YmxpYyBtaWRkbGV3YXJlU3RhY2sgPSBjb25zdHJ1Y3RTdGFjazxDbGllbnRJbnB1dCwgQ2xpZW50T3V0cHV0PigpO1xuICByZWFkb25seSBjb25maWc6IFJlc29sdmVkQ2xpZW50Q29uZmlndXJhdGlvbjtcbiAgY29uc3RydWN0b3IoY29uZmlnOiBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb24pIHtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgfVxuICBzZW5kPElucHV0VHlwZSBleHRlbmRzIENsaWVudElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgQ2xpZW50T3V0cHV0PihcbiAgICBjb21tYW5kOiBDb21tYW5kPENsaWVudElucHV0LCBJbnB1dFR5cGUsIENsaWVudE91dHB1dCwgT3V0cHV0VHlwZSwgU21pdGh5UmVzb2x2ZWRDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPj4sXG4gICAgb3B0aW9ucz86IEhhbmRsZXJPcHRpb25zXG4gICk6IFByb21pc2U8T3V0cHV0VHlwZT47XG4gIHNlbmQ8SW5wdXRUeXBlIGV4dGVuZHMgQ2xpZW50SW5wdXQsIE91dHB1dFR5cGUgZXh0ZW5kcyBDbGllbnRPdXRwdXQ+KFxuICAgIGNvbW1hbmQ6IENvbW1hbmQ8Q2xpZW50SW5wdXQsIElucHV0VHlwZSwgQ2xpZW50T3V0cHV0LCBPdXRwdXRUeXBlLCBTbWl0aHlSZXNvbHZlZENvbmZpZ3VyYXRpb248SGFuZGxlck9wdGlvbnM+PixcbiAgICBjYjogKGVycjogYW55LCBkYXRhPzogT3V0cHV0VHlwZSkgPT4gdm9pZFxuICApOiB2b2lkO1xuICBzZW5kPElucHV0VHlwZSBleHRlbmRzIENsaWVudElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgQ2xpZW50T3V0cHV0PihcbiAgICBjb21tYW5kOiBDb21tYW5kPENsaWVudElucHV0LCBJbnB1dFR5cGUsIENsaWVudE91dHB1dCwgT3V0cHV0VHlwZSwgU21pdGh5UmVzb2x2ZWRDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPj4sXG4gICAgb3B0aW9uczogSGFuZGxlck9wdGlvbnMsXG4gICAgY2I6IChlcnI6IGFueSwgZGF0YT86IE91dHB1dFR5cGUpID0+IHZvaWRcbiAgKTogdm9pZDtcbiAgc2VuZDxJbnB1dFR5cGUgZXh0ZW5kcyBDbGllbnRJbnB1dCwgT3V0cHV0VHlwZSBleHRlbmRzIENsaWVudE91dHB1dD4oXG4gICAgY29tbWFuZDogQ29tbWFuZDxDbGllbnRJbnB1dCwgSW5wdXRUeXBlLCBDbGllbnRPdXRwdXQsIE91dHB1dFR5cGUsIFNtaXRoeVJlc29sdmVkQ29uZmlndXJhdGlvbjxIYW5kbGVyT3B0aW9ucz4+LFxuICAgIG9wdGlvbnNPckNiPzogSGFuZGxlck9wdGlvbnMgfCAoKGVycjogYW55LCBkYXRhPzogT3V0cHV0VHlwZSkgPT4gdm9pZCksXG4gICAgY2I/OiAoZXJyOiBhbnksIGRhdGE/OiBPdXRwdXRUeXBlKSA9PiB2b2lkXG4gICk6IFByb21pc2U8T3V0cHV0VHlwZT4gfCB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gdHlwZW9mIG9wdGlvbnNPckNiICE9PSBcImZ1bmN0aW9uXCIgPyBvcHRpb25zT3JDYiA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBjYWxsYmFjayA9IHR5cGVvZiBvcHRpb25zT3JDYiA9PT0gXCJmdW5jdGlvblwiID8gKG9wdGlvbnNPckNiIGFzIChlcnI6IGFueSwgZGF0YT86IE91dHB1dFR5cGUpID0+IHZvaWQpIDogY2I7XG4gICAgY29uc3QgaGFuZGxlciA9IGNvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUodGhpcy5taWRkbGV3YXJlU3RhY2sgYXMgYW55LCB0aGlzLmNvbmZpZywgb3B0aW9ucyk7XG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICBoYW5kbGVyKGNvbW1hbmQpXG4gICAgICAgIC50aGVuKFxuICAgICAgICAgIChyZXN1bHQpID0+IGNhbGxiYWNrKG51bGwsIHJlc3VsdC5vdXRwdXQpLFxuICAgICAgICAgIChlcnI6IGFueSkgPT4gY2FsbGJhY2soZXJyKVxuICAgICAgICApXG4gICAgICAgIC5jYXRjaChcbiAgICAgICAgICAvLyBwcmV2ZW50IGFueSBlcnJvcnMgdGhyb3duIGluIHRoZSBjYWxsYmFjayBmcm9tIHRyaWdnZXJpbmcgYW5cbiAgICAgICAgICAvLyB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb25cbiAgICAgICAgICAoKSA9PiB7fVxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaGFuZGxlcihjb21tYW5kKS50aGVuKChyZXN1bHQpID0+IHJlc3VsdC5vdXRwdXQpO1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnJlcXVlc3RIYW5kbGVyLmRlc3Ryb3kpIHRoaXMuY29uZmlnLnJlcXVlc3RIYW5kbGVyLmRlc3Ryb3koKTtcbiAgfVxufVxuIl19","import { constructStack } from \"@aws-sdk/middleware-stack\";\nvar Command = /** @class */ (function () {\n function Command() {\n this.middlewareStack = constructStack();\n }\n return Command;\n}());\nexport { Command };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUczRDtJQUFBO1FBUVcsb0JBQWUsR0FBb0MsY0FBYyxFQUFpQixDQUFDO0lBTTlGLENBQUM7SUFBRCxjQUFDO0FBQUQsQ0FBQyxBQWRELElBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25zdHJ1Y3RTdGFjayB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXN0YWNrXCI7XG5pbXBvcnQgeyBDb21tYW5kIGFzIElDb21tYW5kLCBIYW5kbGVyLCBNZXRhZGF0YUJlYXJlciwgTWlkZGxld2FyZVN0YWNrIGFzIElNaWRkbGV3YXJlU3RhY2sgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbW1hbmQ8XG4gIElucHV0IGV4dGVuZHMgQ2xpZW50SW5wdXQsXG4gIE91dHB1dCBleHRlbmRzIENsaWVudE91dHB1dCxcbiAgUmVzb2x2ZWRDbGllbnRDb25maWd1cmF0aW9uLFxuICBDbGllbnRJbnB1dCBleHRlbmRzIG9iamVjdCA9IGFueSxcbiAgQ2xpZW50T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXIgPSBhbnlcbj4gaW1wbGVtZW50cyBJQ29tbWFuZDxDbGllbnRJbnB1dCwgSW5wdXQsIENsaWVudE91dHB1dCwgT3V0cHV0LCBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb24+IHtcbiAgYWJzdHJhY3QgaW5wdXQ6IElucHV0O1xuICByZWFkb25seSBtaWRkbGV3YXJlU3RhY2s6IElNaWRkbGV3YXJlU3RhY2s8SW5wdXQsIE91dHB1dD4gPSBjb25zdHJ1Y3RTdGFjazxJbnB1dCwgT3V0cHV0PigpO1xuICBhYnN0cmFjdCByZXNvbHZlTWlkZGxld2FyZShcbiAgICBzdGFjazogSU1pZGRsZXdhcmVTdGFjazxDbGllbnRJbnB1dCwgQ2xpZW50T3V0cHV0PixcbiAgICBjb25maWd1cmF0aW9uOiBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb24sXG4gICAgb3B0aW9uczogYW55XG4gICk6IEhhbmRsZXI8SW5wdXQsIE91dHB1dD47XG59XG4iXX0=","/**\n * Function that wraps encodeURIComponent to encode additional characters\n * to fully adhere to RFC 3986.\n */\nexport function extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16);\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtZW5jb2RlLXVyaS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXh0ZW5kZWQtZW5jb2RlLXVyaS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEdBQVc7SUFDcEQsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQztRQUM1RCxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZ1bmN0aW9uIHRoYXQgd3JhcHMgZW5jb2RlVVJJQ29tcG9uZW50IHRvIGVuY29kZSBhZGRpdGlvbmFsIGNoYXJhY3RlcnNcbiAqIHRvIGZ1bGx5IGFkaGVyZSB0byBSRkMgMzk4Ni5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzdHIpLnJlcGxhY2UoL1shJygpKl0vZywgZnVuY3Rpb24gKGMpIHtcbiAgICByZXR1cm4gXCIlXCIgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpO1xuICB9KTtcbn1cbiJdfQ==","/**\n * The XML parser will set one K:V for a member that could\n * return multiple entries but only has one.\n */\nexport var getArrayIfSingleItem = function (mayBeArray) {\n return Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFycmF5LWlmLXNpbmdsZS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dldC1hcnJheS1pZi1zaW5nbGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxVQUFJLFVBQWE7SUFDbkQsT0FBQSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0FBQXJELENBQXFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBYTUwgcGFyc2VyIHdpbGwgc2V0IG9uZSBLOlYgZm9yIGEgbWVtYmVyIHRoYXQgY291bGRcbiAqIHJldHVybiBtdWx0aXBsZSBlbnRyaWVzIGJ1dCBvbmx5IGhhcyBvbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBcnJheUlmU2luZ2xlSXRlbSA9IDxUPihtYXlCZUFycmF5OiBUKTogVCB8IFRbXSA9PlxuICBBcnJheS5pc0FycmF5KG1heUJlQXJyYXkpID8gbWF5QmVBcnJheSA6IFttYXlCZUFycmF5XTtcbiJdfQ==","/**\n * Recursively parses object and populates value is node from\n * \"#text\" key if it's available\n */\nexport var getValueFromTextNode = function (obj) {\n var textNodeName = \"#text\";\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n }\n else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n obj[key] = getValueFromTextNode(obj[key]);\n }\n }\n return obj;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZhbHVlLWZyb20tdGV4dC1ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dldC12YWx1ZS1mcm9tLXRleHQtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxVQUFDLEdBQVE7SUFDM0MsSUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDO0lBQzdCLEtBQUssSUFBTSxHQUFHLElBQUksR0FBRyxFQUFFO1FBQ3JCLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ25FLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDbkM7YUFBTSxJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzVELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMzQztLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlY3Vyc2l2ZWx5IHBhcnNlcyBvYmplY3QgYW5kIHBvcHVsYXRlcyB2YWx1ZSBpcyBub2RlIGZyb21cbiAqIFwiI3RleHRcIiBrZXkgaWYgaXQncyBhdmFpbGFibGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFZhbHVlRnJvbVRleHROb2RlID0gKG9iajogYW55KSA9PiB7XG4gIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIG9ialtrZXldW3RleHROb2RlTmFtZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqW2tleV0gPSBvYmpba2V5XVt0ZXh0Tm9kZU5hbWVdO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIG9ialtrZXldID09PSBcIm9iamVjdFwiICYmIG9ialtrZXldICE9PSBudWxsKSB7XG4gICAgICBvYmpba2V5XSA9IGdldFZhbHVlRnJvbVRleHROb2RlKG9ialtrZXldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG4iXX0=","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * Lazy String holder for JSON typed contents.\n */\nimport { __extends, __read, __spread } from \"tslib\";\n/**\n * Because of https://github.com/microsoft/tslib/issues/95,\n * TS 'extends' shim doesn't support extending native types like String.\n * So here we create StringWrapper that duplicate everything from String\n * class including its prototype chain. So we can extend from here.\n */\n// @ts-ignore StringWrapper implementation is not a simple constructor\nexport var StringWrapper = function () {\n //@ts-ignore 'this' cannot be assigned to any, but Object.getPrototypeOf accepts any\n var Class = Object.getPrototypeOf(this).constructor;\n var Constructor = Function.bind.apply(String, __spread([null], arguments));\n //@ts-ignore Call wrapped String constructor directly, don't bother typing it.\n var instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance;\n};\nStringWrapper.prototype = Object.create(String.prototype, {\n constructor: {\n value: StringWrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n});\nObject.setPrototypeOf(StringWrapper, String);\nvar LazyJsonString = /** @class */ (function (_super) {\n __extends(LazyJsonString, _super);\n function LazyJsonString() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LazyJsonString.prototype.deserializeJSON = function () {\n return JSON.parse(_super.prototype.toString.call(this));\n };\n LazyJsonString.prototype.toJSON = function () {\n return _super.prototype.toString.call(this);\n };\n LazyJsonString.fromObject = function (object) {\n if (object instanceof LazyJsonString) {\n return object;\n }\n else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n return new LazyJsonString(JSON.stringify(object));\n };\n return LazyJsonString;\n}(StringWrapper));\nexport { LazyJsonString };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1qc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xhenktanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7QUFNSDs7Ozs7R0FLRztBQUNILHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQWtCO0lBQzFDLG9GQUFvRjtJQUNwRixJQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUN0RCxJQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLFlBQUcsSUFBVyxHQUFLLFNBQVMsRUFBRSxDQUFDO0lBQzdFLDhFQUE4RTtJQUM5RSxJQUFNLFFBQVEsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQ25DLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRCxPQUFPLFFBQWtCLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBQ0YsYUFBYSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7SUFDeEQsV0FBVyxFQUFFO1FBQ1gsS0FBSyxFQUFFLGFBQWE7UUFDcEIsVUFBVSxFQUFFLEtBQUs7UUFDakIsUUFBUSxFQUFFLElBQUk7UUFDZCxZQUFZLEVBQUUsSUFBSTtLQUNuQjtDQUNGLENBQUMsQ0FBQztBQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRTdDO0lBQW9DLGtDQUFhO0lBQWpEOztJQWlCQSxDQUFDO0lBaEJDLHdDQUFlLEdBQWY7UUFDRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQU0sUUFBUSxXQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsK0JBQU0sR0FBTjtRQUNFLE9BQU8saUJBQU0sUUFBUSxXQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHlCQUFVLEdBQWpCLFVBQWtCLE1BQVc7UUFDM0IsSUFBSSxNQUFNLFlBQVksY0FBYyxFQUFFO1lBQ3BDLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7YUFBTSxJQUFJLE1BQU0sWUFBWSxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ2pFLE9BQU8sSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkM7UUFDRCxPQUFPLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ0gscUJBQUM7QUFBRCxDQUFDLEFBakJELENBQW9DLGFBQWEsR0FpQmhEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBMYXp5IFN0cmluZyBob2xkZXIgZm9yIEpTT04gdHlwZWQgY29udGVudHMuXG4gKi9cblxuaW50ZXJmYWNlIFN0cmluZ1dyYXBwZXIge1xuICBuZXcgKGFyZzogYW55KTogU3RyaW5nO1xufVxuXG4vKipcbiAqIEJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC90c2xpYi9pc3N1ZXMvOTUsXG4gKiBUUyAnZXh0ZW5kcycgc2hpbSBkb2Vzbid0IHN1cHBvcnQgZXh0ZW5kaW5nIG5hdGl2ZSB0eXBlcyBsaWtlIFN0cmluZy5cbiAqIFNvIGhlcmUgd2UgY3JlYXRlIFN0cmluZ1dyYXBwZXIgdGhhdCBkdXBsaWNhdGUgZXZlcnl0aGluZyBmcm9tIFN0cmluZ1xuICogY2xhc3MgaW5jbHVkaW5nIGl0cyBwcm90b3R5cGUgY2hhaW4uIFNvIHdlIGNhbiBleHRlbmQgZnJvbSBoZXJlLlxuICovXG4vLyBAdHMtaWdub3JlIFN0cmluZ1dyYXBwZXIgaW1wbGVtZW50YXRpb24gaXMgbm90IGEgc2ltcGxlIGNvbnN0cnVjdG9yXG5leHBvcnQgY29uc3QgU3RyaW5nV3JhcHBlcjogU3RyaW5nV3JhcHBlciA9IGZ1bmN0aW9uICgpIHtcbiAgLy9AdHMtaWdub3JlICd0aGlzJyBjYW5ub3QgYmUgYXNzaWduZWQgdG8gYW55LCBidXQgT2JqZWN0LmdldFByb3RvdHlwZU9mIGFjY2VwdHMgYW55XG4gIGNvbnN0IENsYXNzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yO1xuICBjb25zdCBDb25zdHJ1Y3RvciA9IEZ1bmN0aW9uLmJpbmQuYXBwbHkoU3RyaW5nLCBbbnVsbCBhcyBhbnksIC4uLmFyZ3VtZW50c10pO1xuICAvL0B0cy1pZ25vcmUgQ2FsbCB3cmFwcGVkIFN0cmluZyBjb25zdHJ1Y3RvciBkaXJlY3RseSwgZG9uJ3QgYm90aGVyIHR5cGluZyBpdC5cbiAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQ29uc3RydWN0b3IoKTtcbiAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGluc3RhbmNlLCBDbGFzcy5wcm90b3R5cGUpO1xuICByZXR1cm4gaW5zdGFuY2UgYXMgU3RyaW5nO1xufTtcblN0cmluZ1dyYXBwZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShTdHJpbmcucHJvdG90eXBlLCB7XG4gIGNvbnN0cnVjdG9yOiB7XG4gICAgdmFsdWU6IFN0cmluZ1dyYXBwZXIsXG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgd3JpdGFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICB9LFxufSk7XG5PYmplY3Quc2V0UHJvdG90eXBlT2YoU3RyaW5nV3JhcHBlciwgU3RyaW5nKTtcblxuZXhwb3J0IGNsYXNzIExhenlKc29uU3RyaW5nIGV4dGVuZHMgU3RyaW5nV3JhcHBlciB7XG4gIGRlc2VyaWFsaXplSlNPTigpOiBhbnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKHN1cGVyLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgdG9KU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cGVyLnRvU3RyaW5nKCk7XG4gIH1cblxuICBzdGF0aWMgZnJvbU9iamVjdChvYmplY3Q6IGFueSk6IExhenlKc29uU3RyaW5nIHtcbiAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgTGF6eUpzb25TdHJpbmcpIHtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfSBlbHNlIGlmIChvYmplY3QgaW5zdGFuY2VvZiBTdHJpbmcgfHwgdHlwZW9mIG9iamVjdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIG5ldyBMYXp5SnNvblN0cmluZyhvYmplY3QpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IExhenlKc29uU3RyaW5nKEpTT04uc3RyaW5naWZ5KG9iamVjdCkpO1xuICB9XG59XG4iXX0=","/**\n * Builds a proper UTC HttpDate timestamp from a Date object\n * since not all environments will have this as the expected\n * format.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString\n * > Prior to ECMAScript 2018, the format of the return value\n * > varied according to the platform. The most common return\n * > value was an RFC-1123 formatted date stamp, which is a\n * > slightly updated version of RFC-822 date stamps.\n */\n// Build indexes outside so we allocate them once.\nvar days = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n// prettier-ignore\nvar months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nexport function dateToUtcString(date) {\n var year = date.getUTCFullYear();\n var month = date.getUTCMonth();\n var dayOfWeek = date.getUTCDay();\n var dayOfMonthInt = date.getUTCDate();\n var hoursInt = date.getUTCHours();\n var minutesInt = date.getUTCMinutes();\n var secondsInt = date.getUTCSeconds();\n // Build 0 prefixed strings for contents that need to be\n // two digits and where we get an integer back.\n var dayOfMonthString = dayOfMonthInt < 10 ? \"0\" + dayOfMonthInt : \"\" + dayOfMonthInt;\n var hoursString = hoursInt < 10 ? \"0\" + hoursInt : \"\" + hoursInt;\n var minutesString = minutesInt < 10 ? \"0\" + minutesInt : \"\" + minutesInt;\n var secondsString = secondsInt < 10 ? \"0\" + secondsInt : \"\" + secondsInt;\n return days[dayOfWeek] + \", \" + dayOfMonthString + \" \" + months[month] + \" \" + year + \" \" + hoursString + \":\" + minutesString + \":\" + secondsString + \" GMT\";\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSCxrREFBa0Q7QUFDbEQsSUFBTSxJQUFJLEdBQWtCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOUUsa0JBQWtCO0FBQ2xCLElBQU0sTUFBTSxHQUFrQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFbkgsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFVO0lBQ3hDLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuQyxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDakMsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25DLElBQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4QyxJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3hDLElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUV4Qyx3REFBd0Q7SUFDeEQsK0NBQStDO0lBQy9DLElBQU0sZ0JBQWdCLEdBQUcsYUFBYSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBSSxhQUFlLENBQUMsQ0FBQyxDQUFDLEtBQUcsYUFBZSxDQUFDO0lBQ3ZGLElBQU0sV0FBVyxHQUFHLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQUksUUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFHLFFBQVUsQ0FBQztJQUNuRSxJQUFNLGFBQWEsR0FBRyxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFJLFVBQVksQ0FBQyxDQUFDLENBQUMsS0FBRyxVQUFZLENBQUM7SUFDM0UsSUFBTSxhQUFhLEdBQUcsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBSSxVQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUcsVUFBWSxDQUFDO0lBRTNFLE9BQVUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFLLGdCQUFnQixTQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBSSxJQUFJLFNBQUksV0FBVyxTQUFJLGFBQWEsU0FBSSxhQUFhLFNBQU0sQ0FBQztBQUNqSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCdWlsZHMgYSBwcm9wZXIgVVRDIEh0dHBEYXRlIHRpbWVzdGFtcCBmcm9tIGEgRGF0ZSBvYmplY3RcbiAqIHNpbmNlIG5vdCBhbGwgZW52aXJvbm1lbnRzIHdpbGwgaGF2ZSB0aGlzIGFzIHRoZSBleHBlY3RlZFxuICogZm9ybWF0LlxuICpcbiAqIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZS90b1VUQ1N0cmluZ1xuICogPiBQcmlvciB0byBFQ01BU2NyaXB0IDIwMTgsIHRoZSBmb3JtYXQgb2YgdGhlIHJldHVybiB2YWx1ZVxuICogPiB2YXJpZWQgYWNjb3JkaW5nIHRvIHRoZSBwbGF0Zm9ybS4gVGhlIG1vc3QgY29tbW9uIHJldHVyblxuICogPiB2YWx1ZSB3YXMgYW4gUkZDLTExMjMgZm9ybWF0dGVkIGRhdGUgc3RhbXAsIHdoaWNoIGlzIGFcbiAqID4gc2xpZ2h0bHkgdXBkYXRlZCB2ZXJzaW9uIG9mIFJGQy04MjIgZGF0ZSBzdGFtcHMuXG4gKi9cblxuLy8gQnVpbGQgaW5kZXhlcyBvdXRzaWRlIHNvIHdlIGFsbG9jYXRlIHRoZW0gb25jZS5cbmNvbnN0IGRheXM6IEFycmF5PFN0cmluZz4gPSBbXCJTdW5cIiwgXCJNb25cIiwgXCJUdWVcIiwgXCJXZWRcIiwgXCJUaHVcIiwgXCJGcmlcIiwgXCJTYXRcIl07XG4vLyBwcmV0dGllci1pZ25vcmVcbmNvbnN0IG1vbnRoczogQXJyYXk8U3RyaW5nPiA9IFtcIkphblwiLCBcIkZlYlwiLCBcIk1hclwiLCBcIkFwclwiLCBcIk1heVwiLCBcIkp1blwiLCBcIkp1bFwiLCBcIkF1Z1wiLCBcIlNlcFwiLCBcIk9jdFwiLCBcIk5vdlwiLCBcIkRlY1wiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUb1V0Y1N0cmluZyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XG4gIGNvbnN0IGRheU9mV2VlayA9IGRhdGUuZ2V0VVRDRGF5KCk7XG4gIGNvbnN0IGRheU9mTW9udGhJbnQgPSBkYXRlLmdldFVUQ0RhdGUoKTtcbiAgY29uc3QgaG91cnNJbnQgPSBkYXRlLmdldFVUQ0hvdXJzKCk7XG4gIGNvbnN0IG1pbnV0ZXNJbnQgPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcbiAgY29uc3Qgc2Vjb25kc0ludCA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xuXG4gIC8vIEJ1aWxkIDAgcHJlZml4ZWQgc3RyaW5ncyBmb3IgY29udGVudHMgdGhhdCBuZWVkIHRvIGJlXG4gIC8vIHR3byBkaWdpdHMgYW5kIHdoZXJlIHdlIGdldCBhbiBpbnRlZ2VyIGJhY2suXG4gIGNvbnN0IGRheU9mTW9udGhTdHJpbmcgPSBkYXlPZk1vbnRoSW50IDwgMTAgPyBgMCR7ZGF5T2ZNb250aEludH1gIDogYCR7ZGF5T2ZNb250aEludH1gO1xuICBjb25zdCBob3Vyc1N0cmluZyA9IGhvdXJzSW50IDwgMTAgPyBgMCR7aG91cnNJbnR9YCA6IGAke2hvdXJzSW50fWA7XG4gIGNvbnN0IG1pbnV0ZXNTdHJpbmcgPSBtaW51dGVzSW50IDwgMTAgPyBgMCR7bWludXRlc0ludH1gIDogYCR7bWludXRlc0ludH1gO1xuICBjb25zdCBzZWNvbmRzU3RyaW5nID0gc2Vjb25kc0ludCA8IDEwID8gYDAke3NlY29uZHNJbnR9YCA6IGAke3NlY29uZHNJbnR9YDtcblxuICByZXR1cm4gYCR7ZGF5c1tkYXlPZldlZWtdfSwgJHtkYXlPZk1vbnRoU3RyaW5nfSAke21vbnRoc1ttb250aF19ICR7eWVhcn0gJHtob3Vyc1N0cmluZ306JHttaW51dGVzU3RyaW5nfToke3NlY29uZHNTdHJpbmd9IEdNVGA7XG59XG4iXX0=","export var SENSITIVE_STRING = \"***SensitiveInformation***\";\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTRU5TSVRJVkVfU1RSSU5HID0gXCIqKipTZW5zaXRpdmVJbmZvcm1hdGlvbioqKlwiO1xuIl19","// bottom sheet\nexport { default } from './components/bottomSheet';\n\n// bottom sheet modal\nexport { default as BottomSheetModal } from './components/bottomSheetModal';\nexport { default as BottomSheetModalProvider } from './components/bottomSheetModalProvider';\n\n//#region hooks\nexport { useBottomSheet } from './hooks/useBottomSheet';\nexport { useBottomSheetModal } from './hooks/useBottomSheetModal';\nexport { useBottomSheetSpringConfigs } from './hooks/useBottomSheetSpringConfigs';\nexport { useBottomSheetTimingConfigs } from './hooks/useBottomSheetTimingConfigs';\nexport { useBottomSheetInternal } from './hooks/useBottomSheetInternal';\nexport { useBottomSheetModalInternal } from './hooks/useBottomSheetModalInternal';\nexport { useBottomSheetDynamicSnapPoints } from './hooks/useBottomSheetDynamicSnapPoints';\nexport { useScrollEventsHandlersDefault } from './hooks/useScrollEventsHandlersDefault';\nexport { useGestureEventsHandlersDefault } from './hooks/useGestureEventsHandlersDefault';\nexport { useBottomSheetGestureHandlers } from './hooks/useBottomSheetGestureHandlers';\nexport { useScrollHandler } from './hooks/useScrollHandler';\nexport { useScrollableSetter } from './hooks/useScrollableSetter';\n//#endregion\n\n//#region components\nexport {\n BottomSheetScrollView,\n BottomSheetSectionList,\n BottomSheetFlatList,\n BottomSheetVirtualizedList,\n} from './components/bottomSheetScrollable';\nexport { default as BottomSheetHandle } from './components/bottomSheetHandle';\nexport { default as BottomSheetDraggableView } from './components/bottomSheetDraggableView';\nexport { default as BottomSheetView } from './components/bottomSheetView';\nexport { default as BottomSheetTextInput } from './components/bottomSheetTextInput';\nexport { default as BottomSheetBackdrop } from './components/bottomSheetBackdrop';\nexport { default as BottomSheetFooter } from './components/bottomSheetFooter';\nexport { default as BottomSheetFooterContainer } from './components/bottomSheetFooterContainer/BottomSheetFooterContainer';\n\n// touchables\nimport BottomSheetTouchable from './components/touchables';\nexport const {\n TouchableHighlight,\n TouchableOpacity,\n TouchableWithoutFeedback,\n} = BottomSheetTouchable;\n// utils\nexport { createBottomSheetScrollableComponent } from './components/bottomSheetScrollable';\n//#endregion\n\n//#region types\nexport type { BottomSheetProps } from './components/bottomSheet';\nexport type { BottomSheetModalProps } from './components/bottomSheetModal';\nexport type { BottomSheetHandleProps } from './components/bottomSheetHandle';\nexport type { BottomSheetBackgroundProps } from './components/bottomSheetBackground';\nexport type { BottomSheetBackdropProps } from './components/bottomSheetBackdrop';\nexport type { BottomSheetFooterProps } from './components/bottomSheetFooter';\n\nexport type {\n BottomSheetFlatListMethods,\n BottomSheetScrollViewMethods,\n BottomSheetSectionListMethods,\n BottomSheetVirtualizedListMethods,\n BottomSheetScrollableProps,\n} from './components/bottomSheetScrollable';\n\nexport type {\n ScrollEventsHandlersHookType,\n GestureEventsHandlersHookType,\n ScrollEventHandlerCallbackType,\n GestureEventHandlerCallbackType,\n} from './types';\n//#endregion\n\n//#region utilities\nexport * from './constants';\nexport { enableLogging } from './utilities/logger';\n//#endregion\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport AnimatedValue from './nodes/AnimatedValue';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from './NativeAnimatedHelper';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nexport function attachNativeEvent(viewRef, eventName, argMapping) {\n // Find animated values in `argMapping` and create an array representing their\n // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n var eventMappings = [];\n\n var traverse = (value, path) => {\n if (value instanceof AnimatedValue) {\n value.__makeNative();\n\n eventMappings.push({\n nativeEventPath: path,\n animatedValueTag: value.__getNativeTag()\n });\n } else if (typeof value === 'object') {\n for (var _key in value) {\n traverse(value[_key], path.concat(_key));\n }\n }\n };\n\n invariant(argMapping[0] && argMapping[0].nativeEvent, 'Native driven events only support animated values contained inside `nativeEvent`.'); // Assume that the event containing `nativeEvent` is always the first argument.\n\n traverse(argMapping[0].nativeEvent, []);\n var viewTag = findNodeHandle(viewRef);\n\n if (viewTag != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.addAnimatedEventToView(viewTag, eventName, mapping);\n });\n }\n\n return {\n detach() {\n if (viewTag != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.removeAnimatedEventFromView(viewTag, eventName, // $FlowFixMe[incompatible-call]\n mapping.animatedValueTag);\n });\n }\n }\n\n };\n}\n\nfunction validateMapping(argMapping, args) {\n var validate = (recMapping, recEvt, key) => {\n if (recMapping instanceof AnimatedValue) {\n invariant(typeof recEvt === 'number', 'Bad mapping of event key ' + key + ', should be number but got ' + typeof recEvt);\n return;\n }\n\n if (typeof recEvt === 'number') {\n invariant(recMapping instanceof AnimatedValue, 'Bad mapping of type ' + typeof recMapping + ' for key ' + key + ', event value must map to AnimatedValue');\n return;\n }\n\n invariant(typeof recMapping === 'object', 'Bad mapping of type ' + typeof recMapping + ' for key ' + key);\n invariant(typeof recEvt === 'object', 'Bad event of type ' + typeof recEvt + ' for key ' + key);\n\n for (var mappingKey in recMapping) {\n validate(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n };\n\n invariant(args.length >= argMapping.length, 'Event has less arguments than mapping');\n argMapping.forEach((mapping, idx) => {\n validate(mapping, args[idx], 'arg' + idx);\n });\n}\n\nexport class AnimatedEvent {\n constructor(argMapping, config) {\n this._listeners = [];\n this._argMapping = argMapping;\n\n if (config == null) {\n console.warn('Animated.event now requires a second argument for options');\n config = {\n useNativeDriver: false\n };\n }\n\n if (config.listener) {\n this.__addListener(config.listener);\n }\n\n this._callListeners = this._callListeners.bind(this);\n this._attachedEvent = null;\n this.__isNative = shouldUseNativeDriver(config);\n }\n\n __addListener(callback) {\n this._listeners.push(callback);\n }\n\n __removeListener(callback) {\n this._listeners = this._listeners.filter(listener => listener !== callback);\n }\n\n __attach(viewRef, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be attached.');\n this._attachedEvent = attachNativeEvent(viewRef, eventName, this._argMapping);\n }\n\n __detach(viewTag, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be detached.');\n this._attachedEvent && this._attachedEvent.detach();\n }\n\n __getHandler() {\n var _this = this;\n\n if (this.__isNative) {\n if (__DEV__) {\n var _validatedMapping = false;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (!_validatedMapping) {\n validateMapping(_this._argMapping, args);\n _validatedMapping = true;\n }\n\n _this._callListeners(...args);\n };\n } else {\n return this._callListeners;\n }\n }\n\n var validatedMapping = false;\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (__DEV__ && !validatedMapping) {\n validateMapping(_this._argMapping, args);\n validatedMapping = true;\n }\n\n var traverse = (recMapping, recEvt, key) => {\n if (recMapping instanceof AnimatedValue) {\n if (typeof recEvt === 'number') {\n recMapping.setValue(recEvt);\n }\n } else if (typeof recMapping === 'object') {\n for (var mappingKey in recMapping) {\n /* $FlowFixMe(>=0.120.0) This comment suppresses an error found\n * when Flow v0.120 was deployed. To see the error, delete this\n * comment and run Flow. */\n traverse(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n }\n };\n\n _this._argMapping.forEach((mapping, idx) => {\n traverse(mapping, args[idx], 'arg' + idx);\n });\n\n _this._callListeners(...args);\n };\n }\n\n _callListeners() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n this._listeners.forEach(listener => listener(...args));\n }\n\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nclass AnimatedTransform extends AnimatedWithChildren {\n constructor(transforms) {\n super();\n this._transforms = transforms;\n }\n\n __makeNative() {\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n });\n\n super.__makeNative();\n }\n\n __getValue() {\n return this._transforms.map(transform => {\n var result = {};\n\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n result[key] = value.__getValue();\n } else {\n result[key] = value;\n }\n }\n\n return result;\n });\n }\n\n __getAnimatedValue() {\n return this._transforms.map(transform => {\n var result = {};\n\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n result[key] = value.__getAnimatedValue();\n } else {\n // All transform components needed to recompose matrix\n result[key] = value;\n }\n }\n\n return result;\n });\n }\n\n __attach() {\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n });\n }\n\n __detach() {\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n });\n\n super.__detach();\n }\n\n __getNativeConfig() {\n var transConfigs = [];\n\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n transConfigs.push({\n type: 'animated',\n property: key,\n nodeTag: value.__getNativeTag()\n });\n } else {\n transConfigs.push({\n type: 'static',\n property: key,\n value: NativeAnimatedHelper.transformDataType(value)\n });\n }\n }\n });\n\n NativeAnimatedHelper.validateTransform(transConfigs);\n return {\n type: 'transform',\n transforms: transConfigs\n };\n }\n\n}\n\nexport default AnimatedTransform;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedTransform from './AnimatedTransform';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport StyleSheet from '../../../../exports/StyleSheet';\nvar flattenStyle = StyleSheet.flatten;\n\nclass AnimatedStyle extends AnimatedWithChildren {\n constructor(style) {\n super();\n style = flattenStyle(style) || {};\n\n if (style.transform) {\n style = _objectSpread(_objectSpread({}, style), {}, {\n transform: new AnimatedTransform(style.transform)\n });\n }\n\n this._style = style;\n } // Recursively get values for nested styles (like iOS's shadowOffset)\n\n\n _walkStyleAndGetValues(style) {\n var updatedStyle = {};\n\n for (var key in style) {\n var value = style[key];\n\n if (value instanceof AnimatedNode) {\n if (!value.__isNative) {\n // We cannot use value of natively driven nodes this way as the value we have access from\n // JS may not be up to date.\n updatedStyle[key] = value.__getValue();\n }\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetValues(value);\n } else {\n updatedStyle[key] = value;\n }\n }\n\n return updatedStyle;\n }\n\n __getValue() {\n return this._walkStyleAndGetValues(this._style);\n } // Recursively get animated values for nested styles (like iOS's shadowOffset)\n\n\n _walkStyleAndGetAnimatedValues(style) {\n var updatedStyle = {};\n\n for (var key in style) {\n var value = style[key];\n\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getAnimatedValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetAnimatedValues(value);\n }\n }\n\n return updatedStyle;\n }\n\n __getAnimatedValue() {\n return this._walkStyleAndGetAnimatedValues(this._style);\n }\n\n __attach() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n\n __detach() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n\n super.__detach();\n }\n\n __makeNative() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n\n super.__makeNative();\n }\n\n __getNativeConfig() {\n var styleConfig = {};\n\n for (var styleKey in this._style) {\n if (this._style[styleKey] instanceof AnimatedNode) {\n var style = this._style[styleKey];\n\n style.__makeNative();\n\n styleConfig[styleKey] = style.__getNativeTag();\n } // Non-animated styles are set using `setNativeProps`, no need\n // to pass those as a part of the node config\n\n }\n\n NativeAnimatedHelper.validateStyles(styleConfig);\n return {\n type: 'style',\n style: styleConfig\n };\n }\n\n}\n\nexport default AnimatedStyle;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport { AnimatedEvent } from '../AnimatedEvent';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedStyle from './AnimatedStyle';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport findNodeHandle from '../../../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\n\nclass AnimatedProps extends AnimatedNode {\n constructor(props, callback) {\n super();\n\n if (props.style) {\n props = _objectSpread(_objectSpread({}, props), {}, {\n style: new AnimatedStyle(props.style)\n });\n }\n\n this._props = props;\n this._callback = callback;\n\n this.__attach();\n }\n\n __getValue() {\n var props = {};\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n if (!value.__isNative || value instanceof AnimatedStyle) {\n // We cannot use value of natively driven nodes this way as the value we have access from\n // JS may not be up to date.\n props[key] = value.__getValue();\n }\n } else if (value instanceof AnimatedEvent) {\n props[key] = value.__getHandler();\n } else {\n props[key] = value;\n }\n }\n\n return props;\n }\n\n __getAnimatedValue() {\n var props = {};\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n props[key] = value.__getAnimatedValue();\n }\n }\n\n return props;\n }\n\n __attach() {\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n\n __detach() {\n if (this.__isNative && this._animatedView) {\n this.__disconnectAnimatedView();\n }\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n\n super.__detach();\n }\n\n update() {\n this._callback();\n }\n\n __makeNative() {\n if (!this.__isNative) {\n this.__isNative = true;\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n\n if (this._animatedView) {\n this.__connectAnimatedView();\n }\n }\n }\n\n setNativeView(animatedView) {\n if (this._animatedView === animatedView) {\n return;\n }\n\n this._animatedView = animatedView;\n\n if (this.__isNative) {\n this.__connectAnimatedView();\n }\n }\n\n __connectAnimatedView() {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n var nativeViewTag = findNodeHandle(this._animatedView);\n invariant(nativeViewTag != null, 'Unable to locate attached view in the native tree');\n NativeAnimatedHelper.API.connectAnimatedNodeToView(this.__getNativeTag(), nativeViewTag);\n }\n\n __disconnectAnimatedView() {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n var nativeViewTag = findNodeHandle(this._animatedView);\n invariant(nativeViewTag != null, 'Unable to locate attached view in the native tree');\n NativeAnimatedHelper.API.disconnectAnimatedNodeFromView(this.__getNativeTag(), nativeViewTag);\n }\n\n __restoreDefaultValues() {\n // When using the native driver, view properties need to be restored to\n // their default values manually since react no longer tracks them. This\n // is needed to handle cases where a prop driven by native animated is removed\n // after having been changed natively by an animation.\n if (this.__isNative) {\n NativeAnimatedHelper.API.restoreDefaultValues(this.__getNativeTag());\n }\n }\n\n __getNativeConfig() {\n var propsConfig = {};\n\n for (var propKey in this._props) {\n var value = this._props[propKey];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n\n propsConfig[propKey] = value.__getNativeTag();\n }\n }\n\n return {\n type: 'props',\n props: propsConfig\n };\n }\n\n}\n\nexport default AnimatedProps;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * \n */\n'use strict';\n\n/**\n * This is a helper function for when a component needs to be able to forward a ref\n * to a child component, but still needs to have access to that component as part of\n * its implementation.\n *\n * Its main use case is in wrappers for native components.\n *\n * Usage:\n *\n * class MyView extends React.Component {\n * _nativeRef = null;\n *\n * _setNativeRef = setAndForwardRef({\n * getForwardedRef: () => this.props.forwardedRef,\n * setLocalRef: ref => {\n * this._nativeRef = ref;\n * },\n * });\n *\n * render() {\n * return ;\n * }\n * }\n *\n * const MyViewWithRef = React.forwardRef((props, ref) => (\n * \n * ));\n *\n * module.exports = MyViewWithRef;\n */\nfunction setAndForwardRef(_ref) {\n var getForwardedRef = _ref.getForwardedRef,\n setLocalRef = _ref.setLocalRef;\n return function forwardRef(ref) {\n var forwardedRef = getForwardedRef();\n setLocalRef(ref); // Forward to user ref prop (if one has been specified)\n\n if (typeof forwardedRef === 'function') {\n // Handle function-based refs. String-based refs are handled as functions.\n forwardedRef(ref);\n } else if (typeof forwardedRef === 'object' && forwardedRef != null) {\n // Handle createRef-based refs\n forwardedRef.current = ref;\n }\n };\n}\n\nexport default setAndForwardRef;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"style\"],\n _excluded2 = [\"style\"];\nimport View from '../../../exports/View';\nimport { AnimatedEvent } from './AnimatedEvent';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport * as React from 'react';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nimport setAndForwardRef from '../Utilities/setAndForwardRef';\nvar animatedComponentNextId = 1;\n\nfunction createAnimatedComponent(Component, options) {\n invariant(typeof Component !== 'function' || Component.prototype && Component.prototype.isReactComponent, '`createAnimatedComponent` does not support stateless functional components; ' + 'use a class component instead.');\n\n class AnimatedComponent extends React.Component {\n constructor() {\n super(...arguments);\n this._invokeAnimatedPropsCallbackOnMount = false;\n this._eventDetachers = [];\n this._animatedComponentId = animatedComponentNextId++ + \":animatedComponent\";\n\n this._isFabric = () => {\n var _this$_component$_int, _this$_component$_int2, _this$_component$getN, _this$_component$getN2, _this$_component$getS, _this$_component$getS2;\n\n // When called during the first render, `_component` is always null.\n // Therefore, even if a component is rendered in Fabric, we can't detect\n // that until ref is set, which happens sometime after the first render.\n // In cases where this value switching between \"false\" and \"true\" on Fabric\n // causes issues, add an additional check for _component nullity.\n if (this._component == null) {\n return false;\n }\n\n return (// eslint-disable-next-line dot-notation\n ((_this$_component$_int = this._component['_internalInstanceHandle']) == null ? void 0 : (_this$_component$_int2 = _this$_component$_int.stateNode) == null ? void 0 : _this$_component$_int2.canonical) != null || // Some components have a setNativeProps function but aren't a host component\n // such as lists like FlatList and SectionList. These should also use\n // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying\n // host component. This crazy hack is essentially special casing those lists and\n // ScrollView itself to use forceUpdate in Fabric.\n // If these components end up using forwardRef then these hacks can go away\n // as this._component would actually be the underlying host component and the above check\n // would be sufficient.\n this._component.getNativeScrollRef != null && this._component.getNativeScrollRef() != null && // eslint-disable-next-line dot-notation\n ((_this$_component$getN = this._component.getNativeScrollRef()['_internalInstanceHandle']) == null ? void 0 : (_this$_component$getN2 = _this$_component$getN.stateNode) == null ? void 0 : _this$_component$getN2.canonical) != null || this._component.getScrollResponder != null && this._component.getScrollResponder() != null && this._component.getScrollResponder().getNativeScrollRef != null && this._component.getScrollResponder().getNativeScrollRef() != null && ((_this$_component$getS = this._component.getScrollResponder().getNativeScrollRef()[// eslint-disable-next-line dot-notation\n '_internalInstanceHandle']) == null ? void 0 : (_this$_component$getS2 = _this$_component$getS.stateNode) == null ? void 0 : _this$_component$getS2.canonical) != null\n );\n };\n\n this._waitForUpdate = () => {\n if (this._isFabric()) {\n NativeAnimatedHelper.API.setWaitingForIdentifier(this._animatedComponentId);\n }\n };\n\n this._markUpdateComplete = () => {\n if (this._isFabric()) {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(this._animatedComponentId);\n }\n };\n\n this._animatedPropsCallback = () => {\n if (this._component == null) {\n // AnimatedProps is created in will-mount because it's used in render.\n // But this callback may be invoked before mount in async mode,\n // In which case we should defer the setNativeProps() call.\n // React may throw away uncommitted work in async mode,\n // So a deferred call won't always be invoked.\n this._invokeAnimatedPropsCallbackOnMount = true;\n } else if (process.env.NODE_ENV === 'test' || // For animating properties of non-leaf/non-native components\n typeof this._component.setNativeProps !== 'function' || // In Fabric, force animations to go through forceUpdate and skip setNativeProps\n this._isFabric()) {\n this.forceUpdate();\n } else if (!this._propsAnimated.__isNative) {\n this._component.setNativeProps(this._propsAnimated.__getAnimatedValue());\n } else {\n throw new Error('Attempting to run JS driven animation on animated ' + 'node that has been moved to \"native\" earlier by starting an ' + 'animation with `useNativeDriver: true`');\n }\n };\n\n this._setComponentRef = setAndForwardRef({\n getForwardedRef: () => this.props.forwardedRef,\n setLocalRef: ref => {\n this._prevComponent = this._component;\n this._component = ref; // TODO: Delete this in a future release.\n\n if (ref != null && ref.getNode == null) {\n ref.getNode = () => {\n var _ref$constructor$name;\n\n console.warn('%s: Calling `getNode()` on the ref of an Animated component ' + 'is no longer necessary. You can now directly use the ref ' + 'instead. This method will be removed in a future release.', (_ref$constructor$name = ref.constructor.name) !== null && _ref$constructor$name !== void 0 ? _ref$constructor$name : '<>');\n return ref;\n };\n }\n }\n });\n }\n\n _attachNativeEvents() {\n var _this$_component,\n _this = this;\n\n // Make sure to get the scrollable node for components that implement\n // `ScrollResponder.Mixin`.\n var scrollableNode = (_this$_component = this._component) != null && _this$_component.getScrollableNode ? this._component.getScrollableNode() : this._component;\n\n var _loop = function _loop(key) {\n var prop = _this.props[key];\n\n if (prop instanceof AnimatedEvent && prop.__isNative) {\n prop.__attach(scrollableNode, key);\n\n _this._eventDetachers.push(() => prop.__detach(scrollableNode, key));\n }\n };\n\n for (var key in this.props) {\n _loop(key);\n }\n }\n\n _detachNativeEvents() {\n this._eventDetachers.forEach(remove => remove());\n\n this._eventDetachers = [];\n }\n\n _attachProps(nextProps) {\n var oldPropsAnimated = this._propsAnimated;\n\n if (nextProps === oldPropsAnimated) {\n return;\n }\n\n this._propsAnimated = new AnimatedProps(nextProps, this._animatedPropsCallback); // When you call detach, it removes the element from the parent list\n // of children. If it goes to 0, then the parent also detaches itself\n // and so on.\n // An optimization is to attach the new elements and THEN detach the old\n // ones instead of detaching and THEN attaching.\n // This way the intermediate state isn't to go to 0 and trigger\n // this expensive recursive detaching to then re-attach everything on\n // the very next operation.\n\n if (oldPropsAnimated) {\n oldPropsAnimated.__restoreDefaultValues();\n\n oldPropsAnimated.__detach();\n }\n }\n\n render() {\n var _ref = this._propsAnimated.__getValue() || {},\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var _ref2 = this.props.passthroughAnimatedPropExplicitValues || {},\n _ref2$style = _ref2.style,\n passthruStyle = _ref2$style === void 0 ? {} : _ref2$style,\n passthruProps = _objectWithoutPropertiesLoose(_ref2, _excluded2);\n\n var mergedStyle = _objectSpread(_objectSpread({}, style), passthruStyle);\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, passthruProps, {\n style: mergedStyle,\n ref: this._setComponentRef\n }));\n }\n\n UNSAFE_componentWillMount() {\n this._waitForUpdate();\n\n this._attachProps(this.props);\n }\n\n componentDidMount() {\n if (this._invokeAnimatedPropsCallbackOnMount) {\n this._invokeAnimatedPropsCallbackOnMount = false;\n\n this._animatedPropsCallback();\n }\n\n this._propsAnimated.setNativeView(this._component);\n\n this._attachNativeEvents();\n\n this._markUpdateComplete();\n }\n\n UNSAFE_componentWillReceiveProps(newProps) {\n this._waitForUpdate();\n\n this._attachProps(newProps);\n }\n\n componentDidUpdate(prevProps) {\n if (this._component !== this._prevComponent) {\n this._propsAnimated.setNativeView(this._component);\n }\n\n if (this._component !== this._prevComponent || prevProps !== this.props) {\n this._detachNativeEvents();\n\n this._attachNativeEvents();\n }\n\n this._markUpdateComplete();\n }\n\n componentWillUnmount() {\n this._propsAnimated && this._propsAnimated.__detach();\n\n this._detachNativeEvents();\n\n this._markUpdateComplete();\n\n this._component = null;\n this._prevComponent = null;\n }\n\n }\n\n return /*#__PURE__*/React.forwardRef(function AnimatedComponentWrapper(props, ref) {\n return /*#__PURE__*/React.createElement(AnimatedComponent, _extends({}, props, ref == null ? null : {\n forwardedRef: ref\n }));\n });\n}\n\nexport default createAnimatedComponent;","import _extends from \"@babel/runtime/helpers/extends\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\nimport * as React from 'react';\nimport FlatList from '../../../../exports/FlatList';\nimport createAnimatedComponent from '../createAnimatedComponent';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar FlatListWithEventThrottle = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(FlatList, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(FlatListWithEventThrottle);","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\nimport * as React from 'react';\nimport Image from '../../../../exports/Image';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(Image, {\n collapsable: false\n});","import _extends from \"@babel/runtime/helpers/extends\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\nimport * as React from 'react';\nimport ScrollView from '../../../../exports/ScrollView';\nimport createAnimatedComponent from '../createAnimatedComponent';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar ScrollViewWithEventThrottle = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(ScrollView, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(ScrollViewWithEventThrottle, {\n collapsable: false\n});","import _extends from \"@babel/runtime/helpers/extends\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\nimport * as React from 'react';\nimport SectionList from '../../../../exports/SectionList';\nimport createAnimatedComponent from '../createAnimatedComponent';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar SectionListWithEventThrottle = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SectionList, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(SectionListWithEventThrottle);","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\nimport * as React from 'react';\nimport Text from '../../../../exports/Text';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(Text, {\n collapsable: false\n});","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\nimport * as React from 'react';\nimport View from '../../../../exports/View';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(View, {\n collapsable: true\n});","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedAddition extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n return this._a.__getValue() + this._b.__getValue();\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'addition',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n\n}\n\nexport default AnimatedAddition;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedDiffClamp extends AnimatedWithChildren {\n constructor(a, min, max) {\n super();\n this._a = a;\n this._min = min;\n this._max = max;\n this._value = this._lastValue = this._a.__getValue();\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n super.__makeNative();\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __getValue() {\n var value = this._a.__getValue();\n\n var diff = value - this._lastValue;\n this._lastValue = value;\n this._value = Math.min(Math.max(this._value + diff, this._min), this._max);\n return this._value;\n }\n\n __attach() {\n this._a.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'diffclamp',\n input: this._a.__getNativeTag(),\n min: this._min,\n max: this._max\n };\n }\n\n}\n\nexport default AnimatedDiffClamp;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedDivision extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._warnedAboutDivideByZero = false;\n\n if (b === 0 || b instanceof AnimatedNode && b.__getValue() === 0) {\n console.error('Detected potential division by zero in AnimatedDivision');\n }\n\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n var a = this._a.__getValue();\n\n var b = this._b.__getValue();\n\n if (b === 0) {\n // Prevent spamming the console/LogBox\n if (!this._warnedAboutDivideByZero) {\n console.error('Detected division by zero in AnimatedDivision');\n this._warnedAboutDivideByZero = true;\n } // Passing infinity/NaN to Fabric will cause a native crash\n\n\n return 0;\n }\n\n this._warnedAboutDivideByZero = false;\n return a / b;\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'division',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n\n}\n\nexport default AnimatedDivision;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedModulo extends AnimatedWithChildren {\n constructor(a, modulus) {\n super();\n this._a = a;\n this._modulus = modulus;\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n return (this._a.__getValue() % this._modulus + this._modulus) % this._modulus;\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'modulus',\n input: this._a.__getNativeTag(),\n modulus: this._modulus\n };\n }\n\n}\n\nexport default AnimatedModulo;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedMultiplication extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n return this._a.__getValue() * this._b.__getValue();\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'multiplication',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n\n}\n\nexport default AnimatedMultiplication;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedSubtraction extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n return this._a.__getValue() - this._b.__getValue();\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'subtraction',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n\n}\n\nexport default AnimatedSubtraction;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedNode from './AnimatedNode';\nimport { generateNewAnimationId, shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nclass AnimatedTracking extends AnimatedNode {\n constructor(value, parent, animationClass, animationConfig, callback) {\n super();\n this._value = value;\n this._parent = parent;\n this._animationClass = animationClass;\n this._animationConfig = animationConfig;\n this._useNativeDriver = shouldUseNativeDriver(animationConfig);\n this._callback = callback;\n\n this.__attach();\n }\n\n __makeNative() {\n this.__isNative = true;\n\n this._parent.__makeNative();\n\n super.__makeNative();\n\n this._value.__makeNative();\n }\n\n __getValue() {\n return this._parent.__getValue();\n }\n\n __attach() {\n this._parent.__addChild(this);\n\n if (this._useNativeDriver) {\n // when the tracking starts we need to convert this node to a \"native node\"\n // so that the parent node will be made \"native\" too. This is necessary as\n // if we don't do this `update` method will get called. At that point it\n // may be too late as it would mean the JS driver has already started\n // updating node values\n this.__makeNative();\n }\n }\n\n __detach() {\n this._parent.__removeChild(this);\n\n super.__detach();\n }\n\n update() {\n this._value.animate(new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n toValue: this._animationConfig.toValue.__getValue()\n })), this._callback);\n }\n\n __getNativeConfig() {\n var animation = new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n // remove toValue from the config as it's a ref to Animated.Value\n toValue: undefined\n }));\n\n var animationConfig = animation.__getNativeAnimationConfig();\n\n return {\n type: 'tracking',\n animationId: generateNewAnimationId(),\n animationConfig,\n toValue: this._parent.__getNativeTag(),\n value: this._value.__getNativeTag()\n };\n }\n\n}\n\nexport default AnimatedTracking;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport { AnimatedEvent, attachNativeEvent } from './AnimatedEvent';\nimport AnimatedAddition from './nodes/AnimatedAddition';\nimport AnimatedDiffClamp from './nodes/AnimatedDiffClamp';\nimport AnimatedDivision from './nodes/AnimatedDivision';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedModulo from './nodes/AnimatedModulo';\nimport AnimatedMultiplication from './nodes/AnimatedMultiplication';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport AnimatedSubtraction from './nodes/AnimatedSubtraction';\nimport AnimatedTracking from './nodes/AnimatedTracking';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport DecayAnimation from './animations/DecayAnimation';\nimport SpringAnimation from './animations/SpringAnimation';\nimport TimingAnimation from './animations/TimingAnimation';\nimport createAnimatedComponent from './createAnimatedComponent';\n\nvar add = function add(a, b) {\n return new AnimatedAddition(a, b);\n};\n\nvar subtract = function subtract(a, b) {\n return new AnimatedSubtraction(a, b);\n};\n\nvar divide = function divide(a, b) {\n return new AnimatedDivision(a, b);\n};\n\nvar multiply = function multiply(a, b) {\n return new AnimatedMultiplication(a, b);\n};\n\nvar modulo = function modulo(a, modulus) {\n return new AnimatedModulo(a, modulus);\n};\n\nvar diffClamp = function diffClamp(a, min, max) {\n return new AnimatedDiffClamp(a, min, max);\n};\n\nvar _combineCallbacks = function _combineCallbacks(callback, config) {\n if (callback && config.onComplete) {\n return function () {\n config.onComplete && config.onComplete(...arguments);\n callback && callback(...arguments);\n };\n } else {\n return callback || config.onComplete;\n }\n};\n\nvar maybeVectorAnim = function maybeVectorAnim(value, config, anim) {\n if (value instanceof AnimatedValueXY) {\n var configX = _objectSpread({}, config);\n\n var configY = _objectSpread({}, config);\n\n for (var key in config) {\n var _config$key = config[key],\n x = _config$key.x,\n y = _config$key.y;\n\n if (x !== undefined && y !== undefined) {\n configX[key] = x;\n configY[key] = y;\n }\n }\n\n var aX = anim(value.x, configX);\n var aY = anim(value.y, configY); // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n\n return parallel([aX, aY], {\n stopTogether: false\n });\n }\n\n return null;\n};\n\nvar spring = function spring(value, config) {\n var _start = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, SpringAnimation, singleConfig, callback));\n } else {\n singleValue.animate(new SpringAnimation(singleConfig), callback);\n }\n };\n\n return maybeVectorAnim(value, config, spring) || {\n start: function start(callback) {\n _start(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations\n });\n\n _start(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar timing = function timing(value, config) {\n var _start2 = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, TimingAnimation, singleConfig, callback));\n } else {\n singleValue.animate(new TimingAnimation(singleConfig), callback);\n }\n };\n\n return maybeVectorAnim(value, config, timing) || {\n start: function start(callback) {\n _start2(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations\n });\n\n _start2(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar decay = function decay(value, config) {\n var _start3 = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n singleValue.animate(new DecayAnimation(singleConfig), callback);\n };\n\n return maybeVectorAnim(value, config, decay) || {\n start: function start(callback) {\n _start3(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations\n });\n\n _start3(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar sequence = function sequence(animations) {\n var current = 0;\n return {\n start: function start(callback) {\n var onComplete = function onComplete(result) {\n if (!result.finished) {\n callback && callback(result);\n return;\n }\n\n current++;\n\n if (current === animations.length) {\n callback && callback(result);\n return;\n }\n\n animations[current].start(onComplete);\n };\n\n if (animations.length === 0) {\n callback && callback({\n finished: true\n });\n } else {\n animations[current].start(onComplete);\n }\n },\n stop: function stop() {\n if (current < animations.length) {\n animations[current].stop();\n }\n },\n reset: function reset() {\n animations.forEach((animation, idx) => {\n if (idx <= current) {\n animation.reset();\n }\n });\n current = 0;\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.sequence animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n };\n};\n\nvar parallel = function parallel(animations, config) {\n var doneCount = 0; // Make sure we only call stop() at most once for each animation\n\n var hasEnded = {};\n var stopTogether = !(config && config.stopTogether === false);\n var result = {\n start: function start(callback) {\n if (doneCount === animations.length) {\n callback && callback({\n finished: true\n });\n return;\n }\n\n animations.forEach((animation, idx) => {\n var cb = function cb(endResult) {\n hasEnded[idx] = true;\n doneCount++;\n\n if (doneCount === animations.length) {\n doneCount = 0;\n callback && callback(endResult);\n return;\n }\n\n if (!endResult.finished && stopTogether) {\n result.stop();\n }\n };\n\n if (!animation) {\n cb({\n finished: true\n });\n } else {\n animation.start(cb);\n }\n });\n },\n stop: function stop() {\n animations.forEach((animation, idx) => {\n !hasEnded[idx] && animation.stop();\n hasEnded[idx] = true;\n });\n },\n reset: function reset() {\n animations.forEach((animation, idx) => {\n animation.reset();\n hasEnded[idx] = false;\n doneCount = 0;\n });\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.parallel animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n };\n return result;\n};\n\nvar delay = function delay(time) {\n // Would be nice to make a specialized implementation\n return timing(new AnimatedValue(0), {\n toValue: 0,\n delay: time,\n duration: 0,\n useNativeDriver: false\n });\n};\n\nvar stagger = function stagger(time, animations) {\n return parallel(animations.map((animation, i) => {\n return sequence([delay(time * i), animation]);\n }));\n};\n\nvar loop = function loop(animation, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$iterations = _ref.iterations,\n iterations = _ref$iterations === void 0 ? -1 : _ref$iterations,\n _ref$resetBeforeItera = _ref.resetBeforeIteration,\n resetBeforeIteration = _ref$resetBeforeItera === void 0 ? true : _ref$resetBeforeItera;\n\n var isFinished = false;\n var iterationsSoFar = 0;\n return {\n start: function start(callback) {\n var restart = function restart(result) {\n if (result === void 0) {\n result = {\n finished: true\n };\n }\n\n if (isFinished || iterationsSoFar === iterations || result.finished === false) {\n callback && callback(result);\n } else {\n iterationsSoFar++;\n resetBeforeIteration && animation.reset();\n animation.start(restart);\n }\n };\n\n if (!animation || iterations === 0) {\n callback && callback({\n finished: true\n });\n } else {\n if (animation._isUsingNativeDriver()) {\n animation._startNativeLoop(iterations);\n } else {\n restart(); // Start looping recursively on the js thread\n }\n }\n },\n stop: function stop() {\n isFinished = true;\n animation.stop();\n },\n reset: function reset() {\n iterationsSoFar = 0;\n isFinished = false;\n animation.reset();\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.loop animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return animation._isUsingNativeDriver();\n }\n };\n};\n\nfunction forkEvent(event, listener) {\n if (!event) {\n return listener;\n } else if (event instanceof AnimatedEvent) {\n event.__addListener(listener);\n\n return event;\n } else {\n return function () {\n typeof event === 'function' && event(...arguments);\n listener(...arguments);\n };\n }\n}\n\nfunction unforkEvent(event, listener) {\n if (event && event instanceof AnimatedEvent) {\n event.__removeListener(listener);\n }\n}\n\nvar event = function event(argMapping, config) {\n var animatedEvent = new AnimatedEvent(argMapping, config);\n\n if (animatedEvent.__isNative) {\n return animatedEvent;\n } else {\n return animatedEvent.__getHandler();\n }\n};\n/**\n * The `Animated` library is designed to make animations fluid, powerful, and\n * easy to build and maintain. `Animated` focuses on declarative relationships\n * between inputs and outputs, with configurable transforms in between, and\n * simple `start`/`stop` methods to control time-based animation execution.\n * If additional transforms are added, be sure to include them in\n * AnimatedMock.js as well.\n *\n * See https://reactnative.dev/docs/animated.html\n */\n\n\nexport default {\n /**\n * Standard value class for driving animations. Typically initialized with\n * `new Animated.Value(0);`\n *\n * See https://reactnative.dev/docs/animated.html#value\n */\n Value: AnimatedValue,\n\n /**\n * 2D value class for driving 2D animations, such as pan gestures.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html\n */\n ValueXY: AnimatedValueXY,\n\n /**\n * Exported to use the Interpolation type in flow.\n *\n * See https://reactnative.dev/docs/animated.html#interpolation\n */\n Interpolation: AnimatedInterpolation,\n\n /**\n * Exported for ease of type checking. All animated values derive from this\n * class.\n *\n * See https://reactnative.dev/docs/animated.html#node\n */\n Node: AnimatedNode,\n\n /**\n * Animates a value from an initial velocity to zero based on a decay\n * coefficient.\n *\n * See https://reactnative.dev/docs/animated.html#decay\n */\n decay,\n\n /**\n * Animates a value along a timed easing curve. The Easing module has tons of\n * predefined curves, or you can use your own function.\n *\n * See https://reactnative.dev/docs/animated.html#timing\n */\n timing,\n\n /**\n * Animates a value according to an analytical spring model based on\n * damped harmonic oscillation.\n *\n * See https://reactnative.dev/docs/animated.html#spring\n */\n spring,\n\n /**\n * Creates a new Animated value composed from two Animated values added\n * together.\n *\n * See https://reactnative.dev/docs/animated.html#add\n */\n add,\n\n /**\n * Creates a new Animated value composed by subtracting the second Animated\n * value from the first Animated value.\n *\n * See https://reactnative.dev/docs/animated.html#subtract\n */\n subtract,\n\n /**\n * Creates a new Animated value composed by dividing the first Animated value\n * by the second Animated value.\n *\n * See https://reactnative.dev/docs/animated.html#divide\n */\n divide,\n\n /**\n * Creates a new Animated value composed from two Animated values multiplied\n * together.\n *\n * See https://reactnative.dev/docs/animated.html#multiply\n */\n multiply,\n\n /**\n * Creates a new Animated value that is the (non-negative) modulo of the\n * provided Animated value.\n *\n * See https://reactnative.dev/docs/animated.html#modulo\n */\n modulo,\n\n /**\n * Create a new Animated value that is limited between 2 values. It uses the\n * difference between the last value so even if the value is far from the\n * bounds it will start changing when the value starts getting closer again.\n *\n * See https://reactnative.dev/docs/animated.html#diffclamp\n */\n diffClamp,\n\n /**\n * Starts an animation after the given delay.\n *\n * See https://reactnative.dev/docs/animated.html#delay\n */\n delay,\n\n /**\n * Starts an array of animations in order, waiting for each to complete\n * before starting the next. If the current running animation is stopped, no\n * following animations will be started.\n *\n * See https://reactnative.dev/docs/animated.html#sequence\n */\n sequence,\n\n /**\n * Starts an array of animations all at the same time. By default, if one\n * of the animations is stopped, they will all be stopped. You can override\n * this with the `stopTogether` flag.\n *\n * See https://reactnative.dev/docs/animated.html#parallel\n */\n parallel,\n\n /**\n * Array of animations may run in parallel (overlap), but are started in\n * sequence with successive delays. Nice for doing trailing effects.\n *\n * See https://reactnative.dev/docs/animated.html#stagger\n */\n stagger,\n\n /**\n * Loops a given animation continuously, so that each time it reaches the\n * end, it resets and begins again from the start.\n *\n * See https://reactnative.dev/docs/animated.html#loop\n */\n loop,\n\n /**\n * Takes an array of mappings and extracts values from each arg accordingly,\n * then calls `setValue` on the mapped outputs.\n *\n * See https://reactnative.dev/docs/animated.html#event\n */\n event,\n\n /**\n * Make any React component Animatable. Used to create `Animated.View`, etc.\n *\n * See https://reactnative.dev/docs/animated.html#createanimatedcomponent\n */\n createAnimatedComponent,\n\n /**\n * Imperative API to attach an animated value to an event on a view. Prefer\n * using `Animated.event` with `useNativeDrive: true` if possible.\n *\n * See https://reactnative.dev/docs/animated.html#attachnativeevent\n */\n attachNativeEvent,\n\n /**\n * Advanced imperative API for snooping on animated events that are passed in\n * through props. Use values directly where possible.\n *\n * See https://reactnative.dev/docs/animated.html#forkevent\n */\n forkEvent,\n unforkEvent,\n\n /**\n * Expose Event class, so it can be used as a type for type checkers.\n */\n Event: AnimatedEvent,\n __PropsOnlyForTests: AnimatedProps\n};","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport { AnimatedEvent, attachNativeEvent } from './AnimatedEvent';\nimport AnimatedImplementation from './AnimatedImplementation';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport createAnimatedComponent from './createAnimatedComponent';\nvar emptyAnimation = {\n start: () => {},\n stop: () => {},\n reset: () => {},\n _startNativeLoop: () => {},\n _isUsingNativeDriver: () => {\n return false;\n }\n};\n\nvar spring = function spring(value, config) {\n var anyValue = value;\n return _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n start: callback => {\n anyValue.setValue(config.toValue);\n callback && callback({\n finished: true\n });\n }\n });\n};\n\nvar timing = function timing(value, config) {\n var anyValue = value;\n return _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n start: callback => {\n anyValue.setValue(config.toValue);\n callback && callback({\n finished: true\n });\n }\n });\n};\n\nvar decay = function decay(value, config) {\n return emptyAnimation;\n};\n\nvar sequence = function sequence(animations) {\n return emptyAnimation;\n};\n\nvar parallel = function parallel(animations, config) {\n return emptyAnimation;\n};\n\nvar delay = function delay(time) {\n return emptyAnimation;\n};\n\nvar stagger = function stagger(time, animations) {\n return emptyAnimation;\n};\n\nvar loop = function loop(animation, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$iterations = _ref.iterations,\n iterations = _ref$iterations === void 0 ? -1 : _ref$iterations;\n\n return emptyAnimation;\n};\n\nvar event = function event(argMapping, config) {\n return null;\n};\n\nexport default {\n Value: AnimatedValue,\n ValueXY: AnimatedValueXY,\n Interpolation: AnimatedInterpolation,\n Node: AnimatedNode,\n decay,\n timing,\n spring,\n add: AnimatedImplementation.add,\n subtract: AnimatedImplementation.subtract,\n divide: AnimatedImplementation.divide,\n multiply: AnimatedImplementation.multiply,\n modulo: AnimatedImplementation.modulo,\n diffClamp: AnimatedImplementation.diffClamp,\n delay,\n sequence,\n parallel,\n stagger,\n loop,\n event,\n createAnimatedComponent,\n attachNativeEvent,\n forkEvent: AnimatedImplementation.forkEvent,\n unforkEvent: AnimatedImplementation.unforkEvent,\n Event: AnimatedEvent,\n __PropsOnlyForTests: AnimatedProps\n};","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\nimport Platform from '../../../exports/Platform';\nimport FlatList from './components/AnimatedFlatList';\nimport Image from './components/AnimatedImage';\nimport ScrollView from './components/AnimatedScrollView';\nimport SectionList from './components/AnimatedSectionList';\nimport Text from './components/AnimatedText';\nimport View from './components/AnimatedView';\nimport AnimatedMock from './AnimatedMock';\nimport AnimatedImplementation from './AnimatedImplementation';\nvar Animated = Platform.isTesting ? AnimatedMock : AnimatedImplementation;\nexport default _objectSpread({\n FlatList,\n Image,\n ScrollView,\n SectionList,\n Text,\n View\n}, Animated);","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport Animated from '../../vendor/react-native/Animated/Animated';\nexport default Animated;","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","import Platform from '../Platform';\nimport { CodedError } from './CodedError';\n\n/**\n * A class for errors to be thrown when a property is accessed which is\n * unavailable, unsupported, or not currently implemented on the running\n * platform.\n */\nexport class UnavailabilityError extends CodedError {\n constructor(moduleName: string, propertyName: string) {\n super(\n 'ERR_UNAVAILABLE',\n `The method or property ${moduleName}.${propertyName} is not available on ${Platform.OS}, are you sure you've linked all the native dependencies properly?`\n );\n }\n}\n","export enum PermissionStatus {\n /**\n * User has granted the permission.\n */\n GRANTED = 'granted',\n /**\n * User hasn't granted or denied the permission yet.\n */\n UNDETERMINED = 'undetermined',\n /**\n * User has denied the permission.\n */\n DENIED = 'denied',\n}\n\n/**\n * Permission expiration time. Currently, all permissions are granted permanently.\n */\nexport type PermissionExpiration = 'never' | number;\n\n/**\n * An object obtained by permissions get and request functions.\n */\nexport interface PermissionResponse {\n /**\n * Determines the status of the permission.\n */\n status: PermissionStatus;\n /**\n * Determines time when the permission expires.\n */\n expires: PermissionExpiration;\n /**\n * A convenience boolean that indicates if the permission is granted.\n */\n granted: boolean;\n /**\n * Indicates if user can be asked again for specific permission.\n * If not, one should be directed to the Settings app\n * in order to enable/disable the permission.\n */\n canAskAgain: boolean;\n}\n","import { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { PermissionResponse } from './PermissionsInterface';\n\n// These types are identical, but improves the readability for suggestions in editors\ntype RequestPermissionMethod = () => Promise;\ntype GetPermissionMethod = () => Promise;\n\ninterface PermissionHookMethods {\n /** The permission method that requests the user to grant permission. */\n requestMethod: (options?: Options) => Promise;\n /** The permission method that only fetches the current permission status. */\n getMethod: (options?: Options) => Promise;\n}\n\ninterface PermissionHookBehavior {\n /** If the hook should automatically fetch the current permission status, without asking the user. */\n get?: boolean;\n /** If the hook should automatically request the user to grant permission. */\n request?: boolean;\n}\n\nexport type PermissionHookOptions = PermissionHookBehavior & Options;\n\n/**\n * Get or request permission for protected functionality within the app.\n * It uses separate permission requesters to interact with a single permission.\n * By default, the hook will only retrieve the permission status.\n */\nfunction usePermission(\n methods: PermissionHookMethods,\n options?: PermissionHookOptions\n): [Permission | null, RequestPermissionMethod, GetPermissionMethod] {\n const isMounted = useRef(true);\n const [status, setStatus] = useState(null);\n const { get = true, request = false, ...permissionOptions } = options || {};\n\n const getPermission = useCallback(async () => {\n const response = await methods.getMethod(\n Object.keys(permissionOptions).length > 0 ? (permissionOptions as Options) : undefined\n );\n if (isMounted.current) setStatus(response);\n return response;\n }, [methods.getMethod]);\n\n const requestPermission = useCallback(async () => {\n const response = await methods.requestMethod(\n Object.keys(permissionOptions).length > 0 ? (permissionOptions as Options) : undefined\n );\n if (isMounted.current) setStatus(response);\n return response;\n }, [methods.requestMethod]);\n\n useEffect(\n function runMethods() {\n if (request) requestPermission();\n if (!request && get) getPermission();\n },\n [get, request, requestPermission, getPermission]\n );\n\n // Workaround for unmounting components receiving state updates\n useEffect(function didMount() {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return [status, requestPermission, getPermission];\n}\n\n/**\n * Create a new permission hook with the permission methods built-in.\n * This can be used to quickly create specific permission hooks in every module.\n */\nexport function createPermissionHook(\n methods: PermissionHookMethods\n) {\n return (options?: PermissionHookOptions) =>\n usePermission(methods, options);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst parse_1 = require(\"./parse\");\nconst unparse_1 = require(\"./unparse\");\nconst validate_1 = require(\"./validate\");\nconst version_1 = require(\"./version\");\nconst v1_1 = require(\"./v1\");\nconst v4_1 = require(\"./v4\");\nconst v5_1 = require(\"./v5\");\nconst utils_1 = require(\"./utils\");\nexports.default = {\n parse: parse_1.parse,\n unparse: unparse_1.unparse,\n validate: validate_1.validate,\n version: version_1.version,\n v1: v1_1.v1,\n v4: v4_1.v4,\n v5: v5_1.v5,\n NIL: utils_1.NIL, DNS: utils_1.DNS, URL: utils_1.URL, OID: utils_1.OID, X500: utils_1.X500\n};\n//# sourceMappingURL=index.js.map","// TODO use State from RNModule\n\nexport const State = {\n UNDETERMINED: 0,\n FAILED: 1,\n BEGAN: 2,\n CANCELLED: 3,\n ACTIVE: 4,\n END: 5,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\nexport type State = typeof State[keyof typeof State];\n","var superPropBase = require(\"./superPropBase.js\");\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _get.apply(this, arguments);\n}\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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); }\n\nfunction 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; }\n\nfunction _objectSpread(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; }\n\nfunction _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; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _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); }\n\nfunction _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); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _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); }\n\nfunction _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); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport { getLocation } from \"../language/location.mjs\";\nimport { printLocation, printSourceLocation } from \"../language/printLocation.mjs\";\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport var GraphQLError = /*#__PURE__*/function (_Error) {\n _inherits(GraphQLError, _Error);\n\n var _super = _createSuper(GraphQLError);\n\n /**\n * An array of { line, column } locations within the source GraphQL document\n * which correspond to this error.\n *\n * Errors during validation often contain multiple locations, for example to\n * point out two things with the same name. Errors during execution include a\n * single location, the field which produced the error.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array describing the JSON-path into the execution response which\n * corresponds to this error. Only included for errors during execution.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array of GraphQL AST Nodes corresponding to this error.\n */\n\n /**\n * The source GraphQL document for the first location of this error.\n *\n * Note that if this Error represents more than one node, the source may not\n * represent nodes after the first node.\n */\n\n /**\n * An array of character offsets within the source GraphQL document\n * which correspond to this error.\n */\n\n /**\n * The original error thrown from a field resolver during execution.\n */\n\n /**\n * Extension fields to add to the formatted error.\n */\n function GraphQLError(message, nodes, source, positions, path, originalError, extensions) {\n var _nodeLocations, _nodeLocations2, _nodeLocations3;\n\n var _this;\n\n _classCallCheck(this, GraphQLError);\n\n _this = _super.call(this, message);\n _this.name = 'GraphQLError';\n _this.originalError = originalError !== null && originalError !== void 0 ? originalError : undefined; // Compute list of blame nodes.\n\n _this.nodes = undefinedIfEmpty(Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined);\n var nodeLocations = [];\n\n for (var _i2 = 0, _ref3 = (_this$nodes = _this.nodes) !== null && _this$nodes !== void 0 ? _this$nodes : []; _i2 < _ref3.length; _i2++) {\n var _this$nodes;\n\n var _ref4 = _ref3[_i2];\n var loc = _ref4.loc;\n\n if (loc != null) {\n nodeLocations.push(loc);\n }\n }\n\n nodeLocations = undefinedIfEmpty(nodeLocations); // Compute locations in the source for the given nodes/positions.\n\n _this.source = source !== null && source !== void 0 ? source : (_nodeLocations = nodeLocations) === null || _nodeLocations === void 0 ? void 0 : _nodeLocations[0].source;\n _this.positions = positions !== null && positions !== void 0 ? positions : (_nodeLocations2 = nodeLocations) === null || _nodeLocations2 === void 0 ? void 0 : _nodeLocations2.map(function (loc) {\n return loc.start;\n });\n _this.locations = positions && source ? positions.map(function (pos) {\n return getLocation(source, pos);\n }) : (_nodeLocations3 = nodeLocations) === null || _nodeLocations3 === void 0 ? void 0 : _nodeLocations3.map(function (loc) {\n return getLocation(loc.source, loc.start);\n });\n _this.path = path !== null && path !== void 0 ? path : undefined;\n var originalExtensions = originalError === null || originalError === void 0 ? void 0 : originalError.extensions;\n\n if (extensions == null && isObjectLike(originalExtensions)) {\n _this.extensions = _objectSpread({}, originalExtensions);\n } else {\n _this.extensions = extensions !== null && extensions !== void 0 ? extensions : {};\n } // By being enumerable, JSON.stringify will include bellow properties in the resulting output.\n // This ensures that the simplest possible GraphQL service adheres to the spec.\n\n\n Object.defineProperties(_assertThisInitialized(_this), {\n message: {\n enumerable: true\n },\n locations: {\n enumerable: _this.locations != null\n },\n path: {\n enumerable: _this.path != null\n },\n extensions: {\n enumerable: _this.extensions != null && Object.keys(_this.extensions).length > 0\n },\n name: {\n enumerable: false\n },\n nodes: {\n enumerable: false\n },\n source: {\n enumerable: false\n },\n positions: {\n enumerable: false\n },\n originalError: {\n enumerable: false\n }\n }); // Include (non-enumerable) stack trace.\n\n if (originalError !== null && originalError !== void 0 && originalError.stack) {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true\n });\n return _possibleConstructorReturn(_this);\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(_assertThisInitialized(_this), GraphQLError);\n } else {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true\n });\n }\n\n return _this;\n }\n\n _createClass(GraphQLError, [{\n key: \"toString\",\n value: function toString() {\n return printError(this);\n } // FIXME: workaround to not break chai comparisons, should be remove in v16\n // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n }, {\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Object';\n }\n }]);\n\n return GraphQLError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nfunction undefinedIfEmpty(array) {\n return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n */\n\n\nexport function printError(error) {\n var output = error.message;\n\n if (error.nodes) {\n for (var _i4 = 0, _error$nodes2 = error.nodes; _i4 < _error$nodes2.length; _i4++) {\n var node = _error$nodes2[_i4];\n\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (error.source && error.locations) {\n for (var _i6 = 0, _error$locations2 = error.locations; _i6 < _error$locations2.length; _i6++) {\n var location = _error$locations2[_i6];\n output += '\\n\\n' + printSourceLocation(error.source, location);\n }\n }\n\n return output;\n}\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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); }\n\n/* eslint-disable flowtype/no-weak-types */\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\nvar MAX_ARRAY_LENGTH = 10;\nvar MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport default function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (_typeof(value)) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? \"[function \".concat(value.name, \"]\") : '[function]';\n\n case 'object':\n if (value === null) {\n return 'null';\n }\n\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (previouslySeenValues.indexOf(value) !== -1) {\n return '[Circular]';\n }\n\n var seenValues = [].concat(previouslySeenValues, [value]);\n var customInspectFn = getCustomFn(value);\n\n if (customInspectFn !== undefined) {\n var customValue = customInspectFn.call(value); // check for infinite recursion\n\n if (customValue !== value) {\n return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction formatObject(object, seenValues) {\n var keys = Object.keys(object);\n\n if (keys.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n var properties = keys.map(function (key) {\n var value = formatValue(object[key], seenValues);\n return key + ': ' + value;\n });\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n var len = Math.min(MAX_ARRAY_LENGTH, array.length);\n var remaining = array.length - len;\n var items = [];\n\n for (var i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(\"... \".concat(remaining, \" more items\"));\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getCustomFn(object) {\n var customInspectFn = object[String(nodejsCustomInspectSymbol)];\n\n if (typeof customInspectFn === 'function') {\n return customInspectFn;\n }\n\n if (typeof object.inspect === 'function') {\n return object.inspect;\n }\n}\n\nfunction getObjectTag(object) {\n var tag = Object.prototype.toString.call(object).replace(/^\\[object /, '').replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n var name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n ? isCheckBoxInput(event.target)\n ? event.target.checked\n : event.target.value\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n let copy;\n const isArray = Array.isArray(data);\n if (data instanceof Date) {\n copy = new Date(data);\n }\n else if (data instanceof Set) {\n copy = new Set(data);\n }\n else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))) {\n copy = isArray ? [] : {};\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n }\n else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n }\n else {\n return data;\n }\n return copy;\n}\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (obj, path, defaultValue) => {\n if (!path || !isObject(obj)) {\n return defaultValue;\n }\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], obj);\n return isUndefined(result) || result === obj\n ? isUndefined(obj[path])\n ? defaultValue\n : obj[path]\n : result;\n};\n\nconst EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n\nconst HookFormContext = React.createContext(null);\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nconst useFormContext = () => React.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useFrom methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n const { children, ...data } = props;\n return (React.createElement(HookFormContext.Provider, { value: data }, children));\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n const result = {\n defaultValues: control._defaultValues,\n };\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key;\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n return result;\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n return (isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find((key) => _proxyFormState[key] ===\n (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => exact && signalName\n ? name === signalName\n : !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some((currentName) => currentName &&\n (currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\n const _props = React.useRef(props);\n _props.current = props;\n React.useEffect(() => {\n const subscription = !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n *
\n * \n * {dirtyFields.firstName &&

Field is dirty.

}\n * \n *
\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n next: (value) => _mounted.current &&\n shouldSubscribeByName(_name.current, value.name, exact) &&\n shouldRenderFormState(value, _localProxyFormState.current, control._updateFormState) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n return getProxyFormState(formState, control, _localProxyFormState.current, false);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n if (Array.isArray(names)) {\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\n }\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const methods = useFormContext();\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState) => {\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\n updateValue(cloneObject(generateWatchOutput(_name.current, control._names, formState.values || control._formValues, false, defaultValue)));\n }\n },\n });\n const [value, updateValue] = React.useState(control._getWatch(name, defaultValue));\n React.useEffect(() => control._removeUnmounted());\n return value;\n}\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nfunction set(object, path, value) {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n}\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n *
\n * \n *

{fieldState.isTouched && \"Touched\"}

\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *
\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const methods = useFormContext();\n const { name, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\n exact: true,\n });\n const formState = useFormState({\n control,\n name,\n });\n const _registerProps = React.useRef(control.register(name, {\n ...props.rules,\n value,\n }));\n _registerProps.current = control.register(name, props.rules);\n React.useEffect(() => {\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field) {\n field._f.mount = value;\n }\n };\n updateMounted(name, true);\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n return () => {\n (isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField)\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n return {\n field: {\n name,\n value,\n onChange: React.useCallback((event) => _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name,\n },\n type: EVENTS.CHANGE,\n }), [name]),\n onBlur: React.useCallback(() => _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name,\n },\n type: EVENTS.BLUR,\n }), [name, control]),\n ref: (elm) => {\n const field = get(control._fields, name);\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message) => elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n },\n },\n formState,\n fieldState: Object.defineProperties({}, {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n }),\n };\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n *
\n * (\n * <>\n * \n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *

{fieldState.isTouched ? \"touched\" : \"\"}

\n * \n * )}\n * />\n * \n * );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n *
\n * \n *

{errors?.root?.server && 'Server error'}

\n * \n *
\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = React.useState(false);\n const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n const submit = async (event) => {\n let hasError = false;\n let type = '';\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n try {\n formDataJson = JSON.stringify(data);\n }\n catch (_a) { }\n for (const name of control._names.mount) {\n formData.append(name, get(data, name));\n }\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n const response = await fetch(action, {\n method,\n headers: {\n ...headers,\n ...(encType ? { 'Content-Type': encType } : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n if (response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n }\n else {\n onSuccess && onSuccess({ response });\n }\n }\n catch (error) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n React.useEffect(() => {\n setMounted(true);\n }, []);\n return render ? (React.createElement(React.Fragment, null, render({\n submit,\n }))) : (React.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true,\n },\n }\n : {};\n\nconst focusFieldBy = (fields, callback, fieldsNames) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const { _f, ...currentField } = field;\n if (_f && callback(_f.name)) {\n if (_f.ref.focus) {\n _f.ref.focus();\n break;\n }\n else if (_f.refs && _f.refs[0].focus) {\n _f.refs[0].focus();\n break;\n }\n }\n else if (isObject(currentField)) {\n focusFieldBy(currentField, callback);\n }\n }\n }\n};\n\nvar generateId = () => {\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n\nvar getValidationModes = (mode) => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n const fieldArrayErrors = compact(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return (value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMessage = (value) => isString(value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRegex = (value) => value instanceof RegExp;\n\nconst defaultResult = {\n value: false,\n isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n return defaultResult;\n};\n\nconst defaultReturn = {\n isValid: false,\n value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous, defaultReturn)\n : defaultReturn;\n\nfunction getValidateError(result, ref, type = 'validate') {\n if (isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n\nvar validateField = async (field, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = field._f;\n const inputValue = get(formValues, name);\n if (!mount || disabled) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidity = (message) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n if (isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n }\n else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n }\n else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\n\nfunction append(data, value) {\n return [...data, ...convertToArrayPayload(value)];\n}\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n};\n\nfunction prepend(data, value) {\n return [...convertToArrayPayload(value), ...convertToArrayPayload(data)];\n}\n\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n ? []\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n data[indexA] = [data[indexB], (data[indexB] = data[indexA])][0];\n};\n\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction isEmptyArray(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\nfunction unset(object, path) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n const index = paths.length - 1;\n const key = paths[index];\n if (childObject) {\n delete childObject[key];\n }\n if (index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\n\nvar updateAt = (fieldValues, index, value) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n *
console.log(data))}>\n * {fields.map((item, index) => (\n * \n * ))}\n * \n * \n *
\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const methods = useFormContext();\n const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;\n const [fields, setFields] = React.useState(control._getFieldArray(name));\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\n const _fieldIds = React.useRef(fields);\n const _name = React.useRef(name);\n const _actioned = React.useRef(false);\n _name.current = name;\n _fieldIds.current = fields;\n control._names.array.add(name);\n props.rules &&\n control.register(name, props.rules);\n useSubscribe({\n next: ({ values, name: fieldArrayName, }) => {\n if (fieldArrayName === _name.current || !fieldArrayName) {\n const fieldValues = get(values, _name.current);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n subject: control._subjects.array,\n });\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\n _actioned.current = true;\n control._updateFieldArray(name, updatedFieldArrayValues);\n }, [control, name]);\n const append$1 = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = append(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = append(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, append, {\n argA: fillEmptyArray(value),\n });\n };\n const prepend$1 = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prepend(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prepend(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, prepend, {\n argA: fillEmptyArray(value),\n });\n };\n const remove = (index) => {\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n const insert$1 = (index, value, options) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insert(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n const swap = (indexA, indexB) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n argA: indexA,\n argB: indexB,\n }, false);\n };\n const move = (from, to) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n argA: from,\n argB: to,\n }, false);\n };\n const update = (index, value) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: updateValue,\n }, true, false);\n };\n const replace = (value) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n };\n React.useEffect(() => {\n control._state.action = false;\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n });\n if (_actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted)) {\n if (control._options.resolver) {\n control._executeSchema([name]).then((result) => {\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n if (existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors,\n });\n }\n });\n }\n else {\n const field = get(control._fields, name);\n if (field && field._f) {\n validateField(field, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\n }));\n }\n }\n }\n control._subjects.values.next({\n name,\n values: { ...control._formValues },\n });\n control._names.focus &&\n focusFieldBy(control._fields, (key) => !!key && key.startsWith(control._names.focus || ''));\n control._names.focus = '';\n control._updateValid();\n _actioned.current = false;\n }, [fields, name, control]);\n React.useEffect(() => {\n !get(control._formValues, name) && control._updateFieldArray(name);\n return () => {\n (control._options.shouldUnregister || shouldUnregister) &&\n control.unregister(name);\n };\n }, [name, control, keyName, shouldUnregister]);\n return {\n swap: React.useCallback(swap, [updateValues, name, control]),\n move: React.useCallback(move, [updateValues, name, control]),\n prepend: React.useCallback(prepend$1, [updateValues, name, control]),\n append: React.useCallback(append$1, [updateValues, name, control]),\n remove: React.useCallback(remove, [updateValues, name, control]),\n insert: React.useCallback(insert$1, [updateValues, name, control]),\n update: React.useCallback(update, [updateValues, name, control]),\n replace: React.useCallback(replace, [updateValues, name, control]),\n fields: React.useMemo(() => fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })), [fields, keyName]),\n };\n}\n\nfunction createSubject() {\n let _observers = [];\n const next = (value) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n const subscribe = (observer) => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n const unsubscribe = () => {\n _observers = [];\n };\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (const key of keys1) {\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if ((isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2) {\n return false;\n }\n }\n }\n return true;\n}\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nvar objectHasFunction = (data) => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n\nfunction markFieldsDirty(data, fields = {}) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n }\n else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n return fields;\n}\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n if (isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n }\n else {\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\n }\n else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n return dirtyFieldsFromValues;\n}\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation,\n };\n};\n\nvar getRuleValue = (rule) => isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n\nvar hasValidation = (options) => options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\n const error = get(errors, name);\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n const names = name.split('.');\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n names.pop();\n }\n return {\n name,\n };\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n }\n else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n }\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n }\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n};\nfunction createFormControl(props = {}, flushRootRender) {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n errors: {},\n };\n let _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const shouldCaptureDirtyFields = props.resetOptions && props.resetOptions.keepDirtyValues;\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n const debounce = (callback) => (wait) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n const _updateValid = async (shouldUpdateValid) => {\n if (_proxyFormState.isValid || shouldUpdateValid) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n const _updateIsValidating = (value) => _proxyFormState.isValidating &&\n _subjects.state.next({\n isValidating: value,\n });\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n if (args && method) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n if (shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))) {\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n if (_proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))) {\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n }\n else {\n set(_formValues, name, values);\n }\n };\n const updateErrors = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n const field = get(_fields, name);\n if (field) {\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n isUndefined(defaultValue) ||\n (ref && ref.defaultChecked) ||\n shouldSkipSetValueAs\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n : setFieldValue(name, defaultValue);\n _state.mount && _updateValid();\n }\n };\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output = {\n name,\n };\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = get(_formState.dirtyFields, name);\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n return shouldUpdateField ? output : {};\n };\n const shouldRenderByError = (name, isValid, error, fieldState) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid = _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n }\n else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n _subjects.state.next(updatedFormState);\n }\n _updateIsValidating(false);\n };\n const _executeSchema = async (name) => _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n const executeSchemaAndUpdateState = async (names) => {\n const { errors } = await _executeSchema();\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n }\n else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n valid: true,\n }) => {\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const { _f, ...fieldValue } = field;\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const fieldError = await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n fieldValue &&\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n }\n }\n return context.valid;\n };\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field = get(_fields, name);\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name);\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n }, isGlobal, defaultValue);\n const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\n const setFieldValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n }\n else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach((checkboxRef) => (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!fieldValue.find((data) => data === checkboxRef.value)\n : fieldValue === checkboxRef.value))\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n }\n else {\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n }\n }\n else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n }\n else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n options.shouldValidate && trigger(name);\n };\n const setValues = (name, value, options) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n (_names.array.has(name) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n set(_formValues, name, cloneValue);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n !_state.mount && flushRootRender();\n };\n const onChange = async (event) => {\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field = get(_fields, name);\n const getCurrentFieldValue = () => target.type ? getFieldValue(field._f) : getEventValue(event);\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation = (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n const watched = isWatched(name, _names, isBlurEvent);\n set(_formValues, name, fieldValue);\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\n const shouldRender = !isEmptyObject(fieldState) || watched;\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n return (shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n }\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n _updateIsValidating(true);\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n isValid = isEmptyObject(errors);\n }\n else {\n error = (await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n isFieldValueUpdated =\n isNaN(fieldValue) ||\n fieldValue === get(_formValues, name, fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n }\n else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const trigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name);\n _updateIsValidating(true);\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n }\n else if (name) {\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n }\n else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n isValidating: false,\n });\n options.shouldFocus &&\n !validationResult &&\n focusFieldBy(_fields, (key) => key && get(_formState.errors, key), name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = (fieldNames) => {\n const values = {\n ..._defaultValues,\n ...(_state.mount ? _formValues : {}),\n };\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n const getFieldState = (name, formState) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n error: get((formState || _formState).errors, name),\n });\n const clearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n set(_formState.errors, name, {\n ...error,\n ref,\n });\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (name, defaultValue) => isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) => name(_getWatch(undefined, defaultValue), payload),\n })\n : _getWatch(name, defaultValue, true);\n const unregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n _subjects.values.next({\n values: { ..._formValues },\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n !options.keepIsValid && _updateValid();\n };\n const register = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n field\n ? disabledIsDefined &&\n set(_formValues, name, options.disabled\n ? undefined\n : get(_formValues, name, getFieldValue(field._f)))\n : updateValidAndValue(name, true, options.value);\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength),\n maxLength: getRuleValue(options.maxLength),\n pattern: getRuleValue(options.pattern),\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref) => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox\n ? refs.find((option) => option === fieldRef)\n : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n }\n else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n const _focusError = () => _options.shouldFocusError &&\n focusFieldBy(_fields, (key) => key && get(_formState.errors, key), _names.mount);\n const handleSubmit = (onValid, onInvalid) => async (e) => {\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n _subjects.state.next({\n isSubmitting: true,\n });\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n }\n else {\n await executeBuiltInValidation(_fields);\n }\n unset(_formState.errors, 'root');\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n await onValid(fieldValues, e);\n }\n else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors),\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n };\n const resetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, get(_defaultValues, name));\n }\n else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, options.defaultValue);\n }\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, get(_defaultValues, name))\n : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n _subjects.state.next({ ..._formState });\n }\n };\n const _reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues || _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const values = formValues && !isEmptyObject(formValues)\n ? cloneUpdatedValues\n : _defaultValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues || shouldCaptureDirtyFields) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(fieldName, get(values, fieldName));\n }\n }\n else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n _fields = {};\n }\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n _subjects.array.next({\n values: { ...values },\n });\n _subjects.values.next({\n values: { ...values },\n });\n }\n _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n !_state.mount && flushRootRender();\n _state.mount = !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\n _state.watch = !!props.shouldUnregister;\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: keepStateOptions.keepDirtyValues\n ? _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n ? formValues(_formValues)\n : formValues, keepStateOptions);\n const setFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n const _updateFormState = (updatedFormState) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n *
\n * \n * \n * {errors.exampleRequired && This field is required}\n * \n *
\n * );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n const _formControl = React.useRef();\n const _values = React.useRef();\n const [formState, updateFormState] = React.useState({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n errors: {},\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props, () => updateFormState((formState) => ({ ...formState }))),\n formState,\n };\n }\n const control = _formControl.current.control;\n control._options = props;\n useSubscribe({\n subject: control._subjects.state,\n next: (value) => {\n if (shouldRenderFormState(value, control._proxyFormState, control._updateFormState, true)) {\n updateFormState({ ...control._formState });\n }\n },\n });\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n }\n else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n control._removeUnmounted();\n });\n _formControl.current.formState = getProxyFormState(formState, control);\n return _formControl.current;\n}\n\nexport { Controller, Form, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","// ES6 Map\nvar map\ntry {\n map = Map\n} catch (_) { }\nvar set\n\n// ES6 Set\ntry {\n set = Set\n} catch (_) { }\n\nfunction baseClone (src, circulars, clones) {\n // Null/undefined/functions/etc\n if (!src || typeof src !== 'object' || typeof src === 'function') {\n return src\n }\n\n // DOM Node\n if (src.nodeType && 'cloneNode' in src) {\n return src.cloneNode(true)\n }\n\n // Date\n if (src instanceof Date) {\n return new Date(src.getTime())\n }\n\n // RegExp\n if (src instanceof RegExp) {\n return new RegExp(src)\n }\n\n // Arrays\n if (Array.isArray(src)) {\n return src.map(clone)\n }\n\n // ES6 Maps\n if (map && src instanceof map) {\n return new Map(Array.from(src.entries()))\n }\n\n // ES6 Sets\n if (set && src instanceof set) {\n return new Set(Array.from(src.values()))\n }\n\n // Object\n if (src instanceof Object) {\n circulars.push(src)\n var obj = Object.create(src)\n clones.push(obj)\n for (var key in src) {\n var idx = circulars.findIndex(function (i) {\n return i === src[key]\n })\n obj[key] = idx > -1 ? clones[idx] : baseClone(src[key], circulars, clones)\n }\n return obj\n }\n\n // ???\n return src\n}\n\nexport default function clone (src) {\n return baseClone(src, [], [])\n}\n","const toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\n\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\n\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\n\nexport default function printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}","import printValue from './util/printValue';\nexport let mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n let isCast = originalValue != null && originalValue !== value;\n let msg = `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + (isCast ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.');\n\n if (value === null) {\n msg += `\\n If \"null\" is intended as an empty value be sure to mark the schema as \\`.nullable()\\``;\n }\n\n return msg;\n },\n defined: '${path} must be defined'\n};\nexport let string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nexport let number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nexport let date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nexport let boolean = {\n isValue: '${path} field must be ${value}'\n};\nexport let object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}'\n};\nexport let array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nexport default Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean\n});","const isSchema = obj => obj && obj.__isYupSchema__;\n\nexport default isSchema;","import has from 'lodash/has';\nimport isSchema from './util/isSchema';\n\nclass Condition {\n constructor(refs, options) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n\n if (typeof options === 'function') {\n this.fn = options;\n return;\n }\n\n if (!has(options, 'is')) throw new TypeError('`is:` is required for `when()` conditions');\n if (!options.then && !options.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = options;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n\n this.fn = function (...args) {\n let options = args.pop();\n let schema = args.pop();\n let branch = check(...args) ? then : otherwise;\n if (!branch) return undefined;\n if (typeof branch === 'function') return branch(schema);\n return schema.concat(branch.resolve(options));\n };\n }\n\n resolve(base, options) {\n let values = this.refs.map(ref => ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn.apply(base, values.concat(base, options));\n if (schema === undefined || schema === base) return base;\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n\n}\n\nexport default Condition;","export default function toArray(value) {\n return value == null ? [] : [].concat(value);\n}","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); }\n\nimport printValue from './util/printValue';\nimport toArray from './util/toArray';\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\nexport default class ValidationError extends Error {\n static formatError(message, params) {\n const path = params.label || params.path || 'this';\n if (path !== params.path) params = _extends({}, params, {\n path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n\n constructor(errorOrErrors, value, field, type) {\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.errors = void 0;\n this.params = void 0;\n this.inner = void 0;\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n this.inner = this.inner.concat(err.inner.length ? err.inner : err);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n if (Error.captureStackTrace) Error.captureStackTrace(this, ValidationError);\n }\n\n}","import ValidationError from '../ValidationError';\n\nconst once = cb => {\n let fired = false;\n return (...args) => {\n if (fired) return;\n fired = true;\n cb(...args);\n };\n};\n\nexport default function runTests(options, cb) {\n let {\n endEarly,\n tests,\n args,\n value,\n errors,\n sort,\n path\n } = options;\n let callback = once(cb);\n let count = tests.length;\n const nestedErrors = [];\n errors = errors ? errors : [];\n if (!count) return errors.length ? callback(new ValidationError(errors, value, path)) : callback(null, value);\n\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, function finishTestRun(err) {\n if (err) {\n // always return early for non validation errors\n if (!ValidationError.isError(err)) {\n return callback(err, value);\n }\n\n if (endEarly) {\n err.value = value;\n return callback(err, value);\n }\n\n nestedErrors.push(err);\n }\n\n if (--count <= 0) {\n if (nestedErrors.length) {\n if (sort) nestedErrors.sort(sort); //show parent errors after the nested ones: name.first, name\n\n if (errors.length) nestedErrors.push(...errors);\n errors = nestedErrors;\n }\n\n if (errors.length) {\n callback(new ValidationError(errors, value, path), value);\n return;\n }\n\n callback(null, value);\n }\n });\n }\n}","import { getter } from 'property-expr';\nconst prefixes = {\n context: '$',\n value: '.'\n};\nexport function create(key, options) {\n return new Reference(key, options);\n}\nexport default class Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n\n\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n\n resolve() {\n return this;\n }\n\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n\n toString() {\n return `Ref(${this.key})`;\n }\n\n static isRef(value) {\n return value && value.__isYupRef;\n }\n\n} // @ts-ignore\n\nReference.prototype.__isYupRef = true;","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); }\n\nfunction _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; }\n\nimport mapValues from 'lodash/mapValues';\nimport ValidationError from '../ValidationError';\nimport Ref from '../Reference';\nexport default function createValidation(config) {\n function validate(_ref, cb) {\n let {\n value,\n path = '',\n label,\n options,\n originalValue,\n sync\n } = _ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"value\", \"path\", \"label\", \"options\", \"originalValue\", \"sync\"]);\n\n const {\n name,\n test,\n params,\n message\n } = config;\n let {\n parent,\n context\n } = options;\n\n function resolve(item) {\n return Ref.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n\n function createError(overrides = {}) {\n const nextParams = mapValues(_extends({\n value,\n originalValue,\n label,\n path: overrides.path || path\n }, params, overrides.params), resolve);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name);\n error.params = nextParams;\n return error;\n }\n\n let ctx = _extends({\n path,\n parent,\n type: name,\n createError,\n resolve,\n options,\n originalValue\n }, rest);\n\n if (!sync) {\n try {\n Promise.resolve(test.call(ctx, value, ctx)).then(validOrError => {\n if (ValidationError.isError(validOrError)) cb(validOrError);else if (!validOrError) cb(createError());else cb(null, validOrError);\n }).catch(cb);\n } catch (err) {\n cb(err);\n }\n\n return;\n }\n\n let result;\n\n try {\n var _ref2;\n\n result = test.call(ctx, value, ctx);\n\n if (typeof ((_ref2 = result) == null ? void 0 : _ref2.then) === 'function') {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n } catch (err) {\n cb(err);\n return;\n }\n\n if (ValidationError.isError(result)) cb(result);else if (!result) cb(createError());else cb(null, result);\n }\n\n validate.OPTIONS = config;\n return validate;\n}","import { forEach } from 'property-expr';\n\nlet trim = part => part.substr(0, part.length - 1).substr(1);\n\nexport function getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug; // root path: ''\n\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? trim(_part) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n\n if (schema.innerType) {\n let idx = isArray ? parseInt(part, 10) : 0;\n\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n\n parent = value;\n value = value && value[idx];\n schema = schema.innerType;\n } // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n\n\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema._type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\n\nconst reach = (obj, path, value, context) => getIn(obj, path, value, context).schema;\n\nexport default reach;","import Reference from '../Reference';\nexport default class ReferenceSet {\n constructor() {\n this.list = void 0;\n this.refs = void 0;\n this.list = new Set();\n this.refs = new Map();\n }\n\n get size() {\n return this.list.size + this.refs.size;\n }\n\n describe() {\n const description = [];\n\n for (const item of this.list) description.push(item);\n\n for (const [, ref] of this.refs) description.push(ref.describe());\n\n return description;\n }\n\n toArray() {\n return Array.from(this.list).concat(Array.from(this.refs.values()));\n }\n\n resolveAll(resolve) {\n return this.toArray().reduce((acc, e) => acc.concat(Reference.isRef(e) ? resolve(e) : e), []);\n }\n\n add(value) {\n Reference.isRef(value) ? this.refs.set(value.key, value) : this.list.add(value);\n }\n\n delete(value) {\n Reference.isRef(value) ? this.refs.delete(value.key) : this.list.delete(value);\n }\n\n clone() {\n const next = new ReferenceSet();\n next.list = new Set(this.list);\n next.refs = new Map(this.refs);\n return next;\n }\n\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.list.forEach(value => next.add(value));\n newItems.refs.forEach(value => next.add(value));\n removeItems.list.forEach(value => next.delete(value));\n removeItems.refs.forEach(value => next.delete(value));\n return next;\n }\n\n}","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); }\n\n// @ts-ignore\nimport cloneDeep from 'nanoclone';\nimport { mixed as locale } from './locale';\nimport Condition from './Condition';\nimport runTests from './util/runTests';\nimport createValidation from './util/createValidation';\nimport printValue from './util/printValue';\nimport Ref from './Reference';\nimport { getIn } from './util/reach';\nimport ValidationError from './ValidationError';\nimport ReferenceSet from './util/ReferenceSet';\nimport toArray from './util/toArray'; // const UNSET = 'unset' as const;\n\nexport default class BaseSchema {\n constructor(options) {\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this._typeError = void 0;\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(locale.notType);\n });\n this.type = (options == null ? void 0 : options.type) || 'mixed';\n this.spec = _extends({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n nullable: false,\n presence: 'optional'\n }, options == null ? void 0 : options.spec);\n } // TODO: remove\n\n\n get _type() {\n return this.type;\n }\n\n _typeCheck(_value) {\n return true;\n }\n\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n } // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n\n\n const next = Object.create(Object.getPrototypeOf(this)); // @ts-expect-error this is readonly\n\n next.type = this.type;\n next._typeError = this._typeError;\n next._whitelistError = this._whitelistError;\n next._blacklistError = this._blacklistError;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.exclusiveTests = _extends({}, this.exclusiveTests); // @ts-expect-error this is readonly\n\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = cloneDeep(_extends({}, this.spec, spec));\n return next;\n }\n\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n } // withContext(): BaseSchema<\n // TCast,\n // TContext,\n // TOutput\n // > {\n // return this as any;\n // }\n\n\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n\n const mergedSpec = _extends({}, base.spec, combined.spec); // if (combined.spec.nullable === UNSET)\n // mergedSpec.nullable = base.spec.nullable;\n // if (combined.spec.presence === UNSET)\n // mergedSpec.presence = base.spec.presence;\n\n\n combined.spec = mergedSpec;\n combined._typeError || (combined._typeError = base._typeError);\n combined._whitelistError || (combined._whitelistError = base._whitelistError);\n combined._blacklistError || (combined._blacklistError = base._blacklistError); // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist); // start with the current tests\n\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests; // manually add the new tests to ensure\n // the deduping logic is consistent\n\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n\n isType(v) {\n if (this.spec.nullable && v === null) return true;\n return this._typeCheck(v);\n }\n\n resolve(options) {\n let schema = this;\n\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((schema, condition) => condition.resolve(schema, options), schema);\n schema = schema.resolve(options);\n }\n\n return schema;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {*=} options.parent\n * @param {*=} options.context\n */\n\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(_extends({\n value\n }, options));\n\n let result = resolvedSchema._cast(value, options);\n\n if (value !== undefined && options.assert !== false && resolvedSchema.isType(result) !== true) {\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema._type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n\n return result;\n }\n\n _cast(rawValue, _options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((value, fn) => fn.call(this, value, rawValue, this), rawValue);\n\n if (value === undefined) {\n value = this.getDefault();\n }\n\n return value;\n }\n\n _validate(_value, options = {}, cb) {\n let {\n sync,\n path,\n from = [],\n originalValue = _value,\n strict = this.spec.strict,\n abortEarly = this.spec.abortEarly\n } = options;\n let value = _value;\n\n if (!strict) {\n // this._validating = true;\n value = this._cast(value, _extends({\n assert: false\n }, options)); // this._validating = false;\n } // value is cast, we can check if it meets type requirements\n\n\n let args = {\n value,\n path,\n options,\n originalValue,\n schema: this,\n label: this.spec.label,\n sync,\n from\n };\n let initialTests = [];\n if (this._typeError) initialTests.push(this._typeError);\n let finalTests = [];\n if (this._whitelistError) finalTests.push(this._whitelistError);\n if (this._blacklistError) finalTests.push(this._blacklistError);\n runTests({\n args,\n value,\n path,\n sync,\n tests: initialTests,\n endEarly: abortEarly\n }, err => {\n if (err) return void cb(err, value);\n runTests({\n tests: this.tests.concat(finalTests),\n args,\n path,\n sync,\n value,\n endEarly: abortEarly\n }, cb);\n });\n }\n\n validate(value, options, maybeCb) {\n let schema = this.resolve(_extends({}, options, {\n value\n })); // callback case is for nested validations\n\n return typeof maybeCb === 'function' ? schema._validate(value, options, maybeCb) : new Promise((resolve, reject) => schema._validate(value, options, (err, value) => {\n if (err) reject(err);else resolve(value);\n }));\n }\n\n validateSync(value, options) {\n let schema = this.resolve(_extends({}, options, {\n value\n }));\n let result;\n\n schema._validate(value, _extends({}, options, {\n sync: true\n }), (err, value) => {\n if (err) throw err;\n result = value;\n });\n\n return result;\n }\n\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n\n _getDefault() {\n let defaultValue = this.spec.default;\n\n if (defaultValue == null) {\n return defaultValue;\n }\n\n return typeof defaultValue === 'function' ? defaultValue.call(this) : cloneDeep(defaultValue);\n }\n\n getDefault(options) {\n let schema = this.resolve(options || {});\n return schema._getDefault();\n }\n\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n\n let next = this.clone({\n default: def\n });\n return next;\n }\n\n strict(isStrict = true) {\n let next = this.clone();\n next.spec.strict = isStrict;\n return next;\n }\n\n _isPresent(value) {\n return value != null;\n }\n\n defined(message = locale.defined) {\n return this.test({\n message,\n name: 'defined',\n exclusive: true,\n\n test(value) {\n return value !== undefined;\n }\n\n });\n }\n\n required(message = locale.required) {\n return this.clone({\n presence: 'required'\n }).withMutation(s => s.test({\n message,\n name: 'required',\n exclusive: true,\n\n test(value) {\n return this.schema._isPresent(value);\n }\n\n }));\n }\n\n notRequired() {\n let next = this.clone({\n presence: 'optional'\n });\n next.tests = next.tests.filter(test => test.OPTIONS.name !== 'required');\n return next;\n }\n\n nullable(isNullable = true) {\n let next = this.clone({\n nullable: isNullable !== false\n });\n return next;\n }\n\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n\n test(...args) {\n let opts;\n\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n\n if (opts.message === undefined) opts.message = locale.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n\n let next = this.clone();\n let deps = toArray(keys).map(key => new Ref(key));\n deps.forEach(dep => {\n // @ts-ignore\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(new Condition(deps, options));\n return next;\n }\n\n typeError(message) {\n let next = this.clone();\n next._typeError = createValidation({\n message,\n name: 'typeError',\n\n test(value) {\n if (value !== undefined && !this.schema.isType(value)) return this.createError({\n params: {\n type: this.schema._type\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n oneOf(enums, message = locale.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n\n next._blacklist.delete(val);\n });\n next._whitelistError = createValidation({\n message,\n name: 'oneOf',\n\n test(value) {\n if (value === undefined) return true;\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: valids.toArray().join(', '),\n resolved\n }\n });\n }\n\n });\n return next;\n }\n\n notOneOf(enums, message = locale.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n\n next._whitelist.delete(val);\n });\n next._blacklistError = createValidation({\n message,\n name: 'notOneOf',\n\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: invalids.toArray().join(', '),\n resolved\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n describe() {\n const next = this.clone();\n const {\n label,\n meta\n } = next.spec;\n const description = {\n meta,\n label,\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n\n} // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n// @ts-expect-error\nBaseSchema.prototype.__isYupSchema__ = true;\n\nfor (const method of ['validate', 'validateSync']) BaseSchema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], _extends({}, options, {\n parent,\n path\n }));\n};\n\nfor (const alias of ['equals', 'is']) BaseSchema.prototype[alias] = BaseSchema.prototype.oneOf;\n\nfor (const alias of ['not', 'nope']) BaseSchema.prototype[alias] = BaseSchema.prototype.notOneOf;\n\nBaseSchema.prototype.optional = BaseSchema.prototype.notRequired;","import BaseSchema from './schema';\nconst Mixed = BaseSchema;\nexport default Mixed;\nexport function create() {\n return new Mixed();\n} // XXX: this is using the Base schema so that `addMethod(mixed)` works as a base class\n\ncreate.prototype = Mixed.prototype;","const isAbsent = value => value == null;\n\nexport default isAbsent;","import BaseSchema from './schema';\nimport { boolean as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nexport function create() {\n return new BooleanSchema();\n}\nexport default class BooleanSchema extends BaseSchema {\n constructor() {\n super({\n type: 'boolean'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (!this.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n\n return value;\n });\n });\n }\n\n _typeCheck(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n\n isTrue(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n\n test(value) {\n return isAbsent(value) || value === true;\n }\n\n });\n }\n\n isFalse(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n\n test(value) {\n return isAbsent(value) || value === false;\n }\n\n });\n }\n\n}\ncreate.prototype = BooleanSchema.prototype;","import { string as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema'; // eslint-disable-next-line\n\nlet rEmail = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i; // eslint-disable-next-line\n\nlet rUrl = /^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i; // eslint-disable-next-line\n\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\n\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\n\nlet objStringTag = {}.toString();\nexport function create() {\n return new StringSchema();\n}\nexport default class StringSchema extends BaseSchema {\n constructor() {\n super({\n type: 'string'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n\n _isPresent(value) {\n return super._isPresent(value) && !!value.length;\n }\n\n length(length, message = locale.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n\n test(value) {\n return isAbsent(value) || value.length === this.resolve(length);\n }\n\n });\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value.length >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value.length <= this.resolve(max);\n }\n\n });\n }\n\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n\n return this.test({\n name: name || 'matches',\n message: message || locale.matches,\n params: {\n regex\n },\n test: value => isAbsent(value) || value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n\n email(message = locale.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n\n url(message = locale.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n\n uuid(message = locale.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n } //-- transforms --\n\n\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n\n trim(message = locale.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n\n lowercase(message = locale.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n\n uppercase(message = locale.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n\n}\ncreate.prototype = StringSchema.prototype; //\n// String Interfaces\n//","import { number as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema';\n\nlet isNaN = value => value != +value;\n\nexport function create() {\n return new NumberSchema();\n}\nexport default class NumberSchema extends BaseSchema {\n constructor() {\n super({\n type: 'number'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n let parsed = value;\n\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN; // don't use parseFloat to avoid positives on alpha-numeric strings\n\n parsed = +parsed;\n }\n\n if (this.isType(parsed)) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN(value);\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(max);\n }\n\n });\n }\n\n lessThan(less, message = locale.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n\n test(value) {\n return isAbsent(value) || value < this.resolve(less);\n }\n\n });\n }\n\n moreThan(more, message = locale.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n\n test(value) {\n return isAbsent(value) || value > this.resolve(more);\n }\n\n });\n }\n\n positive(msg = locale.positive) {\n return this.moreThan(0, msg);\n }\n\n negative(msg = locale.negative) {\n return this.lessThan(0, msg);\n }\n\n integer(message = locale.integer) {\n return this.test({\n name: 'integer',\n message,\n test: val => isAbsent(val) || Number.isInteger(val)\n });\n }\n\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n\n round(method) {\n var _method;\n\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round'; // this exists for symemtry with the new Math.trunc\n\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n\n}\ncreate.prototype = NumberSchema.prototype; //\n// Number Interfaces\n//","/* eslint-disable */\n\n/**\n *\n * Date.parse with progressive enhancement for ISO 8601 \n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover \n * Released under MIT license.\n */\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\nvar isoReg = /^(\\d{4}|[+\\-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nexport default function parseIsoDate(date) {\n var numericKeys = [1, 4, 5, 6, 7, 10, 11],\n minutesOffset = 0,\n timestamp,\n struct;\n\n if (struct = isoReg.exec(date)) {\n // avoid NaN timestamps caused by “undefined” values being passed to Date.UTC\n for (var i = 0, k; k = numericKeys[i]; ++i) struct[k] = +struct[k] || 0; // allow undefined days and months\n\n\n struct[2] = (+struct[2] || 1) - 1;\n struct[3] = +struct[3] || 1; // allow arbitrary sub-second precision beyond milliseconds\n\n struct[7] = struct[7] ? String(struct[7]).substr(0, 3) : 0; // timestamps without timezone identifiers should be considered local time\n\n if ((struct[8] === undefined || struct[8] === '') && (struct[9] === undefined || struct[9] === '')) timestamp = +new Date(struct[1], struct[2], struct[3], struct[4], struct[5], struct[6], struct[7]);else {\n if (struct[8] !== 'Z' && struct[9] !== undefined) {\n minutesOffset = struct[10] * 60 + struct[11];\n if (struct[9] === '+') minutesOffset = 0 - minutesOffset;\n }\n\n timestamp = Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]);\n }\n } else timestamp = Date.parse ? Date.parse(date) : NaN;\n\n return timestamp;\n}","// @ts-ignore\nimport isoParse from './util/isodate';\nimport { date as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport Ref from './Reference';\nimport BaseSchema from './schema';\nlet invalidDate = new Date('');\n\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\n\nexport function create() {\n return new DateSchema();\n}\nexport default class DateSchema extends BaseSchema {\n constructor() {\n super({\n type: 'date'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n value = isoParse(value); // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n\n return !isNaN(value) ? new Date(value) : invalidDate;\n });\n });\n }\n\n _typeCheck(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n\n prepareParam(ref, name) {\n let param;\n\n if (!Ref.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n\n return param;\n }\n\n min(min, message = locale.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(limit);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(limit);\n }\n\n });\n }\n\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate.prototype = DateSchema.prototype;\ncreate.INVALID_DATE = invalidDate;","function findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n\n if (((_err$path = err.path) == null ? void 0 : _err$path.indexOf(key)) !== -1) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\n\nexport default function sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}","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); }\n\nimport has from 'lodash/has';\nimport snakeCase from 'lodash/snakeCase';\nimport camelCase from 'lodash/camelCase';\nimport mapKeys from 'lodash/mapKeys';\nimport mapValues from 'lodash/mapValues';\nimport { getter } from 'property-expr';\nimport { object as locale } from './locale';\nimport sortFields from './util/sortFields';\nimport sortByKeyOrder from './util/sortByKeyOrder';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\n\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\n\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\n\nconst defaultSort = sortByKeyOrder([]);\nexport default class ObjectSchema extends BaseSchema {\n constructor(spec) {\n super({\n type: 'object'\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n this.transform(function coerce(value) {\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value);\n } catch (err) {\n value = null;\n }\n }\n\n if (this.isType(value)) return value;\n return null;\n });\n\n if (spec) {\n this.shape(spec);\n }\n });\n }\n\n _typeCheck(value) {\n return isObject(value) || typeof value === 'function';\n }\n\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n\n let value = super._cast(_value, options); //should ignore nulls here\n\n\n if (value === undefined) return this.getDefault();\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n\n let props = this._nodes.concat(Object.keys(value).filter(v => this._nodes.indexOf(v) === -1));\n\n let intermediateValue = {}; // is filled during the transform below\n\n let innerOptions = _extends({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n\n let isChanged = false;\n\n for (const prop of props) {\n let field = fields[prop];\n let exists = has(value, prop);\n\n if (field) {\n let fieldValue;\n let inputValue = value[prop]; // safe to mutate since this is fired in sequence\n\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop; // innerOptions.value = value[prop];\n\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = 'spec' in field ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n\n if (fieldSpec == null ? void 0 : fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n\n fieldValue = !options.__validating || !strict ? // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n\n if (intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n\n return isChanged ? intermediateValue : value;\n }\n\n _validate(_value, opts = {}, callback) {\n let errors = [];\n let {\n sync,\n from = [],\n originalValue = _value,\n abortEarly = this.spec.abortEarly,\n recursive = this.spec.recursive\n } = opts;\n from = [{\n schema: this,\n value: originalValue\n }, ...from]; // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n\n opts.__validating = true;\n opts.originalValue = originalValue;\n opts.from = from;\n\n super._validate(_value, opts, (err, value) => {\n if (err) {\n if (!ValidationError.isError(err) || abortEarly) {\n return void callback(err, value);\n }\n\n errors.push(err);\n }\n\n if (!recursive || !isObject(value)) {\n callback(errors[0] || null, value);\n return;\n }\n\n originalValue = originalValue || value;\n\n let tests = this._nodes.map(key => (_, cb) => {\n let path = key.indexOf('.') === -1 ? (opts.path ? `${opts.path}.` : '') + key : `${opts.path || ''}[\"${key}\"]`;\n let field = this.fields[key];\n\n if (field && 'validate' in field) {\n field.validate(value[key], _extends({}, opts, {\n // @ts-ignore\n path,\n from,\n // inner fields are always strict:\n // 1. this isn't strict so the casting will also have cast inner values\n // 2. this is strict in which case the nested values weren't cast either\n strict: true,\n parent: value,\n originalValue: originalValue[key]\n }), cb);\n return;\n }\n\n cb(null);\n });\n\n runTests({\n sync,\n tests,\n value,\n errors,\n endEarly: abortEarly,\n sort: this._sortErrors,\n path: opts.path\n }, callback);\n });\n }\n\n clone(spec) {\n const next = super.clone(spec);\n next.fields = _extends({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n\n if (target === undefined) {\n nextFields[field] = schemaOrRef;\n } else if (target instanceof BaseSchema && schemaOrRef instanceof BaseSchema) {\n nextFields[field] = schemaOrRef.concat(target);\n }\n }\n\n return next.withMutation(() => next.shape(nextFields, this._excludedEdges));\n }\n\n getDefaultFromShape() {\n let dft = {};\n\n this._nodes.forEach(key => {\n const field = this.fields[key];\n dft[key] = 'default' in field ? field.getDefault() : undefined;\n });\n\n return dft;\n }\n\n _getDefault() {\n if ('default' in this.spec) {\n return super._getDefault();\n } // if there is no default set invent one\n\n\n if (!this._nodes.length) {\n return undefined;\n }\n\n return this.getDefaultFromShape();\n }\n\n shape(additions, excludes = []) {\n let next = this.clone();\n let fields = Object.assign(next.fields, additions);\n next.fields = fields;\n next._sortErrors = sortByKeyOrder(Object.keys(fields));\n\n if (excludes.length) {\n // this is a convenience for when users only supply a single pair\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n next._excludedEdges = [...next._excludedEdges, ...excludes];\n }\n\n next._nodes = sortFields(fields, next._excludedEdges);\n return next;\n }\n\n pick(keys) {\n const picked = {};\n\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n\n return this.clone().withMutation(next => {\n next.fields = {};\n return next.shape(picked);\n });\n }\n\n omit(keys) {\n const next = this.clone();\n const fields = next.fields;\n next.fields = {};\n\n for (const key of keys) {\n delete fields[key];\n }\n\n return next.withMutation(() => next.shape(fields));\n }\n\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (obj == null) return obj;\n let newObj = obj;\n\n if (has(obj, from)) {\n newObj = _extends({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n\n return newObj;\n });\n }\n\n noUnknown(noAllow = true, message = locale.noUnknown) {\n if (typeof noAllow === 'string') {\n message = noAllow;\n noAllow = true;\n }\n\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n\n unknown(allow = true, message = locale.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n\n transformKeys(fn) {\n return this.transform(obj => obj && mapKeys(obj, (_, key) => fn(key)));\n }\n\n camelCase() {\n return this.transformKeys(camelCase);\n }\n\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n\n describe() {\n let base = super.describe();\n base.fields = mapValues(this.fields, value => value.describe());\n return base;\n }\n\n}\nexport function create(spec) {\n return new ObjectSchema(spec);\n}\ncreate.prototype = ObjectSchema.prototype;","import has from 'lodash/has'; // @ts-expect-error\n\nimport toposort from 'toposort';\nimport { split } from 'property-expr';\nimport Ref from '../Reference';\nimport isSchema from './isSchema';\nexport default function sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n\n for (const key in fields) if (has(fields, key)) {\n let value = fields[key];\n nodes.add(key);\n if (Ref.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n\n return toposort.array(Array.from(nodes), edges).reverse();\n}","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nexport var TokenKind = Object.freeze({\n SOF: '',\n EOF: '',\n BANG: '!',\n DOLLAR: '$',\n AMP: '&',\n PAREN_L: '(',\n PAREN_R: ')',\n SPREAD: '...',\n COLON: ':',\n EQUALS: '=',\n AT: '@',\n BRACKET_L: '[',\n BRACKET_R: ']',\n BRACE_L: '{',\n PIPE: '|',\n BRACE_R: '}',\n NAME: 'Name',\n INT: 'Int',\n FLOAT: 'Float',\n STRING: 'String',\n BLOCK_STRING: 'BlockString',\n COMMENT: 'Comment'\n});\n/**\n * The enum type representing the token kinds values.\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 */\n'use strict';\n\nvar validateFormat = process.env.NODE_ENV !== \"production\" ? function (format) {\n if (format === undefined) {\n throw new Error('invariant(...): Second argument must be a string.');\n }\n} : function (format) {};\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments to provide\n * information about what broke and what you were expecting.\n *\n * The invariant message will be stripped in production, but the invariant will\n * remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n validateFormat(format);\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return String(args[argIndex++]);\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // Skip invariant's own stack frame.\n\n throw error;\n }\n}\n\nmodule.exports = invariant;","var HttpResponse = /** @class */ (function () {\n function HttpResponse(options) {\n this.statusCode = options.statusCode;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n HttpResponse.isInstance = function (response) {\n //determine if response is a valid HttpResponse\n if (!response)\n return false;\n var resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n };\n return HttpResponse;\n}());\nexport { HttpResponse };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cFJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2h0dHBSZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQTtJQUtFLHNCQUFZLE9BQTRCO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRU0sdUJBQVUsR0FBakIsVUFBa0IsUUFBaUI7UUFDakMsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDNUIsSUFBTSxJQUFJLEdBQUcsUUFBZSxDQUFDO1FBQzdCLE9BQU8sT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDO0lBQ2pGLENBQUM7SUFDSCxtQkFBQztBQUFELENBQUMsQUFqQkQsSUFpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJCYWcsIEh0dHBNZXNzYWdlLCBIdHRwUmVzcG9uc2UgYXMgSUh0dHBSZXNwb25zZSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG50eXBlIEh0dHBSZXNwb25zZU9wdGlvbnMgPSBQYXJ0aWFsPEh0dHBNZXNzYWdlPiAmIHtcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBIdHRwUmVzcG9uc2UgZXh0ZW5kcyBJSHR0cFJlc3BvbnNlIHt9XG5cbmV4cG9ydCBjbGFzcyBIdHRwUmVzcG9uc2Uge1xuICBwdWJsaWMgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBwdWJsaWMgaGVhZGVyczogSGVhZGVyQmFnO1xuICBwdWJsaWMgYm9keT86IGFueTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBIdHRwUmVzcG9uc2VPcHRpb25zKSB7XG4gICAgdGhpcy5zdGF0dXNDb2RlID0gb3B0aW9ucy5zdGF0dXNDb2RlO1xuICAgIHRoaXMuaGVhZGVycyA9IG9wdGlvbnMuaGVhZGVycyB8fCB7fTtcbiAgICB0aGlzLmJvZHkgPSBvcHRpb25zLmJvZHk7XG4gIH1cblxuICBzdGF0aWMgaXNJbnN0YW5jZShyZXNwb25zZTogdW5rbm93bik6IHJlc3BvbnNlIGlzIEh0dHBSZXNwb25zZSB7XG4gICAgLy9kZXRlcm1pbmUgaWYgcmVzcG9uc2UgaXMgYSB2YWxpZCBIdHRwUmVzcG9uc2VcbiAgICBpZiAoIXJlc3BvbnNlKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcmVzcCA9IHJlc3BvbnNlIGFzIGFueTtcbiAgICByZXR1cm4gdHlwZW9mIHJlc3Auc3RhdHVzQ29kZSA9PT0gXCJudW1iZXJcIiAmJiB0eXBlb2YgcmVzcC5oZWFkZXJzID09PSBcIm9iamVjdFwiO1xuICB9XG59XG4iXX0=","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __read, __spread } from \"tslib\";\nvar HttpRequest = /** @class */ (function () {\n function HttpRequest(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.substr(-1) !== \":\"\n ? options.protocol + \":\"\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? \"/\" + options.path : options.path) : \"/\";\n }\n HttpRequest.isInstance = function (request) {\n //determine if request is a valid httpRequest\n if (!request)\n return false;\n var req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n };\n HttpRequest.prototype.clone = function () {\n var cloned = new HttpRequest(__assign(__assign({}, this), { headers: __assign({}, this.headers) }));\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n };\n return HttpRequest;\n}());\nexport { HttpRequest };\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spread(param) : param, _a));\n }, {});\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cFJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaHR0cFJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQU1BO0lBVUUscUJBQVksT0FBMkI7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksV0FBVyxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVE7WUFDOUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRztnQkFDbkMsQ0FBQyxDQUFJLE9BQU8sQ0FBQyxRQUFRLE1BQUc7Z0JBQ3hCLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNwQixDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ2IsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBSSxPQUFPLENBQUMsSUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN4RyxDQUFDO0lBRU0sc0JBQVUsR0FBakIsVUFBa0IsT0FBZ0I7UUFDaEMsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDM0IsSUFBTSxHQUFHLEdBQVEsT0FBTyxDQUFDO1FBQ3pCLE9BQU8sQ0FDTCxRQUFRLElBQUksR0FBRztZQUNmLFVBQVUsSUFBSSxHQUFHO1lBQ2pCLFVBQVUsSUFBSSxHQUFHO1lBQ2pCLE1BQU0sSUFBSSxHQUFHO1lBQ2IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUTtZQUNoQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxRQUFRLENBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQsMkJBQUssR0FBTDtRQUNFLElBQU0sTUFBTSxHQUFHLElBQUksV0FBVyx1QkFDekIsSUFBSSxLQUNQLE9BQU8sZUFBTyxJQUFJLENBQUMsT0FBTyxLQUMxQixDQUFDO1FBQ0gsSUFBSSxNQUFNLENBQUMsS0FBSztZQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0gsa0JBQUM7QUFBRCxDQUFDLEFBL0NELElBK0NDOztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQXdCO0lBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUF3QixFQUFFLFNBQWlCOztRQUMzRSxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsNkJBQ0ssS0FBSyxnQkFDUCxTQUFTLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQ3REO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZHBvaW50LCBIZWFkZXJCYWcsIEh0dHBNZXNzYWdlLCBIdHRwUmVxdWVzdCBhcyBJSHR0cFJlcXVlc3QsIFF1ZXJ5UGFyYW1ldGVyQmFnIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbnR5cGUgSHR0cFJlcXVlc3RPcHRpb25zID0gUGFydGlhbDxIdHRwTWVzc2FnZT4gJiBQYXJ0aWFsPEVuZHBvaW50PiAmIHsgbWV0aG9kPzogc3RyaW5nIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJlcXVlc3QgZXh0ZW5kcyBJSHR0cFJlcXVlc3Qge31cblxuZXhwb3J0IGNsYXNzIEh0dHBSZXF1ZXN0IGltcGxlbWVudHMgSHR0cE1lc3NhZ2UsIEVuZHBvaW50IHtcbiAgcHVibGljIG1ldGhvZDogc3RyaW5nO1xuICBwdWJsaWMgcHJvdG9jb2w6IHN0cmluZztcbiAgcHVibGljIGhvc3RuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBwb3J0PzogbnVtYmVyO1xuICBwdWJsaWMgcGF0aDogc3RyaW5nO1xuICBwdWJsaWMgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnO1xuICBwdWJsaWMgaGVhZGVyczogSGVhZGVyQmFnO1xuICBwdWJsaWMgYm9keT86IGFueTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBIdHRwUmVxdWVzdE9wdGlvbnMpIHtcbiAgICB0aGlzLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IFwiR0VUXCI7XG4gICAgdGhpcy5ob3N0bmFtZSA9IG9wdGlvbnMuaG9zdG5hbWUgfHwgXCJsb2NhbGhvc3RcIjtcbiAgICB0aGlzLnBvcnQgPSBvcHRpb25zLnBvcnQ7XG4gICAgdGhpcy5xdWVyeSA9IG9wdGlvbnMucXVlcnkgfHwge307XG4gICAgdGhpcy5oZWFkZXJzID0gb3B0aW9ucy5oZWFkZXJzIHx8IHt9O1xuICAgIHRoaXMuYm9keSA9IG9wdGlvbnMuYm9keTtcbiAgICB0aGlzLnByb3RvY29sID0gb3B0aW9ucy5wcm90b2NvbFxuICAgICAgPyBvcHRpb25zLnByb3RvY29sLnN1YnN0cigtMSkgIT09IFwiOlwiXG4gICAgICAgID8gYCR7b3B0aW9ucy5wcm90b2NvbH06YFxuICAgICAgICA6IG9wdGlvbnMucHJvdG9jb2xcbiAgICAgIDogXCJodHRwczpcIjtcbiAgICB0aGlzLnBhdGggPSBvcHRpb25zLnBhdGggPyAob3B0aW9ucy5wYXRoLmNoYXJBdCgwKSAhPT0gXCIvXCIgPyBgLyR7b3B0aW9ucy5wYXRofWAgOiBvcHRpb25zLnBhdGgpIDogXCIvXCI7XG4gIH1cblxuICBzdGF0aWMgaXNJbnN0YW5jZShyZXF1ZXN0OiB1bmtub3duKTogcmVxdWVzdCBpcyBIdHRwUmVxdWVzdCB7XG4gICAgLy9kZXRlcm1pbmUgaWYgcmVxdWVzdCBpcyBhIHZhbGlkIGh0dHBSZXF1ZXN0XG4gICAgaWYgKCFyZXF1ZXN0KSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcmVxOiBhbnkgPSByZXF1ZXN0O1xuICAgIHJldHVybiAoXG4gICAgICBcIm1ldGhvZFwiIGluIHJlcSAmJlxuICAgICAgXCJwcm90b2NvbFwiIGluIHJlcSAmJlxuICAgICAgXCJob3N0bmFtZVwiIGluIHJlcSAmJlxuICAgICAgXCJwYXRoXCIgaW4gcmVxICYmXG4gICAgICB0eXBlb2YgcmVxW1wicXVlcnlcIl0gPT09IFwib2JqZWN0XCIgJiZcbiAgICAgIHR5cGVvZiByZXFbXCJoZWFkZXJzXCJdID09PSBcIm9iamVjdFwiXG4gICAgKTtcbiAgfVxuXG4gIGNsb25lKCk6IEh0dHBSZXF1ZXN0IHtcbiAgICBjb25zdCBjbG9uZWQgPSBuZXcgSHR0cFJlcXVlc3Qoe1xuICAgICAgLi4udGhpcyxcbiAgICAgIGhlYWRlcnM6IHsgLi4udGhpcy5oZWFkZXJzIH0sXG4gICAgfSk7XG4gICAgaWYgKGNsb25lZC5xdWVyeSkgY2xvbmVkLnF1ZXJ5ID0gY2xvbmVRdWVyeShjbG9uZWQucXVlcnkpO1xuICAgIHJldHVybiBjbG9uZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xvbmVRdWVyeShxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWcpOiBRdWVyeVBhcmFtZXRlckJhZyB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhxdWVyeSkucmVkdWNlKChjYXJyeTogUXVlcnlQYXJhbWV0ZXJCYWcsIHBhcmFtTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcGFyYW0gPSBxdWVyeVtwYXJhbU5hbWVdO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jYXJyeSxcbiAgICAgIFtwYXJhbU5hbWVdOiBBcnJheS5pc0FycmF5KHBhcmFtKSA/IFsuLi5wYXJhbV0gOiBwYXJhbSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG4iXX0=","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { createTheming } from '@callstack/react-theme-provider';\nimport DefaultTheme from '../styles/DefaultTheme';\n\nexport const { ThemeProvider, withTheme, useTheme } =\n createTheming(DefaultTheme as ReactNativePaper.Theme);\n","import global from \"./global.js\";\nimport { maybe } from \"./maybe.js\";\nvar __ = \"__\";\nvar GLOBAL_KEY = [__, __].join(\"DEV\");\nfunction getDEV() {\n try {\n return Boolean(__DEV__);\n }\n catch (_a) {\n Object.defineProperty(global, GLOBAL_KEY, {\n value: maybe(function () { return process.env.NODE_ENV; }) !== \"production\",\n enumerable: false,\n configurable: true,\n writable: true,\n });\n return global[GLOBAL_KEY];\n }\n}\nexport default getDEV();\n//# sourceMappingURL=DEV.js.map","import { remove } from 'ts-invariant/process';\nimport { Source } from 'graphql';\nexport function removeTemporaryGlobals() {\n return typeof Source === \"function\" ? remove() : remove();\n}\n//# sourceMappingURL=fix-graphql.js.map","import { invariant, InvariantError } from \"ts-invariant\";\nimport DEV from \"./DEV.js\";\nexport { DEV };\nexport function checkDEV() {\n __DEV__ ? invariant(\"boolean\" === typeof DEV, DEV) : invariant(\"boolean\" === typeof DEV, 38);\n}\nimport { removeTemporaryGlobals } from \"./fix-graphql.js\";\nremoveTemporaryGlobals();\nexport { maybe } from \"./maybe.js\";\nexport { default as global } from \"./global.js\";\nexport { invariant, InvariantError };\ncheckDEV();\n//# sourceMappingURL=index.js.map","import ReanimatedModule from '../../ReanimatedModule';\nimport { Platform } from 'react-native';\n\nconst UPDATED_NODES = [];\n\nlet loopID = 1;\nlet propUpdatesEnqueued = null;\nlet nodeCount = 0;\nlet callID = '';\n\nexport function getCallID() {\n return callID;\n}\n\nexport function setCallID(nextCallID) {\n callID = nextCallID;\n}\n\nfunction sanitizeConfig(config) {\n if (\n Platform.OS === 'web' ||\n Platform.OS === 'windows' ||\n Platform.OS === 'macos' ||\n ['undefined', 'string', 'function', 'boolean', 'number'].includes(\n typeof config\n )\n ) {\n return config;\n } else if (Array.isArray(config)) {\n return config.map(sanitizeConfig);\n } else if (config instanceof AnimatedNode) {\n return config.__nodeID;\n } else if (typeof config === 'object') {\n const output = {};\n for (const property in config) {\n if (property in config) {\n output[property] = sanitizeConfig(config[property]);\n }\n }\n return output;\n }\n // unhandled\n return config;\n}\n\nfunction runPropUpdates() {\n const visitedNodes = new Set();\n const findAndUpdateNodes = (node) => {\n if (!node) {\n console.warn('findAndUpdateNodes was passed a nullish node');\n return;\n }\n\n if (visitedNodes.has(node)) {\n return;\n } else {\n visitedNodes.add(node);\n }\n if (typeof node.update === 'function') {\n node.update();\n } else {\n const nodes = node.__getChildren();\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n findAndUpdateNodes(nodes[i]);\n }\n }\n }\n };\n for (let i = 0; i < UPDATED_NODES.length; i++) {\n const node = UPDATED_NODES[i];\n findAndUpdateNodes(node);\n }\n UPDATED_NODES.length = 0; // clear array\n propUpdatesEnqueued = null;\n loopID += 1;\n}\n\nconst scheduleUpdates =\n Platform.OS === 'web' ? requestAnimationFrame : setImmediate;\n\nexport default class AnimatedNode {\n __nodeID;\n __lastLoopID = { '': -1 };\n __memoizedValue = { '': null };\n __children = [];\n\n constructor(nodeConfig, inputNodes) {\n this.__nodeID = ++nodeCount;\n this.__nodeConfig = sanitizeConfig(nodeConfig);\n this.__initialized = false;\n this.__inputNodes =\n inputNodes && inputNodes.filter((node) => node instanceof AnimatedNode);\n }\n\n toString() {\n return `AnimatedNode, id: ${this.__nodeID}`;\n }\n\n __attach() {\n this.__nativeInitialize();\n\n const nodes = this.__inputNodes;\n\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n nodes[i].__addChild(this);\n }\n }\n }\n\n __detach() {\n const nodes = this.__inputNodes;\n\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n nodes[i].__removeChild(this);\n }\n }\n\n this.__nativeTearDown();\n }\n\n __getValue() {\n if (!(callID in this.__lastLoopID) || this.__lastLoopID[callID] < loopID) {\n this.__lastLoopID[callID] = loopID;\n const result = this.__onEvaluate();\n this.__memoizedValue[callID] = result;\n return result;\n }\n return this.__memoizedValue[callID];\n }\n\n __forceUpdateCache(newValue) {\n this.__memoizedValue[callID] = newValue;\n this.__markUpdated();\n }\n\n __dangerouslyRescheduleEvaluate() {\n this.__lastLoopID[callID] = -1;\n this.__markUpdated();\n }\n\n __markUpdated() {\n UPDATED_NODES.push(this);\n if (!propUpdatesEnqueued) {\n propUpdatesEnqueued = scheduleUpdates(runPropUpdates);\n }\n }\n\n __nativeInitialize() {\n if (!this.__initialized) {\n ReanimatedModule.createNode(this.__nodeID, { ...this.__nodeConfig });\n this.__initialized = true;\n }\n }\n\n __nativeTearDown() {\n if (this.__initialized) {\n ReanimatedModule.dropNode(this.__nodeID);\n this.__initialized = false;\n }\n }\n\n isNativelyInitialized() {\n return this.__initialized;\n }\n\n __onEvaluate() {\n throw new Error('Missing implementation of onEvaluate');\n }\n\n __getProps() {\n return this.__getValue();\n }\n\n __getChildren() {\n return this.__children;\n }\n\n __addChild(child) {\n if (this.__children.length === 0) {\n this.__attach();\n }\n this.__children.push(child);\n child.__nativeInitialize();\n\n if (ReanimatedModule.connectNodes) {\n ReanimatedModule.connectNodes(this.__nodeID, child.__nodeID);\n } else {\n child.__dangerouslyRescheduleEvaluate();\n }\n }\n\n __removeChild(child) {\n const index = this.__children.indexOf(child);\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n\n if (ReanimatedModule.disconnectNodes) {\n ReanimatedModule.disconnectNodes(this.__nodeID, child.__nodeID);\n }\n\n this.__children.splice(index, 1);\n if (this.__children.length === 0) {\n this.__detach();\n }\n }\n\n _connectAnimatedView(nativeViewTag) {\n if (ReanimatedModule.connectNodeToView) {\n ReanimatedModule.connectNodeToView(this.__nodeID, nativeViewTag);\n } else {\n this.__dangerouslyRescheduleEvaluate();\n }\n }\n\n _disconnectAnimatedView(nativeViewTag) {\n ReanimatedModule.disconnectNodeFromView(this.__nodeID, nativeViewTag);\n }\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\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport Dimensions from '../../exports/Dimensions';\nimport findNodeHandle from '../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\nimport Platform from '../../exports/Platform';\nimport TextInputState from '../TextInputState';\nimport UIManager from '../../exports/UIManager';\nimport warning from 'fbjs/lib/warning';\n/**\n * Mixin that can be integrated in order to handle scrolling that plays well\n * with `ResponderEventPlugin`. Integrate with your platform specific scroll\n * views, or even your custom built (every-frame animating) scroll views so that\n * all of these systems play well with the `ResponderEventPlugin`.\n *\n * iOS scroll event timing nuances:\n * ===============================\n *\n *\n * Scrolling without bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... physical touch starts ...\n * 2. `onTouchStartCapture` (when you press down to stop the scroll)\n * 3. `onTouchStart` (same, but bubble phase)\n * 4. `onResponderRelease` (when lifting up - you could pause forever before * lifting)\n * 5. `onMomentumScrollEnd`\n *\n *\n * Scrolling with bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... bounce begins ...\n * ... some time elapses ...\n * ... physical touch during bounce ...\n * 2. `onMomentumScrollEnd` (Makes no sense why this occurs first during bounce)\n * 3. `onTouchStartCapture` (immediately after `onMomentumScrollEnd`)\n * 4. `onTouchStart` (same, but bubble phase)\n * 5. `onTouchEnd` (You could hold the touch start for a long time)\n * 6. `onMomentumScrollBegin` (When releasing the view starts bouncing back)\n *\n * So when we receive an `onTouchStart`, how can we tell if we are touching\n * *during* an animation (which then causes the animation to stop)? The only way\n * to tell is if the `touchStart` occurred immediately after the\n * `onMomentumScrollEnd`.\n *\n * This is abstracted out for you, so you can just call this.scrollResponderIsAnimating() if\n * necessary\n *\n * `ScrollResponder` also includes logic for blurring a currently focused input\n * if one is focused while scrolling. The `ScrollResponder` is a natural place\n * to put this logic since it can support not dismissing the keyboard while\n * scrolling, unless a recognized \"tap\"-like gesture has occurred.\n *\n * The public lifecycle API includes events for keyboard interaction, responder\n * interaction, and scrolling (among others). The keyboard callbacks\n * `onKeyboardWill/Did/*` are *global* events, but are invoked on scroll\n * responder's props so that you can guarantee that the scroll responder's\n * internal state has been updated accordingly (and deterministically) by\n * the time the props callbacks are invoke. Otherwise, you would always wonder\n * if the scroll responder is currently in a state where it recognizes new\n * keyboard positions etc. If coordinating scrolling with keyboard movement,\n * *always* use these hooks instead of listening to your own global keyboard\n * events.\n *\n * Public keyboard lifecycle API: (props callbacks)\n *\n * Standard Keyboard Appearance Sequence:\n *\n * this.props.onKeyboardWillShow\n * this.props.onKeyboardDidShow\n *\n * `onScrollResponderKeyboardDismissed` will be invoked if an appropriate\n * tap inside the scroll responder's scrollable region was responsible\n * for the dismissal of the keyboard. There are other reasons why the\n * keyboard could be dismissed.\n *\n * this.props.onScrollResponderKeyboardDismissed\n *\n * Standard Keyboard Hide Sequence:\n *\n * this.props.onKeyboardWillHide\n * this.props.onKeyboardDidHide\n */\n\nvar emptyObject = {};\nvar IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\nvar ScrollResponderMixin = {\n // mixins: [Subscribable.Mixin],\n scrollResponderMixinGetInitialState: function scrollResponderMixinGetInitialState() {\n return {\n isTouching: false,\n lastMomentumScrollBeginTime: 0,\n lastMomentumScrollEndTime: 0,\n // Reset to false every time becomes responder. This is used to:\n // - Determine if the scroll view has been scrolled and therefore should\n // refuse to give up its responder lock.\n // - Determine if releasing should dismiss the keyboard when we are in\n // tap-to-dismiss mode (!this.props.keyboardShouldPersistTaps).\n observedScrollSinceBecomingResponder: false,\n becameResponderWhileAnimating: false\n };\n },\n\n /**\n * Invoke this from an `onScroll` event.\n */\n scrollResponderHandleScrollShouldSetResponder: function scrollResponderHandleScrollShouldSetResponder() {\n return this.state.isTouching;\n },\n\n /**\n * Merely touch starting is not sufficient for a scroll view to become the\n * responder. Being the \"responder\" means that the very next touch move/end\n * event will result in an action/movement.\n *\n * Invoke this from an `onStartShouldSetResponder` event.\n *\n * `onStartShouldSetResponder` is used when the next move/end will trigger\n * some UI movement/action, but when you want to yield priority to views\n * nested inside of the view.\n *\n * There may be some cases where scroll views actually should return `true`\n * from `onStartShouldSetResponder`: Any time we are detecting a standard tap\n * that gives priority to nested views.\n *\n * - If a single tap on the scroll view triggers an action such as\n * recentering a map style view yet wants to give priority to interaction\n * views inside (such as dropped pins or labels), then we would return true\n * from this method when there is a single touch.\n *\n * - Similar to the previous case, if a two finger \"tap\" should trigger a\n * zoom, we would check the `touches` count, and if `>= 2`, we would return\n * true.\n *\n */\n scrollResponderHandleStartShouldSetResponder: function scrollResponderHandleStartShouldSetResponder() {\n return false;\n },\n\n /**\n * There are times when the scroll view wants to become the responder\n * (meaning respond to the next immediate `touchStart/touchEnd`), in a way\n * that *doesn't* give priority to nested views (hence the capture phase):\n *\n * - Currently animating.\n * - Tapping anywhere that is not the focused input, while the keyboard is\n * up (which should dismiss the keyboard).\n *\n * Invoke this from an `onStartShouldSetResponderCapture` event.\n */\n scrollResponderHandleStartShouldSetResponderCapture: function scrollResponderHandleStartShouldSetResponderCapture(e) {\n // First see if we want to eat taps while the keyboard is up\n // var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n // if (!this.props.keyboardShouldPersistTaps &&\n // currentlyFocusedTextInput != null &&\n // e.target !== currentlyFocusedTextInput) {\n // return true;\n // }\n return this.scrollResponderIsAnimating();\n },\n\n /**\n * Invoke this from an `onResponderReject` event.\n *\n * Some other element is not yielding its role as responder. Normally, we'd\n * just disable the `UIScrollView`, but a touch has already began on it, the\n * `UIScrollView` will not accept being disabled after that. The easiest\n * solution for now is to accept the limitation of disallowing this\n * altogether. To improve this, find a way to disable the `UIScrollView` after\n * a touch has already started.\n */\n scrollResponderHandleResponderReject: function scrollResponderHandleResponderReject() {\n warning(false, \"ScrollView doesn't take rejection well - scrolls anyway\");\n },\n\n /**\n * We will allow the scroll view to give up its lock iff it acquired the lock\n * during an animation. This is a very useful default that happens to satisfy\n * many common user experiences.\n *\n * - Stop a scroll on the left edge, then turn that into an outer view's\n * backswipe.\n * - Stop a scroll mid-bounce at the top, continue pulling to have the outer\n * view dismiss.\n * - However, without catching the scroll view mid-bounce (while it is\n * motionless), if you drag far enough for the scroll view to become\n * responder (and therefore drag the scroll view a bit), any backswipe\n * navigation of a swipe gesture higher in the view hierarchy, should be\n * rejected.\n */\n scrollResponderHandleTerminationRequest: function scrollResponderHandleTerminationRequest() {\n return !this.state.observedScrollSinceBecomingResponder;\n },\n\n /**\n * Invoke this from an `onTouchEnd` event.\n *\n * @param {SyntheticEvent} e Event.\n */\n scrollResponderHandleTouchEnd: function scrollResponderHandleTouchEnd(e) {\n var nativeEvent = e.nativeEvent;\n this.state.isTouching = nativeEvent.touches.length !== 0;\n this.props.onTouchEnd && this.props.onTouchEnd(e);\n },\n\n /**\n * Invoke this from an `onResponderRelease` event.\n */\n scrollResponderHandleResponderRelease: function scrollResponderHandleResponderRelease(e) {\n this.props.onResponderRelease && this.props.onResponderRelease(e); // By default scroll views will unfocus a textField\n // if another touch occurs outside of it\n\n var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n\n if (!this.props.keyboardShouldPersistTaps && currentlyFocusedTextInput != null && e.target !== currentlyFocusedTextInput && !this.state.observedScrollSinceBecomingResponder && !this.state.becameResponderWhileAnimating) {\n this.props.onScrollResponderKeyboardDismissed && this.props.onScrollResponderKeyboardDismissed(e);\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n },\n scrollResponderHandleScroll: function scrollResponderHandleScroll(e) {\n this.state.observedScrollSinceBecomingResponder = true;\n this.props.onScroll && this.props.onScroll(e);\n },\n\n /**\n * Invoke this from an `onResponderGrant` event.\n */\n scrollResponderHandleResponderGrant: function scrollResponderHandleResponderGrant(e) {\n this.state.observedScrollSinceBecomingResponder = false;\n this.props.onResponderGrant && this.props.onResponderGrant(e);\n this.state.becameResponderWhileAnimating = this.scrollResponderIsAnimating();\n },\n\n /**\n * Unfortunately, `onScrollBeginDrag` also fires when *stopping* the scroll\n * animation, and there's not an easy way to distinguish a drag vs. stopping\n * momentum.\n *\n * Invoke this from an `onScrollBeginDrag` event.\n */\n scrollResponderHandleScrollBeginDrag: function scrollResponderHandleScrollBeginDrag(e) {\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n },\n\n /**\n * Invoke this from an `onScrollEndDrag` event.\n */\n scrollResponderHandleScrollEndDrag: function scrollResponderHandleScrollEndDrag(e) {\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n },\n\n /**\n * Invoke this from an `onMomentumScrollBegin` event.\n */\n scrollResponderHandleMomentumScrollBegin: function scrollResponderHandleMomentumScrollBegin(e) {\n this.state.lastMomentumScrollBeginTime = Date.now();\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n },\n\n /**\n * Invoke this from an `onMomentumScrollEnd` event.\n */\n scrollResponderHandleMomentumScrollEnd: function scrollResponderHandleMomentumScrollEnd(e) {\n this.state.lastMomentumScrollEndTime = Date.now();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n },\n\n /**\n * Invoke this from an `onTouchStart` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {SyntheticEvent} e Touch Start event.\n */\n scrollResponderHandleTouchStart: function scrollResponderHandleTouchStart(e) {\n this.state.isTouching = true;\n this.props.onTouchStart && this.props.onTouchStart(e);\n },\n\n /**\n * Invoke this from an `onTouchMove` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {SyntheticEvent} e Touch Start event.\n */\n scrollResponderHandleTouchMove: function scrollResponderHandleTouchMove(e) {\n this.props.onTouchMove && this.props.onTouchMove(e);\n },\n\n /**\n * A helper function for this class that lets us quickly determine if the\n * view is currently animating. This is particularly useful to know when\n * a touch has just started or ended.\n */\n scrollResponderIsAnimating: function scrollResponderIsAnimating() {\n var now = Date.now();\n var timeSinceLastMomentumScrollEnd = now - this.state.lastMomentumScrollEndTime;\n var isAnimating = timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS || this.state.lastMomentumScrollEndTime < this.state.lastMomentumScrollBeginTime;\n return isAnimating;\n },\n\n /**\n * Returns the node that represents native view that can be scrolled.\n * Components can pass what node to use by defining a `getScrollableNode`\n * function otherwise `this` is used.\n */\n scrollResponderGetScrollableNode: function scrollResponderGetScrollableNode() {\n return this.getScrollableNode ? this.getScrollableNode() : findNodeHandle(this);\n },\n\n /**\n * A helper function to scroll to a specific point in the scrollview.\n * This is currently used to help focus on child textviews, but can also\n * be used to quickly scroll to any element we want to focus. Syntax:\n *\n * scrollResponderScrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n *\n * Note: The weird argument signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as as alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollResponderScrollTo: function scrollResponderScrollTo(x, y, animated) {\n if (typeof x === 'number') {\n console.warn('`scrollResponderScrollTo(x, y, animated)` is deprecated. Use `scrollResponderScrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = x || emptyObject;\n\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n\n var node = this.scrollResponderGetScrollableNode();\n var left = x || 0;\n var top = y || 0;\n\n if (typeof node.scroll === 'function') {\n node.scroll({\n top,\n left,\n behavior: !animated ? 'auto' : 'smooth'\n });\n } else {\n node.scrollLeft = left;\n node.scrollTop = top;\n }\n },\n\n /**\n * A helper function to zoom to a specific rect in the scrollview. The argument has the shape\n * {x: number; y: number; width: number; height: number; animated: boolean = true}\n *\n * @platform ios\n */\n scrollResponderZoomTo: function scrollResponderZoomTo(rect, animated) {\n if (Platform.OS !== 'ios') {\n invariant('zoomToRect is not implemented');\n }\n },\n\n /**\n * Displays the scroll indicators momentarily.\n */\n scrollResponderFlashScrollIndicators: function scrollResponderFlashScrollIndicators() {},\n\n /**\n * This method should be used as the callback to onFocus in a TextInputs'\n * parent view. Note that any module using this mixin needs to return\n * the parent view's ref in getScrollViewRef() in order to use this method.\n * @param {any} nodeHandle The TextInput node handle\n * @param {number} additionalOffset The scroll view's top \"contentInset\".\n * Default is 0.\n * @param {bool} preventNegativeScrolling Whether to allow pulling the content\n * down to make it meet the keyboard's top. Default is false.\n */\n scrollResponderScrollNativeHandleToKeyboard: function scrollResponderScrollNativeHandleToKeyboard(nodeHandle, additionalOffset, preventNegativeScrollOffset) {\n this.additionalScrollOffset = additionalOffset || 0;\n this.preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n UIManager.measureLayout(nodeHandle, findNodeHandle(this.getInnerViewNode()), this.scrollResponderTextInputFocusError, this.scrollResponderInputMeasureAndScrollToKeyboard);\n },\n\n /**\n * The calculations performed here assume the scroll view takes up the entire\n * screen - even if has some content inset. We then measure the offsets of the\n * keyboard, and compensate both for the scroll view's \"contentInset\".\n *\n * @param {number} left Position of input w.r.t. table view.\n * @param {number} top Position of input w.r.t. table view.\n * @param {number} width Width of the text input.\n * @param {number} height Height of the text input.\n */\n scrollResponderInputMeasureAndScrollToKeyboard: function scrollResponderInputMeasureAndScrollToKeyboard(left, top, width, height) {\n var keyboardScreenY = Dimensions.get('window').height;\n\n if (this.keyboardWillOpenTo) {\n keyboardScreenY = this.keyboardWillOpenTo.endCoordinates.screenY;\n }\n\n var scrollOffsetY = top - keyboardScreenY + height + this.additionalScrollOffset; // By default, this can scroll with negative offset, pulling the content\n // down so that the target component's bottom meets the keyboard's top.\n // If requested otherwise, cap the offset at 0 minimum to avoid content\n // shifting down.\n\n if (this.preventNegativeScrollOffset) {\n scrollOffsetY = Math.max(0, scrollOffsetY);\n }\n\n this.scrollResponderScrollTo({\n x: 0,\n y: scrollOffsetY,\n animated: true\n });\n this.additionalOffset = 0;\n this.preventNegativeScrollOffset = false;\n },\n scrollResponderTextInputFocusError: function scrollResponderTextInputFocusError(e) {\n console.error('Error measuring text field: ', e);\n },\n\n /**\n * `componentWillMount` is the closest thing to a standard \"constructor\" for\n * React components.\n *\n * The `keyboardWillShow` is called before input focus.\n */\n UNSAFE_componentWillMount: function UNSAFE_componentWillMount() {\n this.keyboardWillOpenTo = null;\n this.additionalScrollOffset = 0; // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillShow', this.scrollResponderKeyboardWillShow);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillHide', this.scrollResponderKeyboardWillHide);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardDidShow', this.scrollResponderKeyboardDidShow);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardDidHide', this.scrollResponderKeyboardDidHide);\n },\n\n /**\n * Warning, this may be called several times for a single keyboard opening.\n * It's best to store the information in this method and then take any action\n * at a later point (either in `keyboardDidShow` or other).\n *\n * Here's the order that events occur in:\n * - focus\n * - willShow {startCoordinates, endCoordinates} several times\n * - didShow several times\n * - blur\n * - willHide {startCoordinates, endCoordinates} several times\n * - didHide several times\n *\n * The `ScrollResponder` providesModule callbacks for each of these events.\n * Even though any user could have easily listened to keyboard events\n * themselves, using these `props` callbacks ensures that ordering of events\n * is consistent - and not dependent on the order that the keyboard events are\n * subscribed to. This matters when telling the scroll view to scroll to where\n * the keyboard is headed - the scroll responder better have been notified of\n * the keyboard destination before being instructed to scroll to where the\n * keyboard will be. Stick to the `ScrollResponder` callbacks, and everything\n * will work.\n *\n * WARNING: These callbacks will fire even if a keyboard is displayed in a\n * different navigation pane. Filter out the events to determine if they are\n * relevant to you. (For example, only if you receive these callbacks after\n * you had explicitly focused a node etc).\n */\n scrollResponderKeyboardWillShow: function scrollResponderKeyboardWillShow(e) {\n this.keyboardWillOpenTo = e;\n this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n },\n scrollResponderKeyboardWillHide: function scrollResponderKeyboardWillHide(e) {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n },\n scrollResponderKeyboardDidShow: function scrollResponderKeyboardDidShow(e) {\n // TODO(7693961): The event for DidShow is not available on iOS yet.\n // Use the one from WillShow and do not assign.\n if (e) {\n this.keyboardWillOpenTo = e;\n }\n\n this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n },\n scrollResponderKeyboardDidHide: function scrollResponderKeyboardDidHide(e) {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n }\n};\nvar ScrollResponder = {\n Mixin: ScrollResponderMixin\n};\nexport default ScrollResponder;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"onScroll\", \"onTouchMove\", \"onWheel\", \"scrollEnabled\", \"scrollEventThrottle\", \"showsHorizontalScrollIndicator\", \"showsVerticalScrollIndicator\", \"style\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport useMergeRefs from '../../modules/useMergeRefs';\n\nfunction normalizeScrollEvent(e) {\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return e.target.scrollLeft;\n },\n\n get y() {\n return e.target.scrollTop;\n }\n\n },\n contentSize: {\n get height() {\n return e.target.scrollHeight;\n },\n\n get width() {\n return e.target.scrollWidth;\n }\n\n },\n layoutMeasurement: {\n get height() {\n return e.target.offsetHeight;\n },\n\n get width() {\n return e.target.offsetWidth;\n }\n\n }\n },\n timeStamp: Date.now()\n };\n}\n\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\n/**\n * Encapsulates the Web-specific scroll throttling and disabling logic\n */\n\n\nvar ScrollViewBase = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var onScroll = props.onScroll,\n onTouchMove = props.onTouchMove,\n onWheel = props.onWheel,\n _props$scrollEnabled = props.scrollEnabled,\n scrollEnabled = _props$scrollEnabled === void 0 ? true : _props$scrollEnabled,\n _props$scrollEventThr = props.scrollEventThrottle,\n scrollEventThrottle = _props$scrollEventThr === void 0 ? 0 : _props$scrollEventThr,\n showsHorizontalScrollIndicator = props.showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator = props.showsVerticalScrollIndicator,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollRef = React.useRef(null);\n\n function createPreventableScrollHandler(handler) {\n return e => {\n if (scrollEnabled) {\n if (handler) {\n handler(e);\n }\n }\n };\n }\n\n function handleScroll(e) {\n e.stopPropagation();\n\n if (e.target === scrollRef.current) {\n e.persist(); // A scroll happened, so the scroll resets the scrollend timeout.\n\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n\n scrollTimeout.current = setTimeout(() => {\n handleScrollEnd(e);\n }, 100);\n\n if (scrollState.current.isScrolling) {\n // Scroll last tick may have changed, check if we need to notify\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n handleScrollTick(e);\n }\n } else {\n // Weren't scrolling, so we must have just started\n handleScrollStart(e);\n }\n }\n }\n\n function handleScrollStart(e) {\n scrollState.current.isScrolling = true;\n handleScrollTick(e);\n }\n\n function handleScrollTick(e) {\n scrollState.current.scrollLastTick = Date.now();\n\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n\n function handleScrollEnd(e) {\n scrollState.current.isScrolling = false;\n\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n\n var hideScrollbar = showsHorizontalScrollIndicator === false || showsVerticalScrollIndicator === false;\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n onScroll: handleScroll,\n onTouchMove: createPreventableScrollHandler(onTouchMove),\n onWheel: createPreventableScrollHandler(onWheel),\n ref: useMergeRefs(scrollRef, forwardedRef),\n style: [style, !scrollEnabled && styles.scrollDisabled, hideScrollbar && styles.hideScrollbar]\n }));\n}); // Chrome doesn't support e.preventDefault in this case; touch-action must be\n// used to disable scrolling.\n// https://developers.google.com/web/updates/2017/01/scrolling-intervention\n\nvar styles = StyleSheet.create({\n scrollDisabled: {\n overflowX: 'hidden',\n overflowY: 'hidden',\n touchAction: 'none'\n },\n hideScrollbar: {\n scrollbarWidth: 'none'\n }\n});\nexport default ScrollViewBase;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"contentContainerStyle\", \"horizontal\", \"onContentSizeChange\", \"refreshControl\", \"stickyHeaderIndices\", \"pagingEnabled\", \"forwardedRef\", \"keyboardDismissMode\", \"onScroll\", \"centerContent\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport createReactClass from 'create-react-class';\nimport dismissKeyboard from '../../modules/dismissKeyboard';\nimport invariant from 'fbjs/lib/invariant';\nimport mergeRefs from '../../modules/mergeRefs';\nimport ScrollResponder from '../../modules/ScrollResponder';\nimport ScrollViewBase from './ScrollViewBase';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport React from 'react';\nvar emptyObject = {};\n/* eslint-disable react/prefer-es6-class */\n\nvar ScrollView = createReactClass({\n displayName: \"ScrollView\",\n mixins: [ScrollResponder.Mixin],\n\n getInitialState() {\n return this.scrollResponderMixinGetInitialState();\n },\n\n flashScrollIndicators() {\n this.scrollResponderFlashScrollIndicators();\n },\n\n /**\n * Returns a reference to the underlying scroll responder, which supports\n * operations like `scrollTo`. All ScrollView-like components should\n * implement this method so that they can be composed while providing access\n * to the underlying scroll responder's methods.\n */\n getScrollResponder() {\n return this;\n },\n\n getScrollableNode() {\n return this._scrollNodeRef;\n },\n\n getInnerViewRef() {\n return this._innerViewRef;\n },\n\n getInnerViewNode() {\n return this._innerViewRef;\n },\n\n getNativeScrollRef() {\n return this._scrollNodeRef;\n },\n\n /**\n * Scrolls to a given x, y offset, either immediately or with a smooth animation.\n * Syntax:\n *\n * scrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n *\n * Note: The weird argument signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as as alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollTo(y, x, animated) {\n if (typeof y === 'number') {\n console.warn('`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = y || emptyObject;\n\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n\n this.getScrollResponder().scrollResponderScrollTo({\n x: x || 0,\n y: y || 0,\n animated: animated !== false\n });\n },\n\n /**\n * If this is a vertical ScrollView scrolls to the bottom.\n * If this is a horizontal ScrollView scrolls to the right.\n *\n * Use `scrollToEnd({ animated: true })` for smooth animated scrolling,\n * `scrollToEnd({ animated: false })` for immediate scrolling.\n * If no options are passed, `animated` defaults to true.\n */\n scrollToEnd(options) {\n // Default to true\n var animated = (options && options.animated) !== false;\n var horizontal = this.props.horizontal;\n var scrollResponder = this.getScrollResponder();\n var scrollResponderNode = scrollResponder.scrollResponderGetScrollableNode();\n var x = horizontal ? scrollResponderNode.scrollWidth : 0;\n var y = horizontal ? 0 : scrollResponderNode.scrollHeight;\n scrollResponder.scrollResponderScrollTo({\n x,\n y,\n animated\n });\n },\n\n render() {\n var _this$props = this.props,\n contentContainerStyle = _this$props.contentContainerStyle,\n horizontal = _this$props.horizontal,\n onContentSizeChange = _this$props.onContentSizeChange,\n refreshControl = _this$props.refreshControl,\n stickyHeaderIndices = _this$props.stickyHeaderIndices,\n pagingEnabled = _this$props.pagingEnabled,\n forwardedRef = _this$props.forwardedRef,\n keyboardDismissMode = _this$props.keyboardDismissMode,\n onScroll = _this$props.onScroll,\n centerContent = _this$props.centerContent,\n other = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n if (process.env.NODE_ENV !== 'production' && this.props.style) {\n var style = StyleSheet.flatten(this.props.style);\n var childLayoutProps = ['alignItems', 'justifyContent'].filter(prop => style && style[prop] !== undefined);\n invariant(childLayoutProps.length === 0, \"ScrollView child layout (\" + JSON.stringify(childLayoutProps) + \") \" + 'must be applied through the contentContainerStyle prop.');\n }\n\n var contentSizeChangeProps = {};\n\n if (onContentSizeChange) {\n contentSizeChangeProps = {\n onLayout: this._handleContentOnLayout\n };\n }\n\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var children = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(this.props.children, (child, i) => {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n\n if (child != null && (isSticky || pagingEnabled)) {\n return /*#__PURE__*/React.createElement(View, {\n style: StyleSheet.compose(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild)\n }, child);\n } else {\n return child;\n }\n }) : this.props.children;\n var contentContainer = /*#__PURE__*/React.createElement(View, _extends({}, contentSizeChangeProps, {\n children: children,\n collapsable: false,\n ref: this._setInnerViewRef,\n style: [horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle]\n }));\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n\n var props = _objectSpread(_objectSpread({}, other), {}, {\n style: [baseStyle, pagingEnabled && pagingEnabledStyle, this.props.style],\n onTouchStart: this.scrollResponderHandleTouchStart,\n onTouchMove: this.scrollResponderHandleTouchMove,\n onTouchEnd: this.scrollResponderHandleTouchEnd,\n onScrollBeginDrag: this.scrollResponderHandleScrollBeginDrag,\n onScrollEndDrag: this.scrollResponderHandleScrollEndDrag,\n onMomentumScrollBegin: this.scrollResponderHandleMomentumScrollBegin,\n onMomentumScrollEnd: this.scrollResponderHandleMomentumScrollEnd,\n onStartShouldSetResponder: this.scrollResponderHandleStartShouldSetResponder,\n onStartShouldSetResponderCapture: this.scrollResponderHandleStartShouldSetResponderCapture,\n onScrollShouldSetResponder: this.scrollResponderHandleScrollShouldSetResponder,\n onScroll: this._handleScroll,\n onResponderGrant: this.scrollResponderHandleResponderGrant,\n onResponderTerminationRequest: this.scrollResponderHandleTerminationRequest,\n onResponderTerminate: this.scrollResponderHandleTerminate,\n onResponderRelease: this.scrollResponderHandleResponderRelease,\n onResponderReject: this.scrollResponderHandleResponderReject\n });\n\n var ScrollViewClass = ScrollViewBase;\n invariant(ScrollViewClass !== undefined, 'ScrollViewClass must not be undefined');\n var scrollView = /*#__PURE__*/React.createElement(ScrollViewClass, _extends({}, props, {\n ref: this._setScrollNodeRef\n }), contentContainer);\n\n if (refreshControl) {\n return /*#__PURE__*/React.cloneElement(refreshControl, {\n style: props.style\n }, scrollView);\n }\n\n return scrollView;\n },\n\n _handleContentOnLayout(e) {\n var _e$nativeEvent$layout = e.nativeEvent.layout,\n width = _e$nativeEvent$layout.width,\n height = _e$nativeEvent$layout.height;\n this.props.onContentSizeChange(width, height);\n },\n\n _handleScroll(e) {\n if (process.env.NODE_ENV !== 'production') {\n if (this.props.onScroll && this.props.scrollEventThrottle == null) {\n console.log('You specified `onScroll` on a but not ' + '`scrollEventThrottle`. You will only receive one event. ' + 'Using `16` you get all the events but be aware that it may ' + \"cause frame drops, use a bigger number if you don't need as \" + 'much precision.');\n }\n }\n\n if (this.props.keyboardDismissMode === 'on-drag') {\n dismissKeyboard();\n }\n\n this.scrollResponderHandleScroll(e);\n },\n\n _setInnerViewRef(node) {\n this._innerViewRef = node;\n },\n\n _setScrollNodeRef(node) {\n this._scrollNodeRef = node; // ScrollView needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `ScrollView.scrollTo(hostNode, { x, y })` is added to React Native.\n\n if (node != null) {\n node.getScrollResponder = this.getScrollResponder;\n node.getInnerViewNode = this.getInnerViewNode;\n node.getInnerViewRef = this.getInnerViewRef;\n node.getNativeScrollRef = this.getNativeScrollRef;\n node.getScrollableNode = this.getScrollableNode;\n node.scrollTo = this.scrollTo;\n node.scrollToEnd = this.scrollToEnd;\n node.flashScrollIndicators = this.flashScrollIndicators;\n node.scrollResponderZoomTo = this.scrollResponderZoomTo;\n node.scrollResponderScrollNativeHandleToKeyboard = this.scrollResponderScrollNativeHandleToKeyboard;\n }\n\n var ref = mergeRefs(this.props.forwardedRef);\n ref(node);\n }\n\n});\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1,\n // Enable hardware compositing in modern browsers.\n // Creates a new layer with its own backing surface that can significantly\n // improve scroll performance.\n transform: [{\n translateZ: 0\n }],\n // iOS native scrolling\n WebkitOverflowScrolling: 'touch'\n};\nvar styles = StyleSheet.create({\n baseVertical: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'column',\n overflowX: 'hidden',\n overflowY: 'auto'\n }),\n baseHorizontal: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'row',\n overflowX: 'auto',\n overflowY: 'hidden'\n }),\n contentContainerHorizontal: {\n flexDirection: 'row'\n },\n contentContainerCenterContent: {\n justifyContent: 'center',\n flexGrow: 1\n },\n stickyHeader: {\n position: 'sticky',\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: 'x mandatory'\n },\n pagingEnabledVertical: {\n scrollSnapType: 'y mandatory'\n },\n pagingEnabledChild: {\n scrollSnapAlign: 'start'\n }\n});\nvar ForwardedScrollView = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n return /*#__PURE__*/React.createElement(ScrollView, _extends({}, props, {\n forwardedRef: forwardedRef\n }));\n});\nForwardedScrollView.displayName = 'ScrollView';\nexport default ForwardedScrollView;","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (obj == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","import { createContext } from 'react';\nimport type { PanGestureHandlerGestureEvent } from 'react-native-gesture-handler';\n\nexport interface BottomSheetGestureHandlersContextType {\n contentPanGestureHandler: (event: PanGestureHandlerGestureEvent) => void;\n handlePanGestureHandler: (event: PanGestureHandlerGestureEvent) => void;\n scrollablePanGestureHandler: (event: PanGestureHandlerGestureEvent) => void;\n}\n\nexport const BottomSheetGestureHandlersContext =\n createContext(null);\n","/* global _WORKLET */\n/**\n * Copied from:\n * react-native/Libraries/StyleSheet/normalizeColor.js\n * react-native/Libraries/StyleSheet/processColor.js\n * https://github.com/wcandillon/react-native-redash/blob/master/src/Colors.ts\n */\n/* eslint no-bitwise: 0 */\nimport { Platform } from 'react-native';\nimport { makeRemote, makeShareable, isConfigured } from './core';\n// var INTEGER = '[-+]?\\\\d+';\nconst NUMBER = '[-+]?(?:\\\\d+(?:\\\\.\\\\d*)?|\\\\.\\\\d+)';\nconst PERCENTAGE = NUMBER + '%';\nfunction call(...args) {\n 'worklet';\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n// matchers use RegExp objects which needs to be created separately on JS and on\n// the UI thread. We keep separate cache of Regexes for UI and JS using the below\n// objects, then pick the right cache in getMatchers() method.\nconst jsCachedMatchers = {};\nconst uiCachedMatchers = !isConfigured() ? {} : makeRemote({});\nfunction getMatchers() {\n 'worklet';\n const cachedMatchers = _WORKLET\n ? uiCachedMatchers\n : jsCachedMatchers;\n if (cachedMatchers.rgb === undefined) {\n cachedMatchers.rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\n cachedMatchers.rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\n cachedMatchers.hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\n cachedMatchers.hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\n cachedMatchers.hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex4 =\n /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex6 = /^#([0-9a-fA-F]{6})$/;\n cachedMatchers.hex8 = /^#([0-9a-fA-F]{8})$/;\n }\n return cachedMatchers;\n}\n// cachedMatchers is lazy loaded and it is frozen when worklet is being created,\n// it is possible to call getMatchers() when the object is frozen, then cachedMatchers\n// has no assigned regexes\ngetMatchers();\nfunction hue2rgb(p, q, t) {\n 'worklet';\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\nfunction hslToRgb(h, s, l) {\n 'worklet';\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n return ((Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8));\n}\nfunction parse255(str) {\n 'worklet';\n const int = Number.parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\nfunction parse360(str) {\n 'worklet';\n const int = Number.parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\nfunction parse1(str) {\n 'worklet';\n const num = Number.parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\nfunction parsePercentage(str) {\n 'worklet';\n // parseFloat conveniently ignores the final %\n const int = Number.parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\nconst names = !isConfigured()\n ? null\n : makeShareable({\n transparent: 0x00000000,\n // http://www.w3.org/TR/css3-color/#svg-color\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff,\n });\nfunction normalizeColor(color) {\n 'worklet';\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n if (typeof color !== 'string') {\n return null;\n }\n const matchers = getMatchers();\n let match;\n // Ordered based on occurrences on Facebook codebase\n if ((match = (_a = matchers === null || matchers === void 0 ? void 0 : matchers.hex6) === null || _a === void 0 ? void 0 : _a.exec(color))) {\n return Number.parseInt(match[1] + 'ff', 16) >>> 0;\n }\n if (names[color] !== undefined) {\n return names[color];\n }\n if ((match = (_b = matchers === null || matchers === void 0 ? void 0 : matchers.rgb) === null || _b === void 0 ? void 0 : _b.exec(color))) {\n return (\n // b\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) |\n 0x000000ff) >>> // a\n 0);\n }\n if ((match = (_c = matchers === null || matchers === void 0 ? void 0 : matchers.rgba) === null || _c === void 0 ? void 0 : _c.exec(color))) {\n return (\n // b\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) |\n parse1(match[4])) >>> // a\n 0);\n }\n if ((match = (_d = matchers === null || matchers === void 0 ? void 0 : matchers.hex3) === null || _d === void 0 ? void 0 : _d.exec(color))) {\n return (Number.parseInt(match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16) >>> 0);\n }\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = (_e = matchers === null || matchers === void 0 ? void 0 : matchers.hex8) === null || _e === void 0 ? void 0 : _e.exec(color))) {\n return Number.parseInt(match[1], 16) >>> 0;\n }\n if ((match = (_f = matchers === null || matchers === void 0 ? void 0 : matchers.hex4) === null || _f === void 0 ? void 0 : _f.exec(color))) {\n return (Number.parseInt(match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16) >>> 0);\n }\n if ((match = (_g = matchers === null || matchers === void 0 ? void 0 : matchers.hsl) === null || _g === void 0 ? void 0 : _g.exec(color))) {\n return ((hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff) >>> // a\n 0);\n }\n if ((match = (_h = matchers === null || matchers === void 0 ? void 0 : matchers.hsla) === null || _h === void 0 ? void 0 : _h.exec(color))) {\n return ((hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4])) >>> // a\n 0);\n }\n return null;\n}\nexport const opacity = (c) => {\n 'worklet';\n return ((c >> 24) & 255) / 255;\n};\nexport const red = (c) => {\n 'worklet';\n return (c >> 16) & 255;\n};\nexport const green = (c) => {\n 'worklet';\n return (c >> 8) & 255;\n};\nexport const blue = (c) => {\n 'worklet';\n return c & 255;\n};\nexport const rgbaColor = (r, g, b, alpha = 1) => {\n 'worklet';\n if (Platform.OS === 'web' || !_WORKLET) {\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n }\n const c = Math.round(alpha * 255) * (1 << 24) +\n Math.round(r) * (1 << 16) +\n Math.round(g) * (1 << 8) +\n Math.round(b);\n if (Platform.OS === 'android') {\n // on Android color is represented as signed 32 bit int\n return c < (1 << 31) >>> 0 ? c : c - 4294967296; // 4294967296 == Math.pow(2, 32);\n }\n return c;\n};\nexport function RGBtoHSV(r, g, b) {\n 'worklet';\n /* eslint-disable */\n if (arguments.length === 1) {\n g = r.g;\n b = r.b;\n r = r.r;\n }\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n const v = max / 255;\n let h;\n switch (max) {\n default:\n /* fallthrough */\n case min:\n h = 0;\n break;\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n }\n return {\n h: h,\n s: s,\n v: v,\n };\n /* eslint-enable */\n}\nfunction HSVtoRGB(h, s, v) {\n 'worklet';\n /* eslint-disable */\n var r, g, b, i, f, p, q, t;\n if (arguments.length === 1) {\n s = h.s;\n v = h.v;\n h = h.h;\n }\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n switch (i % 6) {\n case 0:\n (r = v), (g = t), (b = p);\n break;\n case 1:\n (r = q), (g = v), (b = p);\n break;\n case 2:\n (r = p), (g = v), (b = t);\n break;\n case 3:\n (r = p), (g = q), (b = v);\n break;\n case 4:\n (r = t), (g = p), (b = v);\n break;\n case 5:\n (r = v), (g = p), (b = q);\n break;\n }\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n };\n /* eslint-enable */\n}\nexport const hsvToColor = (h, s, v, a) => {\n 'worklet';\n const { r, g, b } = HSVtoRGB(h, s, v);\n return rgbaColor(r, g, b, a);\n};\nexport function processColorInitially(color) {\n 'worklet';\n if (color === null || color === undefined || typeof color === 'number') {\n return color;\n }\n let normalizedColor = normalizeColor(color);\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n normalizedColor = ((normalizedColor << 24) | (normalizedColor >>> 8)) >>> 0; // argb\n return normalizedColor;\n}\nexport function isColor(value) {\n 'worklet';\n if (typeof value !== 'string') {\n return false;\n }\n return processColorInitially(value) != null;\n}\nexport function processColor(color) {\n 'worklet';\n let normalizedColor = processColorInitially(color);\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n if (Platform.OS === 'android') {\n // Android use 32 bit *signed* integer to represent the color\n // We utilize the fact that bitwise operations in JS also operates on\n // signed 32 bit integers, so that we can use those to convert from\n // *unsigned* to *signed* 32bit int that way.\n normalizedColor = normalizedColor | 0x0;\n }\n return normalizedColor;\n}\nexport function convertToRGBA(color) {\n 'worklet';\n const processedColor = processColorInitially(color); // argb;\n const a = (processedColor >>> 24) / 255;\n const r = ((processedColor << 8) >>> 24) / 255;\n const g = ((processedColor << 16) >>> 24) / 255;\n const b = ((processedColor << 24) >>> 24) / 255;\n return [r, g, b, a];\n}\nexport function rgbaArrayToRGBAColor(RGBA) {\n 'worklet';\n return `rgba(${Math.round(RGBA[0] * 255)}, ${Math.round(RGBA[1] * 255)}, ${Math.round(RGBA[2] * 255)}, ${RGBA[3]})`;\n}\nexport function toLinearSpace(RGBA, gamma = 2.2) {\n 'worklet';\n const res = [];\n for (let i = 0; i < 3; ++i) {\n res.push(Math.pow(RGBA[i], gamma));\n }\n res.push(RGBA[3]);\n return res;\n}\nexport function toGammaSpace(RGBA, gamma = 2.2) {\n 'worklet';\n const res = [];\n for (let i = 0; i < 3; ++i) {\n res.push(Math.pow(RGBA[i], 1 / gamma));\n }\n res.push(RGBA[3]);\n return res;\n}\n","export function goBack() {\n return {\n type: 'GO_BACK'\n };\n}\n// eslint-disable-next-line no-redeclare\nexport function navigate() {\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n return {\n type: 'NAVIGATE',\n payload: {\n name: arguments.length <= 0 ? undefined : arguments[0],\n params: arguments.length <= 1 ? undefined : arguments[1]\n }\n };\n } else {\n const payload = (arguments.length <= 0 ? undefined : arguments[0]) || {};\n if (!payload.hasOwnProperty('key') && !payload.hasOwnProperty('name')) {\n throw new Error('You need to specify name or key when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.');\n }\n return {\n type: 'NAVIGATE',\n payload\n };\n }\n}\nexport function reset(state) {\n return {\n type: 'RESET',\n payload: state\n };\n}\nexport function setParams(params) {\n return {\n type: 'SET_PARAMS',\n payload: {\n params\n }\n };\n}\n//# sourceMappingURL=CommonActions.js.map","import { nanoid } from 'nanoid/non-secure';\n/**\n * Base router object that can be used when writing custom routers.\n * This provides few helper methods to handle common actions such as `RESET`.\n */\nconst BaseRouter = {\n getStateForAction(state, action) {\n switch (action.type) {\n case 'SET_PARAMS':\n {\n const index = action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;\n if (index === -1) {\n return null;\n }\n return {\n ...state,\n routes: state.routes.map((r, i) => i === index ? {\n ...r,\n params: {\n ...r.params,\n ...action.payload.params\n }\n } : r)\n };\n }\n case 'RESET':\n {\n const nextState = action.payload;\n if (nextState.routes.length === 0 || nextState.routes.some(route => !state.routeNames.includes(route.name))) {\n return null;\n }\n if (nextState.stale === false) {\n if (state.routeNames.length !== nextState.routeNames.length || nextState.routeNames.some(name => !state.routeNames.includes(name))) {\n return null;\n }\n return {\n ...nextState,\n routes: nextState.routes.map(route => route.key ? route : {\n ...route,\n key: `${route.name}-${nanoid()}`\n })\n };\n }\n return nextState;\n }\n default:\n return null;\n }\n },\n shouldActionChangeFocus(action) {\n return action.type === 'NAVIGATE';\n }\n};\nexport default BaseRouter;\n//# sourceMappingURL=BaseRouter.js.map","import { nanoid } from 'nanoid/non-secure';\nimport BaseRouter from './BaseRouter';\nexport const StackActions = {\n replace(name, params) {\n return {\n type: 'REPLACE',\n payload: {\n name,\n params\n }\n };\n },\n push(name, params) {\n return {\n type: 'PUSH',\n payload: {\n name,\n params\n }\n };\n },\n pop() {\n let count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n return {\n type: 'POP',\n payload: {\n count\n }\n };\n },\n popToTop() {\n return {\n type: 'POP_TO_TOP'\n };\n }\n};\nexport default function StackRouter(options) {\n const router = {\n ...BaseRouter,\n type: 'stack',\n getInitialState(_ref) {\n let {\n routeNames,\n routeParamList\n } = _ref;\n const initialRouteName = options.initialRouteName !== undefined && routeNames.includes(options.initialRouteName) ? options.initialRouteName : routeNames[0];\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: 0,\n routeNames,\n routes: [{\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName]\n }]\n };\n },\n getRehydratedState(partialState, _ref2) {\n let {\n routeNames,\n routeParamList\n } = _ref2;\n let state = partialState;\n if (state.stale === false) {\n return state;\n }\n const routes = state.routes.filter(route => routeNames.includes(route.name)).map(route => ({\n ...route,\n key: route.key || `${route.name}-${nanoid()}`,\n params: routeParamList[route.name] !== undefined ? {\n ...routeParamList[route.name],\n ...route.params\n } : route.params\n }));\n if (routes.length === 0) {\n const initialRouteName = options.initialRouteName !== undefined ? options.initialRouteName : routeNames[0];\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName]\n });\n }\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: routes.length - 1,\n routeNames,\n routes\n };\n },\n getStateForRouteNamesChange(state, _ref3) {\n let {\n routeNames,\n routeParamList,\n routeKeyChanges\n } = _ref3;\n const routes = state.routes.filter(route => routeNames.includes(route.name) && !routeKeyChanges.includes(route.name));\n if (routes.length === 0) {\n const initialRouteName = options.initialRouteName !== undefined && routeNames.includes(options.initialRouteName) ? options.initialRouteName : routeNames[0];\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName]\n });\n }\n return {\n ...state,\n routeNames,\n routes,\n index: Math.min(state.index, routes.length - 1)\n };\n },\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex(r => r.key === key);\n if (index === -1 || index === state.index) {\n return state;\n }\n return {\n ...state,\n index,\n routes: state.routes.slice(0, index + 1)\n };\n },\n getStateForAction(state, action, options) {\n const {\n routeParamList\n } = options;\n switch (action.type) {\n case 'REPLACE':\n {\n const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;\n if (index === -1) {\n return null;\n }\n const {\n name,\n key,\n params\n } = action.payload;\n if (!state.routeNames.includes(name)) {\n return null;\n }\n return {\n ...state,\n routes: state.routes.map((route, i) => i === index ? {\n key: key !== undefined ? key : `${name}-${nanoid()}`,\n name,\n params: routeParamList[name] !== undefined ? {\n ...routeParamList[name],\n ...params\n } : params\n } : route)\n };\n }\n case 'PUSH':\n if (state.routeNames.includes(action.payload.name)) {\n const getId = options.routeGetIdList[action.payload.name];\n const id = getId === null || getId === void 0 ? void 0 : getId({\n params: action.payload.params\n });\n const route = id ? state.routes.find(route => route.name === action.payload.name && id === (getId === null || getId === void 0 ? void 0 : getId({\n params: route.params\n }))) : undefined;\n let routes;\n if (route) {\n routes = state.routes.filter(r => r.key !== route.key);\n routes.push({\n ...route,\n params: routeParamList[action.payload.name] !== undefined ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params\n } : action.payload.params\n });\n } else {\n routes = [...state.routes, {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n params: routeParamList[action.payload.name] !== undefined ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params\n } : action.payload.params\n }];\n }\n return {\n ...state,\n index: routes.length - 1,\n routes\n };\n }\n return null;\n case 'POP':\n {\n const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;\n if (index > 0) {\n const count = Math.max(index - action.payload.count + 1, 1);\n const routes = state.routes.slice(0, count).concat(state.routes.slice(index + 1));\n return {\n ...state,\n index: routes.length - 1,\n routes\n };\n }\n return null;\n }\n case 'POP_TO_TOP':\n return router.getStateForAction(state, {\n type: 'POP',\n payload: {\n count: state.routes.length - 1\n }\n }, options);\n case 'NAVIGATE':\n if (action.payload.name !== undefined && !state.routeNames.includes(action.payload.name)) {\n return null;\n }\n if (action.payload.key || action.payload.name) {\n // If the route already exists, navigate to that\n let index = -1;\n const getId =\n // `getId` and `key` can't be used together\n action.payload.key === undefined && action.payload.name !== undefined ? options.routeGetIdList[action.payload.name] : undefined;\n const id = getId === null || getId === void 0 ? void 0 : getId({\n params: action.payload.params\n });\n if (id) {\n index = state.routes.findIndex(route => route.name === action.payload.name && id === (getId === null || getId === void 0 ? void 0 : getId({\n params: route.params\n })));\n } else if (state.routes[state.index].name === action.payload.name && action.payload.key === undefined || state.routes[state.index].key === action.payload.key) {\n index = state.index;\n } else {\n for (let i = state.routes.length - 1; i >= 0; i--) {\n if (state.routes[i].name === action.payload.name && action.payload.key === undefined || state.routes[i].key === action.payload.key) {\n index = i;\n break;\n }\n }\n }\n if (index === -1 && action.payload.key && action.payload.name === undefined) {\n return null;\n }\n if (index === -1 && action.payload.name !== undefined) {\n const routes = [...state.routes, {\n key: action.payload.key ?? `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n path: action.payload.path,\n params: routeParamList[action.payload.name] !== undefined ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params\n } : action.payload.params\n }];\n return {\n ...state,\n routes,\n index: routes.length - 1\n };\n }\n const route = state.routes[index];\n let params;\n if (action.payload.merge) {\n params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params\n } : route.params;\n } else {\n params = routeParamList[route.name] !== undefined ? {\n ...routeParamList[route.name],\n ...action.payload.params\n } : action.payload.params;\n }\n return {\n ...state,\n index,\n routes: [...state.routes.slice(0, index), params !== route.params || action.payload.path && action.payload.path !== route.path ? {\n ...route,\n path: action.payload.path ?? route.path,\n params\n } : state.routes[index]]\n };\n }\n return null;\n case 'GO_BACK':\n if (state.index > 0) {\n return router.getStateForAction(state, {\n type: 'POP',\n payload: {\n count: 1\n },\n target: action.target,\n source: action.source\n }, options);\n }\n return null;\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n actionCreators: StackActions\n };\n return router;\n}\n//# sourceMappingURL=StackRouter.js.map","import { nanoid } from 'nanoid/non-secure';\nimport BaseRouter from './BaseRouter';\nconst TYPE_ROUTE = 'route';\nexport const TabActions = {\n jumpTo(name, params) {\n return {\n type: 'JUMP_TO',\n payload: {\n name,\n params\n }\n };\n }\n};\nconst getRouteHistory = (routes, index, backBehavior, initialRouteName) => {\n const history = [{\n type: TYPE_ROUTE,\n key: routes[index].key\n }];\n let initialRouteIndex;\n switch (backBehavior) {\n case 'order':\n for (let i = index; i > 0; i--) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[i - 1].key\n });\n }\n break;\n case 'firstRoute':\n if (index !== 0) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[0].key\n });\n }\n break;\n case 'initialRoute':\n initialRouteIndex = routes.findIndex(route => route.name === initialRouteName);\n initialRouteIndex = initialRouteIndex === -1 ? 0 : initialRouteIndex;\n if (index !== initialRouteIndex) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[initialRouteIndex].key\n });\n }\n break;\n case 'history':\n // The history will fill up on navigation\n break;\n }\n return history;\n};\nconst changeIndex = (state, index, backBehavior, initialRouteName) => {\n let history;\n if (backBehavior === 'history') {\n const currentKey = state.routes[index].key;\n history = state.history.filter(it => it.type === 'route' ? it.key !== currentKey : false).concat({\n type: TYPE_ROUTE,\n key: currentKey\n });\n } else {\n history = getRouteHistory(state.routes, index, backBehavior, initialRouteName);\n }\n return {\n ...state,\n index,\n history\n };\n};\nexport default function TabRouter(_ref) {\n let {\n initialRouteName,\n backBehavior = 'firstRoute'\n } = _ref;\n const router = {\n ...BaseRouter,\n type: 'tab',\n getInitialState(_ref2) {\n let {\n routeNames,\n routeParamList\n } = _ref2;\n const index = initialRouteName !== undefined && routeNames.includes(initialRouteName) ? routeNames.indexOf(initialRouteName) : 0;\n const routes = routeNames.map(name => ({\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name]\n }));\n const history = getRouteHistory(routes, index, backBehavior, initialRouteName);\n return {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes\n };\n },\n getRehydratedState(partialState, _ref3) {\n var _state$routes, _state$history;\n let {\n routeNames,\n routeParamList\n } = _ref3;\n let state = partialState;\n if (state.stale === false) {\n return state;\n }\n const routes = routeNames.map(name => {\n const route = state.routes.find(r => r.name === name);\n return {\n ...route,\n name,\n key: route && route.name === name && route.key ? route.key : `${name}-${nanoid()}`,\n params: routeParamList[name] !== undefined ? {\n ...routeParamList[name],\n ...(route ? route.params : undefined)\n } : route ? route.params : undefined\n };\n });\n const index = Math.min(Math.max(routeNames.indexOf((_state$routes = state.routes[(state === null || state === void 0 ? void 0 : state.index) ?? 0]) === null || _state$routes === void 0 ? void 0 : _state$routes.name), 0), routes.length - 1);\n const history = ((_state$history = state.history) === null || _state$history === void 0 ? void 0 : _state$history.filter(it => routes.find(r => r.key === it.key))) ?? [];\n return changeIndex({\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes\n }, index, backBehavior, initialRouteName);\n },\n getStateForRouteNamesChange(state, _ref4) {\n let {\n routeNames,\n routeParamList,\n routeKeyChanges\n } = _ref4;\n const routes = routeNames.map(name => state.routes.find(r => r.name === name && !routeKeyChanges.includes(r.name)) || {\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name]\n });\n const index = Math.max(0, routeNames.indexOf(state.routes[state.index].name));\n let history = state.history.filter(\n // Type will always be 'route' for tabs, but could be different in a router extending this (e.g. drawer)\n it => it.type !== 'route' || routes.find(r => r.key === it.key));\n if (!history.length) {\n history = getRouteHistory(routes, index, backBehavior, initialRouteName);\n }\n return {\n ...state,\n history,\n routeNames,\n routes,\n index\n };\n },\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex(r => r.key === key);\n if (index === -1 || index === state.index) {\n return state;\n }\n return changeIndex(state, index, backBehavior, initialRouteName);\n },\n getStateForAction(state, action, _ref5) {\n let {\n routeParamList,\n routeGetIdList\n } = _ref5;\n switch (action.type) {\n case 'JUMP_TO':\n case 'NAVIGATE':\n {\n let index = -1;\n if (action.type === 'NAVIGATE' && action.payload.key) {\n index = state.routes.findIndex(route => route.key === action.payload.key);\n } else {\n index = state.routes.findIndex(route => route.name === action.payload.name);\n }\n if (index === -1) {\n return null;\n }\n return changeIndex({\n ...state,\n routes: state.routes.map((route, i) => {\n if (i !== index) {\n return route;\n }\n const getId = routeGetIdList[route.name];\n const currentId = getId === null || getId === void 0 ? void 0 : getId({\n params: route.params\n });\n const nextId = getId === null || getId === void 0 ? void 0 : getId({\n params: action.payload.params\n });\n const key = currentId === nextId ? route.key : `${route.name}-${nanoid()}`;\n let params;\n if (action.type === 'NAVIGATE' && action.payload.merge && currentId === nextId) {\n params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params\n } : route.params;\n } else {\n params = routeParamList[route.name] !== undefined ? {\n ...routeParamList[route.name],\n ...action.payload.params\n } : action.payload.params;\n }\n const path = action.type === 'NAVIGATE' && action.payload.path != null ? action.payload.path : route.path;\n return params !== route.params || path !== route.path ? {\n ...route,\n key,\n path,\n params\n } : route;\n })\n }, index, backBehavior, initialRouteName);\n }\n case 'GO_BACK':\n {\n if (state.history.length === 1) {\n return null;\n }\n const previousKey = state.history[state.history.length - 2].key;\n const index = state.routes.findIndex(route => route.key === previousKey);\n if (index === -1) {\n return null;\n }\n return {\n ...state,\n history: state.history.slice(0, -1),\n index\n };\n }\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n shouldActionChangeFocus(action) {\n return action.type === 'NAVIGATE';\n },\n actionCreators: TabActions\n };\n return router;\n}\n//# sourceMappingURL=TabRouter.js.map","import { CommonActions } from '@react-navigation/routers';\nexport const NOT_INITIALIZED_ERROR = \"The 'navigation' object hasn't been initialized yet. This might happen if you don't have a navigator mounted, or if the navigator hasn't finished mounting. See https://reactnavigation.org/docs/navigating-without-navigation-prop#handling-initialization for more details.\";\nexport default function createNavigationContainerRef() {\n const methods = [...Object.keys(CommonActions), 'addListener', 'removeListener', 'resetRoot', 'dispatch', 'isFocused', 'canGoBack', 'getRootState', 'getState', 'getParent', 'getCurrentRoute', 'getCurrentOptions'];\n const listeners = {};\n const removeListener = (event, callback) => {\n if (listeners[event]) {\n listeners[event] = listeners[event].filter(cb => cb !== callback);\n }\n };\n let current = null;\n const ref = {\n get current() {\n return current;\n },\n set current(value) {\n current = value;\n if (value != null) {\n Object.entries(listeners).forEach(_ref => {\n let [event, callbacks] = _ref;\n callbacks.forEach(callback => {\n value.addListener(event, callback);\n });\n });\n }\n },\n isReady: () => {\n if (current == null) {\n return false;\n }\n return current.isReady();\n },\n ...methods.reduce((acc, name) => {\n acc[name] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (current == null) {\n switch (name) {\n case 'addListener':\n {\n const [event, callback] = args;\n listeners[event] = listeners[event] || [];\n listeners[event].push(callback);\n return () => removeListener(event, callback);\n }\n case 'removeListener':\n {\n const [event, callback] = args;\n removeListener(event, callback);\n break;\n }\n default:\n console.error(NOT_INITIALIZED_ERROR);\n }\n } else {\n // @ts-expect-error: this is ok\n return current[name](...args);\n }\n };\n return acc;\n }, {})\n };\n return ref;\n}\n//# sourceMappingURL=createNavigationContainerRef.js.map","import * as React from 'react';\nconst MULTIPLE_NAVIGATOR_ERROR = `Another navigator is already registered for this container. You likely have multiple navigators under a single \"NavigationContainer\" or \"Screen\". Make sure each navigator is under a separate \"Screen\" container. See https://reactnavigation.org/docs/nesting-navigators for a guide on nesting.`;\nexport const SingleNavigatorContext = /*#__PURE__*/React.createContext(undefined);\n\n/**\n * Component which ensures that there's only one navigator nested under it.\n */\nexport default function EnsureSingleNavigator(_ref) {\n let {\n children\n } = _ref;\n const navigatorKeyRef = React.useRef();\n const value = React.useMemo(() => ({\n register(key) {\n const currentKey = navigatorKeyRef.current;\n if (currentKey !== undefined && key !== currentKey) {\n throw new Error(MULTIPLE_NAVIGATOR_ERROR);\n }\n navigatorKeyRef.current = key;\n },\n unregister(key) {\n const currentKey = navigatorKeyRef.current;\n if (key !== currentKey) {\n return;\n }\n navigatorKeyRef.current = undefined;\n }\n }), []);\n return /*#__PURE__*/React.createElement(SingleNavigatorContext.Provider, {\n value: value\n }, children);\n}\n//# sourceMappingURL=EnsureSingleNavigator.js.map","export default function findFocusedRoute(state) {\n var _current2, _current3;\n let current = state;\n while (((_current = current) === null || _current === void 0 ? void 0 : _current.routes[current.index ?? 0].state) != null) {\n var _current;\n current = current.routes[current.index ?? 0].state;\n }\n const route = (_current2 = current) === null || _current2 === void 0 ? void 0 : _current2.routes[((_current3 = current) === null || _current3 === void 0 ? void 0 : _current3.index) ?? 0];\n return route;\n}\n//# sourceMappingURL=findFocusedRoute.js.map","import * as React from 'react';\n/**\n * Context which holds the required helpers needed to build nested navigators.\n */\nconst NavigationBuilderContext = /*#__PURE__*/React.createContext({\n onDispatchAction: () => undefined,\n onOptionsChange: () => undefined\n});\nexport default NavigationBuilderContext;\n//# sourceMappingURL=NavigationBuilderContext.js.map","import * as React from 'react';\n/**\n * Context which holds the route prop for a screen.\n */\nconst NavigationContainerRefContext = /*#__PURE__*/React.createContext(undefined);\nexport default NavigationContainerRefContext;\n//# sourceMappingURL=NavigationContainerRefContext.js.map","import * as React from 'react';\n/**\n * Context which holds the navigation prop for a screen.\n */\nconst NavigationContext = /*#__PURE__*/React.createContext(undefined);\nexport default NavigationContext;\n//# sourceMappingURL=NavigationContext.js.map","import * as React from 'react';\n\n/**\n * Context which holds the route prop for a screen.\n */\nconst NavigationRouteContext = /*#__PURE__*/React.createContext(undefined);\nexport default NavigationRouteContext;\n//# sourceMappingURL=NavigationRouteContext.js.map","import * as React from 'react';\nconst MISSING_CONTEXT_ERROR = \"Couldn't find a navigation context. Have you wrapped your app with 'NavigationContainer'? See https://reactnavigation.org/docs/getting-started for setup instructions.\";\nexport default /*#__PURE__*/React.createContext({\n isDefault: true,\n get getKey() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get setKey() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get getState() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get setState() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get getIsInitial() {\n throw new Error(MISSING_CONTEXT_ERROR);\n }\n});\n//# sourceMappingURL=NavigationStateContext.js.map","import * as React from 'react';\nconst UnhandledActionContext = /*#__PURE__*/React.createContext(undefined);\nexport default UnhandledActionContext;\n//# sourceMappingURL=UnhandledActionContext.js.map","import * as React from 'react';\n/**\n * Hook which lets child navigators add action listeners.\n */\nexport default function useChildListeners() {\n const {\n current: listeners\n } = React.useRef({\n action: [],\n focus: []\n });\n const addListener = React.useCallback((type, listener) => {\n listeners[type].push(listener);\n let removed = false;\n return () => {\n const index = listeners[type].indexOf(listener);\n if (!removed && index > -1) {\n removed = true;\n listeners[type].splice(index, 1);\n }\n };\n }, [listeners]);\n return {\n listeners,\n addListener\n };\n}\n//# sourceMappingURL=useChildListeners.js.map","import * as React from 'react';\n/**\n * Hook to manage the event system used by the navigator to notify screens of various events.\n */\nexport default function useEventEmitter(listen) {\n const listenRef = React.useRef(listen);\n React.useEffect(() => {\n listenRef.current = listen;\n });\n const listeners = React.useRef(Object.create(null));\n const create = React.useCallback(target => {\n const removeListener = (type, callback) => {\n const callbacks = listeners.current[type] ? listeners.current[type][target] : undefined;\n if (!callbacks) {\n return;\n }\n const index = callbacks.indexOf(callback);\n if (index > -1) {\n callbacks.splice(index, 1);\n }\n };\n const addListener = (type, callback) => {\n listeners.current[type] = listeners.current[type] || {};\n listeners.current[type][target] = listeners.current[type][target] || [];\n listeners.current[type][target].push(callback);\n let removed = false;\n return () => {\n // Prevent removing other listeners when unsubscribing same listener multiple times\n if (!removed) {\n removed = true;\n removeListener(type, callback);\n }\n };\n };\n return {\n addListener,\n removeListener\n };\n }, []);\n const emit = React.useCallback(_ref => {\n var _items$target, _listenRef$current;\n let {\n type,\n data,\n target,\n canPreventDefault\n } = _ref;\n const items = listeners.current[type] || {};\n\n // Copy the current list of callbacks in case they are mutated during execution\n const callbacks = target !== undefined ? (_items$target = items[target]) === null || _items$target === void 0 ? void 0 : _items$target.slice() : [].concat(...Object.keys(items).map(t => items[t])).filter((cb, i, self) => self.lastIndexOf(cb) === i);\n const event = {\n get type() {\n return type;\n }\n };\n if (target !== undefined) {\n Object.defineProperty(event, 'target', {\n enumerable: true,\n get() {\n return target;\n }\n });\n }\n if (data !== undefined) {\n Object.defineProperty(event, 'data', {\n enumerable: true,\n get() {\n return data;\n }\n });\n }\n if (canPreventDefault) {\n let defaultPrevented = false;\n Object.defineProperties(event, {\n defaultPrevented: {\n enumerable: true,\n get() {\n return defaultPrevented;\n }\n },\n preventDefault: {\n enumerable: true,\n value() {\n defaultPrevented = true;\n }\n }\n });\n }\n (_listenRef$current = listenRef.current) === null || _listenRef$current === void 0 ? void 0 : _listenRef$current.call(listenRef, event);\n callbacks === null || callbacks === void 0 ? void 0 : callbacks.forEach(cb => cb(event));\n return event;\n }, []);\n return React.useMemo(() => ({\n create,\n emit\n }), [create, emit]);\n}\n//# sourceMappingURL=useEventEmitter.js.map","import * as React from 'react';\n/**\n * Hook which lets child navigators add getters to be called for obtaining rehydrated state.\n */\nexport default function useKeyedChildListeners() {\n const {\n current: keyedListeners\n } = React.useRef(Object.assign(Object.create(null), {\n getState: {},\n beforeRemove: {}\n }));\n const addKeyedListener = React.useCallback((type, key, listener) => {\n // @ts-expect-error: according to ref stated above you can use `key` to index type\n keyedListeners[type][key] = listener;\n return () => {\n // @ts-expect-error: according to ref stated above you can use `key` to index type\n keyedListeners[type][key] = undefined;\n };\n }, [keyedListeners]);\n return {\n keyedListeners,\n addKeyedListener\n };\n}\n//# sourceMappingURL=useKeyedChildListeners.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationStateContext from './NavigationStateContext';\nexport default function useOptionsGetters(_ref) {\n let {\n key,\n options,\n navigation\n } = _ref;\n const optionsRef = React.useRef(options);\n const optionsGettersFromChildRef = React.useRef({});\n const {\n onOptionsChange\n } = React.useContext(NavigationBuilderContext);\n const {\n addOptionsGetter: parentAddOptionsGetter\n } = React.useContext(NavigationStateContext);\n const optionsChangeListener = React.useCallback(() => {\n const isFocused = (navigation === null || navigation === void 0 ? void 0 : navigation.isFocused()) ?? true;\n const hasChildren = Object.keys(optionsGettersFromChildRef.current).length;\n if (isFocused && !hasChildren) {\n onOptionsChange(optionsRef.current ?? {});\n }\n }, [navigation, onOptionsChange]);\n React.useEffect(() => {\n optionsRef.current = options;\n optionsChangeListener();\n return navigation === null || navigation === void 0 ? void 0 : navigation.addListener('focus', optionsChangeListener);\n }, [navigation, options, optionsChangeListener]);\n const getOptionsFromListener = React.useCallback(() => {\n for (let key in optionsGettersFromChildRef.current) {\n if (optionsGettersFromChildRef.current.hasOwnProperty(key)) {\n var _optionsGettersFromCh, _optionsGettersFromCh2;\n const result = (_optionsGettersFromCh = (_optionsGettersFromCh2 = optionsGettersFromChildRef.current)[key]) === null || _optionsGettersFromCh === void 0 ? void 0 : _optionsGettersFromCh.call(_optionsGettersFromCh2);\n\n // null means unfocused route\n if (result !== null) {\n return result;\n }\n }\n }\n return null;\n }, []);\n const getCurrentOptions = React.useCallback(() => {\n const isFocused = (navigation === null || navigation === void 0 ? void 0 : navigation.isFocused()) ?? true;\n if (!isFocused) {\n return null;\n }\n const optionsFromListener = getOptionsFromListener();\n if (optionsFromListener !== null) {\n return optionsFromListener;\n }\n return optionsRef.current;\n }, [navigation, getOptionsFromListener]);\n React.useEffect(() => {\n return parentAddOptionsGetter === null || parentAddOptionsGetter === void 0 ? void 0 : parentAddOptionsGetter(key, getCurrentOptions);\n }, [getCurrentOptions, parentAddOptionsGetter, key]);\n const addOptionsGetter = React.useCallback((key, getter) => {\n optionsGettersFromChildRef.current[key] = getter;\n optionsChangeListener();\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete optionsGettersFromChildRef.current[key];\n optionsChangeListener();\n };\n }, [optionsChangeListener]);\n return {\n addOptionsGetter,\n getCurrentOptions\n };\n}\n//# sourceMappingURL=useOptionsGetters.js.map","import * as React from 'react';\nconst MISSING_CONTEXT_ERROR = \"Couldn't find a schedule context.\";\nexport const ScheduleUpdateContext = /*#__PURE__*/React.createContext({\n scheduleUpdate() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n flushUpdates() {\n throw new Error(MISSING_CONTEXT_ERROR);\n }\n});\n\n/**\n * When screen config changes, we want to update the navigator in the same update phase.\n * However, navigation state is in the root component and React won't let us update it from a child.\n * This is a workaround for that, the scheduled update is stored in the ref without actually calling setState.\n * It lets all subsequent updates access the latest state so it stays correct.\n * Then we call setState during after the component updates.\n */\nexport default function useScheduleUpdate(callback) {\n const {\n scheduleUpdate,\n flushUpdates\n } = React.useContext(ScheduleUpdateContext);\n scheduleUpdate(callback);\n React.useEffect(flushUpdates);\n}\n//# sourceMappingURL=useScheduleUpdate.js.map","import * as React from 'react';\nconst UNINTIALIZED_STATE = {};\n\n/**\n * This is definitely not compatible with concurrent mode, but we don't have a solution for sync state yet.\n */\nexport default function useSyncState(initialState) {\n const stateRef = React.useRef(UNINTIALIZED_STATE);\n const isSchedulingRef = React.useRef(false);\n const isMountedRef = React.useRef(true);\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n if (stateRef.current === UNINTIALIZED_STATE) {\n stateRef.current =\n // @ts-expect-error: initialState is a function, but TypeScript doesn't think so\n typeof initialState === 'function' ? initialState() : initialState;\n }\n const [trackingState, setTrackingState] = React.useState(stateRef.current);\n const getState = React.useCallback(() => stateRef.current, []);\n const setState = React.useCallback(state => {\n if (state === stateRef.current || !isMountedRef.current) {\n return;\n }\n stateRef.current = state;\n if (!isSchedulingRef.current) {\n setTrackingState(state);\n }\n }, []);\n const scheduleUpdate = React.useCallback(callback => {\n isSchedulingRef.current = true;\n try {\n callback();\n } finally {\n isSchedulingRef.current = false;\n }\n }, []);\n const flushUpdates = React.useCallback(() => {\n if (!isMountedRef.current) {\n return;\n }\n\n // Make sure that the tracking state is up-to-date.\n // We call it unconditionally, but React should skip the update if state is unchanged.\n setTrackingState(stateRef.current);\n }, []);\n\n // If we're rendering and the tracking state is out of date, update it immediately\n // This will make sure that our updates are applied as early as possible.\n if (trackingState !== stateRef.current) {\n setTrackingState(stateRef.current);\n }\n const state = stateRef.current;\n React.useDebugValue(state);\n return [state, getState, setState, scheduleUpdate, flushUpdates];\n}\n//# sourceMappingURL=useSyncState.js.map","import { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport checkDuplicateRouteNames from './checkDuplicateRouteNames';\nimport checkSerializable from './checkSerializable';\nimport { NOT_INITIALIZED_ERROR } from './createNavigationContainerRef';\nimport EnsureSingleNavigator from './EnsureSingleNavigator';\nimport findFocusedRoute from './findFocusedRoute';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationContainerRefContext from './NavigationContainerRefContext';\nimport NavigationContext from './NavigationContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport UnhandledActionContext from './UnhandledActionContext';\nimport useChildListeners from './useChildListeners';\nimport useEventEmitter from './useEventEmitter';\nimport useKeyedChildListeners from './useKeyedChildListeners';\nimport useOptionsGetters from './useOptionsGetters';\nimport { ScheduleUpdateContext } from './useScheduleUpdate';\nimport useSyncState from './useSyncState';\nconst serializableWarnings = [];\nconst duplicateNameWarnings = [];\n\n/**\n * Remove `key` and `routeNames` from the state objects recursively to get partial state.\n *\n * @param state Initial state object.\n */\nconst getPartialState = state => {\n if (state === undefined) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {\n key,\n routeNames,\n ...partialState\n } = state;\n return {\n ...partialState,\n stale: true,\n routes: state.routes.map(route => {\n if (route.state === undefined) {\n return route;\n }\n return {\n ...route,\n state: getPartialState(route.state)\n };\n })\n };\n};\n\n/**\n * Container component which holds the navigation state.\n * This should be rendered at the root wrapping the whole app.\n *\n * @param props.initialState Initial state object for the navigation tree.\n * @param props.onStateChange Callback which is called with the latest navigation state when it changes.\n * @param props.children Child elements to render the content.\n * @param props.ref Ref object which refers to the navigation object containing helper methods.\n */\nconst BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function BaseNavigationContainer(_ref, ref) {\n let {\n initialState,\n onStateChange,\n onUnhandledAction,\n independent,\n children\n } = _ref;\n const parent = React.useContext(NavigationStateContext);\n if (!parent.isDefault && !independent) {\n throw new Error(\"Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, pass 'independent={true}' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them.\");\n }\n const [state, getState, setState, scheduleUpdate, flushUpdates] = useSyncState(() => getPartialState(initialState == null ? undefined : initialState));\n const isFirstMountRef = React.useRef(true);\n const navigatorKeyRef = React.useRef();\n const getKey = React.useCallback(() => navigatorKeyRef.current, []);\n const setKey = React.useCallback(key => {\n navigatorKeyRef.current = key;\n }, []);\n const {\n listeners,\n addListener\n } = useChildListeners();\n const {\n keyedListeners,\n addKeyedListener\n } = useKeyedChildListeners();\n const dispatch = React.useCallback(action => {\n if (listeners.focus[0] == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0](navigation => navigation.dispatch(action));\n }\n }, [listeners.focus]);\n const canGoBack = React.useCallback(() => {\n if (listeners.focus[0] == null) {\n return false;\n }\n const {\n result,\n handled\n } = listeners.focus[0](navigation => navigation.canGoBack());\n if (handled) {\n return result;\n } else {\n return false;\n }\n }, [listeners.focus]);\n const resetRoot = React.useCallback(state => {\n var _keyedListeners$getSt, _keyedListeners$getSt2;\n const target = (state === null || state === void 0 ? void 0 : state.key) ?? ((_keyedListeners$getSt = (_keyedListeners$getSt2 = keyedListeners.getState).root) === null || _keyedListeners$getSt === void 0 ? void 0 : _keyedListeners$getSt.call(_keyedListeners$getSt2).key);\n if (target == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0](navigation => navigation.dispatch({\n ...CommonActions.reset(state),\n target\n }));\n }\n }, [keyedListeners.getState, listeners.focus]);\n const getRootState = React.useCallback(() => {\n var _keyedListeners$getSt3, _keyedListeners$getSt4;\n return (_keyedListeners$getSt3 = (_keyedListeners$getSt4 = keyedListeners.getState).root) === null || _keyedListeners$getSt3 === void 0 ? void 0 : _keyedListeners$getSt3.call(_keyedListeners$getSt4);\n }, [keyedListeners.getState]);\n const getCurrentRoute = React.useCallback(() => {\n const state = getRootState();\n if (state == null) {\n return undefined;\n }\n const route = findFocusedRoute(state);\n return route;\n }, [getRootState]);\n const emitter = useEventEmitter();\n const {\n addOptionsGetter,\n getCurrentOptions\n } = useOptionsGetters({});\n const navigation = React.useMemo(() => ({\n ...Object.keys(CommonActions).reduce((acc, name) => {\n acc[name] = function () {\n return (\n // @ts-expect-error: this is ok\n dispatch(CommonActions[name](...arguments))\n );\n };\n return acc;\n }, {}),\n ...emitter.create('root'),\n dispatch,\n resetRoot,\n isFocused: () => true,\n canGoBack,\n getParent: () => undefined,\n getState: () => stateRef.current,\n getRootState,\n getCurrentRoute,\n getCurrentOptions,\n isReady: () => listeners.focus[0] != null\n }), [canGoBack, dispatch, emitter, getCurrentOptions, getCurrentRoute, getRootState, listeners.focus, resetRoot]);\n React.useImperativeHandle(ref, () => navigation, [navigation]);\n const onDispatchAction = React.useCallback((action, noop) => {\n emitter.emit({\n type: '__unsafe_action__',\n data: {\n action,\n noop,\n stack: stackRef.current\n }\n });\n }, [emitter]);\n const lastEmittedOptionsRef = React.useRef();\n const onOptionsChange = React.useCallback(options => {\n if (lastEmittedOptionsRef.current === options) {\n return;\n }\n lastEmittedOptionsRef.current = options;\n emitter.emit({\n type: 'options',\n data: {\n options\n }\n });\n }, [emitter]);\n const stackRef = React.useRef();\n const builderContext = React.useMemo(() => ({\n addListener,\n addKeyedListener,\n onDispatchAction,\n onOptionsChange,\n stackRef\n }), [addListener, addKeyedListener, onDispatchAction, onOptionsChange]);\n const scheduleContext = React.useMemo(() => ({\n scheduleUpdate,\n flushUpdates\n }), [scheduleUpdate, flushUpdates]);\n const isInitialRef = React.useRef(true);\n const getIsInitial = React.useCallback(() => isInitialRef.current, []);\n const context = React.useMemo(() => ({\n state,\n getState,\n setState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter\n }), [state, getState, setState, getKey, setKey, getIsInitial, addOptionsGetter]);\n const onStateChangeRef = React.useRef(onStateChange);\n const stateRef = React.useRef(state);\n React.useEffect(() => {\n isInitialRef.current = false;\n onStateChangeRef.current = onStateChange;\n stateRef.current = state;\n });\n React.useEffect(() => {\n const hydratedState = getRootState();\n if (process.env.NODE_ENV !== 'production') {\n if (hydratedState !== undefined) {\n const serializableResult = checkSerializable(hydratedState);\n if (!serializableResult.serializable) {\n const {\n location,\n reason\n } = serializableResult;\n let path = '';\n let pointer = hydratedState;\n let params = false;\n for (let i = 0; i < location.length; i++) {\n const curr = location[i];\n const prev = location[i - 1];\n pointer = pointer[curr];\n if (!params && curr === 'state') {\n continue;\n } else if (!params && curr === 'routes') {\n if (path) {\n path += ' > ';\n }\n } else if (!params && typeof curr === 'number' && prev === 'routes') {\n var _pointer;\n path += (_pointer = pointer) === null || _pointer === void 0 ? void 0 : _pointer.name;\n } else if (!params) {\n path += ` > ${curr}`;\n params = true;\n } else {\n if (typeof curr === 'number' || /^[0-9]+$/.test(curr)) {\n path += `[${curr}]`;\n } else if (/^[a-z$_]+$/i.test(curr)) {\n path += `.${curr}`;\n } else {\n path += `[${JSON.stringify(curr)}]`;\n }\n }\n }\n const message = `Non-serializable values were found in the navigation state. Check:\\n\\n${path} (${reason})\\n\\nThis can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-warning-non-serializable-values-were-found-in-the-navigation-state for more details.`;\n if (!serializableWarnings.includes(message)) {\n serializableWarnings.push(message);\n console.warn(message);\n }\n }\n const duplicateRouteNamesResult = checkDuplicateRouteNames(hydratedState);\n if (duplicateRouteNamesResult.length) {\n const message = `Found screens with the same name nested inside one another. Check:\\n${duplicateRouteNamesResult.map(locations => `\\n${locations.join(', ')}`)}\\n\\nThis can cause confusing behavior during navigation. Consider using unique names for each screen instead.`;\n if (!duplicateNameWarnings.includes(message)) {\n duplicateNameWarnings.push(message);\n console.warn(message);\n }\n }\n }\n }\n emitter.emit({\n type: 'state',\n data: {\n state\n }\n });\n if (!isFirstMountRef.current && onStateChangeRef.current) {\n onStateChangeRef.current(hydratedState);\n }\n isFirstMountRef.current = false;\n }, [getRootState, emitter, state]);\n const defaultOnUnhandledAction = React.useCallback(action => {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n const payload = action.payload;\n let message = `The action '${action.type}'${payload ? ` with payload ${JSON.stringify(action.payload)}` : ''} was not handled by any navigator.`;\n switch (action.type) {\n case 'NAVIGATE':\n case 'PUSH':\n case 'REPLACE':\n case 'JUMP_TO':\n if (payload !== null && payload !== void 0 && payload.name) {\n message += `\\n\\nDo you have a screen named '${payload.name}'?\\n\\nIf you're trying to navigate to a screen in a nested navigator, see https://reactnavigation.org/docs/nesting-navigators#navigating-to-a-screen-in-a-nested-navigator.`;\n } else {\n message += `\\n\\nYou need to pass the name of the screen to navigate to.\\n\\nSee https://reactnavigation.org/docs/navigation-actions for usage.`;\n }\n break;\n case 'GO_BACK':\n case 'POP':\n case 'POP_TO_TOP':\n message += `\\n\\nIs there any screen to go back to?`;\n break;\n case 'OPEN_DRAWER':\n case 'CLOSE_DRAWER':\n case 'TOGGLE_DRAWER':\n message += `\\n\\nIs your screen inside a Drawer navigator?`;\n break;\n }\n message += `\\n\\nThis is a development-only warning and won't be shown in production.`;\n console.error(message);\n }, []);\n let element = /*#__PURE__*/React.createElement(NavigationContainerRefContext.Provider, {\n value: navigation\n }, /*#__PURE__*/React.createElement(ScheduleUpdateContext.Provider, {\n value: scheduleContext\n }, /*#__PURE__*/React.createElement(NavigationBuilderContext.Provider, {\n value: builderContext\n }, /*#__PURE__*/React.createElement(NavigationStateContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(UnhandledActionContext.Provider, {\n value: onUnhandledAction ?? defaultOnUnhandledAction\n }, /*#__PURE__*/React.createElement(EnsureSingleNavigator, null, children))))));\n if (independent) {\n // We need to clear any existing contexts for nested independent container to work correctly\n element = /*#__PURE__*/React.createElement(NavigationRouteContext.Provider, {\n value: undefined\n }, /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: undefined\n }, element));\n }\n return element;\n});\nexport default BaseNavigationContainer;\n//# sourceMappingURL=BaseNavigationContainer.js.map","/**\n * Empty component used for grouping screen configs.\n */\nexport default function Group(_) {\n /* istanbul ignore next */\n return null;\n}\n//# sourceMappingURL=Group.js.map","import { NavigationContext, NavigationRouteContext } from '@react-navigation/native';\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { useSafeAreaFrame, useSafeAreaInsets } from 'react-native-safe-area-context';\nimport Background from './Background';\nimport getDefaultHeaderHeight from './Header/getDefaultHeaderHeight';\nimport HeaderHeightContext from './Header/HeaderHeightContext';\nimport HeaderShownContext from './Header/HeaderShownContext';\nexport default function Screen(props) {\n const dimensions = useSafeAreaFrame();\n const insets = useSafeAreaInsets();\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n const parentHeaderHeight = React.useContext(HeaderHeightContext);\n const {\n focused,\n modal = false,\n header,\n headerShown = true,\n headerTransparent,\n headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,\n navigation,\n route,\n children,\n style\n } = props;\n const [headerHeight, setHeaderHeight] = React.useState(() => getDefaultHeaderHeight(dimensions, modal, headerStatusBarHeight));\n return /*#__PURE__*/React.createElement(Background, {\n accessibilityElementsHidden: !focused,\n importantForAccessibility: focused ? 'auto' : 'no-hide-descendants',\n style: [styles.container, style]\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.content\n }, /*#__PURE__*/React.createElement(HeaderShownContext.Provider, {\n value: isParentHeaderShown || headerShown !== false\n }, /*#__PURE__*/React.createElement(HeaderHeightContext.Provider, {\n value: headerShown ? headerHeight : parentHeaderHeight ?? 0\n }, children))), headerShown ? /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: navigation\n }, /*#__PURE__*/React.createElement(NavigationRouteContext.Provider, {\n value: route\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: e => {\n const {\n height\n } = e.nativeEvent.layout;\n setHeaderHeight(height);\n },\n style: headerTransparent ? styles.absolute : null\n }, header))) : null);\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'column-reverse'\n },\n // This is necessary to avoid applying 'column-reverse' to screen content\n content: {\n flex: 1\n },\n absolute: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0\n }\n});\n//# sourceMappingURL=Screen.js.map","import Group from './Group';\nimport Screen from './Screen';\n/**\n * Higher order component to create a `Navigator` and `Screen` pair.\n * Custom navigators should wrap the navigator component in `createNavigator` before exporting.\n *\n * @param Navigator The navigtor component to wrap.\n * @returns Factory method to create a `Navigator` and `Screen` pair.\n */\nexport default function createNavigatorFactory(Navigator) {\n return function () {\n if (arguments[0] !== undefined) {\n throw new Error(\"Creating a navigator doesn't take an argument. Maybe you are trying to use React Navigation 4 API? See https://reactnavigation.org/docs/hello-react-navigation for the latest API and guides.\");\n }\n return {\n Navigator,\n Group,\n Screen\n };\n };\n}\n//# sourceMappingURL=createNavigatorFactory.js.map","import * as React from 'react';\n\n/**\n * Context which holds the values for the current navigation tree.\n * Intended for use in SSR. This is not safe to use on the client.\n */\nconst CurrentRenderContext = /*#__PURE__*/React.createContext(undefined);\nexport default CurrentRenderContext;\n//# sourceMappingURL=CurrentRenderContext.js.map","export default function getActionFromState(state, options) {\n var _normalizedConfig$scr;\n // Create a normalized configs object which will be easier to use\n const normalizedConfig = options ? createNormalizedConfigItem(options) : {};\n const routes = state.index != null ? state.routes.slice(0, state.index + 1) : state.routes;\n if (routes.length === 0) {\n return undefined;\n }\n if (!(routes.length === 1 && routes[0].key === undefined || routes.length === 2 && routes[0].key === undefined && routes[0].name === (normalizedConfig === null || normalizedConfig === void 0 ? void 0 : normalizedConfig.initialRouteName) && routes[1].key === undefined)) {\n return {\n type: 'RESET',\n payload: state\n };\n }\n const route = state.routes[state.index ?? state.routes.length - 1];\n let current = route === null || route === void 0 ? void 0 : route.state;\n let config = normalizedConfig === null || normalizedConfig === void 0 ? void 0 : (_normalizedConfig$scr = normalizedConfig.screens) === null || _normalizedConfig$scr === void 0 ? void 0 : _normalizedConfig$scr[route === null || route === void 0 ? void 0 : route.name];\n let params = {\n ...route.params\n };\n let payload = route ? {\n name: route.name,\n path: route.path,\n params\n } : undefined;\n while (current) {\n var _config, _config2, _config2$screens;\n if (current.routes.length === 0) {\n return undefined;\n }\n const routes = current.index != null ? current.routes.slice(0, current.index + 1) : current.routes;\n const route = routes[routes.length - 1];\n\n // Explicitly set to override existing value when merging params\n Object.assign(params, {\n initial: undefined,\n screen: undefined,\n params: undefined,\n state: undefined\n });\n if (routes.length === 1 && routes[0].key === undefined) {\n params.initial = true;\n params.screen = route.name;\n } else if (routes.length === 2 && routes[0].key === undefined && routes[0].name === ((_config = config) === null || _config === void 0 ? void 0 : _config.initialRouteName) && routes[1].key === undefined) {\n params.initial = false;\n params.screen = route.name;\n } else {\n params.state = current;\n break;\n }\n if (route.state) {\n params.params = {\n ...route.params\n };\n params = params.params;\n } else {\n params.path = route.path;\n params.params = route.params;\n }\n current = route.state;\n config = (_config2 = config) === null || _config2 === void 0 ? void 0 : (_config2$screens = _config2.screens) === null || _config2$screens === void 0 ? void 0 : _config2$screens[route.name];\n }\n if (!payload) {\n return;\n }\n\n // Try to construct payload for a `NAVIGATE` action from the state\n // This lets us preserve the navigation state and not lose it\n return {\n type: 'NAVIGATE',\n payload\n };\n}\nconst createNormalizedConfigItem = config => typeof config === 'object' && config != null ? {\n initialRouteName: config.initialRouteName,\n screens: config.screens != null ? createNormalizedConfigs(config.screens) : undefined\n} : {};\nconst createNormalizedConfigs = options => Object.entries(options).reduce((acc, _ref) => {\n let [k, v] = _ref;\n acc[k] = createNormalizedConfigItem(v);\n return acc;\n}, {});\n//# sourceMappingURL=getActionFromState.js.map","import * as React from 'react';\n/**\n * Utilites such as `getFocusedRouteNameFromRoute` need to access state.\n * So we need a way to suppress the warning for those use cases.\n * This is fine since they are internal utilities and this is not public API.\n */\nexport const CHILD_STATE = Symbol('CHILD_STATE');\n\n/**\n * Hook to cache route props for each screen in the navigator.\n * This lets add warnings and modifications to the route object but keep references between renders.\n */\nexport default function useRouteCache(routes) {\n // Cache object which holds route objects for each screen\n const cache = React.useMemo(() => ({\n current: new Map()\n }), []);\n if (process.env.NODE_ENV === 'production') {\n // We don't want the overhead of creating extra maps every render in prod\n return routes;\n }\n cache.current = routes.reduce((acc, route) => {\n const previous = cache.current.get(route);\n if (previous) {\n // If a cached route object already exists, reuse it\n acc.set(route, previous);\n } else {\n const {\n state,\n ...proxy\n } = route;\n Object.defineProperty(proxy, CHILD_STATE, {\n enumerable: false,\n value: state\n });\n acc.set(route, proxy);\n }\n return acc;\n }, new Map());\n return Array.from(cache.current.values());\n}\n//# sourceMappingURL=useRouteCache.js.map","import { CHILD_STATE } from './useRouteCache';\nexport default function getFocusedRouteNameFromRoute(route) {\n // @ts-expect-error: this isn't in type definitions coz we want this private\n const state = route[CHILD_STATE] ?? route.state;\n const params = route.params;\n const routeName = state ?\n // Get the currently active route name in the nested navigator\n state.routes[\n // If we have a partial state without index, for tab/drawer, first screen will be focused one, and last for stack\n // The type property will only exist for rehydrated state and not for state from deep link\n state.index ?? (typeof state.type === 'string' && state.type !== 'stack' ? 0 : state.routes.length - 1)].name :\n // If state doesn't exist, we need to default to `screen` param if available\n typeof (params === null || params === void 0 ? void 0 : params.screen) === 'string' ? params.screen : undefined;\n return routeName;\n}\n//# sourceMappingURL=getFocusedRouteNameFromRoute.js.map","// Object.fromEntries is not available in older iOS versions\nexport default function fromEntries(entries) {\n return entries.reduce((acc, _ref) => {\n let [k, v] = _ref;\n if (acc.hasOwnProperty(k)) {\n throw new Error(`A value for key '${k}' already exists in the object.`);\n }\n acc[k] = v;\n return acc;\n }, {});\n}\n//# sourceMappingURL=fromEntries.js.map","const formatToList = items => items.map(key => `- ${key}`).join('\\n');\nexport default function validatePathConfig(config) {\n let root = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const validKeys = ['initialRouteName', 'screens'];\n if (!root) {\n validKeys.push('path', 'exact', 'stringify', 'parse');\n }\n const invalidKeys = Object.keys(config).filter(key => !validKeys.includes(key));\n if (invalidKeys.length) {\n throw new Error(`Found invalid properties in the configuration:\\n${formatToList(invalidKeys)}\\n\\nDid you forget to specify them under a 'screens' property?\\n\\nYou can only specify the following properties:\\n${formatToList(validKeys)}\\n\\nSee https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.`);\n }\n if (config.screens) {\n Object.entries(config.screens).forEach(_ref => {\n let [_, value] = _ref;\n if (typeof value !== 'string') {\n validatePathConfig(value, false);\n }\n });\n }\n}\n//# sourceMappingURL=validatePathConfig.js.map","import * as queryString from 'query-string';\nimport fromEntries from './fromEntries';\nimport validatePathConfig from './validatePathConfig';\nconst getActiveRoute = state => {\n const route = typeof state.index === 'number' ? state.routes[state.index] : state.routes[state.routes.length - 1];\n if (route.state) {\n return getActiveRoute(route.state);\n }\n return route;\n};\n\n/**\n * Utility to serialize a navigation state object to a path string.\n *\n * @example\n * ```js\n * getPathFromState(\n * {\n * routes: [\n * {\n * name: 'Chat',\n * params: { author: 'Jane', id: 42 },\n * },\n * ],\n * },\n * {\n * screens: {\n * Chat: {\n * path: 'chat/:author/:id',\n * stringify: { author: author => author.toLowerCase() }\n * }\n * }\n * }\n * )\n * ```\n *\n * @param state Navigation state to serialize.\n * @param options Extra options to fine-tune how to serialize the path.\n * @returns Path representing the state, e.g. /foo/bar?count=42.\n */\nexport default function getPathFromState(state, options) {\n if (state == null) {\n throw Error(\"Got 'undefined' for the navigation state. You must pass a valid state object.\");\n }\n if (options) {\n validatePathConfig(options);\n }\n\n // Create a normalized configs object which will be easier to use\n const configs = options !== null && options !== void 0 && options.screens ? createNormalizedConfigs(options === null || options === void 0 ? void 0 : options.screens) : {};\n let path = '/';\n let current = state;\n const allParams = {};\n while (current) {\n let index = typeof current.index === 'number' ? current.index : 0;\n let route = current.routes[index];\n let pattern;\n let focusedParams;\n let focusedRoute = getActiveRoute(state);\n let currentOptions = configs;\n\n // Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined\n let nestedRouteNames = [];\n let hasNext = true;\n while (route.name in currentOptions && hasNext) {\n pattern = currentOptions[route.name].pattern;\n nestedRouteNames.push(route.name);\n if (route.params) {\n var _currentOptions$route;\n const stringify = (_currentOptions$route = currentOptions[route.name]) === null || _currentOptions$route === void 0 ? void 0 : _currentOptions$route.stringify;\n const currentParams = fromEntries(Object.entries(route.params).map(_ref => {\n let [key, value] = _ref;\n return [key, stringify !== null && stringify !== void 0 && stringify[key] ? stringify[key](value) : String(value)];\n }));\n if (pattern) {\n Object.assign(allParams, currentParams);\n }\n if (focusedRoute === route) {\n var _pattern;\n // If this is the focused route, keep the params for later use\n // We save it here since it's been stringified already\n focusedParams = {\n ...currentParams\n };\n (_pattern = pattern) === null || _pattern === void 0 ? void 0 : _pattern.split('/').filter(p => p.startsWith(':'))\n // eslint-disable-next-line no-loop-func\n .forEach(p => {\n const name = getParamName(p);\n\n // Remove the params present in the pattern since we'll only use the rest for query string\n if (focusedParams) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete focusedParams[name];\n }\n });\n }\n }\n\n // If there is no `screens` property or no nested state, we return pattern\n if (!currentOptions[route.name].screens || route.state === undefined) {\n hasNext = false;\n } else {\n index = typeof route.state.index === 'number' ? route.state.index : route.state.routes.length - 1;\n const nextRoute = route.state.routes[index];\n const nestedConfig = currentOptions[route.name].screens;\n\n // if there is config for next route name, we go deeper\n if (nestedConfig && nextRoute.name in nestedConfig) {\n route = nextRoute;\n currentOptions = nestedConfig;\n } else {\n // If not, there is no sense in going deeper in config\n hasNext = false;\n }\n }\n }\n if (pattern === undefined) {\n pattern = nestedRouteNames.join('/');\n }\n if (currentOptions[route.name] !== undefined) {\n path += pattern.split('/').map(p => {\n const name = getParamName(p);\n\n // We don't know what to show for wildcard patterns\n // Showing the route name seems ok, though whatever we show here will be incorrect\n // Since the page doesn't actually exist\n if (p === '*') {\n return route.name;\n }\n\n // If the path has a pattern for a param, put the param in the path\n if (p.startsWith(':')) {\n const value = allParams[name];\n if (value === undefined && p.endsWith('?')) {\n // Optional params without value assigned in route.params should be ignored\n return '';\n }\n return encodeURIComponent(value);\n }\n return encodeURIComponent(p);\n }).join('/');\n } else {\n path += encodeURIComponent(route.name);\n }\n if (!focusedParams) {\n focusedParams = focusedRoute.params;\n }\n if (route.state) {\n path += '/';\n } else if (focusedParams) {\n for (let param in focusedParams) {\n if (focusedParams[param] === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete focusedParams[param];\n }\n }\n const query = queryString.stringify(focusedParams, {\n sort: false\n });\n if (query) {\n path += `?${query}`;\n }\n }\n current = route.state;\n }\n\n // Remove multiple as well as trailing slashes\n path = path.replace(/\\/+/g, '/');\n path = path.length > 1 ? path.replace(/\\/$/, '') : path;\n return path;\n}\nconst getParamName = pattern => pattern.replace(/^:/, '').replace(/\\?$/, '');\nconst joinPaths = function () {\n for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {\n paths[_key] = arguments[_key];\n }\n return [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');\n};\nconst createConfigItem = (config, parentPattern) => {\n var _pattern2;\n if (typeof config === 'string') {\n // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern\n const pattern = parentPattern ? joinPaths(parentPattern, config) : config;\n return {\n pattern\n };\n }\n\n // If an object is specified as the value (e.g. Foo: { ... }),\n // It can have `path` property and `screens` prop which has nested configs\n let pattern;\n if (config.exact && config.path === undefined) {\n throw new Error(\"A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.\");\n }\n pattern = config.exact !== true ? joinPaths(parentPattern || '', config.path || '') : config.path || '';\n const screens = config.screens ? createNormalizedConfigs(config.screens, pattern) : undefined;\n return {\n // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.\n pattern: (_pattern2 = pattern) === null || _pattern2 === void 0 ? void 0 : _pattern2.split('/').filter(Boolean).join('/'),\n stringify: config.stringify,\n screens\n };\n};\nconst createNormalizedConfigs = (options, pattern) => fromEntries(Object.entries(options).map(_ref2 => {\n let [name, c] = _ref2;\n const result = createConfigItem(c, pattern);\n return [name, result];\n}));\n//# sourceMappingURL=getPathFromState.js.map","import escape from 'escape-string-regexp';\nimport * as queryString from 'query-string';\nimport findFocusedRoute from './findFocusedRoute';\nimport validatePathConfig from './validatePathConfig';\n/**\n * Utility to parse a path string to initial state object accepted by the container.\n * This is useful for deep linking when we need to handle the incoming URL.\n *\n * @example\n * ```js\n * getStateFromPath(\n * '/chat/jane/42',\n * {\n * screens: {\n * Chat: {\n * path: 'chat/:author/:id',\n * parse: { id: Number }\n * }\n * }\n * }\n * )\n * ```\n * @param path Path string to parse and convert, e.g. /foo/bar?count=42.\n * @param options Extra options to fine-tune how to parse the path.\n */\nexport default function getStateFromPath(path, options) {\n if (options) {\n validatePathConfig(options);\n }\n let initialRoutes = [];\n if (options !== null && options !== void 0 && options.initialRouteName) {\n initialRoutes.push({\n initialRouteName: options.initialRouteName,\n parentScreens: []\n });\n }\n const screens = options === null || options === void 0 ? void 0 : options.screens;\n let remaining = path.replace(/\\/+/g, '/') // Replace multiple slash (//) with single ones\n .replace(/^\\//, '') // Remove extra leading slash\n .replace(/\\?.*$/, ''); // Remove query params which we will handle later\n\n // Make sure there is a trailing slash\n remaining = remaining.endsWith('/') ? remaining : `${remaining}/`;\n if (screens === undefined) {\n // When no config is specified, use the path segments as route names\n const routes = remaining.split('/').filter(Boolean).map(segment => {\n const name = decodeURIComponent(segment);\n return {\n name\n };\n });\n if (routes.length) {\n return createNestedStateObject(path, routes, initialRoutes);\n }\n return undefined;\n }\n\n // Create a normalized configs array which will be easier to use\n const configs = [].concat(...Object.keys(screens).map(key => createNormalizedConfigs(key, screens, [], initialRoutes, []))).sort((a, b) => {\n // Sort config so that:\n // - the most exhaustive ones are always at the beginning\n // - patterns with wildcard are always at the end\n\n // If 2 patterns are same, move the one with less route names up\n // This is an error state, so it's only useful for consistent error messages\n if (a.pattern === b.pattern) {\n return b.routeNames.join('>').localeCompare(a.routeNames.join('>'));\n }\n\n // If one of the patterns starts with the other, it's more exhaustive\n // So move it up\n if (a.pattern.startsWith(b.pattern)) {\n return -1;\n }\n if (b.pattern.startsWith(a.pattern)) {\n return 1;\n }\n const aParts = a.pattern.split('/');\n const bParts = b.pattern.split('/');\n for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {\n // if b is longer, b get higher priority\n if (aParts[i] == null) {\n return 1;\n }\n // if a is longer, a get higher priority\n if (bParts[i] == null) {\n return -1;\n }\n const aWildCard = aParts[i] === '*' || aParts[i].startsWith(':');\n const bWildCard = bParts[i] === '*' || bParts[i].startsWith(':');\n // if both are wildcard we compare next component\n if (aWildCard && bWildCard) {\n continue;\n }\n // if only a is wild card, b get higher priority\n if (aWildCard) {\n return 1;\n }\n // if only b is wild card, a get higher priority\n if (bWildCard) {\n return -1;\n }\n }\n return bParts.length - aParts.length;\n });\n\n // Check for duplicate patterns in the config\n configs.reduce((acc, config) => {\n if (acc[config.pattern]) {\n const a = acc[config.pattern].routeNames;\n const b = config.routeNames;\n\n // It's not a problem if the path string omitted from a inner most screen\n // For example, it's ok if a path resolves to `A > B > C` or `A > B`\n const intersects = a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it);\n if (!intersects) {\n throw new Error(`Found conflicting screens with the same pattern. The pattern '${config.pattern}' resolves to both '${a.join(' > ')}' and '${b.join(' > ')}'. Patterns must be unique and cannot resolve to more than one screen.`);\n }\n }\n return Object.assign(acc, {\n [config.pattern]: config\n });\n }, {});\n if (remaining === '/') {\n // We need to add special handling of empty path so navigation to empty path also works\n // When handling empty path, we should only look at the root level config\n const match = configs.find(config => config.path === '' && config.routeNames.every(\n // Make sure that none of the parent configs have a non-empty path defined\n name => {\n var _configs$find;\n return !((_configs$find = configs.find(c => c.screen === name)) !== null && _configs$find !== void 0 && _configs$find.path);\n }));\n if (match) {\n return createNestedStateObject(path, match.routeNames.map(name => ({\n name\n })), initialRoutes, configs);\n }\n return undefined;\n }\n let result;\n let current;\n\n // We match the whole path against the regex instead of segments\n // This makes sure matches such as wildcard will catch any unmatched routes, even if nested\n const {\n routes,\n remainingPath\n } = matchAgainstConfigs(remaining, configs.map(c => ({\n ...c,\n // Add `$` to the regex to make sure it matches till end of the path and not just beginning\n regex: c.regex ? new RegExp(c.regex.source + '$') : undefined\n })));\n if (routes !== undefined) {\n // This will always be empty if full path matched\n current = createNestedStateObject(path, routes, initialRoutes, configs);\n remaining = remainingPath;\n result = current;\n }\n if (current == null || result == null) {\n return undefined;\n }\n return result;\n}\nconst joinPaths = function () {\n for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {\n paths[_key] = arguments[_key];\n }\n return [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');\n};\nconst matchAgainstConfigs = (remaining, configs) => {\n let routes;\n let remainingPath = remaining;\n\n // Go through all configs, and see if the next path segment matches our regex\n for (const config of configs) {\n if (!config.regex) {\n continue;\n }\n const match = remainingPath.match(config.regex);\n\n // If our regex matches, we need to extract params from the path\n if (match) {\n var _config$pattern;\n const matchedParams = (_config$pattern = config.pattern) === null || _config$pattern === void 0 ? void 0 : _config$pattern.split('/').filter(p => p.startsWith(':')).reduce((acc, p, i) => Object.assign(acc, {\n // The param segments appear every second item starting from 2 in the regex match result\n [p]: match[(i + 1) * 2].replace(/\\//, '')\n }), {});\n routes = config.routeNames.map(name => {\n var _config$path;\n const config = configs.find(c => c.screen === name);\n const params = config === null || config === void 0 ? void 0 : (_config$path = config.path) === null || _config$path === void 0 ? void 0 : _config$path.split('/').filter(p => p.startsWith(':')).reduce((acc, p) => {\n const value = matchedParams[p];\n if (value) {\n var _config$parse;\n const key = p.replace(/^:/, '').replace(/\\?$/, '');\n acc[key] = (_config$parse = config.parse) !== null && _config$parse !== void 0 && _config$parse[key] ? config.parse[key](value) : value;\n }\n return acc;\n }, {});\n if (params && Object.keys(params).length) {\n return {\n name,\n params\n };\n }\n return {\n name\n };\n });\n remainingPath = remainingPath.replace(match[1], '');\n break;\n }\n }\n return {\n routes,\n remainingPath\n };\n};\nconst createNormalizedConfigs = function (screen, routeConfig) {\n let routeNames = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n let initials = arguments.length > 3 ? arguments[3] : undefined;\n let parentScreens = arguments.length > 4 ? arguments[4] : undefined;\n let parentPattern = arguments.length > 5 ? arguments[5] : undefined;\n const configs = [];\n routeNames.push(screen);\n parentScreens.push(screen);\n\n // @ts-expect-error: we can't strongly typecheck this for now\n const config = routeConfig[screen];\n if (typeof config === 'string') {\n // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern\n const pattern = parentPattern ? joinPaths(parentPattern, config) : config;\n configs.push(createConfigItem(screen, routeNames, pattern, config));\n } else if (typeof config === 'object') {\n let pattern;\n\n // if an object is specified as the value (e.g. Foo: { ... }),\n // it can have `path` property and\n // it could have `screens` prop which has nested configs\n if (typeof config.path === 'string') {\n if (config.exact && config.path === undefined) {\n throw new Error(\"A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.\");\n }\n pattern = config.exact !== true ? joinPaths(parentPattern || '', config.path || '') : config.path || '';\n configs.push(createConfigItem(screen, routeNames, pattern, config.path, config.parse));\n }\n if (config.screens) {\n // property `initialRouteName` without `screens` has no purpose\n if (config.initialRouteName) {\n initials.push({\n initialRouteName: config.initialRouteName,\n parentScreens\n });\n }\n Object.keys(config.screens).forEach(nestedConfig => {\n const result = createNormalizedConfigs(nestedConfig, config.screens, routeNames, initials, [...parentScreens], pattern ?? parentPattern);\n configs.push(...result);\n });\n }\n }\n routeNames.pop();\n return configs;\n};\nconst createConfigItem = (screen, routeNames, pattern, path, parse) => {\n // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.\n pattern = pattern.split('/').filter(Boolean).join('/');\n const regex = pattern ? new RegExp(`^(${pattern.split('/').map(it => {\n if (it.startsWith(':')) {\n return `(([^/]+\\\\/)${it.endsWith('?') ? '?' : ''})`;\n }\n return `${it === '*' ? '.*' : escape(it)}\\\\/`;\n }).join('')})`) : undefined;\n return {\n screen,\n regex,\n pattern,\n path,\n // The routeNames array is mutated, so copy it to keep the current state\n routeNames: [...routeNames],\n parse\n };\n};\nconst findParseConfigForRoute = (routeName, flatConfig) => {\n for (const config of flatConfig) {\n if (routeName === config.routeNames[config.routeNames.length - 1]) {\n return config.parse;\n }\n }\n return undefined;\n};\n\n// Try to find an initial route connected with the one passed\nconst findInitialRoute = (routeName, parentScreens, initialRoutes) => {\n for (const config of initialRoutes) {\n if (parentScreens.length === config.parentScreens.length) {\n let sameParents = true;\n for (let i = 0; i < parentScreens.length; i++) {\n if (parentScreens[i].localeCompare(config.parentScreens[i]) !== 0) {\n sameParents = false;\n break;\n }\n }\n if (sameParents) {\n return routeName !== config.initialRouteName ? config.initialRouteName : undefined;\n }\n }\n }\n return undefined;\n};\n\n// returns state object with values depending on whether\n// it is the end of state and if there is initialRoute for this level\nconst createStateObject = (initialRoute, route, isEmpty) => {\n if (isEmpty) {\n if (initialRoute) {\n return {\n index: 1,\n routes: [{\n name: initialRoute\n }, route]\n };\n } else {\n return {\n routes: [route]\n };\n }\n } else {\n if (initialRoute) {\n return {\n index: 1,\n routes: [{\n name: initialRoute\n }, {\n ...route,\n state: {\n routes: []\n }\n }]\n };\n } else {\n return {\n routes: [{\n ...route,\n state: {\n routes: []\n }\n }]\n };\n }\n }\n};\nconst createNestedStateObject = (path, routes, initialRoutes, flatConfig) => {\n let state;\n let route = routes.shift();\n const parentScreens = [];\n let initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);\n parentScreens.push(route.name);\n state = createStateObject(initialRoute, route, routes.length === 0);\n if (routes.length > 0) {\n let nestedState = state;\n while (route = routes.shift()) {\n initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);\n const nestedStateIndex = nestedState.index || nestedState.routes.length - 1;\n nestedState.routes[nestedStateIndex].state = createStateObject(initialRoute, route, routes.length === 0);\n if (routes.length > 0) {\n nestedState = nestedState.routes[nestedStateIndex].state;\n }\n parentScreens.push(route.name);\n }\n }\n route = findFocusedRoute(state);\n route.path = path;\n const params = parseQueryParams(path, flatConfig ? findParseConfigForRoute(route.name, flatConfig) : undefined);\n if (params) {\n route.params = {\n ...route.params,\n ...params\n };\n }\n return state;\n};\nconst parseQueryParams = (path, parseConfig) => {\n const query = path.split('?')[1];\n const params = queryString.parse(query);\n if (parseConfig) {\n Object.keys(params).forEach(name => {\n if (Object.hasOwnProperty.call(parseConfig, name) && typeof params[name] === 'string') {\n params[name] = parseConfig[name](params[name]);\n }\n });\n }\n return Object.keys(params).length ? params : undefined;\n};\n//# sourceMappingURL=getStateFromPath.js.map","import * as React from 'react';\n/**\n * Context which holds the navigation helpers of the parent navigator.\n * Navigators should use this context in their view component.\n */\nconst NavigationHelpersContext = /*#__PURE__*/React.createContext(undefined);\nexport default NavigationHelpersContext;\n//# sourceMappingURL=NavigationHelpersContext.js.map","import * as React from 'react';\n\n/**\n * A type of an object that have a route key as an object key\n * and a value whether to prevent that route.\n */\n\nconst PreventRemoveContext = /*#__PURE__*/React.createContext(undefined);\nexport default PreventRemoveContext;\n//# sourceMappingURL=PreventRemoveContext.js.map","import { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\nimport useLatestCallback from 'use-latest-callback';\nimport NavigationHelpersContext from './NavigationHelpersContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport PreventRemoveContext from './PreventRemoveContext';\n/**\n * Util function to transform map of prevented routes to a simpler object.\n */\nconst transformPreventedRoutes = preventedRoutesMap => {\n const preventedRoutesToTransform = [...preventedRoutesMap.values()];\n const preventedRoutes = preventedRoutesToTransform.reduce((acc, _ref) => {\n var _acc$routeKey;\n let {\n routeKey,\n preventRemove\n } = _ref;\n acc[routeKey] = {\n preventRemove: ((_acc$routeKey = acc[routeKey]) === null || _acc$routeKey === void 0 ? void 0 : _acc$routeKey.preventRemove) || preventRemove\n };\n return acc;\n }, {});\n return preventedRoutes;\n};\n\n/**\n * Component used for managing which routes have to be prevented from removal in native-stack.\n */\nexport default function PreventRemoveProvider(_ref2) {\n let {\n children\n } = _ref2;\n const [parentId] = React.useState(() => nanoid());\n const [preventedRoutesMap, setPreventedRoutesMap] = React.useState(new Map());\n const navigation = React.useContext(NavigationHelpersContext);\n const route = React.useContext(NavigationRouteContext);\n const preventRemoveContextValue = React.useContext(PreventRemoveContext);\n // take `setPreventRemove` from parent context - if exist it means we're in a nested context\n const setParentPrevented = preventRemoveContextValue === null || preventRemoveContextValue === void 0 ? void 0 : preventRemoveContextValue.setPreventRemove;\n const setPreventRemove = useLatestCallback((id, routeKey, preventRemove) => {\n if (preventRemove && (navigation == null || navigation !== null && navigation !== void 0 && navigation.getState().routes.every(route => route.key !== routeKey))) {\n throw new Error(`Couldn't find a route with the key ${routeKey}. Is your component inside NavigationContent?`);\n }\n setPreventedRoutesMap(prevPrevented => {\n var _prevPrevented$get, _prevPrevented$get2;\n // values haven't changed - do nothing\n if (routeKey === ((_prevPrevented$get = prevPrevented.get(id)) === null || _prevPrevented$get === void 0 ? void 0 : _prevPrevented$get.routeKey) && preventRemove === ((_prevPrevented$get2 = prevPrevented.get(id)) === null || _prevPrevented$get2 === void 0 ? void 0 : _prevPrevented$get2.preventRemove)) {\n return prevPrevented;\n }\n const nextPrevented = new Map(prevPrevented);\n if (preventRemove) {\n nextPrevented.set(id, {\n routeKey,\n preventRemove\n });\n } else {\n nextPrevented.delete(id);\n }\n return nextPrevented;\n });\n });\n const isPrevented = [...preventedRoutesMap.values()].some(_ref3 => {\n let {\n preventRemove\n } = _ref3;\n return preventRemove;\n });\n React.useEffect(() => {\n if ((route === null || route === void 0 ? void 0 : route.key) !== undefined && setParentPrevented !== undefined) {\n // when route is defined (and setParentPrevented) it means we're in a nested stack\n // route.key then will be the route key of parent\n setParentPrevented(parentId, route.key, isPrevented);\n return () => {\n setParentPrevented(parentId, route.key, false);\n };\n }\n return;\n }, [parentId, isPrevented, route === null || route === void 0 ? void 0 : route.key, setParentPrevented]);\n const value = React.useMemo(() => ({\n setPreventRemove,\n preventedRoutes: transformPreventedRoutes(preventedRoutesMap)\n }), [setPreventRemove, preventedRoutesMap]);\n return /*#__PURE__*/React.createElement(PreventRemoveContext.Provider, {\n value: value\n }, children);\n}\n//# sourceMappingURL=PreventRemoveProvider.js.map","export class PrivateValueStore {}\n//# sourceMappingURL=types.js.map","import * as React from 'react';\nimport NavigationContainerRefContext from './NavigationContainerRefContext';\nimport NavigationContext from './NavigationContext';\n/**\n * Hook to access the navigation prop of the parent screen anywhere.\n *\n * @returns Navigation prop of the parent screen.\n */\nexport default function useNavigation() {\n const root = React.useContext(NavigationContainerRefContext);\n const navigation = React.useContext(NavigationContext);\n if (navigation === undefined && root === undefined) {\n throw new Error(\"Couldn't find a navigation object. Is your component inside NavigationContainer?\");\n }\n\n // FIXME: Figure out a better way to do this\n return navigation ?? root;\n}\n//# sourceMappingURL=useNavigation.js.map","import * as React from 'react';\nimport useNavigation from './useNavigation';\n/**\n * Hook to run an effect in a focused screen, similar to `React.useEffect`.\n * This can be used to perform side-effects such as fetching data or subscribing to events.\n * The passed callback should be wrapped in `React.useCallback` to avoid running the effect too often.\n *\n * @param callback Memoized callback containing the effect, should optionally return a cleanup function.\n */\nexport default function useFocusEffect(effect) {\n const navigation = useNavigation();\n if (arguments[1] !== undefined) {\n const message = \"You passed a second argument to 'useFocusEffect', but it only accepts one argument. \" + \"If you want to pass a dependency array, you can use 'React.useCallback':\\n\\n\" + 'useFocusEffect(\\n' + ' React.useCallback(() => {\\n' + ' // Your code here\\n' + ' }, [depA, depB])\\n' + ');\\n\\n' + 'See usage guide: https://reactnavigation.org/docs/use-focus-effect';\n console.error(message);\n }\n React.useEffect(() => {\n let isFocused = false;\n let cleanup;\n const callback = () => {\n const destroy = effect();\n if (destroy === undefined || typeof destroy === 'function') {\n return destroy;\n }\n if (process.env.NODE_ENV !== 'production') {\n let message = 'An effect function must not return anything besides a function, which is used for clean-up.';\n if (destroy === null) {\n message += \" You returned 'null'. If your effect does not require clean-up, return 'undefined' (or nothing).\";\n } else if (typeof destroy.then === 'function') {\n message += \"\\n\\nIt looks like you wrote 'useFocusEffect(async () => ...)' or returned a Promise. \" + 'Instead, write the async function inside your effect ' + 'and call it immediately:\\n\\n' + 'useFocusEffect(\\n' + ' React.useCallback(() => {\\n' + ' async function fetchData() {\\n' + ' // You can await here\\n' + ' const response = await MyAPI.getData(someId);\\n' + ' // ...\\n' + ' }\\n\\n' + ' fetchData();\\n' + ' }, [someId])\\n' + ');\\n\\n' + 'See usage guide: https://reactnavigation.org/docs/use-focus-effect';\n } else {\n message += ` You returned '${JSON.stringify(destroy)}'.`;\n }\n console.error(message);\n }\n };\n\n // We need to run the effect on intial render/dep changes if the screen is focused\n if (navigation.isFocused()) {\n cleanup = callback();\n isFocused = true;\n }\n const unsubscribeFocus = navigation.addListener('focus', () => {\n // If callback was already called for focus, avoid calling it again\n // The focus event may also fire on intial render, so we guard against runing the effect twice\n if (isFocused) {\n return;\n }\n if (cleanup !== undefined) {\n cleanup();\n }\n cleanup = callback();\n isFocused = true;\n });\n const unsubscribeBlur = navigation.addListener('blur', () => {\n if (cleanup !== undefined) {\n cleanup();\n }\n cleanup = undefined;\n isFocused = false;\n });\n return () => {\n if (cleanup !== undefined) {\n cleanup();\n }\n unsubscribeFocus();\n unsubscribeBlur();\n };\n }, [effect, navigation]);\n}\n//# sourceMappingURL=useFocusEffect.js.map","import * as React from 'react';\nimport { useState } from 'react';\nimport useNavigation from './useNavigation';\n\n/**\n * Hook to get the current focus state of the screen. Returns a `true` if screen is focused, otherwise `false`.\n * This can be used if a component needs to render something based on the focus state.\n */\nexport default function useIsFocused() {\n const navigation = useNavigation();\n const [isFocused, setIsFocused] = useState(navigation.isFocused);\n const valueToReturn = navigation.isFocused();\n if (isFocused !== valueToReturn) {\n // If the value has changed since the last render, we need to update it.\n // This could happen if we missed an update from the event listeners during re-render.\n // React will process this update immediately, so the old subscription value won't be committed.\n // It is still nice to avoid returning a mismatched value though, so let's override the return value.\n // This is the same logic as in https://github.com/facebook/react/tree/master/packages/use-subscription\n setIsFocused(valueToReturn);\n }\n React.useEffect(() => {\n const unsubscribeFocus = navigation.addListener('focus', () => setIsFocused(true));\n const unsubscribeBlur = navigation.addListener('blur', () => setIsFocused(false));\n return () => {\n unsubscribeFocus();\n unsubscribeBlur();\n };\n }, [navigation]);\n React.useDebugValue(valueToReturn);\n return valueToReturn;\n}\n//# sourceMappingURL=useIsFocused.js.map","/**\n * Compare two arrays with primitive values as the content.\n * We need to make sure that both values and order match.\n */\nexport default function isArrayEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (a.length !== b.length) {\n return false;\n }\n return a.every((it, index) => it === b[index]);\n}\n//# sourceMappingURL=isArrayEqual.js.map","import * as React from 'react';\nconst NavigationContent = _ref => {\n let {\n render,\n children\n } = _ref;\n return render(children);\n};\nexport default function useComponent(render) {\n const renderRef = React.useRef(render);\n\n // Normally refs shouldn't be mutated in render\n // But we return a component which will be rendered\n // So it's just for immediate consumption\n renderRef.current = render;\n React.useEffect(() => {\n renderRef.current = null;\n });\n return React.useRef(_ref2 => {\n let {\n children\n } = _ref2;\n const render = renderRef.current;\n if (render === null) {\n throw new Error('The returned component must be rendered in the same render phase as the hook.');\n }\n return /*#__PURE__*/React.createElement(NavigationContent, {\n render: render\n }, children);\n }).current;\n}\n//# sourceMappingURL=useComponent.js.map","import * as React from 'react';\n\n/**\n * Component which prevents updates for children if no props changed\n */\nfunction StaticContainer(props) {\n return props.children;\n}\nexport default /*#__PURE__*/React.memo(StaticContainer, (prevProps, nextProps) => {\n const prevPropKeys = Object.keys(prevProps);\n const nextPropKeys = Object.keys(nextProps);\n if (prevPropKeys.length !== nextPropKeys.length) {\n return false;\n }\n for (const key of prevPropKeys) {\n if (key === 'children') {\n continue;\n }\n if (prevProps[key] !== nextProps[key]) {\n return false;\n }\n }\n return true;\n});\n//# sourceMappingURL=StaticContainer.js.map","import * as React from 'react';\nimport EnsureSingleNavigator from './EnsureSingleNavigator';\nimport NavigationStateContext from './NavigationStateContext';\nimport StaticContainer from './StaticContainer';\nimport useOptionsGetters from './useOptionsGetters';\n/**\n * Component which takes care of rendering the screen for a route.\n * It provides all required contexts and applies optimizations when applicable.\n */\nexport default function SceneView(_ref) {\n let {\n screen,\n route,\n navigation,\n routeState,\n getState,\n setState,\n options,\n clearOptions\n } = _ref;\n const navigatorKeyRef = React.useRef();\n const getKey = React.useCallback(() => navigatorKeyRef.current, []);\n const {\n addOptionsGetter\n } = useOptionsGetters({\n key: route.key,\n options,\n navigation\n });\n const setKey = React.useCallback(key => {\n navigatorKeyRef.current = key;\n }, []);\n const getCurrentState = React.useCallback(() => {\n const state = getState();\n const currentRoute = state.routes.find(r => r.key === route.key);\n return currentRoute ? currentRoute.state : undefined;\n }, [getState, route.key]);\n const setCurrentState = React.useCallback(child => {\n const state = getState();\n setState({\n ...state,\n routes: state.routes.map(r => r.key === route.key ? {\n ...r,\n state: child\n } : r)\n });\n }, [getState, route.key, setState]);\n const isInitialRef = React.useRef(true);\n React.useEffect(() => {\n isInitialRef.current = false;\n });\n\n // Clear options set by this screen when it is unmounted\n React.useEffect(() => {\n return clearOptions;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const getIsInitial = React.useCallback(() => isInitialRef.current, []);\n const context = React.useMemo(() => ({\n state: routeState,\n getState: getCurrentState,\n setState: setCurrentState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter\n }), [routeState, getCurrentState, setCurrentState, getKey, setKey, getIsInitial, addOptionsGetter]);\n const ScreenComponent = screen.getComponent ? screen.getComponent() : screen.component;\n return /*#__PURE__*/React.createElement(NavigationStateContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(EnsureSingleNavigator, null, /*#__PURE__*/React.createElement(StaticContainer, {\n name: screen.name,\n render: ScreenComponent || screen.children,\n navigation: navigation,\n route: route\n }, ScreenComponent !== undefined ? /*#__PURE__*/React.createElement(ScreenComponent, {\n navigation: navigation,\n route: route\n }) : screen.children !== undefined ? screen.children({\n navigation,\n route\n }) : null)));\n}\n//# sourceMappingURL=SceneView.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationContext from './NavigationContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport SceneView from './SceneView';\nimport useNavigationCache from './useNavigationCache';\nimport useRouteCache from './useRouteCache';\n/**\n * Hook to create descriptor objects for the child routes.\n *\n * A descriptor object provides 3 things:\n * - Helper method to render a screen\n * - Options specified by the screen for the navigator\n * - Navigation object intended for the route\n */\nexport default function useDescriptors(_ref) {\n let {\n state,\n screens,\n navigation,\n screenOptions,\n defaultScreenOptions,\n onAction,\n getState,\n setState,\n addListener,\n addKeyedListener,\n onRouteFocus,\n router,\n emitter\n } = _ref;\n const [options, setOptions] = React.useState({});\n const {\n onDispatchAction,\n onOptionsChange,\n stackRef\n } = React.useContext(NavigationBuilderContext);\n const context = React.useMemo(() => ({\n navigation,\n onAction,\n addListener,\n addKeyedListener,\n onRouteFocus,\n onDispatchAction,\n onOptionsChange,\n stackRef\n }), [navigation, onAction, addListener, addKeyedListener, onRouteFocus, onDispatchAction, onOptionsChange, stackRef]);\n const navigations = useNavigationCache({\n state,\n getState,\n navigation,\n setOptions,\n router,\n emitter\n });\n const routes = useRouteCache(state.routes);\n return routes.reduce((acc, route, i) => {\n const config = screens[route.name];\n const screen = config.props;\n const navigation = navigations[route.key];\n const optionsList = [\n // The default `screenOptions` passed to the navigator\n screenOptions,\n // The `screenOptions` props passed to `Group` elements\n ...(config.options ? config.options.filter(Boolean) : []),\n // The `options` prop passed to `Screen` elements,\n screen.options,\n // The options set via `navigation.setOptions`\n options[route.key]];\n const customOptions = optionsList.reduce((acc, curr) => Object.assign(acc,\n // @ts-expect-error: we check for function but TS still complains\n typeof curr !== 'function' ? curr : curr({\n route,\n navigation\n })), {});\n const mergedOptions = {\n ...(typeof defaultScreenOptions === 'function' ?\n // @ts-expect-error: ts gives incorrect error here\n defaultScreenOptions({\n route,\n navigation,\n options: customOptions\n }) : defaultScreenOptions),\n ...customOptions\n };\n const clearOptions = () => setOptions(o => {\n if (route.key in o) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {\n [route.key]: _,\n ...rest\n } = o;\n return rest;\n }\n return o;\n });\n acc[route.key] = {\n route,\n // @ts-expect-error: it's missing action helpers, fix later\n navigation,\n render() {\n return /*#__PURE__*/React.createElement(NavigationBuilderContext.Provider, {\n key: route.key,\n value: context\n }, /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: navigation\n }, /*#__PURE__*/React.createElement(NavigationRouteContext.Provider, {\n value: route\n }, /*#__PURE__*/React.createElement(SceneView, {\n navigation: navigation,\n route: route,\n screen: screen,\n routeState: state.routes[i].state,\n getState: getState,\n setState: setState,\n options: mergedOptions,\n clearOptions: clearOptions\n }))));\n },\n options: mergedOptions\n };\n return acc;\n }, {});\n}\n//# sourceMappingURL=useDescriptors.js.map","import { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\n/**\n * Hook to cache navigation objects for each screen in the navigator.\n * It's important to cache them to make sure navigation objects don't change between renders.\n * This lets us apply optimizations like `React.memo` to minimize re-rendering screens.\n */\nexport default function useNavigationCache(_ref) {\n let {\n state,\n getState,\n navigation,\n setOptions,\n router,\n emitter\n } = _ref;\n const {\n stackRef\n } = React.useContext(NavigationBuilderContext);\n\n // Cache object which holds navigation objects for each screen\n // We use `React.useMemo` instead of `React.useRef` coz we want to invalidate it when deps change\n // In reality, these deps will rarely change, if ever\n const cache = React.useMemo(() => ({\n current: {}\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [getState, navigation, setOptions, router, emitter]);\n const actions = {\n ...router.actionCreators,\n ...CommonActions\n };\n cache.current = state.routes.reduce((acc, route) => {\n const previous = cache.current[route.key];\n if (previous) {\n // If a cached navigation object already exists, reuse it\n acc[route.key] = previous;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {\n emit,\n ...rest\n } = navigation;\n const dispatch = thunk => {\n const action = typeof thunk === 'function' ? thunk(getState()) : thunk;\n if (action != null) {\n navigation.dispatch({\n source: route.key,\n ...action\n });\n }\n };\n const withStack = callback => {\n let isStackSet = false;\n try {\n if (process.env.NODE_ENV !== 'production' && stackRef && !stackRef.current) {\n // Capture the stack trace for devtools\n stackRef.current = new Error().stack;\n isStackSet = true;\n }\n callback();\n } finally {\n if (isStackSet && stackRef) {\n stackRef.current = undefined;\n }\n }\n };\n const helpers = Object.keys(actions).reduce((acc, name) => {\n acc[name] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return withStack(() =>\n // @ts-expect-error: name is a valid key, but TypeScript is dumb\n dispatch(actions[name](...args)));\n };\n return acc;\n }, {});\n acc[route.key] = {\n ...rest,\n ...helpers,\n // FIXME: too much work to fix the types for now\n ...emitter.create(route.key),\n dispatch: thunk => withStack(() => dispatch(thunk)),\n getParent: id => {\n if (id !== undefined && id === rest.getId()) {\n // If the passed id is the same as the current navigation id,\n // we return the cached navigation object for the relevant route\n return acc[route.key];\n }\n return rest.getParent(id);\n },\n setOptions: options => setOptions(o => ({\n ...o,\n [route.key]: {\n ...o[route.key],\n ...options\n }\n })),\n isFocused: () => {\n const state = getState();\n if (state.routes[state.index].key !== route.key) {\n return false;\n }\n\n // If the current screen is focused, we also need to check if parent navigator is focused\n // This makes sure that we return the focus state in the whole tree, not just this navigator\n return navigation ? navigation.isFocused() : true;\n }\n };\n }\n return acc;\n }, {});\n return cache.current;\n}\n//# sourceMappingURL=useNavigationCache.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nconst VISITED_ROUTE_KEYS = Symbol('VISITED_ROUTE_KEYS');\nexport const shouldPreventRemove = (emitter, beforeRemoveListeners, currentRoutes, nextRoutes, action) => {\n const nextRouteKeys = nextRoutes.map(route => route.key);\n\n // Call these in reverse order so last screens handle the event first\n const removedRoutes = currentRoutes.filter(route => !nextRouteKeys.includes(route.key)).reverse();\n const visitedRouteKeys =\n // @ts-expect-error: add this property to mark that we've already emitted this action\n action[VISITED_ROUTE_KEYS] ?? new Set();\n const beforeRemoveAction = {\n ...action,\n [VISITED_ROUTE_KEYS]: visitedRouteKeys\n };\n for (const route of removedRoutes) {\n var _beforeRemoveListener;\n if (visitedRouteKeys.has(route.key)) {\n // Skip if we've already emitted this action for this screen\n continue;\n }\n\n // First, we need to check if any child screens want to prevent it\n const isPrevented = (_beforeRemoveListener = beforeRemoveListeners[route.key]) === null || _beforeRemoveListener === void 0 ? void 0 : _beforeRemoveListener.call(beforeRemoveListeners, beforeRemoveAction);\n if (isPrevented) {\n return true;\n }\n visitedRouteKeys.add(route.key);\n const event = emitter.emit({\n type: 'beforeRemove',\n target: route.key,\n data: {\n action: beforeRemoveAction\n },\n canPreventDefault: true\n });\n if (event.defaultPrevented) {\n return true;\n }\n }\n return false;\n};\nexport default function useOnPreventRemove(_ref) {\n let {\n getState,\n emitter,\n beforeRemoveListeners\n } = _ref;\n const {\n addKeyedListener\n } = React.useContext(NavigationBuilderContext);\n const route = React.useContext(NavigationRouteContext);\n const routeKey = route === null || route === void 0 ? void 0 : route.key;\n React.useEffect(() => {\n if (routeKey) {\n return addKeyedListener === null || addKeyedListener === void 0 ? void 0 : addKeyedListener('beforeRemove', routeKey, action => {\n const state = getState();\n return shouldPreventRemove(emitter, beforeRemoveListeners, state.routes, [], action);\n });\n }\n }, [addKeyedListener, beforeRemoveListeners, emitter, getState, routeKey]);\n}\n//# sourceMappingURL=useOnPreventRemove.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport useOnPreventRemove, { shouldPreventRemove } from './useOnPreventRemove';\n/**\n * Hook to handle actions for a navigator, including state updates and bubbling.\n *\n * Bubbling an action is achieved in 2 ways:\n * 1. To bubble action to parent, we expose the action handler in context and then access the parent context\n * 2. To bubble action to child, child adds event listeners subscribing to actions from parent\n *\n * When the action handler handles as action, it returns `true`, otherwise `false`.\n */\nexport default function useOnAction(_ref) {\n let {\n router,\n getState,\n setState,\n key,\n actionListeners,\n beforeRemoveListeners,\n routerConfigOptions,\n emitter\n } = _ref;\n const {\n onAction: onActionParent,\n onRouteFocus: onRouteFocusParent,\n addListener: addListenerParent,\n onDispatchAction\n } = React.useContext(NavigationBuilderContext);\n const routerConfigOptionsRef = React.useRef(routerConfigOptions);\n React.useEffect(() => {\n routerConfigOptionsRef.current = routerConfigOptions;\n });\n const onAction = React.useCallback(function (action) {\n let visitedNavigators = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n const state = getState();\n\n // Since actions can bubble both up and down, they could come to the same navigator again\n // We keep track of navigators which have already tried to handle the action and return if it's already visited\n if (visitedNavigators.has(state.key)) {\n return false;\n }\n visitedNavigators.add(state.key);\n if (typeof action.target !== 'string' || action.target === state.key) {\n let result = router.getStateForAction(state, action, routerConfigOptionsRef.current);\n\n // If a target is specified and set to current navigator, the action shouldn't bubble\n // So instead of `null`, we use the state object for such cases to signal that action was handled\n result = result === null && action.target === state.key ? state : result;\n if (result !== null) {\n onDispatchAction(action, state === result);\n if (state !== result) {\n const isPrevented = shouldPreventRemove(emitter, beforeRemoveListeners, state.routes, result.routes, action);\n if (isPrevented) {\n return true;\n }\n setState(result);\n }\n if (onRouteFocusParent !== undefined) {\n // Some actions such as `NAVIGATE` also want to bring the navigated route to focus in the whole tree\n // This means we need to focus all of the parent navigators of this navigator as well\n const shouldFocus = router.shouldActionChangeFocus(action);\n if (shouldFocus && key !== undefined) {\n onRouteFocusParent(key);\n }\n }\n return true;\n }\n }\n if (onActionParent !== undefined) {\n // Bubble action to the parent if the current navigator didn't handle it\n if (onActionParent(action, visitedNavigators)) {\n return true;\n }\n }\n\n // If the action wasn't handled by current navigator or a parent navigator, let children handle it\n for (let i = actionListeners.length - 1; i >= 0; i--) {\n const listener = actionListeners[i];\n if (listener(action, visitedNavigators)) {\n return true;\n }\n }\n return false;\n }, [actionListeners, beforeRemoveListeners, emitter, getState, key, onActionParent, onDispatchAction, onRouteFocusParent, router, setState]);\n useOnPreventRemove({\n getState,\n emitter,\n beforeRemoveListeners\n });\n React.useEffect(() => addListenerParent === null || addListenerParent === void 0 ? void 0 : addListenerParent('action', onAction), [addListenerParent, onAction]);\n return onAction;\n}\n//# sourceMappingURL=useOnAction.js.map","import { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport { isValidElementType } from 'react-is';\nimport Group from './Group';\nimport isArrayEqual from './isArrayEqual';\nimport isRecordEqual from './isRecordEqual';\nimport NavigationHelpersContext from './NavigationHelpersContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport PreventRemoveProvider from './PreventRemoveProvider';\nimport Screen from './Screen';\nimport { PrivateValueStore } from './types';\nimport useChildListeners from './useChildListeners';\nimport useComponent from './useComponent';\nimport useCurrentRender from './useCurrentRender';\nimport useDescriptors from './useDescriptors';\nimport useEventEmitter from './useEventEmitter';\nimport useFocusedListenersChildrenAdapter from './useFocusedListenersChildrenAdapter';\nimport useFocusEvents from './useFocusEvents';\nimport useKeyedChildListeners from './useKeyedChildListeners';\nimport useNavigationHelpers from './useNavigationHelpers';\nimport useOnAction from './useOnAction';\nimport useOnGetState from './useOnGetState';\nimport useOnRouteFocus from './useOnRouteFocus';\nimport useRegisterNavigator from './useRegisterNavigator';\nimport useScheduleUpdate from './useScheduleUpdate';\n\n// This is to make TypeScript compiler happy\n// eslint-disable-next-line babel/no-unused-expressions\nPrivateValueStore;\nconst isValidKey = key => key === undefined || typeof key === 'string' && key !== '';\n\n/**\n * Extract route config object from React children elements.\n *\n * @param children React Elements to extract the config from.\n */\nconst getRouteConfigsFromChildren = (children, groupKey, groupOptions) => {\n const configs = React.Children.toArray(children).reduce((acc, child) => {\n var _child$type, _child$props;\n if ( /*#__PURE__*/React.isValidElement(child)) {\n if (child.type === Screen) {\n // We can only extract the config from `Screen` elements\n // If something else was rendered, it's probably a bug\n\n if (!isValidKey(child.props.navigationKey)) {\n throw new Error(`Got an invalid 'navigationKey' prop (${JSON.stringify(child.props.navigationKey)}) for the screen '${child.props.name}'. It must be a non-empty string or 'undefined'.`);\n }\n acc.push({\n keys: [groupKey, child.props.navigationKey],\n options: groupOptions,\n props: child.props\n });\n return acc;\n }\n if (child.type === React.Fragment || child.type === Group) {\n if (!isValidKey(child.props.navigationKey)) {\n throw new Error(`Got an invalid 'navigationKey' prop (${JSON.stringify(child.props.navigationKey)}) for the group. It must be a non-empty string or 'undefined'.`);\n }\n\n // When we encounter a fragment or group, we need to dive into its children to extract the configs\n // This is handy to conditionally define a group of screens\n acc.push(...getRouteConfigsFromChildren(child.props.children, child.props.navigationKey, child.type !== Group ? groupOptions : groupOptions != null ? [...groupOptions, child.props.screenOptions] : [child.props.screenOptions]));\n return acc;\n }\n }\n throw new Error(`A navigator can only contain 'Screen', 'Group' or 'React.Fragment' as its direct children (found ${/*#__PURE__*/React.isValidElement(child) ? `'${typeof child.type === 'string' ? child.type : (_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.name}'${child.props != null && typeof child.props === 'object' && 'name' in child.props && (_child$props = child.props) !== null && _child$props !== void 0 && _child$props.name ? ` for the screen '${child.props.name}'` : ''}` : typeof child === 'object' ? JSON.stringify(child) : `'${String(child)}'`}). To render this component in the navigator, pass it in the 'component' prop to 'Screen'.`);\n }, []);\n if (process.env.NODE_ENV !== 'production') {\n configs.forEach(config => {\n const {\n name,\n children,\n component,\n getComponent\n } = config.props;\n if (typeof name !== 'string' || !name) {\n throw new Error(`Got an invalid name (${JSON.stringify(name)}) for the screen. It must be a non-empty string.`);\n }\n if (children != null || component !== undefined || getComponent !== undefined) {\n if (children != null && component !== undefined) {\n throw new Error(`Got both 'component' and 'children' props for the screen '${name}'. You must pass only one of them.`);\n }\n if (children != null && getComponent !== undefined) {\n throw new Error(`Got both 'getComponent' and 'children' props for the screen '${name}'. You must pass only one of them.`);\n }\n if (component !== undefined && getComponent !== undefined) {\n throw new Error(`Got both 'component' and 'getComponent' props for the screen '${name}'. You must pass only one of them.`);\n }\n if (children != null && typeof children !== 'function') {\n throw new Error(`Got an invalid value for 'children' prop for the screen '${name}'. It must be a function returning a React Element.`);\n }\n if (component !== undefined && !isValidElementType(component)) {\n throw new Error(`Got an invalid value for 'component' prop for the screen '${name}'. It must be a valid React Component.`);\n }\n if (getComponent !== undefined && typeof getComponent !== 'function') {\n throw new Error(`Got an invalid value for 'getComponent' prop for the screen '${name}'. It must be a function returning a React Component.`);\n }\n if (typeof component === 'function') {\n if (component.name === 'component') {\n // Inline anonymous functions passed in the `component` prop will have the name of the prop\n // It's relatively safe to assume that it's not a component since it should also have PascalCase name\n // We won't catch all scenarios here, but this should catch a good chunk of incorrect use.\n console.warn(`Looks like you're passing an inline function for 'component' prop for the screen '${name}' (e.g. component={() => }). Passing an inline function will cause the component state to be lost on re-render and cause perf issues since it's re-created every render. You can pass the function as children to 'Screen' instead to achieve the desired behaviour.`);\n } else if (/^[a-z]/.test(component.name)) {\n console.warn(`Got a component with the name '${component.name}' for the screen '${name}'. React Components must start with an uppercase letter. If you're passing a regular function and not a component, pass it as children to 'Screen' instead. Otherwise capitalize your component's name.`);\n }\n }\n } else {\n throw new Error(`Couldn't find a 'component', 'getComponent' or 'children' prop for the screen '${name}'. This can happen if you passed 'undefined'. You likely forgot to export your component from the file it's defined in, or mixed up default import and named import when importing.`);\n }\n });\n }\n return configs;\n};\n\n/**\n * Hook for building navigators.\n *\n * @param createRouter Factory method which returns router object.\n * @param options Options object containing `children` and additional options for the router.\n * @returns An object containing `state`, `navigation`, `descriptors` objects.\n */\nexport default function useNavigationBuilder(createRouter, options) {\n const navigatorKey = useRegisterNavigator();\n const route = React.useContext(NavigationRouteContext);\n const {\n children,\n screenListeners,\n ...rest\n } = options;\n const {\n current: router\n } = React.useRef(createRouter({\n ...rest,\n ...(route !== null && route !== void 0 && route.params && route.params.state == null && route.params.initial !== false && typeof route.params.screen === 'string' ? {\n initialRouteName: route.params.screen\n } : null)\n }));\n const routeConfigs = getRouteConfigsFromChildren(children);\n const screens = routeConfigs.reduce((acc, config) => {\n if (config.props.name in acc) {\n throw new Error(`A navigator cannot contain multiple 'Screen' components with the same name (found duplicate screen named '${config.props.name}')`);\n }\n acc[config.props.name] = config;\n return acc;\n }, {});\n const routeNames = routeConfigs.map(config => config.props.name);\n const routeKeyList = routeNames.reduce((acc, curr) => {\n acc[curr] = screens[curr].keys.map(key => key ?? '').join(':');\n return acc;\n }, {});\n const routeParamList = routeNames.reduce((acc, curr) => {\n const {\n initialParams\n } = screens[curr].props;\n acc[curr] = initialParams;\n return acc;\n }, {});\n const routeGetIdList = routeNames.reduce((acc, curr) => Object.assign(acc, {\n [curr]: screens[curr].props.getId\n }), {});\n if (!routeNames.length) {\n throw new Error(\"Couldn't find any screens for the navigator. Have you defined any screens as its children?\");\n }\n const isStateValid = React.useCallback(state => state.type === undefined || state.type === router.type, [router.type]);\n const isStateInitialized = React.useCallback(state => state !== undefined && state.stale === false && isStateValid(state), [isStateValid]);\n const {\n state: currentState,\n getState: getCurrentState,\n setState: setCurrentState,\n setKey,\n getKey,\n getIsInitial\n } = React.useContext(NavigationStateContext);\n const stateCleanedUp = React.useRef(false);\n const cleanUpState = React.useCallback(() => {\n setCurrentState(undefined);\n stateCleanedUp.current = true;\n }, [setCurrentState]);\n const setState = React.useCallback(state => {\n if (stateCleanedUp.current) {\n // State might have been already cleaned up due to unmount\n // We do not want to expose API allowing to override this\n // This would lead to old data preservation on main navigator unmount\n return;\n }\n setCurrentState(state);\n }, [setCurrentState]);\n const [initializedState, isFirstStateInitialization] = React.useMemo(() => {\n var _route$params4;\n const initialRouteParamList = routeNames.reduce((acc, curr) => {\n var _route$params, _route$params2, _route$params3;\n const {\n initialParams\n } = screens[curr].props;\n const initialParamsFromParams = (route === null || route === void 0 ? void 0 : (_route$params = route.params) === null || _route$params === void 0 ? void 0 : _route$params.state) == null && (route === null || route === void 0 ? void 0 : (_route$params2 = route.params) === null || _route$params2 === void 0 ? void 0 : _route$params2.initial) !== false && (route === null || route === void 0 ? void 0 : (_route$params3 = route.params) === null || _route$params3 === void 0 ? void 0 : _route$params3.screen) === curr ? route.params.params : undefined;\n acc[curr] = initialParams !== undefined || initialParamsFromParams !== undefined ? {\n ...initialParams,\n ...initialParamsFromParams\n } : undefined;\n return acc;\n }, {});\n\n // If the current state isn't initialized on first render, we initialize it\n // We also need to re-initialize it if the state passed from parent was changed (maybe due to reset)\n // Otherwise assume that the state was provided as initial state\n // So we need to rehydrate it to make it usable\n if ((currentState === undefined || !isStateValid(currentState)) && (route === null || route === void 0 ? void 0 : (_route$params4 = route.params) === null || _route$params4 === void 0 ? void 0 : _route$params4.state) == null) {\n return [router.getInitialState({\n routeNames,\n routeParamList: initialRouteParamList,\n routeGetIdList\n }), true];\n } else {\n var _route$params5;\n return [router.getRehydratedState((route === null || route === void 0 ? void 0 : (_route$params5 = route.params) === null || _route$params5 === void 0 ? void 0 : _route$params5.state) ?? currentState, {\n routeNames,\n routeParamList: initialRouteParamList,\n routeGetIdList\n }), false];\n }\n // We explicitly don't include routeNames, route.params etc. in the dep list\n // below. We want to avoid forcing a new state to be calculated in those cases\n // Instead, we handle changes to these in the nextState code below. Note\n // that some changes to routeConfigs are explicitly ignored, such as changes\n // to initialParams\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentState, router, isStateValid]);\n const previousRouteKeyListRef = React.useRef(routeKeyList);\n React.useEffect(() => {\n previousRouteKeyListRef.current = routeKeyList;\n });\n const previousRouteKeyList = previousRouteKeyListRef.current;\n let state =\n // If the state isn't initialized, or stale, use the state we initialized instead\n // The state won't update until there's a change needed in the state we have initalized locally\n // So it'll be `undefined` or stale until the first navigation event happens\n isStateInitialized(currentState) ? currentState : initializedState;\n let nextState = state;\n if (!isArrayEqual(state.routeNames, routeNames) || !isRecordEqual(routeKeyList, previousRouteKeyList)) {\n // When the list of route names change, the router should handle it to remove invalid routes\n nextState = router.getStateForRouteNamesChange(state, {\n routeNames,\n routeParamList,\n routeGetIdList,\n routeKeyChanges: Object.keys(routeKeyList).filter(name => previousRouteKeyList.hasOwnProperty(name) && routeKeyList[name] !== previousRouteKeyList[name])\n });\n }\n const previousNestedParamsRef = React.useRef(route === null || route === void 0 ? void 0 : route.params);\n React.useEffect(() => {\n previousNestedParamsRef.current = route === null || route === void 0 ? void 0 : route.params;\n }, [route === null || route === void 0 ? void 0 : route.params]);\n if (route !== null && route !== void 0 && route.params) {\n const previousParams = previousNestedParamsRef.current;\n let action;\n if (typeof route.params.state === 'object' && route.params.state != null && route.params !== previousParams) {\n // If the route was updated with new state, we should reset to it\n action = CommonActions.reset(route.params.state);\n } else if (typeof route.params.screen === 'string' && (route.params.initial === false && isFirstStateInitialization || route.params !== previousParams)) {\n // If the route was updated with new screen name and/or params, we should navigate there\n action = CommonActions.navigate({\n name: route.params.screen,\n params: route.params.params,\n path: route.params.path\n });\n }\n\n // The update should be limited to current navigator only, so we call the router manually\n const updatedState = action ? router.getStateForAction(nextState, action, {\n routeNames,\n routeParamList,\n routeGetIdList\n }) : null;\n nextState = updatedState !== null ? router.getRehydratedState(updatedState, {\n routeNames,\n routeParamList,\n routeGetIdList\n }) : nextState;\n }\n const shouldUpdate = state !== nextState;\n useScheduleUpdate(() => {\n if (shouldUpdate) {\n // If the state needs to be updated, we'll schedule an update\n setState(nextState);\n }\n });\n\n // The up-to-date state will come in next render, but we don't need to wait for it\n // We can't use the outdated state since the screens have changed, which will cause error due to mismatched config\n // So we override the state object we return to use the latest state as soon as possible\n state = nextState;\n React.useEffect(() => {\n setKey(navigatorKey);\n if (!getIsInitial()) {\n // If it's not initial render, we need to update the state\n // This will make sure that our container gets notifier of state changes due to new mounts\n // This is necessary for proper screen tracking, URL updates etc.\n setState(nextState);\n }\n return () => {\n // We need to clean up state for this navigator on unmount\n // We do it in a timeout because we need to detect if another navigator mounted in the meantime\n // For example, if another navigator has started rendering, we should skip cleanup\n // Otherwise, our cleanup step will cleanup state for the other navigator and re-initialize it\n setTimeout(() => {\n if (getCurrentState() !== undefined && getKey() === navigatorKey) {\n cleanUpState();\n }\n }, 0);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // We initialize this ref here to avoid a new getState getting initialized\n // whenever initializedState changes. We want getState to have access to the\n // latest initializedState, but don't need it to change when that happens\n const initializedStateRef = React.useRef();\n initializedStateRef.current = initializedState;\n const getState = React.useCallback(() => {\n const currentState = getCurrentState();\n return isStateInitialized(currentState) ? currentState : initializedStateRef.current;\n }, [getCurrentState, isStateInitialized]);\n const emitter = useEventEmitter(e => {\n let routeNames = [];\n let route;\n if (e.target) {\n var _route;\n route = state.routes.find(route => route.key === e.target);\n if ((_route = route) !== null && _route !== void 0 && _route.name) {\n routeNames.push(route.name);\n }\n } else {\n route = state.routes[state.index];\n routeNames.push(...Object.keys(screens).filter(name => {\n var _route2;\n return ((_route2 = route) === null || _route2 === void 0 ? void 0 : _route2.name) === name;\n }));\n }\n if (route == null) {\n return;\n }\n const navigation = descriptors[route.key].navigation;\n const listeners = [].concat(\n // Get an array of listeners for all screens + common listeners on navigator\n ...[screenListeners, ...routeNames.map(name => {\n const {\n listeners\n } = screens[name].props;\n return listeners;\n })].map(listeners => {\n const map = typeof listeners === 'function' ? listeners({\n route: route,\n navigation\n }) : listeners;\n return map ? Object.keys(map).filter(type => type === e.type).map(type => map === null || map === void 0 ? void 0 : map[type]) : undefined;\n }))\n // We don't want same listener to be called multiple times for same event\n // So we remove any duplicate functions from the array\n .filter((cb, i, self) => cb && self.lastIndexOf(cb) === i);\n listeners.forEach(listener => listener === null || listener === void 0 ? void 0 : listener(e));\n });\n useFocusEvents({\n state,\n emitter\n });\n React.useEffect(() => {\n emitter.emit({\n type: 'state',\n data: {\n state\n }\n });\n }, [emitter, state]);\n const {\n listeners: childListeners,\n addListener\n } = useChildListeners();\n const {\n keyedListeners,\n addKeyedListener\n } = useKeyedChildListeners();\n const onAction = useOnAction({\n router,\n getState,\n setState,\n key: route === null || route === void 0 ? void 0 : route.key,\n actionListeners: childListeners.action,\n beforeRemoveListeners: keyedListeners.beforeRemove,\n routerConfigOptions: {\n routeNames,\n routeParamList,\n routeGetIdList\n },\n emitter\n });\n const onRouteFocus = useOnRouteFocus({\n router,\n key: route === null || route === void 0 ? void 0 : route.key,\n getState,\n setState\n });\n const navigation = useNavigationHelpers({\n id: options.id,\n onAction,\n getState,\n emitter,\n router\n });\n useFocusedListenersChildrenAdapter({\n navigation,\n focusedListeners: childListeners.focus\n });\n useOnGetState({\n getState,\n getStateListeners: keyedListeners.getState\n });\n const descriptors = useDescriptors({\n state,\n screens,\n navigation,\n screenOptions: options.screenOptions,\n defaultScreenOptions: options.defaultScreenOptions,\n onAction,\n getState,\n setState,\n onRouteFocus,\n addListener,\n addKeyedListener,\n router,\n // @ts-expect-error: this should have both core and custom events, but too much work right now\n emitter\n });\n useCurrentRender({\n state,\n navigation,\n descriptors\n });\n const NavigationContent = useComponent(children => /*#__PURE__*/React.createElement(NavigationHelpersContext.Provider, {\n value: navigation\n }, /*#__PURE__*/React.createElement(PreventRemoveProvider, null, children)));\n return {\n state,\n navigation,\n descriptors,\n NavigationContent\n };\n}\n//# sourceMappingURL=useNavigationBuilder.js.map","import { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\nimport { SingleNavigatorContext } from './EnsureSingleNavigator';\n\n/**\n * Register a navigator in the parent context (either a navigation container or a screen).\n * This is used to prevent multiple navigators under a single container or screen.\n */\nexport default function useRegisterNavigator() {\n const [key] = React.useState(() => nanoid());\n const container = React.useContext(SingleNavigatorContext);\n if (container === undefined) {\n throw new Error(\"Couldn't register the navigator. Have you wrapped your app with 'NavigationContainer'?\\n\\nThis can also happen if there are multiple copies of '@react-navigation' packages installed.\");\n }\n React.useEffect(() => {\n const {\n register,\n unregister\n } = container;\n register(key);\n return () => unregister(key);\n }, [container, key]);\n return key;\n}\n//# sourceMappingURL=useRegisterNavigator.js.map","/**\n * Compare two records with primitive values as the content.\n */\nexport default function isRecordEqual(a, b) {\n if (a === b) {\n return true;\n }\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n return aKeys.every(key => a[key] === b[key]);\n}\n//# sourceMappingURL=isRecordEqual.js.map","import * as React from 'react';\nimport NavigationContext from './NavigationContext';\n/**\n * Hook to take care of emitting `focus` and `blur` events.\n */\nexport default function useFocusEvents(_ref) {\n let {\n state,\n emitter\n } = _ref;\n const navigation = React.useContext(NavigationContext);\n const lastFocusedKeyRef = React.useRef();\n const currentFocusedKey = state.routes[state.index].key;\n\n // When the parent screen changes its focus state, we also need to change child's focus\n // Coz the child screen can't be focused if the parent screen is out of focus\n React.useEffect(() => navigation === null || navigation === void 0 ? void 0 : navigation.addListener('focus', () => {\n lastFocusedKeyRef.current = currentFocusedKey;\n emitter.emit({\n type: 'focus',\n target: currentFocusedKey\n });\n }), [currentFocusedKey, emitter, navigation]);\n React.useEffect(() => navigation === null || navigation === void 0 ? void 0 : navigation.addListener('blur', () => {\n lastFocusedKeyRef.current = undefined;\n emitter.emit({\n type: 'blur',\n target: currentFocusedKey\n });\n }), [currentFocusedKey, emitter, navigation]);\n React.useEffect(() => {\n const lastFocusedKey = lastFocusedKeyRef.current;\n lastFocusedKeyRef.current = currentFocusedKey;\n\n // We wouldn't have `lastFocusedKey` on initial mount\n // Fire focus event for the current route on mount if there's no parent navigator\n if (lastFocusedKey === undefined && !navigation) {\n emitter.emit({\n type: 'focus',\n target: currentFocusedKey\n });\n }\n\n // We should only emit events when the focused key changed and navigator is focused\n // When navigator is not focused, screens inside shouldn't receive focused status either\n if (lastFocusedKey === currentFocusedKey || !(navigation ? navigation.isFocused() : true)) {\n return;\n }\n if (lastFocusedKey === undefined) {\n // Only fire events after initial mount\n return;\n }\n emitter.emit({\n type: 'blur',\n target: lastFocusedKey\n });\n emitter.emit({\n type: 'focus',\n target: currentFocusedKey\n });\n }, [currentFocusedKey, emitter, navigation]);\n}\n//# sourceMappingURL=useFocusEvents.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\n/**\n * Hook to handle focus actions for a route.\n * Focus action needs to be treated specially, coz when a nested route is focused,\n * the parent navigators also needs to be focused.\n */\nexport default function useOnRouteFocus(_ref) {\n let {\n router,\n getState,\n key: sourceRouteKey,\n setState\n } = _ref;\n const {\n onRouteFocus: onRouteFocusParent\n } = React.useContext(NavigationBuilderContext);\n return React.useCallback(key => {\n const state = getState();\n const result = router.getStateForRouteFocus(state, key);\n if (result !== state) {\n setState(result);\n }\n if (onRouteFocusParent !== undefined && sourceRouteKey !== undefined) {\n onRouteFocusParent(sourceRouteKey);\n }\n }, [getState, onRouteFocusParent, router, setState, sourceRouteKey]);\n}\n//# sourceMappingURL=useOnRouteFocus.js.map","import { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport NavigationContext from './NavigationContext';\nimport { PrivateValueStore } from './types';\nimport UnhandledActionContext from './UnhandledActionContext';\n// This is to make TypeScript compiler happy\n// eslint-disable-next-line babel/no-unused-expressions\nPrivateValueStore;\n/**\n * Navigation object with helper methods to be used by a navigator.\n * This object includes methods for common actions as well as methods the parent screen's navigation object.\n */\nexport default function useNavigationHelpers(_ref) {\n let {\n id: navigatorId,\n onAction,\n getState,\n emitter,\n router\n } = _ref;\n const onUnhandledAction = React.useContext(UnhandledActionContext);\n const parentNavigationHelpers = React.useContext(NavigationContext);\n return React.useMemo(() => {\n const dispatch = op => {\n const action = typeof op === 'function' ? op(getState()) : op;\n const handled = onAction(action);\n if (!handled) {\n onUnhandledAction === null || onUnhandledAction === void 0 ? void 0 : onUnhandledAction(action);\n }\n };\n const actions = {\n ...router.actionCreators,\n ...CommonActions\n };\n const helpers = Object.keys(actions).reduce((acc, name) => {\n // @ts-expect-error: name is a valid key, but TypeScript is dumb\n acc[name] = function () {\n return dispatch(actions[name](...arguments));\n };\n return acc;\n }, {});\n const navigationHelpers = {\n ...parentNavigationHelpers,\n ...helpers,\n dispatch,\n emit: emitter.emit,\n isFocused: parentNavigationHelpers ? parentNavigationHelpers.isFocused : () => true,\n canGoBack: () => {\n const state = getState();\n return router.getStateForAction(state, CommonActions.goBack(), {\n routeNames: state.routeNames,\n routeParamList: {},\n routeGetIdList: {}\n }) !== null || (parentNavigationHelpers === null || parentNavigationHelpers === void 0 ? void 0 : parentNavigationHelpers.canGoBack()) || false;\n },\n getId: () => navigatorId,\n getParent: id => {\n if (id !== undefined) {\n let current = navigationHelpers;\n while (current && id !== current.getId()) {\n current = current.getParent();\n }\n return current;\n }\n return parentNavigationHelpers;\n },\n getState\n };\n return navigationHelpers;\n }, [navigatorId, emitter.emit, getState, onAction, onUnhandledAction, parentNavigationHelpers, router]);\n}\n//# sourceMappingURL=useNavigationHelpers.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\n/**\n * Hook for passing focus callback to children\n */\nexport default function useFocusedListenersChildrenAdapter(_ref) {\n let {\n navigation,\n focusedListeners\n } = _ref;\n const {\n addListener\n } = React.useContext(NavigationBuilderContext);\n const listener = React.useCallback(callback => {\n if (navigation.isFocused()) {\n for (const listener of focusedListeners) {\n const {\n handled,\n result\n } = listener(callback);\n if (handled) {\n return {\n handled,\n result\n };\n }\n }\n return {\n handled: true,\n result: callback(navigation)\n };\n } else {\n return {\n handled: false,\n result: null\n };\n }\n }, [focusedListeners, navigation]);\n React.useEffect(() => addListener === null || addListener === void 0 ? void 0 : addListener('focus', listener), [addListener, listener]);\n}\n//# sourceMappingURL=useFocusedListenersChildrenAdapter.js.map","import * as React from 'react';\nimport isArrayEqual from './isArrayEqual';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nexport default function useOnGetState(_ref) {\n let {\n getState,\n getStateListeners\n } = _ref;\n const {\n addKeyedListener\n } = React.useContext(NavigationBuilderContext);\n const route = React.useContext(NavigationRouteContext);\n const key = route ? route.key : 'root';\n const getRehydratedState = React.useCallback(() => {\n const state = getState();\n\n // Avoid returning new route objects if we don't need to\n const routes = state.routes.map(route => {\n var _getStateListeners$ro;\n const childState = (_getStateListeners$ro = getStateListeners[route.key]) === null || _getStateListeners$ro === void 0 ? void 0 : _getStateListeners$ro.call(getStateListeners);\n if (route.state === childState) {\n return route;\n }\n return {\n ...route,\n state: childState\n };\n });\n if (isArrayEqual(state.routes, routes)) {\n return state;\n }\n return {\n ...state,\n routes\n };\n }, [getState, getStateListeners]);\n React.useEffect(() => {\n return addKeyedListener === null || addKeyedListener === void 0 ? void 0 : addKeyedListener('getState', key, getRehydratedState);\n }, [addKeyedListener, getRehydratedState, key]);\n}\n//# sourceMappingURL=useOnGetState.js.map","import * as React from 'react';\nimport CurrentRenderContext from './CurrentRenderContext';\n/**\n * Write the current options, so that server renderer can get current values\n * Mutating values like this is not safe in async mode, but it doesn't apply to SSR\n */\nexport default function useCurrentRender(_ref) {\n let {\n state,\n navigation,\n descriptors\n } = _ref;\n const current = React.useContext(CurrentRenderContext);\n if (current && navigation.isFocused()) {\n current.options = descriptors[state.routes[state.index].key].options;\n }\n}\n//# sourceMappingURL=useCurrentRender.js.map","import * as React from 'react';\nimport createNavigationContainerRef from './createNavigationContainerRef';\nexport default function useNavigationContainerRef() {\n const navigation = React.useRef(null);\n if (navigation.current == null) {\n navigation.current = createNavigationContainerRef();\n }\n return navigation.current;\n}\n//# sourceMappingURL=useNavigationContainerRef.js.map","import * as React from 'react';\nimport useNavigation from './useNavigation';\n/**\n * Hook to get a value from the current navigation state using a selector.\n *\n * @param selector Selector function to get a value from the state.\n */\nexport default function useNavigationState(selector) {\n const navigation = useNavigation();\n\n // We don't care about the state value, we run the selector again at the end\n // The state is only to make sure that there's a re-render when we have a new value\n const [, setResult] = React.useState(() => selector(navigation.getState()));\n\n // We store the selector in a ref to avoid re-subscribing listeners every render\n const selectorRef = React.useRef(selector);\n React.useEffect(() => {\n selectorRef.current = selector;\n });\n React.useEffect(() => {\n const unsubscribe = navigation.addListener('state', e => {\n setResult(selectorRef.current(e.data.state));\n });\n return unsubscribe;\n }, [navigation]);\n return selector(navigation.getState());\n}\n//# sourceMappingURL=useNavigationState.js.map","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/* global _WORKLET _getCurrentTime _frameTimestamp _eventTimestamp, _setGlobalConsole */\nimport NativeReanimatedModule from './NativeReanimated';\nimport { Platform } from 'react-native';\nimport { nativeShouldBeMock, shouldBeUseWeb, isWeb } from './PlatformChecker';\nif (global._setGlobalConsole === undefined) {\n // it can happen when Reanimated plugin wasn't added, but the user uses the only API from version 1\n global._setGlobalConsole = () => {\n // noop\n };\n}\nconst testWorklet = () => {\n 'worklet';\n};\nconst throwUninitializedReanimatedException = () => {\n throw new Error(\"Failed to initialize react-native-reanimated library, make sure you followed installation steps here: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation/ \\n1) Make sure reanimated's babel plugin is installed in your babel.config.js (you should have 'react-native-reanimated/plugin' listed there - also see the above link for details) \\n2) Make sure you reset build cache after updating the config, run: yarn start --reset-cache\");\n};\nexport const checkPluginState = (throwError = true) => {\n if (!testWorklet.__workletHash && !shouldBeUseWeb()) {\n if (throwError) {\n throwUninitializedReanimatedException();\n }\n return false;\n }\n return true;\n};\nexport const isConfigured = (throwError = false) => {\n return checkPluginState(throwError);\n};\nexport const isConfiguredCheck = () => {\n checkPluginState(true);\n};\nfunction pushFrame(frame) {\n NativeReanimatedModule.pushFrame(frame);\n}\nexport function requestFrame(frame) {\n 'worklet';\n if (NativeReanimatedModule.native) {\n requestAnimationFrame(frame);\n }\n else {\n pushFrame(frame);\n }\n}\nglobal._WORKLET = false;\nglobal._log = function (s) {\n console.log(s);\n};\nexport function runOnUI(worklet) {\n return makeShareable(worklet);\n}\nexport function makeShareable(value) {\n isConfiguredCheck();\n return NativeReanimatedModule.makeShareable(value);\n}\nexport function getViewProp(viewTag, propName) {\n return new Promise((resolve, reject) => {\n return NativeReanimatedModule.getViewProp(viewTag, propName, (result) => {\n if (typeof result === 'string' && result.substr(0, 6) === 'error:') {\n reject(result);\n }\n else {\n resolve(result);\n }\n });\n });\n}\nlet _getTimestamp;\nif (nativeShouldBeMock()) {\n _getTimestamp = () => {\n return NativeReanimatedModule.getTimestamp();\n };\n}\nelse {\n _getTimestamp = () => {\n 'worklet';\n if (_frameTimestamp) {\n return _frameTimestamp;\n }\n if (_eventTimestamp) {\n return _eventTimestamp;\n }\n return _getCurrentTime();\n };\n}\nexport function getTimestamp() {\n 'worklet';\n if (Platform.OS === 'web') {\n return NativeReanimatedModule.getTimestamp();\n }\n return _getTimestamp();\n}\nfunction workletValueSetter(value) {\n 'worklet';\n const previousAnimation = this._animation;\n if (previousAnimation) {\n previousAnimation.cancelled = true;\n this._animation = null;\n }\n if (typeof value === 'function' ||\n (value !== null &&\n typeof value === 'object' &&\n value.onFrame !== undefined)) {\n const animation = typeof value === 'function'\n ? value()\n : value;\n // prevent setting again to the same value\n // and triggering the mappers that treat this value as an input\n // this happens when the animation's target value(stored in animation.current until animation.onStart is called) is set to the same value as a current one(this._value)\n // built in animations that are not higher order(withTiming, withSpring) hold target value in .current\n if (this._value === animation.current && !animation.isHigherOrder) {\n animation.callback && animation.callback(true);\n return;\n }\n // animated set\n const initializeAnimation = (timestamp) => {\n animation.onStart(animation, this.value, timestamp, previousAnimation);\n };\n initializeAnimation(getTimestamp());\n const step = (timestamp) => {\n if (animation.cancelled) {\n animation.callback && animation.callback(false /* finished */);\n return;\n }\n const finished = animation.onFrame(animation, timestamp);\n animation.finished = true;\n animation.timestamp = timestamp;\n this._value = animation.current;\n if (finished) {\n animation.callback && animation.callback(true /* finished */);\n }\n else {\n requestAnimationFrame(step);\n }\n };\n this._animation = animation;\n if (_frameTimestamp) {\n // frame\n step(_frameTimestamp);\n }\n else {\n requestAnimationFrame(step);\n }\n }\n else {\n // prevent setting again to the same value\n // and triggering the mappers that treat this value as an input\n if (this._value === value) {\n return;\n }\n this._value = value;\n }\n}\n// We cannot use pushFrame\n// so we use own implementation for js\nfunction workletValueSetterJS(value) {\n const previousAnimation = this._animation;\n if (previousAnimation) {\n previousAnimation.cancelled = true;\n this._animation = null;\n }\n if (typeof value === 'function' ||\n (value !== null &&\n typeof value === 'object' &&\n value.onFrame)) {\n // animated set\n const animation = typeof value === 'function'\n ? value()\n : value;\n let initializeAnimation = (timestamp) => {\n animation.onStart(animation, this.value, timestamp, previousAnimation);\n };\n const step = (timestamp) => {\n if (animation.cancelled) {\n animation.callback && animation.callback(false /* finished */);\n return;\n }\n if (initializeAnimation) {\n initializeAnimation(timestamp);\n initializeAnimation = null; // prevent closure from keeping ref to previous animation\n }\n const finished = animation.onFrame(animation, timestamp);\n animation.timestamp = timestamp;\n this._setValue && this._setValue(animation.current);\n if (finished) {\n animation.callback && animation.callback(true /* finished */);\n }\n else {\n requestFrame(step);\n }\n };\n this._animation = animation;\n requestFrame(step);\n }\n else {\n this._setValue && this._setValue(value);\n }\n}\nexport function makeMutable(value) {\n isConfiguredCheck();\n return NativeReanimatedModule.makeMutable(value);\n}\nexport function makeRemote(object = {}) {\n isConfiguredCheck();\n return NativeReanimatedModule.makeRemote(object);\n}\nexport function startMapper(mapper, inputs = [], outputs = [], updater = () => {\n // noop\n}, viewDescriptors = []) {\n isConfiguredCheck();\n return NativeReanimatedModule.startMapper(mapper, inputs, outputs, updater, viewDescriptors);\n}\nexport function stopMapper(mapperId) {\n NativeReanimatedModule.stopMapper(mapperId);\n}\nexport function runOnJS(fun) {\n 'worklet';\n if (!_WORKLET) {\n return fun;\n }\n if (!fun.__callAsync) {\n throw new Error(\"Attempting to call runOnJS with an object that is not a host function. Using runOnJS is only possible with methods that are defined on the main React-Native Javascript thread and that aren't marked as worklets\");\n }\n else {\n return fun.__callAsync;\n }\n}\nNativeReanimatedModule.installCoreFunctions(NativeReanimatedModule.native\n ? workletValueSetter\n : workletValueSetterJS);\nif (!isWeb() && isConfigured()) {\n const capturableConsole = console;\n runOnUI(() => {\n 'worklet';\n const console = {\n debug: runOnJS(capturableConsole.debug),\n log: runOnJS(capturableConsole.log),\n warn: runOnJS(capturableConsole.warn),\n error: runOnJS(capturableConsole.error),\n info: runOnJS(capturableConsole.info),\n };\n _setGlobalConsole(console);\n })();\n}\nlet featuresConfig = {\n enableLayoutAnimations: false,\n setByUser: false,\n};\nexport function enableLayoutAnimations(flag, isCallByUser = true) {\n if (isCallByUser) {\n featuresConfig = {\n enableLayoutAnimations: flag,\n setByUser: true,\n };\n NativeReanimatedModule.enableLayoutAnimations(flag);\n }\n else if (!featuresConfig.setByUser &&\n featuresConfig.enableLayoutAnimations !== flag) {\n featuresConfig.enableLayoutAnimations = flag;\n NativeReanimatedModule.enableLayoutAnimations(flag);\n }\n}\nexport function configureProps(uiProps, nativeProps) {\n if (!nativeShouldBeMock()) {\n NativeReanimatedModule.configureProps(uiProps, nativeProps);\n }\n}\nexport function jestResetJsReanimatedModule() {\n NativeReanimatedModule.jestResetModule();\n}\n","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * The set of allowed directive location values.\n */\nexport var DirectiveLocation = Object.freeze({\n // Request Definitions\n QUERY: 'QUERY',\n MUTATION: 'MUTATION',\n SUBSCRIPTION: 'SUBSCRIPTION',\n FIELD: 'FIELD',\n FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION',\n FRAGMENT_SPREAD: 'FRAGMENT_SPREAD',\n INLINE_FRAGMENT: 'INLINE_FRAGMENT',\n VARIABLE_DEFINITION: 'VARIABLE_DEFINITION',\n // Type System Definitions\n SCHEMA: 'SCHEMA',\n SCALAR: 'SCALAR',\n OBJECT: 'OBJECT',\n FIELD_DEFINITION: 'FIELD_DEFINITION',\n ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION',\n INTERFACE: 'INTERFACE',\n UNION: 'UNION',\n ENUM: 'ENUM',\n ENUM_VALUE: 'ENUM_VALUE',\n INPUT_OBJECT: 'INPUT_OBJECT',\n INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION'\n});\n/**\n * The enum type representing the directive location values.\n */\n","export default function devAssert(condition, message) {\n var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","import { Platform } from 'expo-modules-core';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n ExecutionEnvironment,\n NativeConstants,\n PlatformManifest,\n WebManifest,\n} from './Constants.types';\n\nconst ID_KEY = 'EXPO_CONSTANTS_INSTALLATION_ID';\n\ndeclare let __DEV__: boolean;\ndeclare let process: { env: any };\ndeclare let navigator: Navigator;\ndeclare let location: Location;\ndeclare let localStorage: Storage;\n\nconst _sessionId = uuidv4();\n\nfunction getBrowserName(): string | undefined {\n if (Platform.isDOMAvailable) {\n const agent = navigator.userAgent.toLowerCase();\n if (agent.includes('edge')) {\n return 'Edge';\n } else if (agent.includes('edg')) {\n return 'Chromium Edge';\n } else if (agent.includes('opr') && !!window['opr']) {\n return 'Opera';\n } else if (agent.includes('chrome') && !!window['chrome']) {\n return 'Chrome';\n } else if (agent.includes('trident')) {\n return 'IE';\n } else if (agent.includes('firefox')) {\n return 'Firefox';\n } else if (agent.includes('safari')) {\n return 'Safari';\n }\n }\n\n return undefined;\n}\n\nexport default {\n get name(): string {\n return 'ExponentConstants';\n },\n get appOwnership() {\n return null;\n },\n get executionEnvironment() {\n return ExecutionEnvironment.Bare;\n },\n get installationId(): string {\n let installationId;\n try {\n installationId = localStorage.getItem(ID_KEY);\n if (installationId == null || typeof installationId !== 'string') {\n installationId = uuidv4();\n localStorage.setItem(ID_KEY, installationId as string);\n }\n } catch (error) {\n installationId = _sessionId;\n } finally {\n return installationId;\n }\n },\n get sessionId(): string {\n return _sessionId;\n },\n get platform(): PlatformManifest {\n return { web: Platform.isDOMAvailable ? { ua: navigator.userAgent } : undefined };\n },\n get isHeadless(): boolean {\n if (!Platform.isDOMAvailable) return true;\n\n return /\\bHeadlessChrome\\//.test(navigator.userAgent);\n },\n get isDevice(): true {\n // TODO: Bacon: Possibly want to add information regarding simulators\n return true;\n },\n get expoVersion(): string | null {\n return this.manifest!.sdkVersion || null;\n },\n get linkingUri(): string {\n if (Platform.isDOMAvailable) {\n // On native this is `exp://`\n // On web we should use the protocol and hostname (location.origin)\n return location.origin;\n } else {\n return '';\n }\n },\n get expoRuntimeVersion(): string | null {\n return this.expoVersion;\n },\n get deviceName(): string | undefined {\n return getBrowserName();\n },\n get nativeAppVersion(): null {\n return null;\n },\n get nativeBuildVersion(): null {\n return null;\n },\n get systemFonts(): string[] {\n // TODO: Bacon: Maybe possible.\n return [];\n },\n get statusBarHeight(): number {\n return 0;\n },\n get deviceYearClass(): number | null {\n // TODO: Bacon: The android version isn't very accurate either, maybe we could try and guess this value.\n return null;\n },\n get manifest(): WebManifest {\n // This is defined by @expo/webpack-config.\n // If your site is bundled with a different config then you may not have access to the app.json automatically.\n return process.env.APP_MANIFEST || {};\n },\n get manifest2(): null {\n return null;\n },\n get experienceUrl(): string {\n if (Platform.isDOMAvailable) {\n return location.origin;\n } else {\n return '';\n }\n },\n get debugMode(): boolean {\n return __DEV__;\n },\n async getWebViewUserAgentAsync(): Promise {\n if (Platform.isDOMAvailable) {\n return navigator.userAgent;\n } else {\n return null;\n }\n },\n} as NativeConstants;\n","import { CodedError, NativeModulesProxy } from 'expo-modules-core';\nimport { Platform, NativeModules } from 'react-native';\n\nimport {\n AndroidManifest,\n AppManifest,\n AppOwnership,\n Constants,\n ExecutionEnvironment,\n IOSManifest,\n Manifest,\n NativeConstants,\n PlatformManifest,\n UserInterfaceIdiom,\n WebManifest,\n} from './Constants.types';\nimport ExponentConstants from './ExponentConstants';\n\nexport {\n AndroidManifest,\n AppOwnership,\n Constants,\n ExecutionEnvironment,\n IOSManifest,\n NativeConstants,\n PlatformManifest,\n UserInterfaceIdiom,\n WebManifest,\n};\n\nif (!ExponentConstants) {\n console.warn(\n \"No native ExponentConstants module found, are you sure the expo-constants's module is linked properly?\"\n );\n}\n\nlet rawManifest: AppManifest | Manifest | null = null;\n// If expo-updates defines a non-empty manifest, prefer that one\nif (NativeModulesProxy.ExpoUpdates) {\n let updatesManifest;\n if (NativeModulesProxy.ExpoUpdates.manifest) {\n updatesManifest = NativeModulesProxy.ExpoUpdates.manifest;\n } else if (NativeModulesProxy.ExpoUpdates.manifestString) {\n updatesManifest = JSON.parse(NativeModulesProxy.ExpoUpdates.manifestString);\n }\n if (updatesManifest && Object.keys(updatesManifest).length > 0) {\n rawManifest = updatesManifest;\n }\n}\n\n// If dev-launcher defines a non-empty manifest, prefer that one\nif (NativeModules.EXDevLauncher) {\n let devLauncherManifest;\n if (NativeModules.EXDevLauncher.manifestString) {\n devLauncherManifest = JSON.parse(NativeModules.EXDevLauncher.manifestString);\n }\n\n if (devLauncherManifest && Object.keys(devLauncherManifest).length > 0) {\n rawManifest = devLauncherManifest;\n }\n}\n\n// Fall back to ExponentConstants.manifest if we don't have one from Updates\nif (!rawManifest && ExponentConstants && ExponentConstants.manifest) {\n rawManifest = ExponentConstants.manifest;\n // On Android we pass the manifest in JSON form so this step is necessary\n if (typeof rawManifest === 'string') {\n rawManifest = JSON.parse(rawManifest);\n }\n}\n\nconst { name, appOwnership, ...nativeConstants } = (ExponentConstants || {}) as any;\n\nlet warnedAboutDeviceYearClass = false;\nlet warnedAboutIosModel = false;\nlet warnedAboutInstallationId = false;\nlet warnedAboutDeviceId = false;\nlet warnedAboutLinkingUrl = false;\n\nconst constants: Constants = {\n ...nativeConstants,\n // Ensure this is null in bare workflow\n appOwnership: appOwnership ?? null,\n};\n\nObject.defineProperties(constants, {\n // Deprecated fields\n deviceYearClass: {\n get() {\n if (!warnedAboutDeviceYearClass) {\n console.warn(\n `Constants.deviceYearClass has been deprecated in favor of expo-device's Device.deviceYearClass property. This API will be removed in SDK 45.`\n );\n warnedAboutDeviceYearClass = true;\n }\n return nativeConstants.deviceYearClass;\n },\n enumerable: false,\n },\n // Deprecated fields\n installationId: {\n get() {\n if (!warnedAboutInstallationId) {\n console.warn(\n `Constants.installationId has been deprecated in favor of generating and storing your own ID. Implement it using expo-application's androidId on Android and a storage API such as expo-secure-store on iOS and localStorage on the web. This API will be removed in SDK 44.`\n );\n warnedAboutInstallationId = true;\n }\n return nativeConstants.installationId;\n },\n enumerable: false,\n },\n // Legacy aliases\n deviceId: {\n get() {\n if (!warnedAboutDeviceId) {\n console.warn(\n `Constants.deviceId has been deprecated in favor of generating and storing your own ID. This API will be removed in SDK 44.`\n );\n warnedAboutDeviceId = true;\n }\n return nativeConstants.installationId;\n },\n enumerable: false,\n },\n linkingUrl: {\n get() {\n if (!warnedAboutLinkingUrl) {\n console.warn(\n `Constants.linkingUrl has been renamed to Constants.linkingUri. Consider using the Linking API directly. Constants.linkingUrl will be removed in SDK 44.`\n );\n warnedAboutLinkingUrl = true;\n }\n return nativeConstants.linkingUri;\n },\n enumerable: false,\n },\n /**\n * Use `manifest` property by default.\n * This property is only used for internal purposes.\n * It behaves similarly to the original one, but suppresses warning upon no manifest available.\n * `expo-asset` uses it to prevent users from seeing mentioned warning.\n */\n __unsafeNoWarnManifest: {\n get(): AppManifest | Manifest | null {\n const maybeManifest = getManifest(true);\n if (!maybeManifest || !isAppManifest(maybeManifest)) {\n return null;\n }\n return maybeManifest;\n },\n enumerable: false,\n },\n __unsafeNoWarnManifest2: {\n get(): Manifest | Manifest | null {\n const maybeManifest = getManifest(true);\n if (!maybeManifest || !isManifest(maybeManifest)) {\n return null;\n }\n return maybeManifest;\n },\n enumerable: false,\n },\n manifest: {\n get(): AppManifest | null {\n const maybeManifest = getManifest();\n if (!maybeManifest || !isAppManifest(maybeManifest)) {\n return null;\n }\n return maybeManifest;\n },\n enumerable: true,\n },\n manifest2: {\n get(): Manifest | null {\n const maybeManifest = getManifest();\n if (!maybeManifest || !isManifest(maybeManifest)) {\n return null;\n }\n return maybeManifest;\n },\n enumerable: true,\n },\n __rawManifest_TEST: {\n get(): AppManifest | Manifest | null {\n return rawManifest;\n },\n set(value: AppManifest | Manifest | null) {\n rawManifest = value;\n },\n enumerable: false,\n },\n});\n\n// Add deprecation warning for `platform.ios.model`\nif (constants?.platform?.ios) {\n const originalModel = nativeConstants.platform.ios.model;\n Object.defineProperty(constants.platform.ios, 'model', {\n get() {\n if (!warnedAboutIosModel) {\n console.warn(\n `Constants.platform.ios.model has been deprecated in favor of expo-device's Device.modelName property. This API will be removed in SDK 45.`\n );\n warnedAboutIosModel = true;\n }\n return originalModel;\n },\n enumerable: false,\n });\n}\n\nfunction isAppManifest(manifest: AppManifest | Manifest): manifest is AppManifest {\n return !isManifest(manifest);\n}\n\nfunction isManifest(manifest: AppManifest | Manifest): manifest is Manifest {\n return 'metadata' in manifest;\n}\n\nfunction getManifest(suppressWarning = false): AppManifest | Manifest | null {\n if (!rawManifest) {\n const invalidManifestType = rawManifest === null ? 'null' : 'undefined';\n if (\n nativeConstants.executionEnvironment === ExecutionEnvironment.Bare &&\n Platform.OS !== 'web'\n ) {\n if (!suppressWarning) {\n console.warn(\n `Constants.manifest is ${invalidManifestType} because the embedded app.config could not be read. Ensure that you have installed the expo-constants build scripts if you need to read from Constants.manifest.`\n );\n }\n } else if (\n nativeConstants.executionEnvironment === ExecutionEnvironment.StoreClient ||\n nativeConstants.executionEnvironment === ExecutionEnvironment.Standalone\n ) {\n // If we somehow get here, this is a truly exceptional state to be in.\n // Constants.manifest should *always* be defined in those contexts.\n throw new CodedError(\n 'ERR_CONSTANTS_MANIFEST_UNAVAILABLE',\n `Constants.manifest is ${invalidManifestType}, must be an object.`\n );\n }\n }\n return rawManifest;\n}\n\nexport default constants as Constants;\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport default canUseDOM;","export const transparent = 'rgba(255, 255, 255, 0)';\n\nexport const red50 = '#ffebee';\nexport const red100 = '#ffcdd2';\nexport const red200 = '#ef9a9a';\nexport const red300 = '#e57373';\nexport const red400 = '#ef5350';\nexport const red500 = '#f44336';\nexport const red600 = '#e53935';\nexport const red700 = '#d32f2f';\nexport const red800 = '#c62828';\nexport const red900 = '#b71c1c';\nexport const redA100 = '#ff8a80';\nexport const redA200 = '#ff5252';\nexport const redA400 = '#ff1744';\nexport const redA700 = '#d50000';\n\nexport const pink50 = '#fce4ec';\nexport const pink100 = '#f8bbd0';\nexport const pink200 = '#f48fb1';\nexport const pink300 = '#f06292';\nexport const pink400 = '#ec407a';\nexport const pink500 = '#e91e63';\nexport const pink600 = '#d81b60';\nexport const pink700 = '#c2185b';\nexport const pink800 = '#ad1457';\nexport const pink900 = '#880e4f';\nexport const pinkA100 = '#ff80ab';\nexport const pinkA200 = '#ff4081';\nexport const pinkA400 = '#f50057';\nexport const pinkA700 = '#c51162';\n\nexport const purple50 = '#f3e5f5';\nexport const purple100 = '#e1bee7';\nexport const purple200 = '#ce93d8';\nexport const purple300 = '#ba68c8';\nexport const purple400 = '#ab47bc';\nexport const purple500 = '#9c27b0';\nexport const purple600 = '#8e24aa';\nexport const purple700 = '#7b1fa2';\nexport const purple800 = '#6a1b9a';\nexport const purple900 = '#4a148c';\nexport const purpleA100 = '#ea80fc';\nexport const purpleA200 = '#e040fb';\nexport const purpleA400 = '#d500f9';\nexport const purpleA700 = '#aa00ff';\n\nexport const deepPurple50 = '#ede7f6';\nexport const deepPurple100 = '#d1c4e9';\nexport const deepPurple200 = '#b39ddb';\nexport const deepPurple300 = '#9575cd';\nexport const deepPurple400 = '#7e57c2';\nexport const deepPurple500 = '#673ab7';\nexport const deepPurple600 = '#5e35b1';\nexport const deepPurple700 = '#512da8';\nexport const deepPurple800 = '#4527a0';\nexport const deepPurple900 = '#311b92';\nexport const deepPurpleA100 = '#b388ff';\nexport const deepPurpleA200 = '#7c4dff';\nexport const deepPurpleA400 = '#651fff';\nexport const deepPurpleA700 = '#6200ea';\n\nexport const indigo50 = '#e8eaf6';\nexport const indigo100 = '#c5cae9';\nexport const indigo200 = '#9fa8da';\nexport const indigo300 = '#7986cb';\nexport const indigo400 = '#5c6bc0';\nexport const indigo500 = '#3f51b5';\nexport const indigo600 = '#3949ab';\nexport const indigo700 = '#303f9f';\nexport const indigo800 = '#283593';\nexport const indigo900 = '#1a237e';\nexport const indigoA100 = '#8c9eff';\nexport const indigoA200 = '#536dfe';\nexport const indigoA400 = '#3d5afe';\nexport const indigoA700 = '#304ffe';\n\nexport const blue50 = '#e3f2fd';\nexport const blue100 = '#bbdefb';\nexport const blue200 = '#90caf9';\nexport const blue300 = '#64b5f6';\nexport const blue400 = '#42a5f5';\nexport const blue500 = '#2196f3';\nexport const blue600 = '#1e88e5';\nexport const blue700 = '#1976d2';\nexport const blue800 = '#1565c0';\nexport const blue900 = '#0d47a1';\nexport const blueA100 = '#82b1ff';\nexport const blueA200 = '#448aff';\nexport const blueA400 = '#2979ff';\nexport const blueA700 = '#2962ff';\n\nexport const lightBlue50 = '#e1f5fe';\nexport const lightBlue100 = '#b3e5fc';\nexport const lightBlue200 = '#81d4fa';\nexport const lightBlue300 = '#4fc3f7';\nexport const lightBlue400 = '#29b6f6';\nexport const lightBlue500 = '#03a9f4';\nexport const lightBlue600 = '#039be5';\nexport const lightBlue700 = '#0288d1';\nexport const lightBlue800 = '#0277bd';\nexport const lightBlue900 = '#01579b';\nexport const lightBlueA100 = '#80d8ff';\nexport const lightBlueA200 = '#40c4ff';\nexport const lightBlueA400 = '#00b0ff';\nexport const lightBlueA700 = '#0091ea';\n\nexport const cyan50 = '#e0f7fa';\nexport const cyan100 = '#b2ebf2';\nexport const cyan200 = '#80deea';\nexport const cyan300 = '#4dd0e1';\nexport const cyan400 = '#26c6da';\nexport const cyan500 = '#00bcd4';\nexport const cyan600 = '#00acc1';\nexport const cyan700 = '#0097a7';\nexport const cyan800 = '#00838f';\nexport const cyan900 = '#006064';\nexport const cyanA100 = '#84ffff';\nexport const cyanA200 = '#18ffff';\nexport const cyanA400 = '#00e5ff';\nexport const cyanA700 = '#00b8d4';\n\nexport const teal50 = '#e0f2f1';\nexport const teal100 = '#b2dfdb';\nexport const teal200 = '#80cbc4';\nexport const teal300 = '#4db6ac';\nexport const teal400 = '#26a69a';\nexport const teal500 = '#009688';\nexport const teal600 = '#00897b';\nexport const teal700 = '#00796b';\nexport const teal800 = '#00695c';\nexport const teal900 = '#004d40';\nexport const tealA100 = '#a7ffeb';\nexport const tealA200 = '#64ffda';\nexport const tealA400 = '#1de9b6';\nexport const tealA700 = '#00bfa5';\n\nexport const green50 = '#e8f5e9';\nexport const green100 = '#c8e6c9';\nexport const green200 = '#a5d6a7';\nexport const green300 = '#81c784';\nexport const green400 = '#66bb6a';\nexport const green500 = '#4caf50';\nexport const green600 = '#43a047';\nexport const green700 = '#388e3c';\nexport const green800 = '#2e7d32';\nexport const green900 = '#1b5e20';\nexport const greenA100 = '#b9f6ca';\nexport const greenA200 = '#69f0ae';\nexport const greenA400 = '#00e676';\nexport const greenA700 = '#00c853';\n\nexport const lightGreen50 = '#f1f8e9';\nexport const lightGreen100 = '#dcedc8';\nexport const lightGreen200 = '#c5e1a5';\nexport const lightGreen300 = '#aed581';\nexport const lightGreen400 = '#9ccc65';\nexport const lightGreen500 = '#8bc34a';\nexport const lightGreen600 = '#7cb342';\nexport const lightGreen700 = '#689f38';\nexport const lightGreen800 = '#558b2f';\nexport const lightGreen900 = '#33691e';\nexport const lightGreenA100 = '#ccff90';\nexport const lightGreenA200 = '#b2ff59';\nexport const lightGreenA400 = '#76ff03';\nexport const lightGreenA700 = '#64dd17';\n\nexport const lime50 = '#f9fbe7';\nexport const lime100 = '#f0f4c3';\nexport const lime200 = '#e6ee9c';\nexport const lime300 = '#dce775';\nexport const lime400 = '#d4e157';\nexport const lime500 = '#cddc39';\nexport const lime600 = '#c0ca33';\nexport const lime700 = '#afb42b';\nexport const lime800 = '#9e9d24';\nexport const lime900 = '#827717';\nexport const limeA100 = '#f4ff81';\nexport const limeA200 = '#eeff41';\nexport const limeA400 = '#c6ff00';\nexport const limeA700 = '#aeea00';\n\nexport const yellow50 = '#fffde7';\nexport const yellow100 = '#fff9c4';\nexport const yellow200 = '#fff59d';\nexport const yellow300 = '#fff176';\nexport const yellow400 = '#ffee58';\nexport const yellow500 = '#ffeb3b';\nexport const yellow600 = '#fdd835';\nexport const yellow700 = '#fbc02d';\nexport const yellow800 = '#f9a825';\nexport const yellow900 = '#f57f17';\nexport const yellowA100 = '#ffff8d';\nexport const yellowA200 = '#ffff00';\nexport const yellowA400 = '#ffea00';\nexport const yellowA700 = '#ffd600';\n\nexport const amber50 = '#fff8e1';\nexport const amber100 = '#ffecb3';\nexport const amber200 = '#ffe082';\nexport const amber300 = '#ffd54f';\nexport const amber400 = '#ffca28';\nexport const amber500 = '#ffc107';\nexport const amber600 = '#ffb300';\nexport const amber700 = '#ffa000';\nexport const amber800 = '#ff8f00';\nexport const amber900 = '#ff6f00';\nexport const amberA100 = '#ffe57f';\nexport const amberA200 = '#ffd740';\nexport const amberA400 = '#ffc400';\nexport const amberA700 = '#ffab00';\n\nexport const orange50 = '#fff3e0';\nexport const orange100 = '#ffe0b2';\nexport const orange200 = '#ffcc80';\nexport const orange300 = '#ffb74d';\nexport const orange400 = '#ffa726';\nexport const orange500 = '#ff9800';\nexport const orange600 = '#fb8c00';\nexport const orange700 = '#f57c00';\nexport const orange800 = '#ef6c00';\nexport const orange900 = '#e65100';\nexport const orangeA100 = '#ffd180';\nexport const orangeA200 = '#ffab40';\nexport const orangeA400 = '#ff9100';\nexport const orangeA700 = '#ff6d00';\n\nexport const deepOrange50 = '#fbe9e7';\nexport const deepOrange100 = '#ffccbc';\nexport const deepOrange200 = '#ffab91';\nexport const deepOrange300 = '#ff8a65';\nexport const deepOrange400 = '#ff7043';\nexport const deepOrange500 = '#ff5722';\nexport const deepOrange600 = '#f4511e';\nexport const deepOrange700 = '#e64a19';\nexport const deepOrange800 = '#d84315';\nexport const deepOrange900 = '#bf360c';\nexport const deepOrangeA100 = '#ff9e80';\nexport const deepOrangeA200 = '#ff6e40';\nexport const deepOrangeA400 = '#ff3d00';\nexport const deepOrangeA700 = '#dd2c00';\n\nexport const brown50 = '#efebe9';\nexport const brown100 = '#d7ccc8';\nexport const brown200 = '#bcaaa4';\nexport const brown300 = '#a1887f';\nexport const brown400 = '#8d6e63';\nexport const brown500 = '#795548';\nexport const brown600 = '#6d4c41';\nexport const brown700 = '#5d4037';\nexport const brown800 = '#4e342e';\nexport const brown900 = '#3e2723';\n\nexport const blueGrey50 = '#eceff1';\nexport const blueGrey100 = '#cfd8dc';\nexport const blueGrey200 = '#b0bec5';\nexport const blueGrey300 = '#90a4ae';\nexport const blueGrey400 = '#78909c';\nexport const blueGrey500 = '#607d8b';\nexport const blueGrey600 = '#546e7a';\nexport const blueGrey700 = '#455a64';\nexport const blueGrey800 = '#37474f';\nexport const blueGrey900 = '#263238';\n\nexport const grey50 = '#fafafa';\nexport const grey100 = '#f5f5f5';\nexport const grey200 = '#eeeeee';\nexport const grey300 = '#e0e0e0';\nexport const grey400 = '#bdbdbd';\nexport const grey500 = '#9e9e9e';\nexport const grey600 = '#757575';\nexport const grey700 = '#616161';\nexport const grey800 = '#424242';\nexport const grey900 = '#212121';\n\nexport const black = '#000000';\nexport const white = '#ffffff';\n","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nvar I18nManager = {\n allowRTL() {\n return;\n },\n\n forceRTL() {\n return;\n },\n\n getConstants() {\n return {\n isRTL: false\n };\n }\n\n};\nexport default I18nManager;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\nimport NativeAnimatedNonTurboModule from './NativeAnimatedModule';\nimport NativeAnimatedTurboModule from './NativeAnimatedTurboModule';\nimport NativeEventEmitter from '../NativeEventEmitter';\nimport Platform from '../../../exports/Platform';\nimport invariant from 'fbjs/lib/invariant'; // TODO T69437152 @petetheheat - Delete this fork when Fabric ships to 100%.\n\nvar NativeAnimatedModule = Platform.OS === 'ios' && global.RN$Bridgeless ? NativeAnimatedTurboModule : NativeAnimatedNonTurboModule;\nvar __nativeAnimatedNodeTagCount = 1;\n/* used for animated nodes */\n\nvar __nativeAnimationIdCount = 1;\n/* used for started animations */\n\nvar nativeEventEmitter;\nvar waitingForQueuedOperations = new Set();\nvar queueOperations = false;\nvar queue = [];\n/**\n * Simple wrappers around NativeAnimatedModule to provide flow and autocomplete support for\n * the native module methods\n */\n\nvar API = {\n getValue: function getValue(tag, saveValueCallback) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n\n if (NativeAnimatedModule.getValue) {\n NativeAnimatedModule.getValue(tag, saveValueCallback);\n }\n },\n setWaitingForIdentifier: function setWaitingForIdentifier(id) {\n waitingForQueuedOperations.add(id);\n queueOperations = true;\n },\n unsetWaitingForIdentifier: function unsetWaitingForIdentifier(id) {\n waitingForQueuedOperations.delete(id);\n\n if (waitingForQueuedOperations.size === 0) {\n queueOperations = false;\n API.disableQueue();\n }\n },\n disableQueue: function disableQueue() {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n\n if (Platform.OS === 'android') {\n NativeAnimatedModule.startOperationBatch();\n }\n\n for (var q = 0, l = queue.length; q < l; q++) {\n queue[q]();\n }\n\n queue.length = 0;\n\n if (Platform.OS === 'android') {\n NativeAnimatedModule.finishOperationBatch();\n }\n },\n queueOperation: fn => {\n if (queueOperations) {\n queue.push(fn);\n } else {\n fn();\n }\n },\n createAnimatedNode: function createAnimatedNode(tag, config) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.createAnimatedNode(tag, config));\n },\n startListeningToAnimatedNodeValue: function startListeningToAnimatedNodeValue(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.startListeningToAnimatedNodeValue(tag));\n },\n stopListeningToAnimatedNodeValue: function stopListeningToAnimatedNodeValue(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.stopListeningToAnimatedNodeValue(tag));\n },\n connectAnimatedNodes: function connectAnimatedNodes(parentTag, childTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.connectAnimatedNodes(parentTag, childTag));\n },\n disconnectAnimatedNodes: function disconnectAnimatedNodes(parentTag, childTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.disconnectAnimatedNodes(parentTag, childTag));\n },\n startAnimatingNode: function startAnimatingNode(animationId, nodeTag, config, endCallback) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.startAnimatingNode(animationId, nodeTag, config, endCallback));\n },\n stopAnimation: function stopAnimation(animationId) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.stopAnimation(animationId));\n },\n setAnimatedNodeValue: function setAnimatedNodeValue(nodeTag, value) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.setAnimatedNodeValue(nodeTag, value));\n },\n setAnimatedNodeOffset: function setAnimatedNodeOffset(nodeTag, offset) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.setAnimatedNodeOffset(nodeTag, offset));\n },\n flattenAnimatedNodeOffset: function flattenAnimatedNodeOffset(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.flattenAnimatedNodeOffset(nodeTag));\n },\n extractAnimatedNodeOffset: function extractAnimatedNodeOffset(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.extractAnimatedNodeOffset(nodeTag));\n },\n connectAnimatedNodeToView: function connectAnimatedNodeToView(nodeTag, viewTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.connectAnimatedNodeToView(nodeTag, viewTag));\n },\n disconnectAnimatedNodeFromView: function disconnectAnimatedNodeFromView(nodeTag, viewTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.disconnectAnimatedNodeFromView(nodeTag, viewTag));\n },\n restoreDefaultValues: function restoreDefaultValues(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available'); // Backwards compat with older native runtimes, can be removed later.\n\n if (NativeAnimatedModule.restoreDefaultValues != null) {\n API.queueOperation(() => NativeAnimatedModule.restoreDefaultValues(nodeTag));\n }\n },\n dropAnimatedNode: function dropAnimatedNode(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.dropAnimatedNode(tag));\n },\n addAnimatedEventToView: function addAnimatedEventToView(viewTag, eventName, eventMapping) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.addAnimatedEventToView(viewTag, eventName, eventMapping));\n },\n\n removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag));\n }\n\n};\n/**\n * Styles allowed by the native animated implementation.\n *\n * In general native animated implementation should support any numeric property that doesn't need\n * to be updated through the shadow view hierarchy (all non-layout properties).\n */\n\nvar SUPPORTED_STYLES = {\n opacity: true,\n transform: true,\n borderRadius: true,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n elevation: true,\n zIndex: true,\n\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true\n};\nvar SUPPORTED_TRANSFORMS = {\n translateX: true,\n translateY: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n rotate: true,\n rotateX: true,\n rotateY: true,\n rotateZ: true,\n perspective: true\n};\nvar SUPPORTED_INTERPOLATION_PARAMS = {\n inputRange: true,\n outputRange: true,\n extrapolate: true,\n extrapolateRight: true,\n extrapolateLeft: true\n};\n\nfunction addWhitelistedStyleProp(prop) {\n SUPPORTED_STYLES[prop] = true;\n}\n\nfunction addWhitelistedTransformProp(prop) {\n SUPPORTED_TRANSFORMS[prop] = true;\n}\n\nfunction addWhitelistedInterpolationParam(param) {\n SUPPORTED_INTERPOLATION_PARAMS[param] = true;\n}\n\nfunction validateTransform(configs) {\n configs.forEach(config => {\n if (!SUPPORTED_TRANSFORMS.hasOwnProperty(config.property)) {\n throw new Error(\"Property '\" + config.property + \"' is not supported by native animated module\");\n }\n });\n}\n\nfunction validateStyles(styles) {\n for (var _key in styles) {\n if (!SUPPORTED_STYLES.hasOwnProperty(_key)) {\n throw new Error(\"Style property '\" + _key + \"' is not supported by native animated module\");\n }\n }\n}\n\nfunction validateInterpolation(config) {\n for (var _key2 in config) {\n if (!SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(_key2)) {\n throw new Error(\"Interpolation property '\" + _key2 + \"' is not supported by native animated module\");\n }\n }\n}\n\nfunction generateNewNodeTag() {\n return __nativeAnimatedNodeTagCount++;\n}\n\nexport function generateNewAnimationId() {\n return __nativeAnimationIdCount++;\n}\n\nfunction assertNativeAnimatedModule() {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n}\n\nvar _warnedMissingNativeAnimated = false;\nexport function shouldUseNativeDriver(config) {\n if (config.useNativeDriver == null) {\n console.warn('Animated: `useNativeDriver` was not specified. This is a required ' + 'option and must be explicitly set to `true` or `false`');\n }\n\n if (config.useNativeDriver === true && !NativeAnimatedModule) {\n if (!_warnedMissingNativeAnimated) {\n console.warn('Animated: `useNativeDriver` is not supported because the native ' + 'animated module is missing. Falling back to JS-based animation. To ' + 'resolve this, add `RCTAnimation` module to this app, or remove ' + '`useNativeDriver`. ' + 'Make sure to run `pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md');\n _warnedMissingNativeAnimated = true;\n }\n\n return false;\n }\n\n return config.useNativeDriver || false;\n}\n\nfunction transformDataType(value) {\n // Change the string type to number type so we can reuse the same logic in\n // iOS and Android platform\n if (typeof value !== 'string') {\n return value;\n }\n\n if (/deg$/.test(value)) {\n var degrees = parseFloat(value) || 0;\n var radians = degrees * Math.PI / 180.0;\n return radians;\n } else {\n return value;\n }\n}\n\nexport default {\n API,\n addWhitelistedStyleProp,\n addWhitelistedTransformProp,\n addWhitelistedInterpolationParam,\n validateStyles,\n validateTransform,\n validateInterpolation,\n generateNewNodeTag,\n generateNewAnimationId,\n assertNativeAnimatedModule,\n shouldUseNativeDriver,\n transformDataType,\n\n // $FlowExpectedError - unsafe getter lint suppresion\n get nativeEventEmitter() {\n if (!nativeEventEmitter) {\n nativeEventEmitter = new NativeEventEmitter(NativeAnimatedModule);\n }\n\n return nativeEventEmitter;\n }\n\n};","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport { findDOMNode } from 'react-dom';\n\nvar findNodeHandle = component => {\n var node;\n\n try {\n node = findDOMNode(component);\n } catch (e) {}\n\n return node;\n};\n\nexport default findNodeHandle;","import{get as r,set as i}from\"react-hook-form\";var e=function(i,e,t){if(i&&\"reportValidity\"in i){var f=r(t,e);i.setCustomValidity(f&&f.message||\"\"),i.reportValidity()}},t=function(r,i){var t=function(t){var f=i.fields[t];f&&f.ref&&\"reportValidity\"in f.ref?e(f.ref,t,r):f.refs&&f.refs.forEach(function(i){return e(i,t,r)})};for(var f in i.fields)t(f)},f=function(e,f){f.shouldUseNativeValidation&&t(e,f);var o={};for(var a in e){var n=r(f.fields,a);i(o,a,Object.assign(e[a],{ref:n&&n.ref}))}return o};export{f as toNestError,t as validateFieldsNatively};\n//# sourceMappingURL=resolvers.module.js.map\n","import{validateFieldsNatively as e,toNestError as t}from\"@hookform/resolvers\";import{appendErrors as r}from\"react-hook-form\";var o=function(o,n,a){return void 0===n&&(n={}),void 0===a&&(a={}),function(s,i,c){try{return Promise.resolve(function(t,r){try{var u=(n.context&&\"development\"===process.env.NODE_ENV&&console.warn(\"You should not used the yup options context. Please, use the 'useForm' context object instead\"),Promise.resolve(o[\"sync\"===a.mode?\"validateSync\":\"validate\"](s,Object.assign({abortEarly:!1},n,{context:i}))).then(function(t){return c.shouldUseNativeValidation&&e({},c),{values:a.rawValues?s:t,errors:{}}}))}catch(e){return r(e)}return u&&u.then?u.then(void 0,r):u}(0,function(e){if(!e.inner)throw e;return{values:{},errors:t((o=e,n=!c.shouldUseNativeValidation&&\"all\"===c.criteriaMode,(o.inner||[]).reduce(function(e,t){if(e[t.path]||(e[t.path]={message:t.message,type:t.type}),n){var o=e[t.path].types,a=o&&o[t.type];e[t.path]=r(t.path,n,e,t.type,a?[].concat(a,t.message):t.message)}return e},{})),c)};var o,n}))}catch(e){return Promise.reject(e)}}};export{o as yupResolver};\n//# sourceMappingURL=yup.module.js.map\n","export const Directions = {\n RIGHT: 1,\n LEFT: 2,\n UP: 4,\n DOWN: 8,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\nexport type Directions = typeof Directions[keyof typeof Directions];\n","import * as React from 'react';\nimport { StyleSheet, StyleProp, ViewStyle } from 'react-native';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport GestureHandlerRootView from './GestureHandlerRootView';\n\nexport default function gestureHandlerRootHOC<\n P extends JSX.IntrinsicAttributes\n>(\n Component: React.ComponentType

,\n containerStyles?: StyleProp\n): React.ComponentType

{\n function Wrapper(props: P) {\n return (\n \n \n \n );\n }\n\n Wrapper.displayName = `gestureHandlerRootHOC(${\n Component.displayName || Component.name\n })`;\n\n // @ts-ignore - hoistNonReactStatics uses old version of @types/react\n hoistNonReactStatics(Wrapper, Component);\n\n return Wrapper;\n}\n\nconst styles = StyleSheet.create({\n container: { flex: 1 },\n});\n","import Hammer from '@egjs/hammerjs';\nimport { HammerInputExt } from './GestureHandler';\n\nimport IndiscreteGestureHandler from './IndiscreteGestureHandler';\n\nclass PinchGestureHandler extends IndiscreteGestureHandler {\n get name() {\n return 'pinch';\n }\n\n get NativeGestureClass() {\n return Hammer.Pinch;\n }\n\n transformNativeEvent({ scale, velocity, center }: HammerInputExt) {\n return {\n focalX: center.x,\n focalY: center.y,\n velocity,\n scale,\n };\n }\n}\n\nexport default PinchGestureHandler;\n","import Hammer from '@egjs/hammerjs';\n\nimport { DEG_RAD } from './constants';\nimport { HammerInputExt } from './GestureHandler';\nimport IndiscreteGestureHandler from './IndiscreteGestureHandler';\n\nclass RotationGestureHandler extends IndiscreteGestureHandler {\n get name() {\n return 'rotate';\n }\n\n get NativeGestureClass() {\n return Hammer.Rotate;\n }\n\n transformNativeEvent({ rotation, velocity, center }: HammerInputExt) {\n return {\n rotation: (rotation - (this.initialRotation ?? 0)) * DEG_RAD,\n anchorX: center.x,\n anchorY: center.y,\n velocity,\n };\n }\n}\nexport default RotationGestureHandler;\n","import DiscreteGestureHandler from './DiscreteGestureHandler';\nimport { HammerInputExt } from './GestureHandler';\nimport * as NodeManager from './NodeManager';\nimport PressGestureHandler from './PressGestureHandler';\nimport { TEST_MIN_IF_NOT_NAN, VEC_LEN_SQ } from './utils';\n\nclass NativeViewGestureHandler extends PressGestureHandler {\n get isNative() {\n return true;\n }\n\n onRawEvent(ev: HammerInputExt) {\n super.onRawEvent(ev);\n if (!ev.isFinal) {\n // if (this.ref instanceof ScrollView) {\n if (TEST_MIN_IF_NOT_NAN(VEC_LEN_SQ({ x: ev.deltaX, y: ev.deltaY }), 10)) {\n // @ts-ignore FIXME(TS) config type\n if (this.config.disallowInterruption) {\n const gestures = Object.values(NodeManager.getNodes()).filter(\n (gesture) => {\n const { handlerTag, view, isGestureRunning } = gesture;\n return (\n // Check if this gesture isn't self\n handlerTag !== this.handlerTag &&\n // Ensure the gesture needs to be cancelled\n isGestureRunning &&\n // ScrollView can cancel discrete gestures like taps and presses\n gesture instanceof DiscreteGestureHandler &&\n // Ensure a view exists and is a child of the current view\n view &&\n // @ts-ignore FIXME(TS) view type\n this.view.contains(view)\n );\n }\n );\n // Cancel all of the gestures that passed the filter\n for (const gesture of gestures) {\n // TODO: Bacon: Send some cached event.\n gesture.forceInvalidate(ev);\n }\n }\n }\n }\n }\n}\n\nexport default NativeViewGestureHandler;\n","import * as React from 'react';\nimport { useImperativeHandle, useRef } from 'react';\n\nimport {\n NativeViewGestureHandler,\n NativeViewGestureHandlerProps,\n nativeViewProps,\n} from './NativeViewGestureHandler';\n\n/*\n * This array should consist of:\n * - All keys in propTypes from NativeGestureHandler\n * (and all keys in GestureHandlerPropTypes)\n * - 'onGestureHandlerEvent'\n * - 'onGestureHandlerStateChange'\n */\nconst NATIVE_WRAPPER_PROPS_FILTER = [\n ...nativeViewProps,\n 'onGestureHandlerEvent',\n 'onGestureHandlerStateChange',\n] as const;\n\nexport default function createNativeWrapper

(\n Component: React.ComponentType

,\n config: Readonly = {}\n) {\n const ComponentWrapper = React.forwardRef<\n React.ComponentType,\n P & NativeViewGestureHandlerProps\n >((props, ref) => {\n // filter out props that should be passed to gesture handler wrapper\n const gestureHandlerProps = Object.keys(props).reduce(\n (res, key) => {\n // TS being overly protective with it's types, see https://github.com/microsoft/TypeScript/issues/26255#issuecomment-458013731 for more info\n const allowedKeys: readonly string[] = NATIVE_WRAPPER_PROPS_FILTER;\n if (allowedKeys.includes(key)) {\n // @ts-ignore FIXME(TS)\n res[key] = props[key];\n }\n return res;\n },\n { ...config } // watch out not to modify config\n );\n const _ref = useRef>();\n const _gestureHandlerRef = useRef>();\n useImperativeHandle(\n ref,\n // @ts-ignore TODO(TS) decide how nulls work in this context\n () => {\n const node = _gestureHandlerRef.current;\n // add handlerTag for relations config\n if (_ref.current && node) {\n // @ts-ignore FIXME(TS) think about createHandler return type\n _ref.current.handlerTag = node.handlerTag;\n return _ref.current;\n }\n return null;\n },\n [_ref, _gestureHandlerRef]\n );\n return (\n \n \n \n );\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n ComponentWrapper.displayName =\n Component?.displayName ||\n // @ts-ignore if render doesn't exist it will return undefined and go further\n Component?.render?.name ||\n (typeof Component === 'string' && Component) ||\n 'ComponentWrapper';\n\n return ComponentWrapper;\n}\n","import { BaseGesture, BaseGestureConfig } from './gesture';\nimport {\n FlingGestureConfig,\n FlingGestureHandlerEventPayload,\n} from '../FlingGestureHandler';\n\nexport class FlingGesture extends BaseGesture {\n public config: BaseGestureConfig & FlingGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'FlingGestureHandler';\n }\n\n numberOfPointers(pointers: number) {\n this.config.numberOfPointers = pointers;\n return this;\n }\n\n direction(direction: number) {\n this.config.direction = direction;\n return this;\n }\n}\n\nexport type FlingGestureType = InstanceType;\n","import { BaseGestureConfig, ContinousBaseGesture } from './gesture';\nimport {\n ForceTouchGestureConfig,\n ForceTouchGestureHandlerEventPayload,\n} from '../ForceTouchGestureHandler';\nimport { GestureUpdateEvent } from '../gestureHandlerCommon';\n\nexport type ForceTouchGestureChangeEventPayload = {\n forceChange: number;\n};\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent,\n previous?: GestureUpdateEvent\n) {\n 'worklet';\n let changePayload: ForceTouchGestureChangeEventPayload;\n if (previous === undefined) {\n changePayload = {\n forceChange: current.force,\n };\n } else {\n changePayload = {\n forceChange: current.force - previous.force,\n };\n }\n\n return { ...current, ...changePayload };\n}\n\nexport class ForceTouchGesture extends ContinousBaseGesture<\n ForceTouchGestureHandlerEventPayload,\n ForceTouchGestureChangeEventPayload\n> {\n public config: BaseGestureConfig & ForceTouchGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'ForceTouchGestureHandler';\n }\n\n minForce(force: number) {\n this.config.minForce = force;\n return this;\n }\n\n maxForce(force: number) {\n this.config.maxForce = force;\n return this;\n }\n\n feedbackOnActivation(value: boolean) {\n this.config.feedbackOnActivation = value;\n return this;\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<\n GestureUpdateEvent<\n ForceTouchGestureHandlerEventPayload &\n ForceTouchGestureChangeEventPayload\n >\n >\n ) => void\n ) {\n // @ts-ignore TS being overprotective, ForceTouchGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type ForceTouchGestureType = InstanceType;\n","import { BaseGesture, Gesture, GestureRef, GestureType } from './gesture';\n\nfunction extendRelation(\n currentRelation: GestureRef[] | undefined,\n extendWith: GestureType[]\n) {\n if (currentRelation === undefined) {\n return [...extendWith];\n } else {\n return [...currentRelation, ...extendWith];\n }\n}\n\nexport class ComposedGesture extends Gesture {\n protected gestures: Gesture[] = [];\n protected simultaneousGestures: GestureType[] = [];\n protected requireGesturesToFail: GestureType[] = [];\n\n constructor(...gestures: Gesture[]) {\n super();\n this.gestures = gestures;\n }\n\n protected prepareSingleGesture(\n gesture: Gesture,\n simultaneousGestures: GestureType[],\n requireGesturesToFail: GestureType[]\n ) {\n if (gesture instanceof BaseGesture) {\n const newConfig = { ...gesture.config };\n\n newConfig.simultaneousWith = extendRelation(\n newConfig.simultaneousWith,\n simultaneousGestures\n );\n newConfig.requireToFail = extendRelation(\n newConfig.requireToFail,\n requireGesturesToFail\n );\n\n gesture.config = newConfig;\n } else if (gesture instanceof ComposedGesture) {\n gesture.simultaneousGestures = simultaneousGestures;\n gesture.requireGesturesToFail = requireGesturesToFail;\n gesture.prepare();\n }\n }\n\n prepare() {\n for (const gesture of this.gestures) {\n this.prepareSingleGesture(\n gesture,\n this.simultaneousGestures,\n this.requireGesturesToFail\n );\n }\n }\n\n initialize() {\n for (const gesture of this.gestures) {\n gesture.initialize();\n }\n }\n\n toGestureArray(): GestureType[] {\n return this.gestures.flatMap((gesture) => gesture.toGestureArray());\n }\n}\n\nexport class SimultaneousGesture extends ComposedGesture {\n prepare() {\n // this piece of magic works something like this:\n // for every gesture in the array\n const simultaneousArrays = this.gestures.map((gesture) =>\n // we take the array it's in\n this.gestures\n // and make a copy without it\n .filter((x) => x !== gesture)\n // then we flatmap the result to get list of raw (not composed) gestures\n // this way we don't make the gestures simultaneous with themselves, which is\n // important when the gesture is `ExclusiveGesture` - we don't want to make\n // exclusive gestures simultaneous\n .flatMap((x) => x.toGestureArray())\n );\n\n for (let i = 0; i < this.gestures.length; i++) {\n this.prepareSingleGesture(\n this.gestures[i],\n simultaneousArrays[i],\n this.requireGesturesToFail\n );\n }\n }\n}\n\nexport class ExclusiveGesture extends ComposedGesture {\n prepare() {\n // transforms the array of gestures into array of grouped raw (not composed) gestures\n // i.e. [gesture1, gesture2, ComposedGesture(gesture3, gesture4)] -> [[gesture1], [gesture2], [gesture3, gesture4]]\n const gestureArrays = this.gestures.map((gesture) =>\n gesture.toGestureArray()\n );\n\n let requireToFail: GestureType[] = [];\n\n for (let i = 0; i < this.gestures.length; i++) {\n this.prepareSingleGesture(\n this.gestures[i],\n this.simultaneousGestures,\n this.requireGesturesToFail.concat(requireToFail)\n );\n\n // every group gets to wait for all groups before it\n requireToFail = requireToFail.concat(gestureArrays[i]);\n }\n }\n}\n\nexport type ComposedGestureType = InstanceType;\nexport type RaceGestureType = ComposedGestureType;\nexport type SimultaneousGestureType = InstanceType;\nexport type ExclusiveGestureType = InstanceType;\n","import { BaseGesture, BaseGestureConfig } from './gesture';\nimport {\n LongPressGestureConfig,\n LongPressGestureHandlerEventPayload,\n} from '../LongPressGestureHandler';\n\nexport class LongPressGesture extends BaseGesture {\n public config: BaseGestureConfig & LongPressGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'LongPressGestureHandler';\n this.shouldCancelWhenOutside(true);\n }\n\n minDuration(duration: number) {\n this.config.minDurationMs = duration;\n return this;\n }\n\n maxDistance(distance: number) {\n this.config.maxDist = distance;\n return this;\n }\n}\n\nexport type LongPressGestureType = InstanceType;\n","import { BaseGestureConfig, ContinousBaseGesture } from './gesture';\nimport { GestureUpdateEvent } from '../gestureHandlerCommon';\nimport {\n PanGestureConfig,\n PanGestureHandlerEventPayload,\n} from '../PanGestureHandler';\n\nexport type PanGestureChangeEventPayload = {\n changeX: number;\n changeY: number;\n};\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent,\n previous?: GestureUpdateEvent\n) {\n 'worklet';\n let changePayload: PanGestureChangeEventPayload;\n if (previous === undefined) {\n changePayload = {\n changeX: current.translationX,\n changeY: current.translationY,\n };\n } else {\n changePayload = {\n changeX: current.translationX - previous.translationX,\n changeY: current.translationY - previous.translationY,\n };\n }\n\n return { ...current, ...changePayload };\n}\n\nexport class PanGesture extends ContinousBaseGesture<\n PanGestureHandlerEventPayload,\n PanGestureChangeEventPayload\n> {\n public config: BaseGestureConfig & PanGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'PanGestureHandler';\n }\n\n activeOffsetY(offset: number | number[]) {\n if (Array.isArray(offset)) {\n this.config.activeOffsetYStart = offset[0];\n this.config.activeOffsetYEnd = offset[1];\n } else if (offset < 0) {\n this.config.activeOffsetYStart = offset;\n } else {\n this.config.activeOffsetYEnd = offset;\n }\n return this;\n }\n\n activeOffsetX(offset: number | number[]) {\n if (Array.isArray(offset)) {\n this.config.activeOffsetXStart = offset[0];\n this.config.activeOffsetXEnd = offset[1];\n } else if (offset < 0) {\n this.config.activeOffsetXStart = offset;\n } else {\n this.config.activeOffsetXEnd = offset;\n }\n return this;\n }\n\n failOffsetY(offset: number | number[]) {\n if (Array.isArray(offset)) {\n this.config.failOffsetYStart = offset[0];\n this.config.failOffsetYEnd = offset[1];\n } else if (offset < 0) {\n this.config.failOffsetYStart = offset;\n } else {\n this.config.failOffsetYEnd = offset;\n }\n return this;\n }\n\n failOffsetX(offset: number | number[]) {\n if (Array.isArray(offset)) {\n this.config.failOffsetXStart = offset[0];\n this.config.failOffsetXEnd = offset[1];\n } else if (offset < 0) {\n this.config.failOffsetXStart = offset;\n } else {\n this.config.failOffsetXEnd = offset;\n }\n return this;\n }\n\n minPointers(minPointers: number) {\n this.config.minPointers = minPointers;\n return this;\n }\n\n maxPointers(maxPointers: number) {\n this.config.maxPointers = maxPointers;\n return this;\n }\n\n minDistance(distance: number) {\n this.config.minDist = distance;\n return this;\n }\n\n minVelocity(velocity: number) {\n this.config.minVelocity = velocity;\n return this;\n }\n\n minVelocityX(velocity: number) {\n this.config.minVelocityX = velocity;\n return this;\n }\n\n minVelocityY(velocity: number) {\n this.config.minVelocityY = velocity;\n return this;\n }\n\n averageTouches(value: boolean) {\n this.config.avgTouches = value;\n return this;\n }\n\n enableTrackpadTwoFingerGesture(value: boolean) {\n this.config.enableTrackpadTwoFingerGesture = value;\n return this;\n }\n\n activateAfterLongPress(duration: number) {\n this.config.activateAfterLongPress = duration;\n return this;\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<\n PanGestureHandlerEventPayload & PanGestureChangeEventPayload\n >\n ) => void\n ) {\n // @ts-ignore TS being overprotective, PanGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type PanGestureType = InstanceType;\n","import { ContinousBaseGesture } from './gesture';\nimport { PinchGestureHandlerEventPayload } from '../PinchGestureHandler';\nimport { GestureUpdateEvent } from '../gestureHandlerCommon';\n\nexport type PinchGestureChangeEventPayload = {\n scaleChange: number;\n};\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent,\n previous?: GestureUpdateEvent\n) {\n 'worklet';\n let changePayload: PinchGestureChangeEventPayload;\n if (previous === undefined) {\n changePayload = {\n scaleChange: current.scale,\n };\n } else {\n changePayload = {\n scaleChange: current.scale / previous.scale,\n };\n }\n\n return { ...current, ...changePayload };\n}\n\nexport class PinchGesture extends ContinousBaseGesture<\n PinchGestureHandlerEventPayload,\n PinchGestureChangeEventPayload\n> {\n constructor() {\n super();\n\n this.handlerName = 'PinchGestureHandler';\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<\n PinchGestureHandlerEventPayload & PinchGestureChangeEventPayload\n >\n ) => void\n ) {\n // @ts-ignore TS being overprotective, PinchGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type PinchGestureType = InstanceType;\n","import { ContinousBaseGesture } from './gesture';\nimport { RotationGestureHandlerEventPayload } from '../RotationGestureHandler';\nimport { GestureUpdateEvent } from '../gestureHandlerCommon';\n\ntype RotationGestureChangeEventPayload = {\n rotationChange: number;\n};\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent,\n previous?: GestureUpdateEvent\n) {\n 'worklet';\n let changePayload: RotationGestureChangeEventPayload;\n if (previous === undefined) {\n changePayload = {\n rotationChange: current.rotation,\n };\n } else {\n changePayload = {\n rotationChange: current.rotation - previous.rotation,\n };\n }\n\n return { ...current, ...changePayload };\n}\n\nexport class RotationGesture extends ContinousBaseGesture<\n RotationGestureHandlerEventPayload,\n RotationGestureChangeEventPayload\n> {\n constructor() {\n super();\n\n this.handlerName = 'RotationGestureHandler';\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<\n RotationGestureHandlerEventPayload & RotationGestureChangeEventPayload\n >\n ) => void\n ) {\n // @ts-ignore TS being overprotective, RotationGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type RotationGestureType = InstanceType;\n","import { BaseGestureConfig, BaseGesture } from './gesture';\nimport {\n TapGestureConfig,\n TapGestureHandlerEventPayload,\n} from '../TapGestureHandler';\n\nexport class TapGesture extends BaseGesture {\n public config: BaseGestureConfig & TapGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'TapGestureHandler';\n this.shouldCancelWhenOutside(true);\n }\n\n minPointers(minPointers: number) {\n this.config.minPointers = minPointers;\n return this;\n }\n\n numberOfTaps(count: number) {\n this.config.numberOfTaps = count;\n return this;\n }\n\n maxDistance(maxDist: number) {\n this.config.maxDist = maxDist;\n return this;\n }\n\n maxDuration(duration: number) {\n this.config.maxDurationMs = duration;\n return this;\n }\n\n maxDelay(delay: number) {\n this.config.maxDelayMs = delay;\n return this;\n }\n\n maxDeltaX(delta: number) {\n this.config.maxDeltaX = delta;\n return this;\n }\n\n maxDeltaY(delta: number) {\n this.config.maxDeltaY = delta;\n return this;\n }\n}\n\nexport type TapGestureType = InstanceType;\n","import { BaseGestureConfig, BaseGesture } from './gesture';\nimport {\n NativeViewGestureConfig,\n NativeViewGestureHandlerPayload,\n} from '../NativeViewGestureHandler';\n\nexport class NativeGesture extends BaseGesture {\n public config: BaseGestureConfig & NativeViewGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'NativeViewGestureHandler';\n }\n\n shouldActivateOnStart(value: boolean) {\n this.config.shouldActivateOnStart = value;\n return this;\n }\n\n disallowInterruption(value: boolean) {\n this.config.disallowInterruption = value;\n return this;\n }\n}\n\nexport type NativeGestureType = InstanceType;\n","import { GestureUpdateEvent } from '../gestureHandlerCommon';\nimport { ContinousBaseGesture } from './gesture';\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent>,\n _previous?: GestureUpdateEvent>\n) {\n 'worklet';\n return current;\n}\n\nexport class ManualGesture extends ContinousBaseGesture<\n Record,\n Record\n> {\n constructor() {\n super();\n\n this.handlerName = 'ManualGestureHandler';\n }\n\n onChange(\n callback: (event: GestureUpdateEvent>) => void\n ) {\n // @ts-ignore TS being overprotective, Record is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type ManualGestureType = InstanceType;\n","import * as React from 'react';\nimport { View } from 'react-native';\n\nexport default React.forwardRef((props, ref) => (\n \n));\n","import * as React from 'react';\nimport {\n Animated,\n Platform,\n processColor,\n StyleSheet,\n StyleProp,\n ViewStyle,\n} from 'react-native';\n\nimport createNativeWrapper from '../handlers/createNativeWrapper';\nimport GestureHandlerButton from './GestureHandlerButton';\nimport { State } from '../State';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n} from '../handlers/gestureHandlerCommon';\nimport {\n NativeViewGestureHandlerPayload,\n NativeViewGestureHandlerProps,\n} from '../handlers/NativeViewGestureHandler';\n\nexport interface RawButtonProps extends NativeViewGestureHandlerProps {\n /**\n * Defines if more than one button could be pressed simultaneously. By default\n * set true.\n */\n exclusive?: boolean;\n // TODO: we should transform props in `createNativeWrapper`\n\n /**\n * Android only.\n *\n * Defines color of native ripple animation used since API level 21.\n */\n rippleColor?: any; // it was present in BaseButtonProps before but is used here in code\n\n /**\n * Android only.\n *\n * Defines radius of native ripple animation used since API level 21.\n */\n rippleRadius?: number | null;\n\n /**\n * Android only.\n *\n * Set this to true if you want the ripple animation to render outside the view bounds.\n */\n borderless?: boolean;\n\n /**\n * Android only.\n *\n * Defines whether the ripple animation should be drawn on the foreground of the view.\n */\n foreground?: boolean;\n\n /**\n * Android only.\n *\n * Set this to true if you don't want the system to play sound when the button is pressed.\n */\n touchSoundDisabled?: boolean;\n}\n\nexport interface BaseButtonProps extends RawButtonProps {\n /**\n * Called when the button gets pressed (analogous to `onPress` in\n * `TouchableHighlight` from RN core).\n */\n onPress?: (pointerInside: boolean) => void;\n\n /**\n * Called when the button gets pressed and is held for `delayLongPress`\n * milliseconds.\n */\n onLongPress?: () => void;\n\n /**\n * Called when button changes from inactive to active and vice versa. It\n * passes active state as a boolean variable as a first parameter for that\n * method.\n */\n onActiveStateChange?: (active: boolean) => void;\n style?: StyleProp;\n testID?: string;\n\n /**\n * Delay, in milliseconds, after which the `onLongPress` callback gets called.\n * Defaults to 600.\n */\n delayLongPress?: number;\n}\n\nexport interface RectButtonProps extends BaseButtonProps {\n /**\n * Background color that will be dimmed when button is in active state.\n */\n underlayColor?: string;\n\n /**\n * iOS only.\n *\n * Opacity applied to the underlay when button is in active state.\n */\n activeOpacity?: number;\n}\n\nexport interface BorderlessButtonProps extends BaseButtonProps {\n /**\n * iOS only.\n *\n * Opacity applied to the button when it is in an active state.\n */\n activeOpacity?: number;\n}\n\nexport const RawButton = createNativeWrapper(GestureHandlerButton, {\n shouldCancelWhenOutside: false,\n shouldActivateOnStart: false,\n});\n\nexport class BaseButton extends React.Component {\n static defaultProps = {\n delayLongPress: 600,\n };\n\n private lastActive: boolean;\n private longPressTimeout: ReturnType | undefined;\n private longPressDetected: boolean;\n\n constructor(props: BaseButtonProps) {\n super(props);\n this.lastActive = false;\n this.longPressDetected = false;\n }\n\n private handleEvent = ({\n nativeEvent,\n }: HandlerStateChangeEvent) => {\n const { state, oldState, pointerInside } = nativeEvent;\n const active = pointerInside && state === State.ACTIVE;\n\n if (active !== this.lastActive && this.props.onActiveStateChange) {\n this.props.onActiveStateChange(active);\n }\n\n if (\n !this.longPressDetected &&\n oldState === State.ACTIVE &&\n state !== State.CANCELLED &&\n this.lastActive &&\n this.props.onPress\n ) {\n this.props.onPress(active);\n }\n\n if (\n !this.lastActive &&\n // NativeViewGestureHandler sends different events based on platform\n state === (Platform.OS !== 'android' ? State.ACTIVE : State.BEGAN) &&\n pointerInside\n ) {\n this.longPressDetected = false;\n if (this.props.onLongPress) {\n this.longPressTimeout = setTimeout(\n this.onLongPress,\n this.props.delayLongPress\n );\n }\n } else if (\n // cancel longpress timeout if it's set and the finger moved out of the view\n state === State.ACTIVE &&\n !pointerInside &&\n this.longPressTimeout !== undefined\n ) {\n clearTimeout(this.longPressTimeout);\n this.longPressTimeout = undefined;\n } else if (\n // cancel longpress timeout if it's set and the gesture has finished\n this.longPressTimeout !== undefined &&\n (state === State.END ||\n state === State.CANCELLED ||\n state === State.FAILED)\n ) {\n clearTimeout(this.longPressTimeout);\n this.longPressTimeout = undefined;\n }\n\n this.lastActive = active;\n };\n\n private onLongPress = () => {\n this.longPressDetected = true;\n this.props.onLongPress?.();\n };\n\n // Normally, the parent would execute it's handler first, then forward the\n // event to listeners. However, here our handler is virtually only forwarding\n // events to listeners, so we reverse the order to keep the proper order of\n // the callbacks (from \"raw\" ones to \"processed\").\n private onHandlerStateChange = (\n e: HandlerStateChangeEvent\n ) => {\n this.props.onHandlerStateChange?.(e);\n this.handleEvent(e);\n };\n\n private onGestureEvent = (\n e: GestureEvent\n ) => {\n this.props.onGestureEvent?.(e);\n this.handleEvent(\n e as HandlerStateChangeEvent\n ); // TODO: maybe it is not correct\n };\n\n render() {\n const { rippleColor, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nconst AnimatedBaseButton = Animated.createAnimatedComponent(BaseButton);\n\nconst btnStyles = StyleSheet.create({\n underlay: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n top: 0,\n },\n});\n\nexport class RectButton extends React.Component {\n static defaultProps = {\n activeOpacity: 0.105,\n underlayColor: 'black',\n };\n\n private opacity: Animated.Value;\n\n constructor(props: RectButtonProps) {\n super(props);\n this.opacity = new Animated.Value(0);\n }\n\n private onActiveStateChange = (active: boolean) => {\n if (Platform.OS !== 'android') {\n this.opacity.setValue(active ? this.props.activeOpacity! : 0);\n }\n\n this.props.onActiveStateChange?.(active);\n };\n\n render() {\n const { children, style, ...rest } = this.props;\n\n const resolvedStyle = StyleSheet.flatten(style ?? {});\n\n return (\n \n \n {children}\n \n );\n }\n}\n\nexport class BorderlessButton extends React.Component {\n static defaultProps = {\n activeOpacity: 0.3,\n borderless: true,\n };\n\n private opacity: Animated.Value;\n\n constructor(props: BorderlessButtonProps) {\n super(props);\n this.opacity = new Animated.Value(1);\n }\n\n private onActiveStateChange = (active: boolean) => {\n if (Platform.OS !== 'android') {\n this.opacity.setValue(active ? this.props.activeOpacity! : 1);\n }\n\n this.props.onActiveStateChange?.(active);\n };\n\n render() {\n const { children, style, ...rest } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nexport { default as PureNativeButton } from './GestureHandlerButton';\n","import { TouchableNativeFeedback } from 'react-native';\n\nexport default TouchableNativeFeedback;\n","import * as React from 'react';\nimport { Component } from 'react';\nimport {\n Animated,\n Platform,\n StyleProp,\n ViewStyle,\n TouchableWithoutFeedbackProps,\n} from 'react-native';\n\nimport { State } from '../../State';\nimport { BaseButton } from '../GestureButtons';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n} from '../../handlers/gestureHandlerCommon';\nimport { NativeViewGestureHandlerPayload } from '../../handlers/NativeViewGestureHandler';\nimport { TouchableNativeFeedbackExtraProps } from './TouchableNativeFeedback.android';\n\n/**\n * Each touchable is a states' machine which preforms transitions.\n * On very beginning (and on the very end or recognition) touchable is\n * UNDETERMINED. Then it moves to BEGAN. If touchable recognizes that finger\n * travel outside it transits to special MOVED_OUTSIDE state. Gesture recognition\n * finishes in UNDETERMINED state.\n */\nexport const TOUCHABLE_STATE = {\n UNDETERMINED: 0,\n BEGAN: 1,\n MOVED_OUTSIDE: 2,\n} as const;\n\ntype TouchableState = typeof TOUCHABLE_STATE[keyof typeof TOUCHABLE_STATE];\n\nexport interface GenericTouchableProps extends TouchableWithoutFeedbackProps {\n // Decided to drop not used fields from RN's implementation.\n // e.g. onBlur and onFocus as well as deprecated props. - TODO: this comment may be unuseful in this moment\n\n // TODO: in RN these events get native event parameter, which prolly could be used in our implementation too\n onPress?: () => void;\n onPressIn?: () => void;\n onPressOut?: () => void;\n onLongPress?: () => void;\n\n nativeID?: string;\n shouldActivateOnStart?: boolean;\n disallowInterruption?: boolean;\n\n containerStyle?: StyleProp;\n}\n\ninterface InternalProps {\n extraButtonProps: TouchableNativeFeedbackExtraProps;\n onStateChange?: (oldState: TouchableState, newState: TouchableState) => void;\n}\n\n// TODO: maybe can be better\n// TODO: all clearTimeout have ! added, maybe they shouldn't ?\ntype Timeout = ReturnType | null | undefined;\n\n/**\n * GenericTouchable is not intented to be used as it is.\n * Should be treated as a source for the rest of touchables\n */\n\nexport default class GenericTouchable extends Component<\n GenericTouchableProps & InternalProps\n> {\n static defaultProps = {\n delayLongPress: 600,\n extraButtonProps: {\n rippleColor: 'transparent',\n exclusive: true,\n },\n };\n\n // timeout handlers\n pressInTimeout: Timeout;\n pressOutTimeout: Timeout;\n longPressTimeout: Timeout;\n\n // This flag is required since recognition of longPress implies not-invoking onPress\n longPressDetected = false;\n\n pointerInside = true;\n\n // State of touchable\n STATE: TouchableState = TOUCHABLE_STATE.UNDETERMINED;\n\n // handlePressIn in called on first touch on traveling inside component.\n // Handles state transition with delay.\n handlePressIn() {\n if (this.props.delayPressIn) {\n this.pressInTimeout = setTimeout(() => {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n this.pressInTimeout = null;\n }, this.props.delayPressIn);\n } else {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n if (this.props.onLongPress) {\n const time =\n (this.props.delayPressIn || 0) + (this.props.delayLongPress || 0);\n this.longPressTimeout = setTimeout(this.onLongPressDetected, time);\n }\n }\n // handleMoveOutside in called on traveling outside component.\n // Handles state transition with delay.\n handleMoveOutside() {\n if (this.props.delayPressOut) {\n this.pressOutTimeout =\n this.pressOutTimeout ||\n setTimeout(() => {\n this.moveToState(TOUCHABLE_STATE.MOVED_OUTSIDE);\n this.pressOutTimeout = null;\n }, this.props.delayPressOut);\n } else {\n this.moveToState(TOUCHABLE_STATE.MOVED_OUTSIDE);\n }\n }\n\n // handleGoToUndetermined transits to UNDETERMINED state with proper delay\n handleGoToUndetermined() {\n clearTimeout(this.pressOutTimeout!); // TODO: maybe it can be undefined\n if (this.props.delayPressOut) {\n this.pressOutTimeout = setTimeout(() => {\n if (this.STATE === TOUCHABLE_STATE.UNDETERMINED) {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n this.moveToState(TOUCHABLE_STATE.UNDETERMINED);\n this.pressOutTimeout = null;\n }, this.props.delayPressOut);\n } else {\n if (this.STATE === TOUCHABLE_STATE.UNDETERMINED) {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n this.moveToState(TOUCHABLE_STATE.UNDETERMINED);\n }\n }\n\n componentDidMount() {\n this.reset();\n }\n // reset timeout to prevent memory leaks.\n reset() {\n this.longPressDetected = false;\n this.pointerInside = true;\n clearTimeout(this.pressInTimeout!);\n clearTimeout(this.pressOutTimeout!);\n clearTimeout(this.longPressTimeout!);\n this.pressOutTimeout = null;\n this.longPressTimeout = null;\n this.pressInTimeout = null;\n }\n\n // All states' transitions are defined here.\n moveToState(newState: TouchableState) {\n if (newState === this.STATE) {\n // Ignore dummy transitions\n return;\n }\n if (newState === TOUCHABLE_STATE.BEGAN) {\n // First touch and moving inside\n this.props.onPressIn?.();\n } else if (newState === TOUCHABLE_STATE.MOVED_OUTSIDE) {\n // Moving outside\n this.props.onPressOut?.();\n } else if (newState === TOUCHABLE_STATE.UNDETERMINED) {\n // Need to reset each time on transition to UNDETERMINED\n this.reset();\n if (this.STATE === TOUCHABLE_STATE.BEGAN) {\n // ... and if it happens inside button.\n this.props.onPressOut?.();\n }\n }\n // Finally call lister (used by subclasses)\n this.props.onStateChange?.(this.STATE, newState);\n // ... and make transition.\n this.STATE = newState;\n }\n\n onGestureEvent = ({\n nativeEvent: { pointerInside },\n }: GestureEvent) => {\n if (this.pointerInside !== pointerInside) {\n if (pointerInside) {\n this.onMoveIn();\n } else {\n this.onMoveOut();\n }\n }\n this.pointerInside = pointerInside;\n };\n\n onHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent) => {\n const { state } = nativeEvent;\n if (state === State.CANCELLED || state === State.FAILED) {\n // Need to handle case with external cancellation (e.g. by ScrollView)\n this.moveToState(TOUCHABLE_STATE.UNDETERMINED);\n } else if (\n // This platform check is an implication of slightly different behavior of handlers on different platform.\n // And Android \"Active\" state is achieving on first move of a finger, not on press in.\n // On iOS event on \"Began\" is not delivered.\n state === (Platform.OS !== 'android' ? State.ACTIVE : State.BEGAN) &&\n this.STATE === TOUCHABLE_STATE.UNDETERMINED\n ) {\n // Moving inside requires\n this.handlePressIn();\n } else if (state === State.END) {\n const shouldCallOnPress =\n !this.longPressDetected &&\n this.STATE !== TOUCHABLE_STATE.MOVED_OUTSIDE &&\n this.pressOutTimeout === null;\n this.handleGoToUndetermined();\n if (shouldCallOnPress) {\n // Calls only inside component whether no long press was called previously\n this.props.onPress?.();\n }\n }\n };\n\n onLongPressDetected = () => {\n this.longPressDetected = true;\n // checked for in the caller of `onLongPressDetected`, but better to check twice\n this.props.onLongPress?.();\n };\n\n componentWillUnmount() {\n // to prevent memory leaks\n this.reset();\n }\n\n onMoveIn() {\n if (this.STATE === TOUCHABLE_STATE.MOVED_OUTSIDE) {\n // This call is not throttled with delays (like in RN's implementation).\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n }\n\n onMoveOut() {\n // long press should no longer be detected\n clearTimeout(this.longPressTimeout!);\n this.longPressTimeout = null;\n if (this.STATE === TOUCHABLE_STATE.BEGAN) {\n this.handleMoveOutside();\n }\n }\n\n render() {\n const coreProps = {\n accessible: this.props.accessible !== false,\n accessibilityLabel: this.props.accessibilityLabel,\n accessibilityHint: this.props.accessibilityHint,\n accessibilityRole: this.props.accessibilityRole,\n // TODO: check if changed to no 's' correctly, also removed 2 props that are no longer available: `accessibilityComponentType` and `accessibilityTraits`,\n // would be good to check if it is ok for sure, see: https://github.com/facebook/react-native/issues/24016\n accessibilityState: this.props.accessibilityState,\n accessibilityActions: this.props.accessibilityActions,\n onAccessibilityAction: this.props.onAccessibilityAction,\n nativeID: this.props.nativeID,\n onLayout: this.props.onLayout,\n hitSlop: this.props.hitSlop,\n };\n\n return (\n \n \n {this.props.children}\n \n \n );\n }\n}\n","import * as React from 'react';\nimport { PropsWithChildren } from 'react';\nimport GenericTouchable, { GenericTouchableProps } from './GenericTouchable';\n\nconst TouchableWithoutFeedback = React.forwardRef<\n GenericTouchable,\n PropsWithChildren\n>((props, ref) => );\n\nTouchableWithoutFeedback.defaultProps = GenericTouchable.defaultProps;\n\nexport default TouchableWithoutFeedback;\n","import {\n Animated,\n Easing,\n StyleSheet,\n View,\n TouchableOpacityProps,\n} from 'react-native';\nimport GenericTouchable, {\n TOUCHABLE_STATE,\n GenericTouchableProps,\n} from './GenericTouchable';\nimport * as React from 'react';\nimport { Component } from 'react';\n\ninterface GHTouchableOpacityProps {\n useNativeAnimations?: boolean;\n}\n\n/**\n * TouchableOpacity bases on timing animation which has been used in RN's core\n */\nexport default class TouchableOpacity extends Component<\n TouchableOpacityProps & GenericTouchableProps & GHTouchableOpacityProps\n> {\n static defaultProps = {\n ...GenericTouchable.defaultProps,\n activeOpacity: 0.2,\n };\n\n // opacity is 1 one by default but could be overwritten\n getChildStyleOpacityWithDefault = () => {\n const childStyle = StyleSheet.flatten(this.props.style) || {};\n return childStyle.opacity == null ? 1 : childStyle.opacity;\n };\n\n opacity = new Animated.Value(this.getChildStyleOpacityWithDefault());\n\n setOpacityTo = (value: number, duration: number) => {\n Animated.timing(this.opacity, {\n toValue: value,\n duration: duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: this.props.useNativeAnimations ?? true,\n }).start();\n };\n\n onStateChange = (_from: number, to: number) => {\n if (to === TOUCHABLE_STATE.BEGAN) {\n this.setOpacityTo(this.props.activeOpacity!, 0);\n } else if (\n to === TOUCHABLE_STATE.UNDETERMINED ||\n to === TOUCHABLE_STATE.MOVED_OUTSIDE\n ) {\n this.setOpacityTo(this.getChildStyleOpacityWithDefault(), 150);\n }\n };\n\n render() {\n const { style = {}, ...rest } = this.props;\n return (\n \n {this.props.children ? this.props.children : }\n \n );\n }\n}\n","import * as React from 'react';\nimport { Component } from 'react';\nimport GenericTouchable, {\n GenericTouchableProps,\n TOUCHABLE_STATE,\n} from './GenericTouchable';\nimport {\n StyleSheet,\n View,\n TouchableHighlightProps,\n ColorValue,\n ViewProps,\n} from 'react-native';\n\ninterface State {\n extraChildStyle: null | {\n opacity?: number;\n };\n extraUnderlayStyle: null | {\n backgroundColor?: ColorValue;\n };\n}\n\n/**\n * TouchableHighlight follows RN's implementation\n */\nexport default class TouchableHighlight extends Component<\n TouchableHighlightProps & GenericTouchableProps,\n State\n> {\n static defaultProps = {\n ...GenericTouchable.defaultProps,\n activeOpacity: 0.85,\n delayPressOut: 100,\n underlayColor: 'black',\n };\n\n constructor(props: TouchableHighlightProps & GenericTouchableProps) {\n super(props);\n this.state = {\n extraChildStyle: null,\n extraUnderlayStyle: null,\n };\n }\n\n // Copied from RN\n showUnderlay = () => {\n if (!this.hasPressHandler()) {\n return;\n }\n this.setState({\n extraChildStyle: {\n opacity: this.props.activeOpacity,\n },\n extraUnderlayStyle: {\n backgroundColor: this.props.underlayColor,\n },\n });\n this.props.onShowUnderlay?.();\n };\n\n hasPressHandler = () =>\n this.props.onPress ||\n this.props.onPressIn ||\n this.props.onPressOut ||\n this.props.onLongPress;\n\n hideUnderlay = () => {\n this.setState({\n extraChildStyle: null,\n extraUnderlayStyle: null,\n });\n this.props.onHideUnderlay?.();\n };\n\n renderChildren() {\n if (!this.props.children) {\n return ;\n }\n\n const child = React.Children.only(\n this.props.children\n ) as React.ReactElement; // TODO: not sure if OK but fixes error\n return React.cloneElement(child, {\n style: StyleSheet.compose(child.props.style, this.state.extraChildStyle),\n });\n }\n\n onStateChange = (_from: number, to: number) => {\n if (to === TOUCHABLE_STATE.BEGAN) {\n this.showUnderlay();\n } else if (\n to === TOUCHABLE_STATE.UNDETERMINED ||\n to === TOUCHABLE_STATE.MOVED_OUTSIDE\n ) {\n this.hideUnderlay();\n }\n };\n\n render() {\n const { style = {}, ...rest } = this.props;\n const { extraUnderlayStyle } = this.state;\n return (\n \n {this.renderChildren()}\n \n );\n }\n}\n","import * as React from 'react';\nimport {\n DrawerLayoutAndroid as RNDrawerLayoutAndroid,\n FlatList as RNFlatList,\n Switch as RNSwitch,\n TextInput as RNTextInput,\n ScrollView as RNScrollView,\n FlatListProps,\n View,\n} from 'react-native';\n\nimport createNativeWrapper from '../handlers/createNativeWrapper';\n\nexport const ScrollView = createNativeWrapper(RNScrollView, {\n disallowInterruption: false,\n});\n\nexport const Switch = createNativeWrapper(RNSwitch, {\n shouldCancelWhenOutside: false,\n shouldActivateOnStart: true,\n disallowInterruption: true,\n});\nexport const TextInput = createNativeWrapper(RNTextInput);\nexport const DrawerLayoutAndroid = createNativeWrapper(RNDrawerLayoutAndroid, {\n disallowInterruption: true,\n});\n// @ts-ignore -- TODO(TS) to investigate if it's needed\nDrawerLayoutAndroid.positions = RNDrawerLayoutAndroid.positions;\n// RefreshControl is implemented as a functional component, rendering a View\n// NativeViewGestureHandler needs to set a ref on its child, which cannot be done\n// on functional components\nexport const RefreshControl = createNativeWrapper(View);\n\nexport const FlatList = React.forwardRef(\n (props: FlatListProps, ref: any) => (\n }\n />\n )\n);\n","// Similarily to the DrawerLayout component this deserves to be put in a\n// separate repo. Although, keeping it here for the time being will allow us to\n// move faster and fix possible issues quicker\n\nimport * as React from 'react';\nimport { Component } from 'react';\nimport {\n Animated,\n StyleSheet,\n View,\n I18nManager,\n LayoutChangeEvent,\n StyleProp,\n ViewStyle,\n} from 'react-native';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n} from '../handlers/gestureHandlerCommon';\nimport {\n PanGestureHandler,\n PanGestureHandlerEventPayload,\n PanGestureHandlerProps,\n} from '../handlers/PanGestureHandler';\nimport {\n TapGestureHandler,\n TapGestureHandlerEventPayload,\n} from '../handlers/TapGestureHandler';\nimport { State } from '../State';\n\nconst DRAG_TOSS = 0.05;\n\ntype SwipeableExcludes = Exclude<\n keyof PanGestureHandlerProps,\n 'onGestureEvent' | 'onHandlerStateChange'\n>;\n\n// Animated.AnimatedInterpolation has been converted to a generic type\n// in @types/react-native 0.70. This way we can maintain compatibility\n// with all versions of @types/react-native\ntype AnimatedInterpolation = ReturnType;\n\nexport interface SwipeableProps\n extends Pick {\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n /**\n * Specifies how much the visual interaction will be delayed compared to the\n * gesture distance. e.g. value of 1 will indicate that the swipeable panel\n * should exactly follow the gesture, 2 means it is going to be two times\n * \"slower\".\n */\n friction?: number;\n\n /**\n * Distance from the left edge at which released panel will animate to the\n * open state (or the open panel will animate into the closed state). By\n * default it's a half of the panel's width.\n */\n leftThreshold?: number;\n\n /**\n * Distance from the right edge at which released panel will animate to the\n * open state (or the open panel will animate into the closed state). By\n * default it's a half of the panel's width.\n */\n rightThreshold?: number;\n\n /**\n * Value indicating if the swipeable panel can be pulled further than the left\n * actions panel's width. It is set to true by default as long as the left\n * panel render method is present.\n */\n overshootLeft?: boolean;\n\n /**\n * Value indicating if the swipeable panel can be pulled further than the\n * right actions panel's width. It is set to true by default as long as the\n * right panel render method is present.\n */\n overshootRight?: boolean;\n\n /**\n * Specifies how much the visual interaction will be delayed compared to the\n * gesture distance at overshoot. Default value is 1, it mean no friction, for\n * a native feel, try 8 or above.\n */\n overshootFriction?: number;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableOpen()\n *\n * Called when left action panel gets open.\n */\n onSwipeableLeftOpen?: () => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableOpen()\n *\n * Called when right action panel gets open.\n */\n onSwipeableRightOpen?: () => void;\n\n /**\n * Called when action panel gets open (either right or left).\n */\n onSwipeableOpen?: (direction: 'left' | 'right', swipeable: Swipeable) => void;\n\n /**\n * Called when action panel is closed.\n */\n onSwipeableClose?: (\n direction: 'left' | 'right',\n swipeable: Swipeable\n ) => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableWillOpen()\n *\n * Called when left action panel starts animating on open.\n */\n onSwipeableLeftWillOpen?: () => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableWillOpen()\n *\n * Called when right action panel starts animating on open.\n */\n onSwipeableRightWillOpen?: () => void;\n\n /**\n * Called when action panel starts animating on open (either right or left).\n */\n onSwipeableWillOpen?: (direction: 'left' | 'right') => void;\n\n /**\n * Called when action panel starts animating on close.\n */\n onSwipeableWillClose?: (direction: 'left' | 'right') => void;\n\n /**\n *\n * This map describes the values to use as inputRange for extra interpolation:\n * AnimatedValue: [startValue, endValue]\n *\n * progressAnimatedValue: [0, 1] dragAnimatedValue: [0, +]\n *\n * To support `rtl` flexbox layouts use `flexDirection` styling.\n * */\n renderLeftActions?: (\n progressAnimatedValue: AnimatedInterpolation,\n dragAnimatedValue: AnimatedInterpolation\n ) => React.ReactNode;\n /**\n *\n * This map describes the values to use as inputRange for extra interpolation:\n * AnimatedValue: [startValue, endValue]\n *\n * progressAnimatedValue: [0, 1] dragAnimatedValue: [0, -]\n *\n * To support `rtl` flexbox layouts use `flexDirection` styling.\n * */\n renderRightActions?: (\n progressAnimatedValue: AnimatedInterpolation,\n dragAnimatedValue: AnimatedInterpolation,\n swipeable: Swipeable\n ) => React.ReactNode;\n\n useNativeAnimations?: boolean;\n\n animationOptions?: Record;\n\n /**\n * Style object for the container (`Animated.View`), for example to override\n * `overflow: 'hidden'`.\n */\n containerStyle?: StyleProp;\n\n /**\n * Style object for the children container (`Animated.View`), for example to\n * apply `flex: 1`\n */\n childrenContainerStyle?: StyleProp;\n}\n\ntype SwipeableState = {\n dragX: Animated.Value;\n rowTranslation: Animated.Value;\n rowState: number;\n leftWidth?: number;\n rightOffset?: number;\n rowWidth?: number;\n};\n\nexport default class Swipeable extends Component<\n SwipeableProps,\n SwipeableState\n> {\n static defaultProps = {\n friction: 1,\n overshootFriction: 1,\n useNativeAnimations: true,\n };\n\n constructor(props: SwipeableProps) {\n super(props);\n const dragX = new Animated.Value(0);\n this.state = {\n dragX,\n rowTranslation: new Animated.Value(0),\n rowState: 0,\n leftWidth: undefined,\n rightOffset: undefined,\n rowWidth: undefined,\n };\n this.updateAnimatedEvent(props, this.state);\n\n this.onGestureEvent = Animated.event(\n [{ nativeEvent: { translationX: dragX } }],\n { useNativeDriver: props.useNativeAnimations! }\n );\n }\n\n shouldComponentUpdate(props: SwipeableProps, state: SwipeableState) {\n if (\n this.props.friction !== props.friction ||\n this.props.overshootLeft !== props.overshootLeft ||\n this.props.overshootRight !== props.overshootRight ||\n this.props.overshootFriction !== props.overshootFriction ||\n this.state.leftWidth !== state.leftWidth ||\n this.state.rightOffset !== state.rightOffset ||\n this.state.rowWidth !== state.rowWidth\n ) {\n this.updateAnimatedEvent(props, state);\n }\n\n return true;\n }\n\n private onGestureEvent?: (\n event: GestureEvent\n ) => void;\n private transX?: AnimatedInterpolation;\n private showLeftAction?: AnimatedInterpolation | Animated.Value;\n private leftActionTranslate?: AnimatedInterpolation;\n private showRightAction?: AnimatedInterpolation | Animated.Value;\n private rightActionTranslate?: AnimatedInterpolation;\n\n private updateAnimatedEvent = (\n props: SwipeableProps,\n state: SwipeableState\n ) => {\n const { friction, overshootFriction } = props;\n const { dragX, rowTranslation, leftWidth = 0, rowWidth = 0 } = state;\n const { rightOffset = rowWidth } = state;\n const rightWidth = Math.max(0, rowWidth - rightOffset);\n\n const { overshootLeft = leftWidth > 0, overshootRight = rightWidth > 0 } =\n props;\n\n const transX = Animated.add(\n rowTranslation,\n dragX.interpolate({\n inputRange: [0, friction!],\n outputRange: [0, 1],\n })\n ).interpolate({\n inputRange: [-rightWidth - 1, -rightWidth, leftWidth, leftWidth + 1],\n outputRange: [\n -rightWidth - (overshootRight ? 1 / overshootFriction! : 0),\n -rightWidth,\n leftWidth,\n leftWidth + (overshootLeft ? 1 / overshootFriction! : 0),\n ],\n });\n this.transX = transX;\n this.showLeftAction =\n leftWidth > 0\n ? transX.interpolate({\n inputRange: [-1, 0, leftWidth],\n outputRange: [0, 0, 1],\n })\n : new Animated.Value(0);\n this.leftActionTranslate = this.showLeftAction.interpolate({\n inputRange: [0, Number.MIN_VALUE],\n outputRange: [-10000, 0],\n extrapolate: 'clamp',\n });\n this.showRightAction =\n rightWidth > 0\n ? transX.interpolate({\n inputRange: [-rightWidth, 0, 1],\n outputRange: [1, 0, 0],\n })\n : new Animated.Value(0);\n this.rightActionTranslate = this.showRightAction.interpolate({\n inputRange: [0, Number.MIN_VALUE],\n outputRange: [-10000, 0],\n extrapolate: 'clamp',\n });\n };\n\n private onTapHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent) => {\n if (nativeEvent.oldState === State.ACTIVE) {\n this.close();\n }\n };\n\n private onHandlerStateChange = (\n ev: HandlerStateChangeEvent\n ) => {\n if (ev.nativeEvent.oldState === State.ACTIVE) {\n this.handleRelease(ev);\n }\n };\n\n private handleRelease = (\n ev: HandlerStateChangeEvent\n ) => {\n const { velocityX, translationX: dragX } = ev.nativeEvent;\n const { leftWidth = 0, rowWidth = 0, rowState } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n const {\n friction,\n leftThreshold = leftWidth / 2,\n rightThreshold = rightWidth / 2,\n } = this.props;\n\n const startOffsetX = this.currentOffset() + dragX / friction!;\n const translationX = (dragX + DRAG_TOSS * velocityX) / friction!;\n\n let toValue = 0;\n if (rowState === 0) {\n if (translationX > leftThreshold) {\n toValue = leftWidth;\n } else if (translationX < -rightThreshold) {\n toValue = -rightWidth;\n }\n } else if (rowState === 1) {\n // swiped to left\n if (translationX > -leftThreshold) {\n toValue = leftWidth;\n }\n } else {\n // swiped to right\n if (translationX < rightThreshold) {\n toValue = -rightWidth;\n }\n }\n\n this.animateRow(startOffsetX, toValue, velocityX / friction!);\n };\n\n private animateRow = (\n fromValue: number,\n toValue: number,\n velocityX?:\n | number\n | {\n x: number;\n y: number;\n }\n ) => {\n const { dragX, rowTranslation } = this.state;\n dragX.setValue(0);\n rowTranslation.setValue(fromValue);\n\n this.setState({ rowState: Math.sign(toValue) });\n Animated.spring(rowTranslation, {\n restSpeedThreshold: 1.7,\n restDisplacementThreshold: 0.4,\n velocity: velocityX,\n bounciness: 0,\n toValue,\n useNativeDriver: this.props.useNativeAnimations!,\n ...this.props.animationOptions,\n }).start(({ finished }) => {\n if (finished) {\n if (toValue > 0) {\n this.props.onSwipeableLeftOpen?.();\n this.props.onSwipeableOpen?.('left', this);\n } else if (toValue < 0) {\n this.props.onSwipeableRightOpen?.();\n this.props.onSwipeableOpen?.('right', this);\n } else {\n const closingDirection = fromValue > 0 ? 'left' : 'right';\n this.props.onSwipeableClose?.(closingDirection, this);\n }\n }\n });\n if (toValue > 0) {\n this.props.onSwipeableLeftWillOpen?.();\n this.props.onSwipeableWillOpen?.('left');\n } else if (toValue < 0) {\n this.props.onSwipeableRightWillOpen?.();\n this.props.onSwipeableWillOpen?.('right');\n } else {\n const closingDirection = fromValue > 0 ? 'left' : 'right';\n this.props.onSwipeableWillClose?.(closingDirection);\n }\n };\n\n private onRowLayout = ({ nativeEvent }: LayoutChangeEvent) => {\n this.setState({ rowWidth: nativeEvent.layout.width });\n };\n\n private currentOffset = () => {\n const { leftWidth = 0, rowWidth = 0, rowState } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n if (rowState === 1) {\n return leftWidth;\n } else if (rowState === -1) {\n return -rightWidth;\n }\n return 0;\n };\n\n close = () => {\n this.animateRow(this.currentOffset(), 0);\n };\n\n openLeft = () => {\n const { leftWidth = 0 } = this.state;\n this.animateRow(this.currentOffset(), leftWidth);\n };\n\n openRight = () => {\n const { rowWidth = 0 } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n this.animateRow(this.currentOffset(), -rightWidth);\n };\n\n render() {\n const { rowState } = this.state;\n const { children, renderLeftActions, renderRightActions } = this.props;\n\n const left = renderLeftActions && (\n \n {renderLeftActions(this.showLeftAction!, this.transX!)}\n \n this.setState({ leftWidth: nativeEvent.layout.x })\n }\n />\n \n );\n\n const right = renderRightActions && (\n \n {renderRightActions(this.showRightAction!, this.transX!, this)}\n \n this.setState({ rightOffset: nativeEvent.layout.x })\n }\n />\n \n );\n\n return (\n \n \n {left}\n {right}\n \n \n {children}\n \n \n \n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n },\n leftActions: {\n ...StyleSheet.absoluteFillObject,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n },\n rightActions: {\n ...StyleSheet.absoluteFillObject,\n flexDirection: I18nManager.isRTL ? 'row' : 'row-reverse',\n },\n});\n","// This component is based on RN's DrawerLayoutAndroid API\n//\n// It perhaps deserves to be put in a separate repo, but since it relies on\n// react-native-gesture-handler library which isn't very popular at the moment I\n// decided to keep it here for the time being. It will allow us to move faster\n// and fix issues that may arise in gesture handler library that could be found\n// when using the drawer component\n\nimport * as React from 'react';\nimport { Component } from 'react';\nimport invariant from 'invariant';\nimport {\n Animated,\n StyleSheet,\n View,\n Keyboard,\n StatusBar,\n I18nManager,\n StatusBarAnimation,\n StyleProp,\n ViewStyle,\n LayoutChangeEvent,\n NativeSyntheticEvent,\n} from 'react-native';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n UserSelect,\n} from '../handlers/gestureHandlerCommon';\nimport {\n PanGestureHandler,\n PanGestureHandlerEventPayload,\n} from '../handlers/PanGestureHandler';\nimport {\n TapGestureHandler,\n TapGestureHandlerEventPayload,\n} from '../handlers/TapGestureHandler';\nimport { State } from '../State';\n\nconst DRAG_TOSS = 0.05;\n\nconst IDLE: DrawerState = 'Idle';\nconst DRAGGING: DrawerState = 'Dragging';\nconst SETTLING: DrawerState = 'Settling';\n\nexport type DrawerPosition = 'left' | 'right';\n\nexport type DrawerState = 'Idle' | 'Dragging' | 'Settling';\n\nexport type DrawerType = 'front' | 'back' | 'slide';\n\nexport type DrawerLockMode = 'unlocked' | 'locked-closed' | 'locked-open';\n\nexport type DrawerKeyboardDismissMode = 'none' | 'on-drag';\n\n// Animated.AnimatedInterpolation has been converted to a generic type\n// in @types/react-native 0.70. This way we can maintain compatibility\n// with all versions of @types/react-native`\ntype AnimatedInterpolation = ReturnType;\nexport interface DrawerLayoutProps {\n /**\n * This attribute is present in the standard implementation already and is one\n * of the required params. Gesture handler version of DrawerLayout make it\n * possible for the function passed as `renderNavigationView` to take an\n * Animated value as a parameter that indicates the progress of drawer\n * opening/closing animation (progress value is 0 when closed and 1 when\n * opened). This can be used by the drawer component to animated its children\n * while the drawer is opening or closing.\n */\n renderNavigationView: (\n progressAnimatedValue: Animated.Value\n ) => React.ReactNode;\n\n drawerPosition?: DrawerPosition;\n\n drawerWidth?: number;\n\n drawerBackgroundColor?: string;\n\n drawerLockMode?: DrawerLockMode;\n\n keyboardDismissMode?: DrawerKeyboardDismissMode;\n\n /**\n * Called when the drawer is closed.\n */\n onDrawerClose?: () => void;\n\n /**\n * Called when the drawer is opened.\n */\n onDrawerOpen?: () => void;\n\n /**\n * Called when the status of the drawer changes.\n */\n onDrawerStateChanged?: (\n newState: DrawerState,\n drawerWillShow: boolean\n ) => void;\n useNativeAnimations?: boolean;\n\n drawerType?: DrawerType;\n\n /**\n * Defines how far from the edge of the content view the gesture should\n * activate.\n */\n edgeWidth?: number;\n\n minSwipeDistance?: number;\n\n /**\n * When set to true Drawer component will use\n * {@link https://reactnative.dev/docs/statusbar StatusBar} API to hide the OS\n * status bar whenever the drawer is pulled or when its in an \"open\" state.\n */\n hideStatusBar?: boolean;\n\n /**\n * @default 'slide'\n *\n * Can be used when hideStatusBar is set to true and will select the animation\n * used for hiding/showing the status bar. See\n * {@link https://reactnative.dev/docs/statusbar StatusBar} documentation for\n * more details\n */\n statusBarAnimation?: StatusBarAnimation;\n\n /**\n * @default black\n *\n * Color of a semi-transparent overlay to be displayed on top of the content\n * view when drawer gets open. A solid color should be used as the opacity is\n * added by the Drawer itself and the opacity of the overlay is animated (from\n * 0% to 70%).\n */\n overlayColor?: string;\n\n contentContainerStyle?: StyleProp;\n\n drawerContainerStyle?: StyleProp;\n\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n onDrawerSlide?: (position: number) => void;\n\n onGestureRef?: (ref: PanGestureHandler) => void;\n\n // implicit `children` prop has been removed in @types/react^18.0.0\n children?:\n | React.ReactNode\n | ((openValue?: AnimatedInterpolation) => React.ReactNode);\n\n /**\n * @default 'none'\n * Defines which userSelect property should be used.\n * Values: 'none'|'text'|'auto'\n */\n userSelect?: UserSelect;\n}\n\nexport type DrawerLayoutState = {\n dragX: Animated.Value;\n touchX: Animated.Value;\n drawerTranslation: Animated.Value;\n containerWidth: number;\n drawerState: DrawerState;\n drawerOpened: boolean;\n};\n\nexport type DrawerMovementOption = {\n velocity?: number;\n speed?: number;\n};\nexport default class DrawerLayout extends Component<\n DrawerLayoutProps,\n DrawerLayoutState\n> {\n static defaultProps = {\n drawerWidth: 200,\n drawerPosition: 'left',\n useNativeAnimations: true,\n drawerType: 'front',\n edgeWidth: 20,\n minSwipeDistance: 3,\n overlayColor: 'rgba(0, 0, 0, 0.7)',\n drawerLockMode: 'unlocked',\n enableTrackpadTwoFingerGesture: false,\n };\n\n constructor(props: DrawerLayoutProps) {\n super(props);\n\n const dragX = new Animated.Value(0);\n const touchX = new Animated.Value(0);\n const drawerTranslation = new Animated.Value(0);\n\n this.state = {\n dragX,\n touchX,\n drawerTranslation,\n containerWidth: 0,\n drawerState: IDLE,\n drawerOpened: false,\n };\n\n this.updateAnimatedEvent(props, this.state);\n }\n\n shouldComponentUpdate(props: DrawerLayoutProps, state: DrawerLayoutState) {\n if (\n this.props.drawerPosition !== props.drawerPosition ||\n this.props.drawerWidth !== props.drawerWidth ||\n this.props.drawerType !== props.drawerType ||\n this.state.containerWidth !== state.containerWidth\n ) {\n this.updateAnimatedEvent(props, state);\n }\n\n return true;\n }\n\n private openValue?: AnimatedInterpolation;\n private onGestureEvent?: (\n event: GestureEvent\n ) => void;\n private accessibilityIsModalView = React.createRef();\n private pointerEventsView = React.createRef();\n private panGestureHandler = React.createRef();\n private drawerShown = false;\n\n static positions = {\n Left: 'left',\n Right: 'right',\n };\n\n private updateAnimatedEvent = (\n props: DrawerLayoutProps,\n state: DrawerLayoutState\n ) => {\n // Event definition is based on\n const { drawerPosition, drawerWidth, drawerType } = props;\n const {\n dragX: dragXValue,\n touchX: touchXValue,\n drawerTranslation,\n containerWidth,\n } = state;\n\n let dragX = dragXValue;\n let touchX = touchXValue;\n\n if (drawerPosition !== 'left') {\n // Most of the code is written in a way to handle left-side drawer. In\n // order to handle right-side drawer the only thing we need to do is to\n // reverse events coming from gesture handler in a way they emulate\n // left-side drawer gestures. E.g. dragX is simply -dragX, and touchX is\n // calulcated by subtracing real touchX from the width of the container\n // (such that when touch happens at the right edge the value is simply 0)\n dragX = Animated.multiply(\n new Animated.Value(-1),\n dragXValue\n ) as Animated.Value; // TODO(TS): (for all \"as\" in this file) make sure we can map this\n touchX = Animated.add(\n new Animated.Value(containerWidth),\n Animated.multiply(new Animated.Value(-1), touchXValue)\n ) as Animated.Value; // TODO(TS): make sure we can map this;\n touchXValue.setValue(containerWidth);\n } else {\n touchXValue.setValue(0);\n }\n\n // While closing the drawer when user starts gesture outside of its area (in greyed\n // out part of the window), we want the drawer to follow only once finger reaches the\n // edge of the drawer.\n // E.g. on the diagram below drawer is illustrate by X signs and the greyed out area by\n // dots. The touch gesture starts at '*' and moves left, touch path is indicated by\n // an arrow pointing left\n // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // +---------------+ +---------------+ +---------------+ +---------------+\n //\n // For the above to work properly we define animated value that will keep\n // start position of the gesture. Then we use that value to calculate how\n // much we need to subtract from the dragX. If the gesture started on the\n // greyed out area we take the distance from the edge of the drawer to the\n // start position. Otherwise we don't subtract at all and the drawer be\n // pulled back as soon as you start the pan.\n //\n // This is used only when drawerType is \"front\"\n //\n let translationX = dragX;\n if (drawerType === 'front') {\n const startPositionX = Animated.add(\n touchX,\n Animated.multiply(new Animated.Value(-1), dragX)\n );\n\n const dragOffsetFromOnStartPosition = startPositionX.interpolate({\n inputRange: [drawerWidth! - 1, drawerWidth!, drawerWidth! + 1],\n outputRange: [0, 0, 1],\n });\n translationX = Animated.add(\n dragX,\n dragOffsetFromOnStartPosition\n ) as Animated.Value; // TODO: as above\n }\n\n this.openValue = Animated.add(translationX, drawerTranslation).interpolate({\n inputRange: [0, drawerWidth!],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n });\n\n const gestureOptions: {\n useNativeDriver: boolean;\n // TODO: make sure it is correct\n listener?: (\n ev: NativeSyntheticEvent\n ) => void;\n } = {\n useNativeDriver: props.useNativeAnimations!,\n };\n\n if (this.props.onDrawerSlide) {\n gestureOptions.listener = (ev) => {\n const translationX = Math.floor(Math.abs(ev.nativeEvent.translationX));\n const position = translationX / this.state.containerWidth;\n\n this.props.onDrawerSlide?.(position);\n };\n }\n\n this.onGestureEvent = Animated.event(\n [{ nativeEvent: { translationX: dragXValue, x: touchXValue } }],\n gestureOptions\n );\n };\n\n private handleContainerLayout = ({ nativeEvent }: LayoutChangeEvent) => {\n this.setState({ containerWidth: nativeEvent.layout.width });\n };\n\n private emitStateChanged = (\n newState: DrawerState,\n drawerWillShow: boolean\n ) => {\n this.props.onDrawerStateChanged?.(newState, drawerWillShow);\n };\n\n private openingHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent) => {\n if (nativeEvent.oldState === State.ACTIVE) {\n this.handleRelease({ nativeEvent });\n } else if (nativeEvent.state === State.ACTIVE) {\n this.emitStateChanged(DRAGGING, false);\n this.setState({ drawerState: DRAGGING });\n if (this.props.keyboardDismissMode === 'on-drag') {\n Keyboard.dismiss();\n }\n if (this.props.hideStatusBar) {\n StatusBar.setHidden(true, this.props.statusBarAnimation || 'slide');\n }\n }\n };\n\n private onTapHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent) => {\n if (\n this.drawerShown &&\n nativeEvent.oldState === State.ACTIVE &&\n this.props.drawerLockMode !== 'locked-open'\n ) {\n this.closeDrawer();\n }\n };\n\n private handleRelease = ({\n nativeEvent,\n }: HandlerStateChangeEvent) => {\n const { drawerWidth, drawerPosition, drawerType } = this.props;\n const { containerWidth } = this.state;\n let { translationX: dragX, velocityX, x: touchX } = nativeEvent;\n\n if (drawerPosition !== 'left') {\n // See description in _updateAnimatedEvent about why events are flipped\n // for right-side drawer\n dragX = -dragX;\n touchX = containerWidth - touchX;\n velocityX = -velocityX;\n }\n\n const gestureStartX = touchX - dragX;\n let dragOffsetBasedOnStart = 0;\n\n if (drawerType === 'front') {\n dragOffsetBasedOnStart =\n gestureStartX > drawerWidth! ? gestureStartX - drawerWidth! : 0;\n }\n\n const startOffsetX =\n dragX + dragOffsetBasedOnStart + (this.drawerShown ? drawerWidth! : 0);\n const projOffsetX = startOffsetX + DRAG_TOSS * velocityX;\n\n const shouldOpen = projOffsetX > drawerWidth! / 2;\n\n if (shouldOpen) {\n this.animateDrawer(startOffsetX, drawerWidth!, velocityX);\n } else {\n this.animateDrawer(startOffsetX, 0, velocityX);\n }\n };\n\n private updateShowing = (showing: boolean) => {\n this.drawerShown = showing;\n this.accessibilityIsModalView.current?.setNativeProps({\n accessibilityViewIsModal: showing,\n });\n this.pointerEventsView.current?.setNativeProps({\n pointerEvents: showing ? 'auto' : 'none',\n });\n const { drawerPosition, minSwipeDistance, edgeWidth } = this.props;\n const fromLeft = drawerPosition === 'left';\n // gestureOrientation is 1 if the expected gesture is from left to right and\n // -1 otherwise e.g. when drawer is on the left and is closed we expect left\n // to right gesture, thus orientation will be 1.\n const gestureOrientation =\n (fromLeft ? 1 : -1) * (this.drawerShown ? -1 : 1);\n // When drawer is closed we want the hitSlop to be horizontally shorter than\n // the container size by the value of SLOP. This will make it only activate\n // when gesture happens not further than SLOP away from the edge\n const hitSlop = fromLeft\n ? { left: 0, width: showing ? undefined : edgeWidth }\n : { right: 0, width: showing ? undefined : edgeWidth };\n // @ts-ignore internal API, maybe could be fixed in handler types\n this.panGestureHandler.current?.setNativeProps({\n hitSlop,\n activeOffsetX: gestureOrientation * minSwipeDistance!,\n });\n };\n\n private animateDrawer = (\n fromValue: number | null | undefined,\n toValue: number,\n velocity: number,\n speed?: number\n ) => {\n this.state.dragX.setValue(0);\n this.state.touchX.setValue(\n this.props.drawerPosition === 'left' ? 0 : this.state.containerWidth\n );\n\n if (fromValue != null) {\n let nextFramePosition = fromValue;\n if (this.props.useNativeAnimations) {\n // When using native driver, we predict the next position of the\n // animation because it takes one frame of a roundtrip to pass RELEASE\n // event from native driver to JS before we can start animating. Without\n // it, it is more noticable that the frame is dropped.\n if (fromValue < toValue && velocity > 0) {\n nextFramePosition = Math.min(fromValue + velocity / 60.0, toValue);\n } else if (fromValue > toValue && velocity < 0) {\n nextFramePosition = Math.max(fromValue + velocity / 60.0, toValue);\n }\n }\n this.state.drawerTranslation.setValue(nextFramePosition);\n }\n\n const willShow = toValue !== 0;\n this.updateShowing(willShow);\n this.emitStateChanged(SETTLING, willShow);\n this.setState({ drawerState: SETTLING });\n if (this.props.hideStatusBar) {\n StatusBar.setHidden(willShow, this.props.statusBarAnimation || 'slide');\n }\n Animated.spring(this.state.drawerTranslation, {\n velocity,\n bounciness: 0,\n toValue,\n useNativeDriver: this.props.useNativeAnimations!,\n speed: speed ?? undefined,\n }).start(({ finished }) => {\n if (finished) {\n this.emitStateChanged(IDLE, willShow);\n this.setState({ drawerOpened: willShow });\n if (this.state.drawerState !== DRAGGING) {\n // it's possilbe that user started drag while the drawer\n // was settling, don't override state in this case\n this.setState({ drawerState: IDLE });\n }\n if (willShow) {\n this.props.onDrawerOpen?.();\n } else {\n this.props.onDrawerClose?.();\n }\n }\n });\n };\n\n openDrawer = (options: DrawerMovementOption = {}) => {\n this.animateDrawer(\n // TODO: decide if it should be null or undefined is the proper value\n undefined,\n this.props.drawerWidth!,\n options.velocity ? options.velocity : 0,\n options.speed\n );\n\n // We need to force the update, otherwise the overlay is not rerendered and\n // it would not be clickable\n this.forceUpdate();\n };\n\n closeDrawer = (options: DrawerMovementOption = {}) => {\n // TODO: decide if it should be null or undefined is the proper value\n this.animateDrawer(\n undefined,\n 0,\n options.velocity ? options.velocity : 0,\n options.speed\n );\n\n // We need to force the update, otherwise the overlay is not rerendered and\n // it would be still clickable\n this.forceUpdate();\n };\n\n private renderOverlay = () => {\n /* Overlay styles */\n invariant(this.openValue, 'should be set');\n let overlayOpacity;\n\n if (this.state.drawerState !== IDLE) {\n overlayOpacity = this.openValue;\n } else {\n overlayOpacity = this.state.drawerOpened ? 1 : 0;\n }\n\n const dynamicOverlayStyles = {\n opacity: overlayOpacity,\n backgroundColor: this.props.overlayColor,\n };\n\n return (\n \n \n \n );\n };\n\n private renderDrawer = () => {\n const {\n drawerBackgroundColor,\n drawerWidth,\n drawerPosition,\n drawerType,\n drawerContainerStyle,\n contentContainerStyle,\n } = this.props;\n\n const fromLeft = drawerPosition === 'left';\n const drawerSlide = drawerType !== 'back';\n const containerSlide = drawerType !== 'front';\n\n // we rely on row and row-reverse flex directions to position the drawer\n // properly. Apparently for RTL these are flipped which requires us to use\n // the opposite setting for the drawer to appear from left or right\n // according to the drawerPosition prop\n const reverseContentDirection = I18nManager.isRTL ? fromLeft : !fromLeft;\n\n const dynamicDrawerStyles = {\n backgroundColor: drawerBackgroundColor,\n width: drawerWidth,\n };\n const openValue = this.openValue;\n invariant(openValue, 'should be set');\n\n let containerStyles;\n if (containerSlide) {\n const containerTranslateX = openValue.interpolate({\n inputRange: [0, 1],\n outputRange: fromLeft ? [0, drawerWidth!] : [0, -drawerWidth!],\n extrapolate: 'clamp',\n });\n containerStyles = {\n transform: [{ translateX: containerTranslateX }],\n };\n }\n\n let drawerTranslateX: number | AnimatedInterpolation = 0;\n if (drawerSlide) {\n const closedDrawerOffset = fromLeft ? -drawerWidth! : drawerWidth!;\n if (this.state.drawerState !== IDLE) {\n drawerTranslateX = openValue.interpolate({\n inputRange: [0, 1],\n outputRange: [closedDrawerOffset, 0],\n extrapolate: 'clamp',\n });\n } else {\n drawerTranslateX = this.state.drawerOpened ? 0 : closedDrawerOffset;\n }\n }\n const drawerStyles: {\n transform: { translateX: number | AnimatedInterpolation }[];\n flexDirection: 'row-reverse' | 'row';\n } = {\n transform: [{ translateX: drawerTranslateX }],\n flexDirection: reverseContentDirection ? 'row-reverse' : 'row',\n };\n\n return (\n \n \n {typeof this.props.children === 'function'\n ? this.props.children(this.openValue)\n : this.props.children}\n {this.renderOverlay()}\n \n \n \n {this.props.renderNavigationView(this.openValue as Animated.Value)}\n \n \n \n );\n };\n\n private setPanGestureRef = (ref: PanGestureHandler) => {\n // TODO(TS): make sure it is OK taken from\n // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065#issuecomment-596081842\n (\n this.panGestureHandler as React.MutableRefObject\n ).current = ref;\n this.props.onGestureRef?.(ref);\n };\n\n render() {\n const { drawerPosition, drawerLockMode, edgeWidth, minSwipeDistance } =\n this.props;\n\n const fromLeft = drawerPosition === 'left';\n\n // gestureOrientation is 1 if the expected gesture is from left to right and\n // -1 otherwise e.g. when drawer is on the left and is closed we expect left\n // to right gesture, thus orientation will be 1.\n const gestureOrientation =\n (fromLeft ? 1 : -1) * (this.drawerShown ? -1 : 1);\n\n // When drawer is closed we want the hitSlop to be horizontally shorter than\n // the container size by the value of SLOP. This will make it only activate\n // when gesture happens not further than SLOP away from the edge\n const hitSlop = fromLeft\n ? { left: 0, width: this.drawerShown ? undefined : edgeWidth }\n : { right: 0, width: this.drawerShown ? undefined : edgeWidth };\n\n return (\n \n {this.renderDrawer()}\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n drawerContainer: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1001,\n flexDirection: 'row',\n },\n containerInFront: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1002,\n },\n containerOnBack: {\n ...StyleSheet.absoluteFillObject,\n },\n main: {\n flex: 1,\n zIndex: 0,\n overflow: 'hidden',\n },\n overlay: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1000,\n },\n});\n","import { startListening } from './handlers/gestures/eventReceiver';\nimport RNGestureHandlerModule from './RNGestureHandlerModule';\nimport { isFabric } from './utils';\n\nlet fabricInitialized = false;\n\nexport function initialize() {\n startListening();\n}\n\n// since isFabric() may give wrong results before the first render, we call this\n// method during render of GestureHandlerRootView\nexport function maybeInitializeFabric() {\n if (isFabric() && !fabricInitialized) {\n RNGestureHandlerModule.install();\n fabricInitialized = true;\n }\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\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// @ts-ignore Cannot find module 'merge-options' or its corresponding type declarations\nimport mergeOptions from 'merge-options';\nimport type {\n AsyncStorageStatic,\n MultiCallback,\n MultiGetCallback,\n} from './types';\n\nconst merge = mergeOptions.bind({\n concatArrays: true,\n ignoreUndefined: true,\n});\n\nfunction mergeLocalStorageItem(key: string, value: string) {\n const oldValue = window.localStorage.getItem(key);\n if (oldValue) {\n const oldObject = JSON.parse(oldValue);\n const newObject = JSON.parse(value);\n const nextValue = JSON.stringify(merge(oldObject, newObject));\n window.localStorage.setItem(key, nextValue);\n } else {\n window.localStorage.setItem(key, value);\n }\n}\n\nfunction createPromise(\n getValue: () => Result,\n callback?: Callback\n): Promise {\n return new Promise((resolve, reject) => {\n try {\n const value = getValue();\n callback?.(null, value);\n resolve(value);\n } catch (err) {\n callback?.(err);\n reject(err);\n }\n });\n}\n\nfunction createPromiseAll(\n promises: Promise[],\n callback?: MultiCallback | MultiGetCallback,\n processResult?: ResultProcessor\n): Promise {\n return Promise.all(promises).then(\n (result) => {\n const value = processResult?.(result) ?? null;\n callback?.(null, value);\n return Promise.resolve(value);\n },\n (errors) => {\n callback?.(errors);\n return Promise.reject(errors);\n }\n );\n}\n\nconst AsyncStorage: AsyncStorageStatic = {\n /**\n * Fetches `key` value.\n */\n getItem: (key, callback) => {\n return createPromise(() => window.localStorage.getItem(key), callback);\n },\n\n /**\n * Sets `value` for `key`.\n */\n setItem: (key, value, callback) => {\n return createPromise(\n () => window.localStorage.setItem(key, value),\n callback\n );\n },\n\n /**\n * Removes a `key`\n */\n removeItem: (key, callback) => {\n return createPromise(() => window.localStorage.removeItem(key), callback);\n },\n\n /**\n * Merges existing value with input value, assuming they are stringified JSON.\n */\n mergeItem: (key, value, callback) => {\n return createPromise(() => mergeLocalStorageItem(key, value), callback);\n },\n\n /**\n * Erases *all* AsyncStorage for the domain.\n */\n clear: (callback) => {\n return createPromise(() => window.localStorage.clear(), callback);\n },\n\n /**\n * Gets *all* keys known to the app, for all callers, libraries, etc.\n */\n getAllKeys: (callback) => {\n return createPromise(() => {\n const numberOfKeys = window.localStorage.length;\n const keys: string[] = [];\n for (let i = 0; i < numberOfKeys; i += 1) {\n const key = window.localStorage.key(i) || '';\n keys.push(key);\n }\n return keys;\n }, callback);\n },\n\n /**\n * (stub) Flushes any pending requests using a single batch call to get the data.\n */\n flushGetRequests: () => undefined,\n\n /**\n * multiGet resolves to an array of key-value pair arrays that matches the\n * input format of multiSet.\n *\n * multiGet(['k1', 'k2']) -> [['k1', 'val1'], ['k2', 'val2']]\n */\n multiGet: (keys, callback) => {\n const promises = keys.map((key) => AsyncStorage.getItem(key));\n const processResult = (result: string[]) =>\n result.map((value, i) => [keys[i], value]);\n return createPromiseAll(promises, callback, processResult);\n },\n\n /**\n * Takes an array of key-value array pairs.\n * multiSet([['k1', 'val1'], ['k2', 'val2']])\n */\n multiSet: (keyValuePairs, callback) => {\n const promises = keyValuePairs.map((item) =>\n AsyncStorage.setItem(item[0], item[1])\n );\n return createPromiseAll(promises, callback);\n },\n\n /**\n * Delete all the keys in the `keys` array.\n */\n multiRemove: (keys, callback) => {\n const promises = keys.map((key) => AsyncStorage.removeItem(key));\n return createPromiseAll(promises, callback);\n },\n\n /**\n * Takes an array of key-value array pairs and merges them with existing\n * values, assuming they are stringified JSON.\n *\n * multiMerge([['k1', 'val1'], ['k2', 'val2']])\n */\n multiMerge: (keyValuePairs, callback) => {\n const promises = keyValuePairs.map((item) =>\n AsyncStorage.mergeItem(item[0], item[1])\n );\n return createPromiseAll(promises, callback);\n },\n};\n\nexport default AsyncStorage;\n","import React from 'react';\nimport { always, block } from '../base';\n\n/**\n * @callback NodeFactory\n * Function to create a node or an array of nodes.\n * @returns {(Node[] | Node | null | undefined | Boolean)}\n */\n\n/**\n * React hook to run a node.\n * @param {NodeFactory} nodeFactory Function to build the node to run.\n * @param dependencies Array of dependencies. Refresh the node on changes.\n */\nexport default function useCode(nodeFactory, dependencies) {\n if (!(React.useEffect instanceof Function)) return;\n\n React.useEffect(() => {\n // check and correct 1st parameter\n if (!(nodeFactory instanceof Function)) {\n console.warn(\n 'useCode() first argument should be a function that returns an animation node.'\n );\n\n const node = nodeFactory;\n nodeFactory = () => node;\n }\n\n let node = nodeFactory();\n if (node) {\n // allow factory to return array\n if (node instanceof Array) node = block(node);\n\n const animatedAlways = always(node);\n animatedAlways.__attach();\n\n // return undo function\n return () => animatedAlways.__detach();\n }\n }, dependencies);\n}\n","import useCode from '../derived/useCode';\nimport AnimatedNode from './AnimatedNode';\n\nfunction assertNodesNotNull(code, children, exec) {\n if (!code) {\n const error = !children\n ? `Got \"${typeof children}\" type passed to children`\n : `Got \"${typeof exec}\" type passed to exec`;\n\n throw new Error(\n ` expects the 'exec' prop or children to be an animated node or a function returning an animated node. ${error}`\n );\n }\n}\n\nfunction Code({ exec, children, dependencies }) {\n const nodes = children || exec;\n\n let code = null;\n if (nodes instanceof AnimatedNode) {\n code = () => nodes;\n } else if (typeof nodes === 'function') {\n code = nodes;\n }\n\n assertNodesNotNull(code, children, exec);\n\n useCode(code, dependencies);\n return null;\n}\n\nexport default Code;\n","import {\n cond,\n sub,\n pow,\n divide,\n multiply,\n add,\n block,\n set,\n lessThan,\n proc,\n abs,\n} from '../base';\n\nconst VELOCITY_EPS = 5;\n\nfunction decay(clock, state, config) {\n const lastTime = cond(state.time, state.time, clock);\n const deltaTime = sub(clock, lastTime);\n\n // v0 = v / 1000\n // v = v0 * powf(deceleration, dt);\n // v = v * 1000;\n\n // x0 = x;\n // x = x0 + v0 * deceleration * (1 - powf(deceleration, dt)) / (1 - deceleration)\n const kv = pow(config.deceleration, deltaTime);\n const kx = divide(\n multiply(config.deceleration, sub(1, kv)),\n sub(1, config.deceleration)\n );\n const v0 = divide(state.velocity, 1000);\n const v = multiply(v0, kv, 1000);\n const x = add(state.position, multiply(v0, kx));\n return block([\n set(state.position, x),\n set(state.velocity, v),\n set(state.time, clock),\n cond(lessThan(abs(v), VELOCITY_EPS), set(state.finished, 1)),\n ]);\n}\n\nconst procDecay = proc(\n (clock, time, velocity, position, finished, deceleration) =>\n decay(clock, { time, velocity, position, finished }, { deceleration })\n);\n\nexport default function decayAnimation(\n clock,\n { time, velocity, position, finished },\n { deceleration }\n) {\n return procDecay(clock, time, velocity, position, finished, deceleration);\n}\n","import {\n cond,\n sub,\n divide,\n multiply,\n add,\n block,\n set,\n greaterOrEq,\n proc,\n} from '../base';\n\nconst internalTiming = proc(function (\n clock,\n time,\n frameTime,\n position,\n finished,\n toValue,\n duration,\n nextProgress,\n progress,\n newFrameTime\n) {\n const state = {\n time,\n finished,\n frameTime,\n position,\n };\n\n const config = {\n duration,\n toValue,\n };\n\n const distanceLeft = sub(config.toValue, state.position);\n const fullDistance = divide(distanceLeft, sub(1, progress));\n const startPosition = sub(config.toValue, fullDistance);\n const nextPosition = add(startPosition, multiply(fullDistance, nextProgress));\n\n return block([\n cond(\n greaterOrEq(newFrameTime, config.duration),\n [set(state.position, config.toValue), set(state.finished, 1)],\n set(state.position, nextPosition)\n ),\n set(state.frameTime, newFrameTime),\n set(state.time, clock),\n ]);\n});\n\nexport default function timing(clock, state, config) {\n if (config.duration === 0) {\n // when duration is zero we end the timing immediately\n return block([set(state.position, config.toValue), set(state.finished, 1)]);\n }\n const lastTime = cond(state.time, state.time, clock);\n const newFrameTime = add(state.frameTime, sub(clock, lastTime));\n const nextProgress = config.easing(divide(newFrameTime, config.duration));\n const progress = config.easing(divide(state.frameTime, config.duration));\n return internalTiming(\n clock,\n state.time,\n state.frameTime,\n state.position,\n state.finished,\n config.toValue,\n config.duration,\n nextProgress,\n progress,\n newFrameTime\n );\n}\n","import {\n cond,\n sub,\n divide,\n multiply,\n sqrt,\n add,\n block,\n set,\n exp,\n sin,\n cos,\n eq,\n or,\n neq,\n and,\n lessThan,\n greaterThan,\n proc,\n min,\n abs,\n} from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\n\nconst MAX_STEPS_MS = 64;\n\nfunction spring(clock, state, config) {\n const lastTime = cond(state.time, state.time, clock);\n\n const deltaTime = min(sub(clock, lastTime), MAX_STEPS_MS);\n\n const c = config.damping;\n const m = config.mass;\n const k = config.stiffness;\n\n const v0 = multiply(-1, state.velocity);\n const x0 = sub(config.toValue, state.position);\n\n const zeta = divide(c, multiply(2, sqrt(multiply(k, m)))); // damping ratio\n const omega0 = sqrt(divide(k, m)); // undamped angular frequency of the oscillator (rad/ms)\n const omega1 = multiply(omega0, sqrt(sub(1, multiply(zeta, zeta)))); // exponential decay\n\n const t = divide(deltaTime, 1000); // in seconds\n\n const sin1 = sin(multiply(omega1, t));\n const cos1 = cos(multiply(omega1, t));\n\n // under damped\n const underDampedEnvelope = exp(multiply(-1, zeta, omega0, t));\n const underDampedFrag1 = multiply(\n underDampedEnvelope,\n add(\n multiply(sin1, divide(add(v0, multiply(zeta, omega0, x0)), omega1)),\n multiply(x0, cos1)\n )\n );\n const underDampedPosition = sub(config.toValue, underDampedFrag1);\n // This looks crazy -- it's actually just the derivative of the oscillation function\n const underDampedVelocity = sub(\n multiply(zeta, omega0, underDampedFrag1),\n multiply(\n underDampedEnvelope,\n sub(\n multiply(cos1, add(v0, multiply(zeta, omega0, x0))),\n multiply(omega1, x0, sin1)\n )\n )\n );\n\n // critically damped\n const criticallyDampedEnvelope = exp(multiply(-1, omega0, t));\n const criticallyDampedPosition = sub(\n config.toValue,\n multiply(\n criticallyDampedEnvelope,\n add(x0, multiply(add(v0, multiply(omega0, x0)), t))\n )\n );\n const criticallyDampedVelocity = multiply(\n criticallyDampedEnvelope,\n add(\n multiply(v0, sub(multiply(t, omega0), 1)),\n multiply(t, x0, omega0, omega0)\n )\n );\n\n // conditions for stopping the spring animations\n const prevPosition = state.prevPosition\n ? state.prevPosition\n : new AnimatedValue(0);\n\n const isOvershooting = cond(\n and(config.overshootClamping, neq(config.stiffness, 0)),\n cond(\n lessThan(prevPosition, config.toValue),\n greaterThan(state.position, config.toValue),\n lessThan(state.position, config.toValue)\n )\n );\n const isVelocity = lessThan(abs(state.velocity), config.restSpeedThreshold);\n const isDisplacement = or(\n eq(config.stiffness, 0),\n lessThan(\n abs(sub(config.toValue, state.position)),\n config.restDisplacementThreshold\n )\n );\n\n return block([\n set(prevPosition, state.position),\n cond(\n lessThan(zeta, 1),\n [\n set(state.position, underDampedPosition),\n set(state.velocity, underDampedVelocity),\n ],\n [\n set(state.position, criticallyDampedPosition),\n set(state.velocity, criticallyDampedVelocity),\n ]\n ),\n set(state.time, clock),\n cond(or(isOvershooting, and(isVelocity, isDisplacement)), [\n cond(neq(config.stiffness, 0), [\n set(state.velocity, 0),\n set(state.position, config.toValue),\n ]),\n set(state.finished, 1),\n ]),\n ]);\n}\n\nconst procSpring = proc(\n (\n finished,\n velocity,\n position,\n time,\n prevPosition,\n toValue,\n damping,\n mass,\n stiffness,\n overshootClamping,\n restSpeedThreshold,\n restDisplacementThreshold,\n clock\n ) =>\n spring(\n clock,\n {\n finished,\n velocity,\n position,\n time,\n prevPosition,\n },\n {\n toValue,\n damping,\n mass,\n stiffness,\n overshootClamping,\n restDisplacementThreshold,\n restSpeedThreshold,\n }\n )\n);\n\nexport default function springAnimation(\n clock,\n { finished, velocity, position, time, prevPosition },\n {\n toValue,\n damping,\n mass,\n stiffness,\n overshootClamping,\n restDisplacementThreshold,\n restSpeedThreshold,\n }\n) {\n return procSpring(\n finished,\n velocity,\n position,\n time,\n prevPosition,\n toValue,\n damping,\n mass,\n stiffness,\n overshootClamping,\n restSpeedThreshold,\n restDisplacementThreshold,\n clock\n );\n}\n","import AnimatedValue from '../core/InternalAnimatedValue';\n\nclass Animation {\n static springDefaultState() {\n return {\n position: new AnimatedValue(0),\n finished: new AnimatedValue(0),\n velocity: new AnimatedValue(0),\n time: new AnimatedValue(0),\n };\n }\n\n static decayDefaultState() {\n return {\n position: new AnimatedValue(0),\n finished: new AnimatedValue(0),\n velocity: new AnimatedValue(0),\n time: new AnimatedValue(0),\n };\n }\n\n static timingDefaultState() {\n return {\n position: new AnimatedValue(0),\n finished: new AnimatedValue(0),\n time: new AnimatedValue(0),\n frameTime: new AnimatedValue(0),\n };\n }\n}\n\nexport default Animation;\n","import React from 'react';\nimport { View, findNodeHandle } from 'react-native';\nimport ReanimatedModule from '../ReanimatedModule';\n\nconst TransitioningContext = React.createContext();\n\nfunction configFromProps(type, props) {\n const config = { type };\n if ('durationMs' in props) {\n config.durationMs = props.durationMs;\n }\n if ('interpolation' in props) {\n config.interpolation = props.interpolation;\n }\n if ('type' in props) {\n config.animation = props.type;\n }\n if ('delayMs' in props) {\n config.delayMs = props.delayMs;\n }\n if ('propagation' in props) {\n config.propagation = props.propagation;\n }\n return config;\n}\n\n/**\n * The below wrapper is used to support legacy context API with Context.Consumer\n * render prop. We need it as we want to access `context` from within\n * `componentDidMount` callback. If we decided to drop support for older\n * react native we could rewrite it using hooks or `static contextType` API.\n */\nfunction wrapTransitioningContext(Comp) {\n return (props) => {\n return (\n \n {(context) => }\n \n );\n };\n}\n\nclass In extends React.Component {\n componentDidMount() {\n this.props.context.push(configFromProps('in', this.props));\n }\n\n render() {\n return this.props.children || null;\n }\n}\n\nclass Change extends React.Component {\n componentDidMount() {\n this.props.context.push(configFromProps('change', this.props));\n }\n\n render() {\n return this.props.children || null;\n }\n}\n\nclass Out extends React.Component {\n componentDidMount() {\n this.props.context.push(configFromProps('out', this.props));\n }\n\n render() {\n return this.props.children || null;\n }\n}\n\nclass Together extends React.Component {\n transitions = [];\n componentDidMount() {\n const config = configFromProps('group', this.props);\n config.transitions = this.transitions;\n this.props.context.push(config);\n }\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nclass Sequence extends React.Component {\n transitions = [];\n componentDidMount() {\n const config = configFromProps('group', this.props);\n config.sequence = true;\n config.transitions = this.transitions;\n this.props.context.push(config);\n }\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nfunction createTransitioningComponent(Component) {\n class Wrapped extends React.Component {\n propTypes = Component.propTypes;\n transitions = [];\n viewRef = React.createRef();\n\n componentDidMount() {\n if (this.props.animateMount) {\n this.animateNextTransition();\n }\n }\n\n setNativeProps(props) {\n this.viewRef.current.setNativeProps(props);\n }\n\n animateNextTransition() {\n const viewTag = findNodeHandle(this.viewRef.current);\n ReanimatedModule.animateNextTransition(viewTag, {\n transitions: this.transitions,\n });\n }\n\n render() {\n const { transition, ...rest } = this.props;\n return (\n \n \n {transition}\n \n \n \n );\n }\n }\n return Wrapped;\n}\n\nconst Transitioning = {\n View: createTransitioningComponent(View),\n};\n\nconst Transition = {\n Sequence: wrapTransitioningContext(Sequence),\n Together: wrapTransitioningContext(Together),\n In: wrapTransitioningContext(In),\n Out: wrapTransitioningContext(Out),\n Change: wrapTransitioningContext(Change),\n};\n\nexport { Transitioning, Transition, createTransitioningComponent };\n","import {\n cond,\n sub,\n divide,\n multiply,\n add,\n pow,\n lessOrEq,\n and,\n greaterThan,\n} from './../base';\nimport AnimatedValue from './../core/InternalAnimatedValue';\n\nfunction stiffnessFromOrigamiValue(oValue) {\n return (oValue - 30) * 3.62 + 194;\n}\n\nfunction dampingFromOrigamiValue(oValue) {\n return (oValue - 8) * 3 + 25;\n}\n\nfunction stiffnessFromOrigamiNode(oValue) {\n return add(multiply(sub(oValue, 30), 3.62), 194);\n}\n\nfunction dampingFromOrigamiNode(oValue) {\n return add(multiply(sub(oValue, 8), 3), 25);\n}\n\nfunction makeConfigFromOrigamiTensionAndFriction(prevConfig) {\n const { tension, friction, ...rest } = prevConfig;\n return {\n ...rest,\n stiffness:\n typeof tension === 'number'\n ? stiffnessFromOrigamiValue(tension)\n : stiffnessFromOrigamiNode(tension),\n damping:\n typeof friction === 'number'\n ? dampingFromOrigamiValue(friction)\n : dampingFromOrigamiNode(friction),\n };\n}\n\nfunction makeConfigFromBouncinessAndSpeed(prevConfig) {\n const { bounciness, speed, ...rest } = prevConfig;\n if (typeof bounciness === 'number' && typeof speed === 'number') {\n return fromBouncinessAndSpeedNumbers(bounciness, speed, rest);\n }\n return fromBouncinessAndSpeedNodes(bounciness, speed, rest);\n}\n\nfunction fromBouncinessAndSpeedNodes(bounciness, speed, rest) {\n function normalize(value, startValue, endValue) {\n return divide(sub(value, startValue), sub(endValue, startValue));\n }\n\n function projectNormal(n, start, end) {\n return add(start, multiply(n, sub(end, start)));\n }\n\n function linearInterpolation(t, start, end) {\n return add(multiply(t, end), multiply(sub(1, t), start));\n }\n\n function quadraticOutInterpolation(t, start, end) {\n return linearInterpolation(sub(multiply(2, t), multiply(t, t)), start, end);\n }\n\n function b3Friction1(x) {\n return add(\n sub(multiply(0.0007, pow(x, 3)), multiply(0.031, pow(x, 2))),\n multiply(0.64, x),\n 1.28\n );\n }\n\n function b3Friction2(x) {\n return add(\n sub(multiply(0.000044, pow(x, 3)), multiply(0.006, pow(x, 2))),\n multiply(0.36, x),\n 2\n );\n }\n\n function b3Friction3(x) {\n return add(\n sub(multiply(0.00000045, pow(x, 3)), multiply(0.000332, pow(x, 2))),\n multiply(0.1078, x),\n 5.84\n );\n }\n\n function b3Nobounce(tension) {\n return cond(\n lessOrEq(tension, 18),\n b3Friction1(tension),\n cond(\n and(greaterThan(tension, 18), lessOrEq(tension, 44)),\n b3Friction2(tension),\n b3Friction3(tension)\n )\n );\n }\n\n let b = normalize(divide(bounciness, 1.7), 0, 20);\n b = projectNormal(b, 0, 0.8);\n const s = normalize(divide(speed, 1.7), 0, 20);\n const bouncyTension = projectNormal(s, 0.5, 200);\n const bouncyFriction = quadraticOutInterpolation(\n b,\n b3Nobounce(bouncyTension),\n 0.01\n );\n return {\n ...rest,\n stiffness: stiffnessFromOrigamiNode(bouncyTension),\n damping: dampingFromOrigamiNode(bouncyFriction),\n };\n}\n\nfunction fromBouncinessAndSpeedNumbers(bounciness, speed, rest) {\n function normalize(value, startValue, endValue) {\n return (value - startValue) / (endValue - startValue);\n }\n\n function projectNormal(n, start, end) {\n return start + n * (end - start);\n }\n\n function linearInterpolation(t, start, end) {\n return t * end + (1 - t) * start;\n }\n\n function quadraticOutInterpolation(t, start, end) {\n return linearInterpolation(2 * t - t * t, start, end);\n }\n\n function b3Friction1(x) {\n return 0.0007 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;\n }\n\n function b3Friction2(x) {\n return 0.000044 * Math.pow(x, 3) - 0.006 * Math.pow(x, 2) + 0.36 * x + 2;\n }\n\n function b3Friction3(x) {\n return (\n 0.00000045 * Math.pow(x, 3) -\n 0.000332 * Math.pow(x, 2) +\n 0.1078 * x +\n 5.84\n );\n }\n\n function b3Nobounce(tension) {\n if (tension <= 18) {\n return b3Friction1(tension);\n } else if (tension > 18 && tension <= 44) {\n return b3Friction2(tension);\n } else {\n return b3Friction3(tension);\n }\n }\n\n let b = normalize(bounciness / 1.7, 0, 20);\n b = projectNormal(b, 0, 0.8);\n const s = normalize(speed / 1.7, 0, 20);\n const bouncyTension = projectNormal(s, 0.5, 200);\n const bouncyFriction = quadraticOutInterpolation(\n b,\n b3Nobounce(bouncyTension),\n 0.01\n );\n\n return {\n ...rest,\n stiffness: stiffnessFromOrigamiValue(bouncyTension),\n damping: dampingFromOrigamiValue(bouncyFriction),\n };\n}\n\nfunction makeDefaultConfig() {\n return {\n stiffness: new AnimatedValue(100),\n mass: new AnimatedValue(1),\n damping: new AnimatedValue(10),\n overshootClamping: false,\n restSpeedThreshold: 0.001,\n restDisplacementThreshold: 0.001,\n toValue: new AnimatedValue(0),\n };\n}\n\nexport default {\n makeDefaultConfig,\n makeConfigFromBouncinessAndSpeed,\n makeConfigFromOrigamiTensionAndFriction,\n};\n","import React from 'react';\nimport AnimatedValue from './core/AnimatedValue';\n\nexport default function useValue(initialValue) {\n const ref = React.useRef(null);\n if (ref.current === null) {\n ref.current = new AnimatedValue(initialValue);\n }\n return ref.current;\n}\n","import {\n always,\n block,\n call,\n clockRunning,\n cond,\n set,\n startClock,\n stopClock,\n} from '../base';\nimport Clock from '../core/AnimatedClock';\nimport { evaluateOnce } from '../derived/evaluateOnce';\n\nfunction createOldAnimationObject(node, animationStateDefaults, value, config) {\n const newClock = new Clock();\n const currentState = animationStateDefaults();\n let alwaysNode;\n let isStarted = false;\n let isDone = false;\n let wasStopped = false;\n let animationCallback;\n const animation = {\n start: (currentAnimationCallback) => {\n animationCallback = currentAnimationCallback;\n if (isStarted) {\n animationCallback && animationCallback({ finished: false });\n return;\n }\n if (isDone) {\n console.warn('Animation has been finished before');\n // inconsistent with React Native\n return;\n }\n\n if (!value.isNativelyInitialized()) {\n return;\n }\n\n isStarted = true;\n evaluateOnce(\n set(currentState.position, value),\n currentState.position,\n () => {\n alwaysNode = always(\n set(\n value,\n block([\n cond(clockRunning(newClock), 0, startClock(newClock)),\n node(newClock, currentState, config),\n cond(currentState.finished, [\n call([], () => {\n isStarted = false;\n if (!wasStopped) {\n isDone = true;\n }\n value.__detachAnimation(animation);\n isDone = true;\n if (!wasStopped) {\n wasStopped = false;\n }\n }),\n stopClock(newClock),\n ]),\n currentState.position,\n ])\n )\n );\n value.__attachAnimation(animation);\n alwaysNode.__addChild(value);\n }\n );\n },\n __detach: () => {\n animationCallback && animationCallback({ finished: isDone });\n animationCallback = null;\n value.__initialized && alwaysNode.__removeChild(value);\n },\n stop: () => {\n if (isDone) {\n console.warn(\n 'Calling stop has no effect as the animation has already completed'\n );\n return;\n }\n if (!isStarted) {\n console.warn(\n \"Calling stop has no effect as the animation hasn't been started\"\n );\n return;\n }\n wasStopped = true;\n evaluateOnce(set(currentState.finished, 1), currentState.finished);\n },\n __stopImmediately_testOnly: (result) => {\n animation.stop();\n isDone = result;\n value.__detachAnimation(animation);\n },\n };\n return animation;\n}\n\n/**\n * Depending on the arguments list we either return animation node or return an\n * animation object that is compatible with the original Animated API\n */\nexport default function backwardsCompatibleAnimWrapper(\n node,\n animationStateDefaults\n) {\n return (clock, state, config) => {\n if (config !== undefined) {\n return node(clock, state, config);\n }\n return createOldAnimationObject(node, animationStateDefaults, clock, state);\n };\n}\n","import { set, add, proc } from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\n\nconst procAcc = proc(function (v, acc) {\n return set(acc, add(acc, v));\n});\n\nexport default function acc(v) {\n const acc = new AnimatedValue(0);\n return procAcc(v, acc);\n}\n","import { Platform } from 'react-native';\n\nimport {\n add,\n cond,\n concat,\n lessThan,\n multiply,\n round,\n sub,\n proc,\n} from '../base';\nimport AnimatedNode from '../core/AnimatedNode';\n\nconst procColor = proc(function (r, g, b, a) {\n const color = add(\n multiply(a, 1 << 24),\n multiply(round(r), 1 << 16),\n multiply(round(g), 1 << 8),\n round(b)\n );\n\n if (Platform.OS === 'android') {\n // on Android color is represented as signed 32 bit int\n return cond(\n lessThan(color, (1 << 31) >>> 0),\n color,\n sub(color, Math.pow(2, 32))\n );\n }\n return color;\n});\n\nexport default function color(r, g, b, a = 1) {\n if (Platform.OS === 'web') {\n // doesn't support bit shifting\n return concat('rgba(', r, ',', g, ',', b, ',', a, ')');\n }\n\n if (a instanceof AnimatedNode) {\n a = round(multiply(a, 255));\n } else {\n a = Math.round(a * 255);\n }\n\n return procColor(r, g, b, a);\n}\n","import { cond, block, defined, sub, set, proc } from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\n\nconst procDiff = proc(function (v, stash, prev) {\n return block([\n set(stash, cond(defined(prev), sub(v, prev), 0)),\n set(prev, v),\n stash,\n ]);\n});\n\nexport default function diff(v) {\n const stash = new AnimatedValue(0);\n const prev = new AnimatedValue();\n return procDiff(v, stash, prev);\n}\n","import { cond, defined, set, add, min, max } from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\nimport diff from './diff';\n\nexport default function diffClamp(a, minVal, maxVal) {\n const value = new AnimatedValue();\n return set(\n value,\n min(max(add(cond(defined(value), value, a), diff(a)), minVal), maxVal)\n );\n}\n","import { processColor } from 'react-native';\nimport { round } from '../base';\nimport color from './color';\nimport interpolate, { Extrapolate } from './interpolate';\n\nfunction red(c) {\n return (c >> 16) & 255;\n}\nfunction green(c) {\n return (c >> 8) & 255;\n}\nfunction blue(c) {\n return c & 255;\n}\nfunction opacity(c) {\n return ((c >> 24) & 255) / 255;\n}\n\n/**\n * Use this if you want to interpolate an `Animated.Value` into color values.\n *\n * #### Why is this needed?\n *\n * Unfortunately, if you'll pass color values directly into the `outputRange` option\n * of `interpolate()` function, that won't really work (at least at the moment).\n * See https://github.com/software-mansion/react-native-reanimated/issues/181 .\n *\n * So, for now you can just use this helper instead.\n */\nexport default function interpolateColors(animationValue, options) {\n const { inputRange, outputColorRange } = options;\n const colors = outputColorRange.map(processColor);\n\n const r = round(\n interpolate(animationValue, {\n inputRange,\n outputRange: colors.map(red),\n extrapolate: Extrapolate.CLAMP,\n })\n );\n const g = round(\n interpolate(animationValue, {\n inputRange,\n outputRange: colors.map(green),\n extrapolate: Extrapolate.CLAMP,\n })\n );\n const b = round(\n interpolate(animationValue, {\n inputRange,\n outputRange: colors.map(blue),\n extrapolate: Extrapolate.CLAMP,\n })\n );\n const a = interpolate(animationValue, {\n inputRange,\n outputRange: colors.map(opacity),\n extrapolate: Extrapolate.CLAMP,\n });\n\n return color(r, g, b, a);\n}\n","import { block, cond, defined, neq, not, set, proc } from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\n\nconst procOnChange = proc(function (value, action, prevValue) {\n return block([\n cond(not(defined(prevValue)), set(prevValue, value)),\n cond(neq(value, prevValue), [set(prevValue, value), action]),\n ]);\n});\n\nexport default function onChange(value, action) {\n const prevValue = new AnimatedValue();\n return procOnChange(value, action, prevValue);\n}\n","import EasingNode from './Easing';\nimport AnimatedClock from './core/AnimatedClock';\nimport AnimatedValue from './core/AnimatedValue';\nimport AnimatedNode from './core/AnimatedNode';\nimport AnimatedCode from './core/AnimatedCode';\nimport decay from './animations/decay';\nimport timing from './animations/timing';\nimport spring from './animations/spring';\nimport Animation from './animations/Animation';\nimport {\n Transition,\n Transitioning,\n createTransitioningComponent,\n} from './Transitioning';\nimport SpringUtils from './animations/SpringUtils';\nimport useValue from './useValue';\nimport backwardCompatibleAnimWrapper from './animations/backwardCompatibleAnimWrapper';\n\nconst decayWrapper = backwardCompatibleAnimWrapper(\n decay,\n Animation.decayDefaultState\n);\nconst timingWrapper = backwardCompatibleAnimWrapper(\n timing,\n Animation.timingDefaultState\n);\nconst springWrapper = backwardCompatibleAnimWrapper(\n spring,\n Animation.springDefaultState\n);\n\n// operations\nexport * from './base';\nexport * from './derived';\nexport {\n AnimatedCode as Code,\n // transitions\n EasingNode,\n Transitioning,\n Transition,\n createTransitioningComponent,\n // nodes\n AnimatedClock as Clock,\n AnimatedValue as Value,\n AnimatedNode as Node,\n // animations\n decayWrapper as decay,\n timingWrapper as timing,\n springWrapper as spring,\n SpringUtils,\n // hooks\n useValue,\n};\n","import { useEffect, useRef } from 'react';\nimport { makeMutable } from '../core';\nimport NativeReanimated from '../NativeReanimated';\nexport var SensorType;\n(function (SensorType) {\n SensorType[SensorType[\"ACCELEROMETER\"] = 1] = \"ACCELEROMETER\";\n SensorType[SensorType[\"GYROSCOPE\"] = 2] = \"GYROSCOPE\";\n SensorType[SensorType[\"GRAVITY\"] = 3] = \"GRAVITY\";\n SensorType[SensorType[\"MAGNETIC_FIELD\"] = 4] = \"MAGNETIC_FIELD\";\n SensorType[SensorType[\"ROTATION\"] = 5] = \"ROTATION\";\n})(SensorType || (SensorType = {}));\nexport function useAnimatedSensor(sensorType, userConfig) {\n const ref = useRef({\n sensor: null,\n unregister: () => {\n // NOOP\n },\n isAvailable: false,\n config: {\n interval: 0,\n },\n });\n if (ref.current.sensor === null) {\n ref.current.config = Object.assign({ interval: 'auto' }, userConfig);\n let sensorData;\n if (sensorType === SensorType.ROTATION) {\n sensorData = {\n qw: 0,\n qx: 0,\n qy: 0,\n qz: 0,\n yaw: 0,\n pitch: 0,\n roll: 0,\n };\n }\n else {\n sensorData = {\n x: 0,\n y: 0,\n z: 0,\n };\n }\n ref.current.sensor = makeMutable(sensorData);\n }\n useEffect(() => {\n ref.current.config = Object.assign({ interval: 'auto' }, userConfig);\n const id = NativeReanimated.registerSensor(sensorType, ref.current.config.interval === 'auto' ? -1 : ref.current.config.interval, ref.current.sensor);\n if (id !== -1) {\n // if sensor is available\n ref.current.unregister = () => NativeReanimated.unregisterSensor(id);\n ref.current.isAvailable = true;\n }\n else {\n // if sensor is unavailable\n ref.current.unregister = () => {\n // NOOP\n };\n ref.current.isAvailable = false;\n }\n return () => {\n ref.current.unregister();\n };\n }, [sensorType, userConfig]);\n return ref.current;\n}\n","export var KeyboardState;\n(function (KeyboardState) {\n KeyboardState[KeyboardState[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n KeyboardState[KeyboardState[\"OPENING\"] = 1] = \"OPENING\";\n KeyboardState[KeyboardState[\"OPEN\"] = 2] = \"OPEN\";\n KeyboardState[KeyboardState[\"CLOSING\"] = 3] = \"CLOSING\";\n KeyboardState[KeyboardState[\"CLOSED\"] = 4] = \"CLOSED\";\n})(KeyboardState || (KeyboardState = {}));\n","import { useEffect, useRef } from 'react';\nimport FrameCallbackRegistryJS from '../frameCallback/FrameCallbackRegistryJS';\nconst frameCallbackRegistry = new FrameCallbackRegistryJS();\nexport function useFrameCallback(callback, autostart = true) {\n const ref = useRef({\n setActive: (isActive) => {\n frameCallbackRegistry.manageStateFrameCallback(ref.current.callbackId, isActive);\n ref.current.isActive = isActive;\n },\n isActive: autostart,\n callbackId: -1,\n });\n useEffect(() => {\n ref.current.callbackId =\n frameCallbackRegistry.registerFrameCallback(callback);\n ref.current.setActive(ref.current.isActive);\n return () => {\n frameCallbackRegistry.unregisterFrameCallback(ref.current.callbackId);\n ref.current.callbackId = -1;\n };\n }, [callback, autostart]);\n return ref.current;\n}\n","import { useEffect, useRef } from 'react';\nimport NativeReanimated from '../NativeReanimated';\nimport { makeMutable } from '../core';\nimport { KeyboardState } from '../commonTypes';\nexport function useAnimatedKeyboard() {\n const ref = useRef(null);\n const listenerId = useRef(-1);\n const isSubscribed = useRef(false);\n if (ref.current === null) {\n const keyboardEventData = {\n state: makeMutable(KeyboardState.UNKNOWN),\n height: makeMutable(0),\n };\n listenerId.current =\n NativeReanimated.subscribeForKeyboardEvents(keyboardEventData);\n ref.current = keyboardEventData;\n isSubscribed.current = true;\n }\n useEffect(() => {\n if (isSubscribed.current === false && ref.current !== null) {\n // subscribe again after Fast Refresh\n listenerId.current = NativeReanimated.subscribeForKeyboardEvents(ref.current);\n isSubscribed.current = true;\n }\n return () => {\n NativeReanimated.unsubscribeFromKeyboardEvents(listenerId.current);\n isSubscribed.current = false;\n };\n }, []);\n return ref.current;\n}\n","import { useEffect, useRef } from 'react';\nimport { findNodeHandle } from 'react-native';\nimport { useEvent } from './utils';\nimport { useSharedValue } from './useSharedValue';\nconst subscribeForEvents = [\n 'onScroll',\n 'onScrollBeginDrag',\n 'onScrollEndDrag',\n 'onMomentumScrollBegin',\n 'onMomentumScrollEnd',\n];\nexport function useScrollViewOffset(aref) {\n const offsetRef = useRef(useSharedValue(0));\n const event = useEvent((event) => {\n 'worklet';\n offsetRef.current.value =\n event.contentOffset.x === 0\n ? event.contentOffset.y\n : event.contentOffset.x;\n }, subscribeForEvents);\n useEffect(() => {\n var _a;\n const viewTag = findNodeHandle(aref.current);\n (_a = event.current) === null || _a === void 0 ? void 0 : _a.registerForEvents(viewTag);\n }, [aref.current]);\n return offsetRef.current;\n}\n","import { hsvToColor, RGBtoHSV, rgbaColor, processColor, red, green, blue, opacity, } from './Colors';\nimport { makeMutable } from './core';\nimport { interpolate } from './interpolation';\n// @ts-ignore JS file\nimport { Extrapolate } from '../reanimated1/derived';\nimport { useSharedValue } from './hook/useSharedValue';\nconst interpolateColorsHSV = (value, inputRange, colors, options) => {\n 'worklet';\n let h = 0;\n const { useCorrectedHSVInterpolation = true } = options;\n if (useCorrectedHSVInterpolation) {\n // if the difference between hues in a range is > 180 deg\n // then move the hue at the right end of the range +/- 360 deg\n // and add the next point in the original place + 0.00001 with original hue\n // to not break the next range\n const correctedInputRange = [inputRange[0]];\n const originalH = colors.h;\n const correctedH = [originalH[0]];\n for (let i = 1; i < originalH.length; ++i) {\n const d = originalH[i] - originalH[i - 1];\n if (originalH[i] > originalH[i - 1] && d > 0.5) {\n correctedInputRange.push(inputRange[i]);\n correctedInputRange.push(inputRange[i] + 0.00001);\n correctedH.push(originalH[i] - 1);\n correctedH.push(originalH[i]);\n }\n else if (originalH[i] < originalH[i - 1] && d < -0.5) {\n correctedInputRange.push(inputRange[i]);\n correctedInputRange.push(inputRange[i] + 0.00001);\n correctedH.push(originalH[i] + 1);\n correctedH.push(originalH[i]);\n }\n else {\n correctedInputRange.push(inputRange[i]);\n correctedH.push(originalH[i]);\n }\n }\n h =\n (interpolate(value, correctedInputRange, correctedH, Extrapolate.CLAMP) +\n 1) %\n 1;\n }\n else {\n h = interpolate(value, inputRange, colors.h, Extrapolate.CLAMP);\n }\n const s = interpolate(value, inputRange, colors.s, Extrapolate.CLAMP);\n const v = interpolate(value, inputRange, colors.v, Extrapolate.CLAMP);\n const a = interpolate(value, inputRange, colors.a, Extrapolate.CLAMP);\n return hsvToColor(h, s, v, a);\n};\nconst toLinearSpace = (x, gamma) => {\n 'worklet';\n return x.map((v) => Math.pow(v / 255, gamma));\n};\nconst toGammaSpace = (x, gamma) => {\n 'worklet';\n return Math.round(Math.pow(x, 1 / gamma) * 255);\n};\nconst interpolateColorsRGB = (value, inputRange, colors, options) => {\n 'worklet';\n const { gamma = 2.2 } = options;\n let { r: outputR, g: outputG, b: outputB } = colors;\n if (gamma !== 1) {\n outputR = toLinearSpace(outputR, gamma);\n outputG = toLinearSpace(outputG, gamma);\n outputB = toLinearSpace(outputB, gamma);\n }\n const r = interpolate(value, inputRange, outputR, Extrapolate.CLAMP);\n const g = interpolate(value, inputRange, outputG, Extrapolate.CLAMP);\n const b = interpolate(value, inputRange, outputB, Extrapolate.CLAMP);\n const a = interpolate(value, inputRange, colors.a, Extrapolate.CLAMP);\n if (gamma === 1) {\n return rgbaColor(r, g, b, a);\n }\n return rgbaColor(toGammaSpace(r, gamma), toGammaSpace(g, gamma), toGammaSpace(b, gamma), a);\n};\nconst getInterpolateRGB = (colors) => {\n 'worklet';\n const r = [];\n const g = [];\n const b = [];\n const a = [];\n for (let i = 0; i < colors.length; ++i) {\n const color = colors[i];\n const processedColor = processColor(color);\n // explicit check in case if processedColor is 0\n if (processedColor !== null && processedColor !== undefined) {\n r.push(red(processedColor));\n g.push(green(processedColor));\n b.push(blue(processedColor));\n a.push(opacity(processedColor));\n }\n }\n return { r, g, b, a };\n};\nconst getInterpolateHSV = (colors) => {\n 'worklet';\n const h = [];\n const s = [];\n const v = [];\n const a = [];\n for (let i = 0; i < colors.length; ++i) {\n const color = colors[i];\n const processedColor = processColor(color);\n if (typeof processedColor === 'number') {\n const processedHSVColor = RGBtoHSV(red(processedColor), green(processedColor), blue(processedColor));\n h.push(processedHSVColor.h);\n s.push(processedHSVColor.s);\n v.push(processedHSVColor.v);\n a.push(opacity(processedColor));\n }\n }\n return { h, s, v, a };\n};\nexport const interpolateColor = (value, inputRange, outputRange, colorSpace = 'RGB', options = {}) => {\n 'worklet';\n if (colorSpace === 'HSV') {\n return interpolateColorsHSV(value, inputRange, getInterpolateHSV(outputRange), options);\n }\n else if (colorSpace === 'RGB') {\n return interpolateColorsRGB(value, inputRange, getInterpolateRGB(outputRange), options);\n }\n throw new Error(`Invalid color space provided: ${colorSpace}. Supported values are: ['RGB', 'HSV']`);\n};\nexport var ColorSpace;\n(function (ColorSpace) {\n ColorSpace[ColorSpace[\"RGB\"] = 0] = \"RGB\";\n ColorSpace[ColorSpace[\"HSV\"] = 1] = \"HSV\";\n})(ColorSpace || (ColorSpace = {}));\nexport function useInterpolateConfig(inputRange, outputRange, colorSpace = ColorSpace.RGB, options = {}) {\n return useSharedValue({\n inputRange,\n outputRange,\n colorSpace,\n cache: makeMutable(null),\n options,\n });\n}\nexport const interpolateSharableColor = (value, interpolateConfig) => {\n 'worklet';\n let colors = interpolateConfig.value.cache.value;\n if (interpolateConfig.value.colorSpace === ColorSpace.RGB) {\n if (!colors) {\n colors = getInterpolateRGB(interpolateConfig.value.outputRange);\n interpolateConfig.value.cache.value = colors;\n }\n return interpolateColorsRGB(value, interpolateConfig.value.inputRange, colors, interpolateConfig.value.options);\n }\n else if (interpolateConfig.value.colorSpace === ColorSpace.HSV) {\n if (!colors) {\n colors = getInterpolateHSV(interpolateConfig.value.outputRange);\n interpolateConfig.value.cache.value = colors;\n }\n return interpolateColorsHSV(value, interpolateConfig.value.inputRange, colors, interpolateConfig.value.options);\n }\n throw new Error(`Invalid color space provided: ${interpolateConfig.value.colorSpace}. Supported values are: ['RGB', 'HSV']`);\n};\n","import { addWhitelistedNativeProps } from '../ConfigHelper';\nexport function createAnimatedPropAdapter(adapter, nativeProps) {\n const nativePropsToAdd = {};\n // eslint-disable-next-line no-unused-expressions\n nativeProps === null || nativeProps === void 0 ? void 0 : nativeProps.forEach((prop) => {\n nativePropsToAdd[prop] = true;\n });\n addWhitelistedNativeProps(nativePropsToAdd);\n return adapter;\n}\n// ADAPTERS\nexport const SVGAdapter = createAnimatedPropAdapter((props) => {\n 'worklet';\n var _a, _b;\n const keys = Object.keys(props);\n // transform\n if (keys.includes('transform')) {\n if (Array.isArray(props.transform)) {\n // case of array with 6 values => https://github.com/react-native-svg/react-native-svg/blob/b2e2c355204ff4b10973d3afce1495f7e4167ff7/src/elements/Shape.tsx#L200\n if (props.transform.length !== 6) {\n throw new Error(`invalid transform length of ${props.transform.length}, should be 6`);\n }\n const transform = props.transform;\n const x = (_a = props.x) !== null && _a !== void 0 ? _a : 0;\n const y = (_b = props.y) !== null && _b !== void 0 ? _b : 0;\n props.transform = [\n { translateX: transform[0] * x + transform[2] * y + transform[4] },\n { translateY: transform[1] * x + transform[3] * y + transform[5] },\n ];\n }\n else if (typeof props.transform === 'string') {\n // case of string 'translate(translateX translateY)'\n // todo: handle other cases of transform string like here https://github.com/react-native-svg/react-native-svg/blob/b2e2c355204ff4b10973d3afce1495f7e4167ff7/src/lib/extract/extractTransform.ts#L184\n const transform = props.transform;\n const arr = transform\n .replace('translate(', '')\n .replace(')', '')\n .split(' ');\n props.transform = [\n { translateX: parseFloat(arr[0]) },\n { translateY: parseFloat(arr[1]) },\n ];\n }\n }\n // todo: other props\n});\nexport const TextInputAdapter = createAnimatedPropAdapter((props) => {\n 'worklet';\n const keys = Object.keys(props);\n // convert text to value like RN does here: https://github.com/facebook/react-native/blob/f2c6279ca497b34d5a2bfbb6f2d33dc7a7bea02a/Libraries/Components/TextInput/TextInput.js#L878\n if (keys.includes('value')) {\n props.text = props.value;\n delete props.value;\n }\n}, ['text']);\n","import { withDelay } from '../../animation';\nexport class BaseAnimationBuilder {\n constructor() {\n this.randomizeDelay = false;\n this.build = () => {\n throw Error('Unimplemented method in child class.');\n };\n }\n static duration(durationMs) {\n const instance = this.createInstance();\n return instance.duration(durationMs);\n }\n duration(durationMs) {\n this.durationV = durationMs;\n return this;\n }\n static delay(delayMs) {\n const instance = this.createInstance();\n return instance.delay(delayMs);\n }\n delay(delayMs) {\n this.delayV = delayMs;\n return this;\n }\n static withCallback(callback) {\n const instance = this.createInstance();\n return instance.withCallback(callback);\n }\n withCallback(callback) {\n this.callbackV = callback;\n return this;\n }\n // 300ms is the default animation duration. If any animation has different default has to override this method.\n static getDuration() {\n return 300;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 300;\n }\n static randomDelay() {\n const instance = this.createInstance();\n return instance.randomDelay();\n }\n randomDelay() {\n this.randomizeDelay = true;\n return this;\n }\n // when randomizeDelay is set to true, randomize delay between 0 and provided value (or 1000ms if delay is not provided)\n getDelay() {\n var _a, _b;\n return this.randomizeDelay\n ? Math.random() * ((_a = this.delayV) !== null && _a !== void 0 ? _a : 1000)\n : (_b = this.delayV) !== null && _b !== void 0 ? _b : 0;\n }\n getDelayFunction() {\n const isDelayProvided = this.randomizeDelay || this.delayV;\n return isDelayProvided\n ? withDelay\n : (_, animation) => {\n 'worklet';\n return animation;\n };\n }\n static build() {\n const instance = this.createInstance();\n return instance.build();\n }\n}\n","import { withTiming, withSpring } from '../../animation';\nimport { BaseAnimationBuilder } from './BaseAnimationBuilder';\nexport class ComplexAnimationBuilder extends BaseAnimationBuilder {\n static easing(easingFunction) {\n const instance = this.createInstance();\n return instance.easing(easingFunction);\n }\n easing(easingFunction) {\n this.easingV = easingFunction;\n return this;\n }\n static rotate(degree) {\n const instance = this.createInstance();\n return instance.rotate(degree);\n }\n rotate(degree) {\n this.rotateV = degree;\n return this;\n }\n static springify() {\n const instance = this.createInstance();\n return instance.springify();\n }\n springify() {\n this.type = withSpring;\n return this;\n }\n static damping(damping) {\n const instance = this.createInstance();\n return instance.damping(damping);\n }\n damping(damping) {\n this.dampingV = damping;\n return this;\n }\n static mass(mass) {\n const instance = this.createInstance();\n return instance.mass(mass);\n }\n mass(mass) {\n this.massV = mass;\n return this;\n }\n static stiffness(stiffness) {\n const instance = this.createInstance();\n return instance.stiffness(stiffness);\n }\n stiffness(stiffness) {\n this.stiffnessV = stiffness;\n return this;\n }\n static overshootClamping(overshootClamping) {\n const instance = this.createInstance();\n return instance.overshootClamping(overshootClamping);\n }\n overshootClamping(overshootClamping) {\n this.overshootClampingV = overshootClamping;\n return this;\n }\n static restDisplacementThreshold(restDisplacementThreshold) {\n const instance = this.createInstance();\n return instance.restDisplacementThreshold(restDisplacementThreshold);\n }\n restDisplacementThreshold(restDisplacementThreshold) {\n this.restDisplacementThresholdV = restDisplacementThreshold;\n return this;\n }\n static restSpeedThreshold(restSpeedThreshold) {\n const instance = this.createInstance();\n return instance.restSpeedThreshold(restSpeedThreshold);\n }\n restSpeedThreshold(restSpeedThreshold) {\n this.restSpeedThresholdV = restSpeedThreshold;\n return this;\n }\n static withInitialValues(values) {\n const instance = this.createInstance();\n return instance.withInitialValues(values);\n }\n withInitialValues(values) {\n this.initialValues = values;\n return this;\n }\n getAnimationAndConfig() {\n const duration = this.durationV;\n const easing = this.easingV;\n const rotate = this.rotateV;\n const type = this.type ? this.type : withTiming;\n const damping = this.dampingV;\n const mass = this.massV;\n const stiffness = this.stiffnessV;\n const overshootClamping = this.overshootClampingV;\n const restDisplacementThreshold = this.restDisplacementThresholdV;\n const restSpeedThreshold = this.restSpeedThresholdV;\n const animation = type;\n const config = {};\n if (type === withTiming) {\n if (easing) {\n config.easing = easing;\n }\n if (duration) {\n config.duration = duration;\n }\n if (rotate) {\n config.rotate = rotate;\n }\n }\n else {\n if (damping) {\n config.damping = damping;\n }\n if (mass) {\n config.mass = mass;\n }\n if (stiffness) {\n config.stiffness = stiffness;\n }\n if (overshootClamping) {\n config.overshootClamping = overshootClamping;\n }\n if (restDisplacementThreshold) {\n config.restDisplacementThreshold = restDisplacementThreshold;\n }\n if (restSpeedThreshold) {\n config.restSpeedThreshold = restSpeedThreshold;\n }\n if (rotate) {\n config.rotate = rotate;\n }\n }\n return [animation, config];\n }\n}\n","import { Easing } from '../../Easing';\nimport { withDelay, withSequence, withTiming } from '../../animation';\nexport class Keyframe {\n /*\n Keyframe definition should be passed in the constructor as the map\n which keys are between range 0 - 100 (%) and correspond to the point in the animation progress.\n */\n constructor(definitions) {\n this.build = () => {\n const delay = this.delayV;\n const delayFunction = this.getDelayFunction();\n const { keyframes, initialValues } = this.parseDefinitions();\n const callback = this.callbackV;\n return (_targetValues) => {\n 'worklet';\n const animations = {};\n /*\n For each style property, an animations sequence is created that corresponds with its key points.\n Transform style properties require special handling because of their nested structure.\n */\n const addAnimation = (key) => {\n var _a;\n const keyframePoints = keyframes[key];\n // in case if property was only passed as initial value\n if (keyframePoints.length === 0)\n return;\n const animation = delayFunction(delay, keyframePoints.length === 1\n ? withTiming(keyframePoints[0].value, {\n duration: keyframePoints[0].duration,\n easing: keyframePoints[0].easing\n ? keyframePoints[0].easing\n : Easing.linear,\n })\n : withSequence.apply(this, keyframePoints.map((keyframePoint) => withTiming(keyframePoint.value, {\n duration: keyframePoint.duration,\n easing: keyframePoint.easing\n ? keyframePoint.easing\n : Easing.linear,\n }))));\n if (key.includes('transform')) {\n if (!('transform' in animations)) {\n animations.transform = [];\n }\n (_a = animations.transform) === null || _a === void 0 ? void 0 : _a.push({\n [key.split(':')[1]]: animation,\n });\n }\n else {\n animations[key] = animation;\n }\n };\n Object.keys(initialValues).forEach((key) => {\n if (key.includes('transform')) {\n initialValues[key].forEach((transformProp, index) => {\n Object.keys(transformProp).forEach((transformPropKey) => {\n addAnimation(index.toString() + '_transform:' + transformPropKey);\n });\n });\n }\n else {\n addAnimation(key);\n }\n });\n return {\n animations: animations,\n initialValues: initialValues,\n callback: callback,\n };\n };\n };\n this.definitions = definitions;\n }\n parseDefinitions() {\n /*\n Each style property contain an array with all their key points:\n value, duration of transition to that value, and optional easing function (defaults to Linear)\n */\n const parsedKeyframes = {};\n /*\n Parsing keyframes 'from' and 'to'.\n */\n if (this.definitions.from) {\n if (this.definitions['0']) {\n throw Error(\"You cannot provide both keyframe 0 and 'from' as they both specified initial values\");\n }\n this.definitions['0'] = this.definitions.from;\n delete this.definitions.from;\n }\n if (this.definitions.to) {\n if (this.definitions['100']) {\n throw Error(\"You cannot provide both keyframe 100 and 'to' as they both specified values at the end of the animation.\");\n }\n this.definitions['100'] = this.definitions.to;\n delete this.definitions.to;\n }\n /*\n One of the assumptions is that keyframe 0 is required to properly set initial values.\n Every other keyframe should contain properties from the set provided as initial values.\n */\n if (!this.definitions['0']) {\n throw Error(\"Please provide 0, or 'from' keyframe with initial state of your object.\");\n }\n const initialValues = this.definitions['0'];\n /*\n Initialize parsedKeyframes for properties provided in initial keyframe\n */\n Object.keys(initialValues).forEach((styleProp) => {\n var _a;\n if (styleProp === 'transform') {\n (_a = initialValues[styleProp]) === null || _a === void 0 ? void 0 : _a.forEach((transformStyle, index) => {\n Object.keys(transformStyle).forEach((transformProp) => {\n parsedKeyframes[index.toString() + '_transform:' + transformProp] =\n [];\n });\n });\n }\n else {\n parsedKeyframes[styleProp] = [];\n }\n });\n const duration = this.durationV ? this.durationV : 500;\n const animationKeyPoints = Array.from(Object.keys(this.definitions));\n const getAnimationDuration = (key, currentKeyPoint) => {\n const maxDuration = (currentKeyPoint / 100) * duration;\n const currentDuration = parsedKeyframes[key].reduce((acc, value) => acc + value.duration, 0);\n return maxDuration - currentDuration;\n };\n /*\n Other keyframes can't contain properties that were not specified in initial keyframe.\n */\n const addKeyPoint = ({ key, value, currentKeyPoint, easing, }) => {\n if (!(key in parsedKeyframes)) {\n throw Error(\"Keyframe can contain only that set of properties that were provide with initial values (keyframe 0 or 'from')\");\n }\n parsedKeyframes[key].push({\n duration: getAnimationDuration(key, currentKeyPoint),\n value: value,\n easing: easing,\n });\n };\n animationKeyPoints\n .filter((value) => parseInt(value) !== 0)\n .sort((a, b) => parseInt(a) - parseInt(b))\n .forEach((keyPoint) => {\n if (parseInt(keyPoint) < 0 || parseInt(keyPoint) > 100) {\n throw Error('Keyframe should be in between range 0 - 100.');\n }\n const keyframe = this.definitions[keyPoint];\n const easing = keyframe.easing;\n delete keyframe.easing;\n const addKeyPointWith = (key, value) => addKeyPoint({\n key,\n value,\n currentKeyPoint: parseInt(keyPoint),\n easing,\n });\n Object.keys(keyframe).forEach((key) => {\n var _a;\n if (key === 'transform') {\n (_a = keyframe[key]) === null || _a === void 0 ? void 0 : _a.forEach((transformStyle, index) => {\n Object.keys(transformStyle).forEach((transformProp) => {\n addKeyPointWith(index.toString() + '_transform:' + transformProp, transformStyle[transformProp]);\n });\n });\n }\n else {\n addKeyPointWith(key, keyframe[key]);\n }\n });\n });\n return { initialValues: initialValues, keyframes: parsedKeyframes };\n }\n duration(durationMs) {\n this.durationV = durationMs;\n return this;\n }\n delay(delayMs) {\n this.delayV = delayMs;\n return this;\n }\n withCallback(callback) {\n this.callbackV = callback;\n return this;\n }\n getDelayFunction() {\n const delay = this.delayV;\n return delay\n ? withDelay\n : (_, animation) => {\n 'worklet';\n return animation;\n };\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nexport class FlipInXUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateX: '90deg' },\n { translateY: -targetValues.targetHeight },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: 500 },\n { rotateX: delayFunction(delay, animation('0deg', config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipInXUp();\n }\n}\nexport class FlipInYLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateY: '-90deg' },\n { translateX: -targetValues.targetWidth },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipInYLeft();\n }\n}\nexport class FlipInXDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateX: '-90deg' },\n { translateY: targetValues.targetHeight },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('0deg', config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipInXDown();\n }\n}\nexport class FlipInYRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateY: '90deg' },\n { translateX: targetValues.targetWidth },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipInYRight();\n }\n}\nexport class FlipInEasyX extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [{ perspective: 500 }, { rotateX: '90deg' }] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('0deg', config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipInEasyX();\n }\n}\nexport class FlipInEasyY extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [{ perspective: 500 }, { rotateY: '90deg' }] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('0deg', config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipInEasyY();\n }\n}\nexport class FlipOutXUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateX: '0deg' },\n { translateY: 0 },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('90deg', config)) },\n {\n translateY: delayFunction(delay, animation(-targetValues.currentHeight, config)),\n },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipOutXUp();\n }\n}\nexport class FlipOutYLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateY: '0deg' },\n { translateX: 0 },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('-90deg', config)) },\n {\n translateX: delayFunction(delay, animation(-targetValues.currentWidth, config)),\n },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipOutYLeft();\n }\n}\nexport class FlipOutXDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateX: '0deg' },\n { translateY: 0 },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('-90deg', config)) },\n {\n translateY: delayFunction(delay, animation(targetValues.currentHeight, config)),\n },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipOutXDown();\n }\n}\nexport class FlipOutYRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateY: '0deg' },\n { translateX: 0 },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('90deg', config)) },\n {\n translateX: delayFunction(delay, animation(targetValues.currentWidth, config)),\n },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipOutYRight();\n }\n}\nexport class FlipOutEasyX extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [{ perspective: 500 }, { rotateX: '0deg' }] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('90deg', config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipOutEasyX();\n }\n}\nexport class FlipOutEasyY extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [{ perspective: 500 }, { rotateY: '0deg' }] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('90deg', config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipOutEasyY();\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nexport class StretchInX extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scaleX: delayFunction(delay, animation(1, config)) }],\n },\n initialValues: Object.assign({ transform: [{ scaleX: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new StretchInX();\n }\n}\nexport class StretchInY extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scaleY: delayFunction(delay, animation(1, config)) }],\n },\n initialValues: Object.assign({ transform: [{ scaleY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new StretchInY();\n }\n}\nexport class StretchOutX extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scaleX: delayFunction(delay, animation(0, config)) }],\n },\n initialValues: Object.assign({ transform: [{ scaleX: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new StretchOutX();\n }\n}\nexport class StretchOutY extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scaleY: delayFunction(delay, animation(0, config)) }],\n },\n initialValues: Object.assign({ transform: [{ scaleY: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new StretchOutY();\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nexport class FadeIn extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return (_) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n },\n initialValues: Object.assign({ opacity: 0 }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeIn();\n }\n}\nexport class FadeInRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [{ translateX: 25 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeInRight();\n }\n}\nexport class FadeInLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [{ translateX: -25 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeInLeft();\n }\n}\nexport class FadeInUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [{ translateY: -25 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeInUp();\n }\n}\nexport class FadeInDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [{ translateY: 25 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeInDown();\n }\n}\nexport class FadeOut extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return (_) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n },\n initialValues: Object.assign({ opacity: 1 }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeOut();\n }\n}\nexport class FadeOutRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { translateX: delayFunction(delay, animation(25, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ translateX: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeOutRight();\n }\n}\nexport class FadeOutLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { translateX: delayFunction(delay, animation(-25, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ translateX: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeOutLeft();\n }\n}\nexport class FadeOutUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { translateY: delayFunction(delay, animation(-25, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeOutUp();\n }\n}\nexport class FadeOutDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { translateY: delayFunction(delay, animation(25, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeOutDown();\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nexport class SlideInRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originX: delayFunction(delay, animation(values.targetOriginX, config)),\n },\n initialValues: Object.assign({ originX: values.targetOriginX + values.windowWidth }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideInRight();\n }\n}\nexport class SlideInLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originX: delayFunction(delay, animation(values.targetOriginX, config)),\n },\n initialValues: Object.assign({ originX: values.targetOriginX - values.windowWidth }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideInLeft();\n }\n}\nexport class SlideOutRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originX: delayFunction(delay, animation(Math.max(values.currentOriginX + values.windowWidth, values.windowWidth), config)),\n },\n initialValues: Object.assign({ originX: values.currentOriginX }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideOutRight();\n }\n}\nexport class SlideOutLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originX: delayFunction(delay, animation(Math.min(values.currentOriginX - values.windowWidth, -values.windowWidth), config)),\n },\n initialValues: Object.assign({ originX: values.currentOriginX }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideOutLeft();\n }\n}\nexport class SlideInUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originY: delayFunction(delay, animation(values.targetOriginY, config)),\n },\n initialValues: Object.assign({ originY: -values.windowHeight }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideInUp();\n }\n}\nexport class SlideInDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originY: delayFunction(delay, animation(values.targetOriginY, config)),\n },\n initialValues: Object.assign({ originY: values.targetOriginY + values.windowHeight }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideInDown();\n }\n}\nexport class SlideOutUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originY: delayFunction(delay, animation(Math.min(values.currentOriginY - values.windowHeight, -values.windowHeight), config)),\n },\n initialValues: Object.assign({ originY: values.currentOriginY }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideOutUp();\n }\n}\nexport class SlideOutDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originY: delayFunction(delay, animation(Math.max(values.currentOriginY + values.windowHeight, values.windowHeight), config)),\n },\n initialValues: Object.assign({ originY: values.currentOriginY }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideOutDown();\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nexport class ZoomIn extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scale: delayFunction(delay, animation(1, config)) }],\n },\n initialValues: Object.assign({ transform: [{ scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomIn();\n }\n}\nexport class ZoomInRotate extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const rotate = this.rotateV ? this.rotateV : '0.3';\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { scale: delayFunction(delay, animation(1, config)) },\n { rotate: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ scale: 0 }, { rotate: rotate }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomInRotate();\n }\n}\nexport class ZoomInLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: -values.windowWidth }, { scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomInLeft();\n }\n}\nexport class ZoomInRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: values.windowWidth }, { scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomInRight();\n }\n}\nexport class ZoomInUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: -values.windowHeight }, { scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomInUp();\n }\n}\nexport class ZoomInDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: values.windowHeight }, { scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomInDown();\n }\n}\nexport class ZoomInEasyUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: -values.targetHeight }, { scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomInEasyUp();\n }\n}\nexport class ZoomInEasyDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: values.targetHeight }, { scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomInEasyDown();\n }\n}\nexport class ZoomOut extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scale: delayFunction(delay, animation(0, config)) }],\n },\n initialValues: Object.assign({ transform: [{ scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOut();\n }\n}\nexport class ZoomOutRotate extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const rotate = this.rotateV ? this.rotateV : '0.3';\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { scale: delayFunction(delay, animation(0, config)) },\n { rotate: delayFunction(delay, animation(rotate, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ scale: 1 }, { rotate: '0' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOutRotate();\n }\n}\nexport class ZoomOutLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(delay, animation(-values.windowWidth, config)),\n },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: 0 }, { scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOutLeft();\n }\n}\nexport class ZoomOutRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(delay, animation(values.windowWidth, config)),\n },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: 0 }, { scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOutRight();\n }\n}\nexport class ZoomOutUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(delay, animation(-values.windowHeight, config)),\n },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: 0 }, { scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOutUp();\n }\n}\nexport class ZoomOutDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(delay, animation(values.windowHeight, config)),\n },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: 0 }, { scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOutDown();\n }\n}\nexport class ZoomOutEasyUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(delay, animation(-values.currentHeight, config)),\n },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: 0 }, { scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOutEasyUp();\n }\n}\nexport class ZoomOutEasyDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(delay, animation(values.currentHeight, config)),\n },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: 0 }, { scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOutEasyDown();\n }\n}\n","import { withSequence, withTiming } from '../../animation';\nimport { ComplexAnimationBuilder } from '../animationBuilder/ComplexAnimationBuilder';\nexport class BounceIn extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n scale: delayFunction(delay, withSequence(withTiming(1.2, { duration: duration * 0.55 }), withTiming(0.9, { duration: duration * 0.15 }), withTiming(1.1, { duration: duration * 0.15 }), withTiming(1, { duration: duration * 0.15 }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceIn();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceInDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(delay, withSequence(withTiming(-20, { duration: duration * 0.55 }), withTiming(10, { duration: duration * 0.15 }), withTiming(-10, { duration: duration * 0.15 }), withTiming(0, { duration: duration * 0.15 }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [\n {\n translateY: values.windowHeight,\n },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceInDown();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceInUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(delay, withSequence(withTiming(20, { duration: duration * 0.55 }), withTiming(-10, { duration: duration * 0.15 }), withTiming(10, { duration: duration * 0.15 }), withTiming(0, { duration: duration * 0.15 }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: -values.windowHeight }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceInUp();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceInLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(delay, withSequence(withTiming(20, { duration: duration * 0.55 }), withTiming(-10, { duration: duration * 0.15 }), withTiming(10, { duration: duration * 0.15 }), withTiming(0, { duration: duration * 0.15 }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: -values.windowWidth }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceInLeft();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceInRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(delay, withSequence(withTiming(-20, { duration: duration * 0.55 }), withTiming(10, { duration: duration * 0.15 }), withTiming(-10, { duration: duration * 0.15 }), withTiming(0, { duration: duration * 0.15 }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: values.windowWidth }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceInRight();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceOut extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n scale: delayFunction(delay, withSequence(withTiming(1.1, { duration: duration * 0.15 }), withTiming(0.9, { duration: duration * 0.15 }), withTiming(1.2, { duration: duration * 0.15 }), withTiming(0, { duration: duration * 0.55 }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceOut();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceOutDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(delay, withSequence(withTiming(-10, { duration: duration * 0.15 }), withTiming(10, { duration: duration * 0.15 }), withTiming(-20, { duration: duration * 0.15 }), withTiming(values.windowHeight, {\n duration: duration * 0.55,\n }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceOutDown();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceOutUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(delay, withSequence(withTiming(10, { duration: duration * 0.15 }), withTiming(-10, { duration: duration * 0.15 }), withTiming(20, { duration: duration * 0.15 }), withTiming(-values.windowHeight, {\n duration: duration * 0.55,\n }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceOutUp();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceOutLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(delay, withSequence(withTiming(10, { duration: duration * 0.15 }), withTiming(-10, { duration: duration * 0.15 }), withTiming(20, { duration: duration * 0.15 }), withTiming(-values.windowWidth, {\n duration: duration * 0.55,\n }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceOutLeft();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceOutRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(delay, withSequence(withTiming(-10, { duration: duration * 0.15 }), withTiming(10, { duration: duration * 0.15 }), withTiming(-20, { duration: duration * 0.15 }), withTiming(values.windowWidth, {\n duration: duration * 0.55,\n }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceOutRight();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\n","import { withSequence, withTiming } from '../../animation';\nimport { ComplexAnimationBuilder } from '../animationBuilder';\nexport class LightSpeedInRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, withTiming(1, { duration: duration })),\n transform: [\n {\n translateX: delayFunction(delay, animation(0, Object.assign(Object.assign({}, config), { duration: duration * 0.7 }))),\n },\n {\n skewX: delayFunction(delay, withSequence(withTiming('10deg', { duration: duration * 0.7 }), withTiming('-5deg', { duration: duration * 0.15 }), withTiming('0deg', { duration: duration * 0.15 }))),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [{ translateX: values.windowWidth }, { skewX: '-45deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new LightSpeedInRight();\n }\n}\nexport class LightSpeedInLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, withTiming(1, { duration: duration })),\n transform: [\n {\n translateX: delayFunction(delay, animation(0, Object.assign(Object.assign({}, config), { duration: duration * 0.7 }))),\n },\n {\n skewX: delayFunction(delay, withSequence(withTiming('-10deg', { duration: duration * 0.7 }), withTiming('5deg', { duration: duration * 0.15 }), withTiming('0deg', { duration: duration * 0.15 }))),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [{ translateX: -values.windowWidth }, { skewX: '45deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new LightSpeedInLeft();\n }\n}\nexport class LightSpeedOutRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n {\n translateX: delayFunction(delay, animation(values.windowWidth, config)),\n },\n {\n skewX: delayFunction(delay, animation('-45deg', config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ translateX: 0 }, { skewX: '0deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new LightSpeedOutRight();\n }\n}\nexport class LightSpeedOutLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n {\n translateX: delayFunction(delay, animation(-values.windowWidth, config)),\n },\n {\n skewX: delayFunction(delay, animation('45deg', config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ translateX: 0 }, { skewX: '0deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new LightSpeedOutLeft();\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nexport class PinwheelIn extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (_values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n {\n scale: delayFunction(delay, animation(1, config)),\n },\n {\n rotate: delayFunction(delay, animation('0', config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [\n {\n scale: 0,\n },\n {\n rotate: '5',\n },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new PinwheelIn();\n }\n}\nexport class PinwheelOut extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (_values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n {\n scale: delayFunction(delay, animation(0, config)),\n },\n {\n rotate: delayFunction(delay, animation('5', config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [\n {\n scale: 1,\n },\n {\n rotate: '0',\n },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new PinwheelOut();\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nexport class RotateInDownLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { rotate: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [\n { rotate: '-90deg' },\n { translateX: values.targetWidth / 2 - values.targetHeight / 2 },\n { translateY: -(values.targetWidth / 2 - values.targetHeight / 2) },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateInDownLeft();\n }\n}\nexport class RotateInDownRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { rotate: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [\n { rotate: '90deg' },\n { translateX: -(values.targetWidth / 2 - values.targetHeight / 2) },\n { translateY: -(values.targetWidth / 2 - values.targetHeight / 2) },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateInDownRight();\n }\n}\nexport class RotateInUpLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { rotate: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [\n { rotate: '90deg' },\n { translateX: values.targetWidth / 2 - values.targetHeight / 2 },\n { translateY: values.targetWidth / 2 - values.targetHeight / 2 },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateInUpLeft();\n }\n}\nexport class RotateInUpRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { rotate: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [\n { rotate: '-90deg' },\n { translateX: -(values.targetWidth / 2 - values.targetHeight / 2) },\n { translateY: values.targetWidth / 2 - values.targetHeight / 2 },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateInUpRight();\n }\n}\nexport class RotateOutDownLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { rotate: delayFunction(delay, animation('90deg', config)) },\n {\n translateX: delayFunction(delay, animation(values.currentWidth / 2 - values.currentHeight / 2, config)),\n },\n {\n translateY: delayFunction(delay, animation(values.currentWidth / 2 - values.currentHeight / 2, config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ rotate: '0deg' }, { translateX: 0 }, { translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateOutDownLeft();\n }\n}\nexport class RotateOutDownRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { rotate: delayFunction(delay, animation('-90deg', config)) },\n {\n translateX: delayFunction(delay, animation(-(values.currentWidth / 2 - values.currentHeight / 2), config)),\n },\n {\n translateY: delayFunction(delay, animation(values.currentWidth / 2 - values.currentHeight / 2, config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ rotate: '0deg' }, { translateX: 0 }, { translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateOutDownRight();\n }\n}\nexport class RotateOutUpLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { rotate: delayFunction(delay, animation('-90deg', config)) },\n {\n translateX: delayFunction(delay, animation(values.currentWidth / 2 - values.currentHeight / 2, config)),\n },\n {\n translateY: delayFunction(delay, animation(-(values.currentWidth / 2 - values.currentHeight / 2), config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ rotate: '0deg' }, { translateX: 0 }, { translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateOutUpLeft();\n }\n}\nexport class RotateOutUpRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { rotate: delayFunction(delay, animation('90deg', config)) },\n {\n translateX: delayFunction(delay, animation(-(values.currentWidth / 2 - values.currentHeight / 2), config)),\n },\n {\n translateY: delayFunction(delay, animation(-(values.currentWidth / 2 - values.currentHeight / 2), config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ rotate: '0deg' }, { translateX: 0 }, { translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateOutUpRight();\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nexport class RollInLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(0), config) },\n { rotate: delayFunction(delay, animation('0deg', config)) },\n ],\n },\n initialValues: Object.assign({ transform: [\n { translateX: -values.windowWidth },\n { rotate: '-180deg' },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RollInLeft();\n }\n}\nexport class RollInRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n { rotate: delayFunction(delay, animation('0deg', config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: values.windowWidth }, { rotate: '180deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RollInRight();\n }\n}\nexport class RollOutLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(delay, animation(-values.windowWidth, config)),\n },\n { rotate: delayFunction(delay, animation('-180deg', config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: 0 }, { rotate: '0deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RollOutLeft();\n }\n}\nexport class RollOutRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(delay, animation(values.windowWidth, config)),\n },\n { rotate: delayFunction(delay, animation('180deg', config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: 0 }, { rotate: '0deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RollOutRight();\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder/ComplexAnimationBuilder';\nexport class LinearTransition extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const delay = this.getDelay();\n return (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n originX: delayFunction(delay, animation(values.targetOriginX, config)),\n originY: delayFunction(delay, animation(values.targetOriginY, config)),\n width: delayFunction(delay, animation(values.targetWidth, config)),\n height: delayFunction(delay, animation(values.targetHeight, config)),\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new LinearTransition();\n }\n}\nexport const Layout = LinearTransition;\n","import { withSequence, withTiming } from '../../animation';\nimport { BaseAnimationBuilder } from '../animationBuilder';\nexport class FadingTransition extends BaseAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n var _a;\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const duration = (_a = this.durationV) !== null && _a !== void 0 ? _a : 500;\n return (values) => {\n 'worklet';\n return {\n initialValues: {\n opacity: 1,\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n opacity: delayFunction(delay, withSequence(withTiming(0, { duration: duration }), withTiming(1, { duration: duration }))),\n originX: delayFunction(delay + duration, withTiming(values.targetOriginX, { duration: 50 })),\n originY: delayFunction(delay + duration, withTiming(values.targetOriginY, { duration: 50 })),\n width: delayFunction(delay + duration, withTiming(values.targetWidth, { duration: 50 })),\n height: delayFunction(delay + duration, withTiming(values.targetHeight, { duration: 50 })),\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadingTransition();\n }\n}\n","import { withSequence, withTiming } from '../../animation';\nimport { BaseAnimationBuilder } from '../animationBuilder';\nexport class SequencedTransition extends BaseAnimationBuilder {\n constructor() {\n super(...arguments);\n this.reversed = false;\n this.build = () => {\n var _a;\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const sequenceDuration = ((_a = this.durationV) !== null && _a !== void 0 ? _a : 500) / 2;\n const config = { duration: sequenceDuration };\n const reverse = this.reversed;\n return (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n originX: delayFunction(delay, withSequence(withTiming(reverse ? values.currentOriginX : values.targetOriginX, config), withTiming(values.targetOriginX, config))),\n originY: delayFunction(delay, withSequence(withTiming(reverse ? values.targetOriginY : values.currentOriginY, config), withTiming(values.targetOriginY, config))),\n width: delayFunction(delay, withSequence(withTiming(reverse ? values.currentWidth : values.targetWidth, config), withTiming(values.targetWidth, config))),\n height: delayFunction(delay, withSequence(withTiming(reverse ? values.targetHeight : values.currentHeight, config), withTiming(values.targetHeight, config))),\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SequencedTransition();\n }\n static reverse() {\n const instance = SequencedTransition.createInstance();\n return instance.reverse();\n }\n reverse() {\n this.reversed = !this.reversed;\n return this;\n }\n}\n","import { withSequence, withTiming } from '../../animation';\nimport { Easing } from '../../Easing';\nimport { BaseAnimationBuilder } from '../animationBuilder';\nexport class JumpingTransition extends BaseAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n var _a;\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const duration = ((_a = this.durationV) !== null && _a !== void 0 ? _a : 300) / 2;\n const config = { duration: duration * 2 };\n return (values) => {\n 'worklet';\n const d = Math.max(Math.abs(values.targetOriginX - values.currentOriginX), Math.abs(values.targetOriginY - values.currentOriginY));\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n originX: delayFunction(delay, withTiming(values.targetOriginX, config)),\n originY: delayFunction(delay, withSequence(withTiming(Math.min(values.targetOriginY, values.currentOriginY) - d, {\n duration,\n easing: Easing.out(Easing.exp),\n }), withTiming(values.targetOriginY, Object.assign(Object.assign({}, config), { duration, easing: Easing.bounce })))),\n width: delayFunction(delay, withTiming(values.targetWidth, config)),\n height: delayFunction(delay, withTiming(values.targetHeight, config)),\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new JumpingTransition();\n }\n}\n","import { BaseAnimationBuilder } from '../animationBuilder';\nimport { Easing } from '../../Easing';\nimport { withTiming } from '../../animation';\nexport class CurvedTransition extends BaseAnimationBuilder {\n constructor() {\n super(...arguments);\n this.easingXV = Easing.in(Easing.ease);\n this.easingYV = Easing.out(Easing.ease);\n this.easingWidthV = Easing.in(Easing.exp);\n this.easingHeightV = Easing.out(Easing.exp);\n this.build = () => {\n var _a;\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const duration = (_a = this.durationV) !== null && _a !== void 0 ? _a : 300;\n const easing = {\n easingX: this.easingXV,\n easingY: this.easingYV,\n easingWidth: this.easingWidthV,\n easingHeight: this.easingHeightV,\n };\n return (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n originX: delayFunction(delay, withTiming(values.targetOriginX, {\n duration,\n easing: easing.easingX,\n })),\n originY: delayFunction(delay, withTiming(values.targetOriginY, {\n duration,\n easing: easing.easingY,\n })),\n width: delayFunction(delay, withTiming(values.targetWidth, {\n duration,\n easing: easing.easingWidth,\n })),\n height: delayFunction(delay, withTiming(values.targetHeight, {\n duration,\n easing: easing.easingHeight,\n })),\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new CurvedTransition();\n }\n static easingX(easing) {\n const instance = this.createInstance();\n return instance.easingX(easing);\n }\n easingX(easing) {\n this.easingXV = easing;\n return this;\n }\n static easingY(easing) {\n const instance = this.createInstance();\n return instance.easingY(easing);\n }\n easingY(easing) {\n this.easingYV = easing;\n return this;\n }\n static easingWidth(easing) {\n const instance = this.createInstance();\n return instance.easingWidth(easing);\n }\n easingWidth(easing) {\n this.easingWidthV = easing;\n return this;\n }\n static easingHeight(easing) {\n const instance = this.createInstance();\n return instance.easingHeight(easing);\n }\n easingHeight(easing) {\n this.easingHeightV = easing;\n return this;\n }\n}\n","import { BaseAnimationBuilder } from '../animationBuilder';\nimport { withSequence, withTiming } from '../../animation';\nimport { FadeIn, FadeOut } from '../defaultAnimations/Fade';\nexport class EntryExitTransition extends BaseAnimationBuilder {\n constructor() {\n super(...arguments);\n this.enteringV = FadeIn;\n this.exitingV = FadeOut;\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const enteringAnimation = this.enteringV.build();\n const exitingAnimation = this.exitingV.build();\n const exitingDuration = this.exitingV.getDuration();\n return (values) => {\n 'worklet';\n var _a, _b, _c, _d;\n const enteringValues = enteringAnimation(values);\n const exitingValues = exitingAnimation(values);\n const animations = {\n transform: [],\n };\n for (const prop of Object.keys(exitingValues.animations)) {\n if (prop === 'transform') {\n (_a = exitingValues.animations[prop]) === null || _a === void 0 ? void 0 : _a.forEach((value, index) => {\n var _a;\n for (const transformProp of Object.keys(value)) {\n (_a = animations.transform) === null || _a === void 0 ? void 0 : _a.push({\n [transformProp]: delayFunction(delay, withSequence(value[transformProp], withTiming(exitingValues.initialValues.transform\n ? exitingValues.initialValues.transform[index][transformProp]\n : 0, { duration: 0 }))),\n });\n }\n });\n }\n else {\n const sequence = enteringValues.animations[prop] !== undefined\n ? [\n exitingValues.animations[prop],\n withTiming(enteringValues.initialValues[prop], {\n duration: 0,\n }),\n enteringValues.animations[prop],\n ]\n : [\n exitingValues.animations[prop],\n withTiming(Object.keys(values).includes(prop)\n ? values[prop]\n : exitingValues.initialValues[prop], { duration: 0 }),\n ];\n animations[prop] = delayFunction(delay, withSequence(...sequence));\n }\n }\n for (const prop of Object.keys(enteringValues.animations)) {\n if (prop === 'transform') {\n (_b = enteringValues.animations[prop]) === null || _b === void 0 ? void 0 : _b.forEach((value, index) => {\n var _a;\n for (const transformProp of Object.keys(value)) {\n (_a = animations.transform) === null || _a === void 0 ? void 0 : _a.push({\n [transformProp]: delayFunction(delay + exitingDuration, withSequence(withTiming(enteringValues.initialValues.transform\n ? enteringValues.initialValues.transform[index][transformProp]\n : 0, { duration: exitingDuration }), value[transformProp])),\n });\n }\n });\n }\n else if (animations[prop] !== undefined) {\n // it was already added in the previous loop\n continue;\n }\n else {\n animations[prop] = delayFunction(delay, withSequence(withTiming(enteringValues.initialValues[prop], { duration: 0 }), enteringValues.animations[prop]));\n }\n }\n const mergedTransform = ((_c = exitingValues.initialValues.transform) !== null && _c !== void 0 ? _c : []).concat(((_d = enteringValues.animations.transform) !== null && _d !== void 0 ? _d : []).map((value) => {\n const objectKeys = Object.keys(value);\n if ((objectKeys === null || objectKeys === void 0 ? void 0 : objectKeys.length) < 1) {\n console.error(`[Reanimated]: \\${value} is not a valid Transform object`);\n return value;\n }\n const transformProp = objectKeys[0];\n const current = value[transformProp].current;\n if (typeof current === 'string') {\n if (current.includes('deg'))\n return {\n [transformProp]: '0deg',\n };\n else\n return {\n [transformProp]: '0',\n };\n }\n else if (transformProp.includes('translate')) {\n return { [transformProp]: 0 };\n }\n else {\n return { [transformProp]: 1 };\n }\n return value;\n }));\n return {\n initialValues: Object.assign(Object.assign({}, exitingValues.initialValues), { originX: values.currentOriginX, originY: values.currentOriginY, width: values.currentWidth, height: values.currentHeight, transform: mergedTransform }),\n animations: Object.assign({ originX: delayFunction(delay + exitingDuration, withTiming(values.targetOriginX, { duration: exitingDuration })), originY: delayFunction(delay + exitingDuration, withTiming(values.targetOriginY, { duration: exitingDuration })), width: delayFunction(delay + exitingDuration, withTiming(values.targetWidth, { duration: exitingDuration })), height: delayFunction(delay + exitingDuration, withTiming(values.targetHeight, { duration: exitingDuration })) }, animations),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new EntryExitTransition();\n }\n static entering(animation) {\n const instance = this.createInstance();\n return instance.entering(animation);\n }\n entering(animation) {\n this.enteringV = animation;\n return this;\n }\n static exiting(animation) {\n const instance = this.createInstance();\n return instance.exiting(animation);\n }\n exiting(animation) {\n this.exitingV = animation;\n return this;\n }\n}\nexport function combineTransition(exiting, entering) {\n return EntryExitTransition.entering(entering).exiting(exiting);\n}\n","import { measure } from './NativeMethods';\n/**\n * Given an absolute position and a component ref, returns the relative\n * position in the component's local coordinate space.\n */\nexport function getRelativeCoords(parentRef, absoluteX, absoluteY) {\n 'worklet';\n const parentCoords = measure(parentRef);\n if (parentCoords === null) {\n return null;\n }\n return {\n x: absoluteX - parentCoords.x,\n y: absoluteY - parentCoords.y,\n };\n}\n","import { Text } from 'react-native';\nimport createAnimatedComponent from '../../createAnimatedComponent';\nconst AnimatedText = createAnimatedComponent(Text);\nexport default AnimatedText;\n","import { View } from 'react-native';\nimport createAnimatedComponent from '../../createAnimatedComponent';\nconst AnimatedView = createAnimatedComponent(View);\nexport default AnimatedView;\n","import { ScrollView } from 'react-native';\nimport createAnimatedComponent from '../../createAnimatedComponent';\nconst AnimatedScrollView = createAnimatedComponent(ScrollView);\nexport default AnimatedScrollView;\n","import { Image } from 'react-native';\nimport createAnimatedComponent from '../../createAnimatedComponent';\nconst AnimatedImage = createAnimatedComponent(Image);\nexport default AnimatedImage;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { forwardRef } from 'react';\nimport { FlatList } from 'react-native';\nimport ReanimatedView from './View';\nimport createAnimatedComponent from '../../createAnimatedComponent';\nconst AnimatedFlatList = createAnimatedComponent(FlatList);\nconst createCellRenderer = (itemLayoutAnimation) => {\n const cellRenderer = (props) => {\n return (\n {props.children}\n );\n };\n return cellRenderer;\n};\nconst ReanimatedFlatlist = forwardRef((props, ref) => {\n const { itemLayoutAnimation } = props, restProps = __rest(props, [\"itemLayoutAnimation\"]);\n const cellRenderer = React.useMemo(() => createCellRenderer(itemLayoutAnimation), []);\n return ();\n});\nexport default ReanimatedFlatlist;\n","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"hrefAttrs\", \"numberOfLines\", \"onClick\", \"onLayout\", \"onPress\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\", \"selectable\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from './TextAncestorContext';\nimport { useLocaleContext, getLocaleDirection } from '../../modules/useLocale';\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n href: true,\n lang: true,\n pointerEvents: true\n});\n\nvar pickProps = props => pick(props, forwardPropsList);\n\nvar Text = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var hrefAttrs = props.hrefAttrs,\n numberOfLines = props.numberOfLines,\n onClick = props.onClick,\n onLayout = props.onLayout,\n onPress = props.onPress,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n selectable = props.selectable,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n var handleClick = React.useCallback(e => {\n if (onClick != null) {\n onClick(e);\n } else if (onPress != null) {\n e.stopPropagation();\n onPress(e);\n }\n }, [onClick, onPress]);\n var component = hasTextAncestor ? 'span' : 'div';\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var supportedProps = pickProps(rest);\n supportedProps.dir = componentDirection; // 'auto' by default allows browsers to infer writing direction (root elements only)\n\n if (!hasTextAncestor) {\n supportedProps.dir = componentDirection != null ? componentDirection : 'auto';\n }\n\n if (onClick || onPress) {\n supportedProps.onClick = handleClick;\n }\n\n supportedProps.style = [numberOfLines != null && numberOfLines > 1 && {\n WebkitLineClamp: numberOfLines\n }, hasTextAncestor === true ? styles.textHasAncestor$raw : styles.text$raw, numberOfLines === 1 && styles.textOneLine, numberOfLines != null && numberOfLines > 1 && styles.textMultiLine, props.style, selectable === true && styles.selectable, selectable === false && styles.notSelectable, onPress && styles.pressable];\n\n if (props.href != null) {\n component = 'a';\n\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n\n if (download != null) {\n supportedProps.download = download;\n }\n\n if (rel != null) {\n supportedProps.rel = rel;\n }\n\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n }\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n var element = createElement(component, supportedProps, {\n writingDirection\n });\n return hasTextAncestor ? element : /*#__PURE__*/React.createElement(TextAncestorContext.Provider, {\n value: true\n }, element);\n});\nText.displayName = 'Text';\nvar textStyle = {\n backgroundColor: 'transparent',\n border: '0 solid black',\n boxSizing: 'border-box',\n color: 'black',\n display: 'inline',\n font: '14px System',\n listStyle: 'none',\n margin: 0,\n padding: 0,\n textAlign: 'inherit',\n textDecoration: 'none',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word'\n};\nvar styles = StyleSheet.create({\n text$raw: textStyle,\n textHasAncestor$raw: _objectSpread(_objectSpread({}, textStyle), {}, {\n color: 'inherit',\n font: 'inherit',\n whiteSpace: 'inherit'\n }),\n textOneLine: {\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n },\n // See #13\n textMultiLine: {\n display: '-webkit-box',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical'\n },\n notSelectable: {\n userSelect: 'none'\n },\n selectable: {\n userSelect: 'text'\n },\n pressable: {\n cursor: 'pointer'\n }\n});\nexport default Text;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * \n */\n'use strict';\n\nimport Dimensions from '../Dimensions';\nimport { useEffect, useState } from 'react';\nexport default function useWindowDimensions() {\n var _useState = useState(() => Dimensions.get('window')),\n dims = _useState[0],\n setDims = _useState[1];\n\n useEffect(() => {\n function handleChange(_ref) {\n var window = _ref.window;\n\n if (window != null) {\n setDims(window);\n }\n }\n\n Dimensions.addEventListener('change', handleChange); // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n\n setDims(Dimensions.get('window'));\n return () => {\n Dimensions.removeEventListener('change', handleChange);\n };\n }, []);\n return dims;\n}","export function val(v) {\n return v && v.__getValue ? v.__getValue() : v || 0;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\nimport invariant from 'fbjs/lib/invariant';\nvar _uniqueId = 1; // Note(vjeux): this would be better as an interface but flow doesn't\n// support them yet\n\nclass AnimatedNode {\n __attach() {}\n\n __detach() {\n if (this.__isNative && this.__nativeTag != null) {\n NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);\n this.__nativeTag = undefined;\n }\n }\n\n __getValue() {}\n\n __getAnimatedValue() {\n return this.__getValue();\n }\n\n __addChild(child) {}\n\n __removeChild(child) {}\n\n __getChildren() {\n return [];\n }\n /* Methods and props used by native Animated impl */\n\n\n constructor() {\n this._listeners = {};\n }\n\n __makeNative() {\n if (!this.__isNative) {\n throw new Error('This node cannot be made a \"native\" animated node');\n }\n\n if (this.hasListeners()) {\n this._startListeningToNativeValueUpdates();\n }\n }\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to\n * synchronously read the value because it might be driven natively.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#addlistener\n */\n\n\n addListener(callback) {\n var id = String(_uniqueId++);\n this._listeners[id] = callback;\n\n if (this.__isNative) {\n this._startListeningToNativeValueUpdates();\n }\n\n return id;\n }\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#removelistener\n */\n\n\n removeListener(id) {\n delete this._listeners[id];\n\n if (this.__isNative && !this.hasListeners()) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#removealllisteners\n */\n\n\n removeAllListeners() {\n this._listeners = {};\n\n if (this.__isNative) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n\n hasListeners() {\n return !!Object.keys(this._listeners).length;\n }\n\n _startListeningToNativeValueUpdates() {\n if (this.__nativeAnimatedValueListener && !this.__shouldUpdateListenersForNewNativeTag) {\n return;\n }\n\n if (this.__shouldUpdateListenersForNewNativeTag) {\n this.__shouldUpdateListenersForNewNativeTag = false;\n\n this._stopListeningForNativeValueUpdates();\n }\n\n NativeAnimatedAPI.startListeningToAnimatedNodeValue(this.__getNativeTag());\n this.__nativeAnimatedValueListener = NativeAnimatedHelper.nativeEventEmitter.addListener('onAnimatedValueUpdate', data => {\n if (data.tag !== this.__getNativeTag()) {\n return;\n }\n\n this._onAnimatedValueUpdateReceived(data.value);\n });\n }\n\n _onAnimatedValueUpdateReceived(value) {\n this.__callListeners(value);\n }\n\n __callListeners(value) {\n for (var _key in this._listeners) {\n this._listeners[_key]({\n value\n });\n }\n }\n\n _stopListeningForNativeValueUpdates() {\n if (!this.__nativeAnimatedValueListener) {\n return;\n }\n\n this.__nativeAnimatedValueListener.remove();\n\n this.__nativeAnimatedValueListener = null;\n NativeAnimatedAPI.stopListeningToAnimatedNodeValue(this.__getNativeTag());\n }\n\n __getNativeTag() {\n var _this$__nativeTag;\n\n NativeAnimatedHelper.assertNativeAnimatedModule();\n invariant(this.__isNative, 'Attempt to get native tag from node not marked as \"native\"');\n var nativeTag = (_this$__nativeTag = this.__nativeTag) !== null && _this$__nativeTag !== void 0 ? _this$__nativeTag : NativeAnimatedHelper.generateNewNodeTag();\n\n if (this.__nativeTag == null) {\n this.__nativeTag = nativeTag;\n NativeAnimatedHelper.API.createAnimatedNode(nativeTag, this.__getNativeConfig());\n this.__shouldUpdateListenersForNewNativeTag = true;\n }\n\n return nativeTag;\n }\n\n __getNativeConfig() {\n throw new Error('This JS animated node type cannot be used as native animated node');\n }\n\n toJSON() {\n return this.__getValue();\n }\n\n}\n\nexport default AnimatedNode;","import { isReference, isField, DeepMerger, resultKeyNameFromField, shouldInclude, isNonNullObject, compact, } from \"../../utilities/index.js\";\nexport var hasOwn = Object.prototype.hasOwnProperty;\nexport function defaultDataIdFromObject(_a, context) {\n var __typename = _a.__typename, id = _a.id, _id = _a._id;\n if (typeof __typename === \"string\") {\n if (context) {\n context.keyObject =\n id !== void 0 ? { id: id } :\n _id !== void 0 ? { _id: _id } :\n void 0;\n }\n if (id === void 0)\n id = _id;\n if (id !== void 0) {\n return __typename + \":\" + ((typeof id === \"number\" ||\n typeof id === \"string\") ? id : JSON.stringify(id));\n }\n }\n}\nvar defaultConfig = {\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n canonizeResults: false,\n};\nexport function normalizeConfig(config) {\n return compact(defaultConfig, config);\n}\nexport function shouldCanonizeResults(config) {\n var value = config.canonizeResults;\n return value === void 0 ? defaultConfig.canonizeResults : value;\n}\nexport function getTypenameFromStoreObject(store, objectOrReference) {\n return isReference(objectOrReference)\n ? store.get(objectOrReference.__ref, \"__typename\")\n : objectOrReference && objectOrReference.__typename;\n}\nexport var TypeOrFieldNameRegExp = /^[_a-z][_0-9a-z]*/i;\nexport function fieldNameFromStoreName(storeFieldName) {\n var match = storeFieldName.match(TypeOrFieldNameRegExp);\n return match ? match[0] : storeFieldName;\n}\nexport function selectionSetMatchesResult(selectionSet, result, variables) {\n if (isNonNullObject(result)) {\n return Array.isArray(result)\n ? result.every(function (item) { return selectionSetMatchesResult(selectionSet, item, variables); })\n : selectionSet.selections.every(function (field) {\n if (isField(field) && shouldInclude(field, variables)) {\n var key = resultKeyNameFromField(field);\n return hasOwn.call(result, key) &&\n (!field.selectionSet ||\n selectionSetMatchesResult(field.selectionSet, result[key], variables));\n }\n return true;\n });\n }\n return false;\n}\nexport function storeValueIsStoreObject(value) {\n return isNonNullObject(value) &&\n !isReference(value) &&\n !Array.isArray(value);\n}\nexport function makeProcessedFieldsMerger() {\n return new DeepMerger;\n}\n//# sourceMappingURL=helpers.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nexport var CognitoHostedUIIdentityProvider;\n(function (CognitoHostedUIIdentityProvider) {\n CognitoHostedUIIdentityProvider[\"Cognito\"] = \"COGNITO\";\n CognitoHostedUIIdentityProvider[\"Google\"] = \"Google\";\n CognitoHostedUIIdentityProvider[\"Facebook\"] = \"Facebook\";\n CognitoHostedUIIdentityProvider[\"Amazon\"] = \"LoginWithAmazon\";\n CognitoHostedUIIdentityProvider[\"Apple\"] = \"SignInWithApple\";\n})(CognitoHostedUIIdentityProvider || (CognitoHostedUIIdentityProvider = {}));\nexport function isFederatedSignInOptions(obj) {\n var keys = ['provider'];\n return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); });\n}\nexport function isFederatedSignInOptionsCustom(obj) {\n var keys = ['customProvider'];\n return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); });\n}\nexport function hasCustomState(obj) {\n var keys = ['customState'];\n return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); });\n}\nexport function isCognitoHostedOpts(oauth) {\n return oauth.redirectSignIn !== undefined;\n}\nexport var AuthErrorTypes;\n(function (AuthErrorTypes) {\n AuthErrorTypes[\"NoConfig\"] = \"noConfig\";\n AuthErrorTypes[\"MissingAuthConfig\"] = \"missingAuthConfig\";\n AuthErrorTypes[\"EmptyUsername\"] = \"emptyUsername\";\n AuthErrorTypes[\"InvalidUsername\"] = \"invalidUsername\";\n AuthErrorTypes[\"EmptyPassword\"] = \"emptyPassword\";\n AuthErrorTypes[\"EmptyCode\"] = \"emptyCode\";\n AuthErrorTypes[\"SignUpError\"] = \"signUpError\";\n AuthErrorTypes[\"NoMFA\"] = \"noMFA\";\n AuthErrorTypes[\"InvalidMFA\"] = \"invalidMFA\";\n AuthErrorTypes[\"EmptyChallengeResponse\"] = \"emptyChallengeResponse\";\n AuthErrorTypes[\"NoUserSession\"] = \"noUserSession\";\n AuthErrorTypes[\"Default\"] = \"default\";\n AuthErrorTypes[\"DeviceConfig\"] = \"deviceConfig\";\n AuthErrorTypes[\"NetworkError\"] = \"networkError\";\n AuthErrorTypes[\"AutoSignInError\"] = \"autoSignInError\";\n})(AuthErrorTypes || (AuthErrorTypes = {}));\nexport function isUsernamePasswordOpts(obj) {\n return !!obj.username;\n}\nexport var GRAPHQL_AUTH_MODE;\n(function (GRAPHQL_AUTH_MODE) {\n GRAPHQL_AUTH_MODE[\"API_KEY\"] = \"API_KEY\";\n GRAPHQL_AUTH_MODE[\"AWS_IAM\"] = \"AWS_IAM\";\n GRAPHQL_AUTH_MODE[\"OPENID_CONNECT\"] = \"OPENID_CONNECT\";\n GRAPHQL_AUTH_MODE[\"AMAZON_COGNITO_USER_POOLS\"] = \"AMAZON_COGNITO_USER_POOLS\";\n GRAPHQL_AUTH_MODE[\"AWS_LAMBDA\"] = \"AWS_LAMBDA\";\n})(GRAPHQL_AUTH_MODE || (GRAPHQL_AUTH_MODE = {}));\n//# sourceMappingURL=Auth.js.map","export default function invariant(condition, message) {\n var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n if (!booleanCondition) {\n throw new Error(message != null ? message : 'Unexpected invariant triggered.');\n }\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport invariant from 'fbjs/lib/invariant';\nimport canUseDOM from '../../modules/canUseDom';\nvar dimensions = {\n window: {\n fontScale: 1,\n height: 0,\n scale: 1,\n width: 0\n },\n screen: {\n fontScale: 1,\n height: 0,\n scale: 1,\n width: 0\n }\n};\nvar listeners = {};\nvar shouldInit = canUseDOM;\n\nfunction update() {\n if (!canUseDOM) {\n return;\n }\n\n var win = window;\n var height;\n var width;\n /**\n * iOS does not update viewport dimensions on keyboard open/close.\n * window.visualViewport(https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport)\n * is used instead of document.documentElement.clientHeight (which remains as a fallback)\n */\n\n if (win.visualViewport) {\n var visualViewport = win.visualViewport;\n height = Math.round(visualViewport.height);\n width = Math.round(visualViewport.width);\n } else {\n var docEl = win.document.documentElement;\n height = docEl.clientHeight;\n width = docEl.clientWidth;\n }\n\n dimensions.window = {\n fontScale: 1,\n height,\n scale: win.devicePixelRatio || 1,\n width\n };\n dimensions.screen = {\n fontScale: 1,\n height: win.screen.height,\n scale: win.devicePixelRatio || 1,\n width: win.screen.width\n };\n}\n\nfunction handleResize() {\n update();\n\n if (Array.isArray(listeners['change'])) {\n listeners['change'].forEach(handler => handler(dimensions));\n }\n}\n\nexport default class Dimensions {\n static get(dimension) {\n if (shouldInit) {\n shouldInit = false;\n update();\n }\n\n invariant(dimensions[dimension], \"No dimension set for key \" + dimension);\n return dimensions[dimension];\n }\n\n static set(initialDimensions) {\n if (initialDimensions) {\n if (canUseDOM) {\n invariant(false, 'Dimensions cannot be set in the browser');\n } else {\n if (initialDimensions.screen != null) {\n dimensions.screen = initialDimensions.screen;\n }\n\n if (initialDimensions.window != null) {\n dimensions.window = initialDimensions.window;\n }\n }\n }\n }\n\n static addEventListener(type, handler) {\n listeners[type] = listeners[type] || [];\n listeners[type].push(handler);\n return {\n remove: () => {\n this.removeEventListener(type, handler);\n }\n };\n }\n\n static removeEventListener(type, handler) {\n if (Array.isArray(listeners[type])) {\n listeners[type] = listeners[type].filter(_handler => _handler !== handler);\n }\n }\n\n}\n\nif (canUseDOM) {\n if (window.visualViewport) {\n window.visualViewport.addEventListener('resize', handleResize, false);\n } else {\n window.addEventListener('resize', handleResize, false);\n }\n}","import AnimatedNode from './AnimatedNode';\nimport { val } from '../val';\nimport ReanimatedModule from '../../ReanimatedModule';\nimport invariant from 'invariant';\n\nfunction sanitizeValue(value) {\n return value === null || value === undefined || typeof value === 'string'\n ? value\n : Number(value);\n}\n\nconst CONSTANT_VALUES = new Map();\n\nfunction initializeConstantValues() {\n if (CONSTANT_VALUES.size !== 0) {\n return;\n }\n [0, -1, 1, -2, 2].forEach((v) =>\n CONSTANT_VALUES.set(v, new InternalAnimatedValue(v, true))\n );\n}\n\n/**\n * This class has been made internal in order to omit dependencies' cycles which\n * were caused by imperative setValue and interpolate – they are currently exposed with AnimatedValue.js\n */\nexport default class InternalAnimatedValue extends AnimatedNode {\n static valueForConstant(number) {\n initializeConstantValues();\n return (\n CONSTANT_VALUES.get(number) || new InternalAnimatedValue(number, true)\n );\n }\n\n constructor(value, constant = false) {\n invariant(value !== null, 'Animated.Value cannot be set to the null');\n super({ type: 'value', value: sanitizeValue(value) });\n this._startingValue = this._value = value;\n this._animation = null;\n this._constant = constant;\n }\n\n __detach() {\n if (!this._constant) {\n if (ReanimatedModule.getValue) {\n ReanimatedModule.getValue(\n this.__nodeID,\n (val) => (this.__nodeConfig.value = val)\n );\n } else {\n this.__nodeConfig.value = this.__getValue();\n }\n }\n this.__detachAnimation(this._animation);\n super.__detach();\n }\n\n __detachAnimation(animation) {\n animation && animation.__detach();\n if (this._animation === animation) {\n this._animation = null;\n }\n }\n\n __attachAnimation(animation) {\n this.__detachAnimation(this._animation);\n this._animation = animation;\n }\n\n __onEvaluate() {\n if (this.__inputNodes && this.__inputNodes.length) {\n this.__inputNodes.forEach(val);\n }\n return this._value;\n }\n\n // AnimatedValue will override this method to modify the value of a native node.\n setValue(value) {\n this.__detachAnimation(this._animation);\n this._updateValue(value);\n }\n\n _updateValue(value) {\n this._value = value;\n this.__forceUpdateCache(value);\n }\n}\n","import { visit } from \"./visitor.mjs\";\nimport { printBlockString } from \"./blockString.mjs\";\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, {\n leave: printDocASTReducer\n });\n}\nvar MAX_LINE_LENGTH = 80; // TODO: provide better type coverage in future\n\nvar printDocASTReducer = {\n Name: function Name(node) {\n return node.value;\n },\n Variable: function Variable(node) {\n return '$' + node.name;\n },\n // Document\n Document: function Document(node) {\n return join(node.definitions, '\\n\\n') + '\\n';\n },\n OperationDefinition: function OperationDefinition(node) {\n var op = node.operation;\n var name = node.name;\n var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n var directives = join(node.directives, ' ');\n var selectionSet = node.selectionSet; // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' ');\n },\n VariableDefinition: function VariableDefinition(_ref) {\n var variable = _ref.variable,\n type = _ref.type,\n defaultValue = _ref.defaultValue,\n directives = _ref.directives;\n return variable + ': ' + type + wrap(' = ', defaultValue) + wrap(' ', join(directives, ' '));\n },\n SelectionSet: function SelectionSet(_ref2) {\n var selections = _ref2.selections;\n return block(selections);\n },\n Field: function Field(_ref3) {\n var alias = _ref3.alias,\n name = _ref3.name,\n args = _ref3.arguments,\n directives = _ref3.directives,\n selectionSet = _ref3.selectionSet;\n var prefix = wrap('', alias, ': ') + name;\n var argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n if (argsLine.length > MAX_LINE_LENGTH) {\n argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n }\n\n return join([argsLine, join(directives, ' '), selectionSet], ' ');\n },\n Argument: function Argument(_ref4) {\n var name = _ref4.name,\n value = _ref4.value;\n return name + ': ' + value;\n },\n // Fragments\n FragmentSpread: function FragmentSpread(_ref5) {\n var name = _ref5.name,\n directives = _ref5.directives;\n return '...' + name + wrap(' ', join(directives, ' '));\n },\n InlineFragment: function InlineFragment(_ref6) {\n var typeCondition = _ref6.typeCondition,\n directives = _ref6.directives,\n selectionSet = _ref6.selectionSet;\n return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' ');\n },\n FragmentDefinition: function FragmentDefinition(_ref7) {\n var name = _ref7.name,\n typeCondition = _ref7.typeCondition,\n variableDefinitions = _ref7.variableDefinitions,\n directives = _ref7.directives,\n selectionSet = _ref7.selectionSet;\n return (// Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n \"fragment \".concat(name).concat(wrap('(', join(variableDefinitions, ', '), ')'), \" \") + \"on \".concat(typeCondition, \" \").concat(wrap('', join(directives, ' '), ' ')) + selectionSet\n );\n },\n // Value\n IntValue: function IntValue(_ref8) {\n var value = _ref8.value;\n return value;\n },\n FloatValue: function FloatValue(_ref9) {\n var value = _ref9.value;\n return value;\n },\n StringValue: function StringValue(_ref10, key) {\n var value = _ref10.value,\n isBlockString = _ref10.block;\n return isBlockString ? printBlockString(value, key === 'description' ? '' : ' ') : JSON.stringify(value);\n },\n BooleanValue: function BooleanValue(_ref11) {\n var value = _ref11.value;\n return value ? 'true' : 'false';\n },\n NullValue: function NullValue() {\n return 'null';\n },\n EnumValue: function EnumValue(_ref12) {\n var value = _ref12.value;\n return value;\n },\n ListValue: function ListValue(_ref13) {\n var values = _ref13.values;\n return '[' + join(values, ', ') + ']';\n },\n ObjectValue: function ObjectValue(_ref14) {\n var fields = _ref14.fields;\n return '{' + join(fields, ', ') + '}';\n },\n ObjectField: function ObjectField(_ref15) {\n var name = _ref15.name,\n value = _ref15.value;\n return name + ': ' + value;\n },\n // Directive\n Directive: function Directive(_ref16) {\n var name = _ref16.name,\n args = _ref16.arguments;\n return '@' + name + wrap('(', join(args, ', '), ')');\n },\n // Type\n NamedType: function NamedType(_ref17) {\n var name = _ref17.name;\n return name;\n },\n ListType: function ListType(_ref18) {\n var type = _ref18.type;\n return '[' + type + ']';\n },\n NonNullType: function NonNullType(_ref19) {\n var type = _ref19.type;\n return type + '!';\n },\n // Type System Definitions\n SchemaDefinition: addDescription(function (_ref20) {\n var directives = _ref20.directives,\n operationTypes = _ref20.operationTypes;\n return join(['schema', join(directives, ' '), block(operationTypes)], ' ');\n }),\n OperationTypeDefinition: function OperationTypeDefinition(_ref21) {\n var operation = _ref21.operation,\n type = _ref21.type;\n return operation + ': ' + type;\n },\n ScalarTypeDefinition: addDescription(function (_ref22) {\n var name = _ref22.name,\n directives = _ref22.directives;\n return join(['scalar', name, join(directives, ' ')], ' ');\n }),\n ObjectTypeDefinition: addDescription(function (_ref23) {\n var name = _ref23.name,\n interfaces = _ref23.interfaces,\n directives = _ref23.directives,\n fields = _ref23.fields;\n return join(['type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n FieldDefinition: addDescription(function (_ref24) {\n var name = _ref24.name,\n args = _ref24.arguments,\n type = _ref24.type,\n directives = _ref24.directives;\n return name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + ': ' + type + wrap(' ', join(directives, ' '));\n }),\n InputValueDefinition: addDescription(function (_ref25) {\n var name = _ref25.name,\n type = _ref25.type,\n defaultValue = _ref25.defaultValue,\n directives = _ref25.directives;\n return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' ');\n }),\n InterfaceTypeDefinition: addDescription(function (_ref26) {\n var name = _ref26.name,\n interfaces = _ref26.interfaces,\n directives = _ref26.directives,\n fields = _ref26.fields;\n return join(['interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n UnionTypeDefinition: addDescription(function (_ref27) {\n var name = _ref27.name,\n directives = _ref27.directives,\n types = _ref27.types;\n return join(['union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n }),\n EnumTypeDefinition: addDescription(function (_ref28) {\n var name = _ref28.name,\n directives = _ref28.directives,\n values = _ref28.values;\n return join(['enum', name, join(directives, ' '), block(values)], ' ');\n }),\n EnumValueDefinition: addDescription(function (_ref29) {\n var name = _ref29.name,\n directives = _ref29.directives;\n return join([name, join(directives, ' ')], ' ');\n }),\n InputObjectTypeDefinition: addDescription(function (_ref30) {\n var name = _ref30.name,\n directives = _ref30.directives,\n fields = _ref30.fields;\n return join(['input', name, join(directives, ' '), block(fields)], ' ');\n }),\n DirectiveDefinition: addDescription(function (_ref31) {\n var name = _ref31.name,\n args = _ref31.arguments,\n repeatable = _ref31.repeatable,\n locations = _ref31.locations;\n return 'directive @' + name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + (repeatable ? ' repeatable' : '') + ' on ' + join(locations, ' | ');\n }),\n SchemaExtension: function SchemaExtension(_ref32) {\n var directives = _ref32.directives,\n operationTypes = _ref32.operationTypes;\n return join(['extend schema', join(directives, ' '), block(operationTypes)], ' ');\n },\n ScalarTypeExtension: function ScalarTypeExtension(_ref33) {\n var name = _ref33.name,\n directives = _ref33.directives;\n return join(['extend scalar', name, join(directives, ' ')], ' ');\n },\n ObjectTypeExtension: function ObjectTypeExtension(_ref34) {\n var name = _ref34.name,\n interfaces = _ref34.interfaces,\n directives = _ref34.directives,\n fields = _ref34.fields;\n return join(['extend type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n InterfaceTypeExtension: function InterfaceTypeExtension(_ref35) {\n var name = _ref35.name,\n interfaces = _ref35.interfaces,\n directives = _ref35.directives,\n fields = _ref35.fields;\n return join(['extend interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n UnionTypeExtension: function UnionTypeExtension(_ref36) {\n var name = _ref36.name,\n directives = _ref36.directives,\n types = _ref36.types;\n return join(['extend union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n },\n EnumTypeExtension: function EnumTypeExtension(_ref37) {\n var name = _ref37.name,\n directives = _ref37.directives,\n values = _ref37.values;\n return join(['extend enum', name, join(directives, ' '), block(values)], ' ');\n },\n InputObjectTypeExtension: function InputObjectTypeExtension(_ref38) {\n var name = _ref38.name,\n directives = _ref38.directives,\n fields = _ref38.fields;\n return join(['extend input', name, join(directives, ' '), block(fields)], ' ');\n }\n};\n\nfunction addDescription(cb) {\n return function (node) {\n return join([node.description, cb(node)], '\\n');\n };\n}\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\n\nfunction join(maybeArray) {\n var _maybeArray$filter$jo;\n\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return (_maybeArray$filter$jo = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.filter(function (x) {\n return x;\n }).join(separator)) !== null && _maybeArray$filter$jo !== void 0 ? _maybeArray$filter$jo : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an\n * indented \"{ }\" block.\n */\n\n\nfunction block(array) {\n return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\n\nfunction wrap(start, maybeString) {\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n return maybeString != null && maybeString !== '' ? start + maybeString + end : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction isMultiline(str) {\n return str.indexOf('\\n') !== -1;\n}\n\nfunction hasMultilineItems(maybeArray) {\n return maybeArray != null && maybeArray.some(isMultiline);\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// Previous types exported gesture handlers as classes which creates an interface and variable, both named the same as class.\n// Without those types, we'd introduce breaking change, forcing users to prefix every handler type specification with typeof\n// e.g. React.createRef -> React.createRef.\n// See https://www.typescriptlang.org/docs/handbook/classes.html#constructor-functions for reference.\nimport * as React from 'react';\nimport { Platform, findNodeHandle as findNodeHandleRN } from 'react-native';\n\nimport { State } from '../State';\nimport { TouchEventType } from '../TouchEventType';\nimport { ValueOf } from '../typeUtils';\nimport { handlerIDToTag } from './handlersRegistry';\nimport { toArray } from '../utils';\nimport RNGestureHandlerModule from '../RNGestureHandlerModule';\n\nconst commonProps = [\n 'id',\n 'enabled',\n 'shouldCancelWhenOutside',\n 'hitSlop',\n 'cancelsTouchesInView',\n 'userSelect',\n] as const;\n\nconst componentInteractionProps = ['waitFor', 'simultaneousHandlers'] as const;\n\nexport const baseGestureHandlerProps = [\n ...commonProps,\n ...componentInteractionProps,\n 'onBegan',\n 'onFailed',\n 'onCancelled',\n 'onActivated',\n 'onEnded',\n 'onGestureEvent',\n 'onHandlerStateChange',\n] as const;\n\nexport const baseGestureHandlerWithMonitorProps = [\n ...commonProps,\n 'needsPointerData',\n 'manualActivation',\n];\n\nexport interface GestureEventPayload {\n handlerTag: number;\n numberOfPointers: number;\n state: ValueOf;\n}\nexport interface HandlerStateChangeEventPayload extends GestureEventPayload {\n oldState: ValueOf;\n}\n\nexport type HitSlop =\n | number\n | Partial<\n Record<\n 'left' | 'right' | 'top' | 'bottom' | 'vertical' | 'horizontal',\n number\n >\n >\n | Record<'width' | 'left', number>\n | Record<'width' | 'right', number>\n | Record<'height' | 'top', number>\n | Record<'height' | 'bottom', number>;\n\nexport type UserSelect = 'none' | 'auto' | 'text';\n\n//TODO(TS) events in handlers\n\nexport interface GestureEvent> {\n nativeEvent: Readonly;\n}\nexport interface HandlerStateChangeEvent<\n ExtraEventPayloadT = Record\n> {\n nativeEvent: Readonly;\n}\n\nexport type TouchData = {\n id: number;\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\n\nexport type GestureTouchEvent = {\n handlerTag: number;\n numberOfTouches: number;\n state: ValueOf;\n eventType: TouchEventType;\n allTouches: TouchData[];\n changedTouches: TouchData[];\n};\n\nexport type GestureUpdateEvent> =\n GestureEventPayload & GestureEventPayloadT;\n\nexport type GestureStateChangeEvent<\n GestureStateChangeEventPayloadT = Record\n> = HandlerStateChangeEventPayload & GestureStateChangeEventPayloadT;\n\nexport type CommonGestureConfig = {\n enabled?: boolean;\n shouldCancelWhenOutside?: boolean;\n hitSlop?: HitSlop;\n userSelect?: UserSelect;\n};\n\n// Events payloads are types instead of interfaces due to TS limitation.\n// See https://github.com/microsoft/TypeScript/issues/15300 for more info.\nexport type BaseGestureHandlerProps<\n ExtraEventPayloadT extends Record = Record\n> = CommonGestureConfig & {\n id?: string;\n waitFor?: React.Ref | React.Ref[];\n simultaneousHandlers?: React.Ref | React.Ref[];\n testID?: string;\n cancelsTouchesInView?: boolean;\n // TODO(TS) - fix event types\n onBegan?: (event: HandlerStateChangeEvent) => void;\n onFailed?: (event: HandlerStateChangeEvent) => void;\n onCancelled?: (event: HandlerStateChangeEvent) => void;\n onActivated?: (event: HandlerStateChangeEvent) => void;\n onEnded?: (event: HandlerStateChangeEvent) => void;\n\n //TODO(TS) consider using NativeSyntheticEvent\n onGestureEvent?: (event: GestureEvent) => void;\n onHandlerStateChange?: (\n event: HandlerStateChangeEvent\n ) => void;\n // implicit `children` prop has been removed in @types/react^18.0.0\n children?: React.ReactNode;\n};\n\nfunction isConfigParam(param: unknown, name: string) {\n // param !== Object(param) returns false if `param` is a function\n // or an object and returns true if `param` is null\n return (\n param !== undefined &&\n (param !== Object(param) ||\n !('__isNative' in (param as Record))) &&\n name !== 'onHandlerStateChange' &&\n name !== 'onGestureEvent'\n );\n}\n\nexport function filterConfig(\n props: Record,\n validProps: string[],\n defaults: Record = {}\n) {\n const filteredConfig = { ...defaults };\n for (const key of validProps) {\n let value = props[key];\n if (isConfigParam(value, key)) {\n if (key === 'simultaneousHandlers' || key === 'waitFor') {\n value = transformIntoHandlerTags(props[key]);\n } else if (key === 'hitSlop' && typeof value !== 'object') {\n value = { top: value, left: value, bottom: value, right: value };\n }\n filteredConfig[key] = value;\n }\n }\n return filteredConfig;\n}\n\nfunction transformIntoHandlerTags(handlerIDs: any) {\n handlerIDs = toArray(handlerIDs);\n\n if (Platform.OS === 'web') {\n return handlerIDs\n .map(({ current }: { current: any }) => current)\n .filter((handle: any) => handle);\n }\n // converts handler string IDs into their numeric tags\n return handlerIDs\n .map(\n (handlerID: any) =>\n handlerIDToTag[handlerID] || handlerID.current?.handlerTag || -1\n )\n .filter((handlerTag: number) => handlerTag > 0);\n}\n\nexport function findNodeHandle(\n node: null | number | React.Component | React.ComponentClass\n): null | number | React.Component | React.ComponentClass {\n if (Platform.OS === 'web') {\n return node;\n }\n return findNodeHandleRN(node);\n}\n\nlet scheduledFlushOperationsId: ReturnType<\n typeof requestAnimationFrame\n> | null = null;\n\nexport function scheduleFlushOperations() {\n if (scheduledFlushOperationsId === null) {\n scheduledFlushOperationsId = requestAnimationFrame(() => {\n RNGestureHandlerModule.flushOperations();\n\n scheduledFlushOperationsId = null;\n });\n }\n}\n","import reanimatedJS from '../js-reanimated';\nimport { shouldBeUseWeb } from '../PlatformChecker';\nimport { NativeReanimated } from './NativeReanimated';\nlet exportedModule;\nif (shouldBeUseWeb()) {\n exportedModule = reanimatedJS;\n}\nelse {\n exportedModule = new NativeReanimated();\n}\nexport default exportedModule;\n","const { toString, hasOwnProperty } = Object.prototype;\nconst fnToStr = Function.prototype.toString;\nconst previousComparisons = new Map();\n/**\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\n */\nexport function equal(a, b) {\n try {\n return check(a, b);\n }\n finally {\n previousComparisons.clear();\n }\n}\n// Allow default imports as well.\nexport default equal;\nfunction check(a, b) {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n }\n // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n const aTag = toString.call(a);\n const bTag = toString.call(b);\n // If the runtime types of a and b are different, they could maybe be equal\n // under some interpretation of equality, but for simplicity and performance\n // we just return false instead.\n if (aTag !== bTag) {\n return false;\n }\n switch (aTag) {\n case '[object Array]':\n // Arrays are a lot like other objects, but we can cheaply compare their\n // lengths as a short-cut before comparing their elements.\n if (a.length !== b.length)\n return false;\n // Fall through to object case...\n case '[object Object]': {\n if (previouslyCompared(a, b))\n return true;\n const aKeys = definedKeys(a);\n const bKeys = definedKeys(b);\n // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n const keyCount = aKeys.length;\n if (keyCount !== bKeys.length)\n return false;\n // Now make sure they have the same keys.\n for (let k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n }\n // Finally, check deep equality of all child properties.\n for (let k = 0; k < keyCount; ++k) {\n const key = aKeys[k];\n if (!check(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n case '[object Error]':\n return a.name === b.name && a.message === b.message;\n case '[object Number]':\n // Handle NaN, which is !== itself.\n if (a !== a)\n return b !== b;\n // Fall through to shared +a === +b case...\n case '[object Boolean]':\n case '[object Date]':\n return +a === +b;\n case '[object RegExp]':\n case '[object String]':\n return a == `${b}`;\n case '[object Map]':\n case '[object Set]': {\n if (a.size !== b.size)\n return false;\n if (previouslyCompared(a, b))\n return true;\n const aIterator = a.entries();\n const isMap = aTag === '[object Map]';\n while (true) {\n const info = aIterator.next();\n if (info.done)\n break;\n // If a instanceof Set, aValue === aKey.\n const [aKey, aValue] = info.value;\n // So this works the same way for both Set and Map.\n if (!b.has(aKey)) {\n return false;\n }\n // However, we care about deep equality of values only when dealing\n // with Map structures.\n if (isMap && !check(aValue, b.get(aKey))) {\n return false;\n }\n }\n return true;\n }\n case '[object Uint16Array]':\n case '[object Uint8Array]': // Buffer, in Node.js.\n case '[object Uint32Array]':\n case '[object Int32Array]':\n case '[object Int8Array]':\n case '[object Int16Array]':\n case '[object ArrayBuffer]':\n // DataView doesn't need these conversions, but the equality check is\n // otherwise the same.\n a = new Uint8Array(a);\n b = new Uint8Array(b);\n // Fall through...\n case '[object DataView]': {\n let len = a.byteLength;\n if (len === b.byteLength) {\n while (len-- && a[len] === b[len]) {\n // Keep looping as long as the bytes are equal.\n }\n }\n return len === -1;\n }\n case '[object AsyncFunction]':\n case '[object GeneratorFunction]':\n case '[object AsyncGeneratorFunction]':\n case '[object Function]': {\n const aCode = fnToStr.call(a);\n if (aCode !== fnToStr.call(b)) {\n return false;\n }\n // We consider non-native functions equal if they have the same code\n // (native functions require === because their code is censored).\n // Note that this behavior is not entirely sound, since !== function\n // objects with the same code can behave differently depending on\n // their closure scope. However, any function can behave differently\n // depending on the values of its input arguments (including this)\n // and its calling context (including its closure scope), even\n // though the function object is === to itself; and it is entirely\n // possible for functions that are not === to behave exactly the\n // same under all conceivable circumstances. Because none of these\n // factors are statically decidable in JavaScript, JS function\n // equality is not well-defined. This ambiguity allows us to\n // consider the best possible heuristic among various imperfect\n // options, and equating non-native functions that have the same\n // code has enormous practical benefits, such as when comparing\n // functions that are repeatedly passed as fresh function\n // expressions within objects that are otherwise deeply equal. Since\n // any function created from the same syntactic expression (in the\n // same code location) will always stringify to the same code\n // according to fnToStr.call, we can reasonably expect these\n // repeatedly passed function expressions to have the same code, and\n // thus behave \"the same\" (with all the caveats mentioned above),\n // even though the runtime function objects are !== to one another.\n return !endsWith(aCode, nativeCodeSuffix);\n }\n }\n // Otherwise the values are not equal.\n return false;\n}\nfunction definedKeys(obj) {\n // Remember that the second argument to Array.prototype.filter will be\n // used as `this` within the callback function.\n return Object.keys(obj).filter(isDefinedKey, obj);\n}\nfunction isDefinedKey(key) {\n return this[key] !== void 0;\n}\nconst nativeCodeSuffix = \"{ [native code] }\";\nfunction endsWith(full, suffix) {\n const fromIndex = full.length - suffix.length;\n return fromIndex >= 0 &&\n full.indexOf(suffix, fromIndex) === fromIndex;\n}\nfunction previouslyCompared(a, b) {\n // Though cyclic references can make an object graph appear infinite from the\n // perspective of a depth-first traversal, the graph still contains a finite\n // number of distinct object references. We use the previousComparisons cache\n // to avoid comparing the same pair of object references more than once, which\n // guarantees termination (even if we end up comparing every object in one\n // graph to every object in the other graph, which is extremely unlikely),\n // while still allowing weird isomorphic structures (like rings with different\n // lengths) a chance to pass the equality test.\n let bSet = previousComparisons.get(a);\n if (bSet) {\n // Return true here because we can be sure false will be returned somewhere\n // else if the objects are not equivalent.\n if (bSet.has(b))\n return true;\n }\n else {\n previousComparisons.set(a, bSet = new Set);\n }\n bSet.add(b);\n return false;\n}\n//# sourceMappingURL=index.js.map","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport * as React from 'react';\nimport { useMemo, useRef } from 'react';\nimport pick from '../../modules/pick';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nvar forwardPropsList = {\n accessibilityDisabled: true,\n accessibilityLabel: true,\n accessibilityLiveRegion: true,\n accessibilityRole: true,\n accessibilityState: true,\n accessibilityValue: true,\n children: true,\n disabled: true,\n focusable: true,\n nativeID: true,\n onBlur: true,\n onFocus: true,\n onLayout: true,\n testID: true\n};\n\nvar pickProps = props => pick(props, forwardPropsList);\n\nfunction TouchableWithoutFeedback(props, forwardedRef) {\n var delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n rejectResponderTermination = props.rejectResponderTermination;\n var hostRef = useRef(null);\n var pressConfig = useMemo(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n onPressStart: onPressIn,\n onPressEnd: onPressOut\n }), [disabled, delayPressIn, delayPressOut, delayLongPress, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var element = React.Children.only(props.children);\n var children = [element.props.children];\n var supportedProps = pickProps(props);\n supportedProps.accessibilityDisabled = disabled;\n supportedProps.focusable = !disabled && focusable !== false;\n supportedProps.ref = useMergeRefs(forwardedRef, hostRef, element.ref);\n var elementProps = Object.assign(supportedProps, pressEventHandlers);\n return /*#__PURE__*/React.cloneElement(element, elementProps, ...children);\n}\n\nvar MemoedTouchableWithoutFeedback = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableWithoutFeedback));\nMemoedTouchableWithoutFeedback.displayName = 'TouchableWithoutFeedback';\nexport default MemoedTouchableWithoutFeedback;","import * as React from 'react';\nimport {\n Platform,\n TouchableNativeFeedback,\n TouchableOpacity,\n View,\n type ViewProps,\n} from 'react-native';\n\ntype Props = {\n ...ViewProps,\n pressColor?: string,\n disabled?: boolean,\n borderless?: boolean,\n delayPressIn?: number,\n onPress?: () => void,\n children: React.Node,\n};\n\nconst ANDROID_VERSION_LOLLIPOP = 21;\nconst CAN_USE_RIPLLE = Platform.OS === 'android' && Platform.Version >= ANDROID_VERSION_LOLLIPOP;\n\nexport default function TouchableItem({\n borderless = false,\n pressColor = 'rgba(0, 0, 0, .32)',\n rippleRadius,\n style,\n children,\n ...rest\n}: Props) {\n const background = React.useMemo(() => {\n return CAN_USE_RIPLLE\n ? TouchableNativeFeedback.Ripple(pressColor, borderless, rippleRadius)\n : undefined;\n }, [pressColor, borderless, rippleRadius]);\n /*\n * TouchableNativeFeedback.Ripple causes a crash on old Android versions,\n * therefore only enable it on Android Lollipop and above.\n *\n * All touchables on Android should have the ripple effect according to\n * platform design guidelines.\n * We need to pass the background prop to specify a borderless ripple effect.\n */\n if (CAN_USE_RIPLLE) {\n return (\n \n {React.Children.only(children)}\n \n );\n } else {\n return (\n \n {children}\n \n );\n }\n}\n","/**\n * @flow\n */\nimport * as React from 'react';\nimport { StyleSheet, View, TouchableWithoutFeedback, Platform } from 'react-native';\nimport TouchableItem from './TouchableItem';\nimport type { ViewStyleProp } from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport { useTheme } from '@react-navigation/native';\n\nconst BUTTON_HIT_SLOP = Object.freeze({ top: 5, bottom: 5, left: 5, right: 5 });\n\n// for renderVisibleButton() function\nexport type VisibleButtonProps = {\n IconComponent?: React.ComponentType,\n iconSize?: number,\n color?: string,\n iconName?: string,\n title: string,\n buttonStyle?: ViewStyleProp,\n};\n\n// from \nexport type ItemProps = {\n ...$Exact>,\n ...VisibleButtonProps,\n onPress: ?() => any,\n style?: ViewStyleProp,\n};\n\ntype OtherProps = {\n background?: any,\n foreground?: any,\n pressColor?: any,\n renderButtonElement: (VisibleButtonProps) => React.Element,\n ...\n};\n\nexport type HeaderButtonProps = ItemProps & OtherProps;\n\nexport function HeaderButton(props: HeaderButtonProps): React.Node {\n const { colors, dark } = useTheme();\n const themeColor = Platform.select({\n ios: colors.primary,\n default: colors.text,\n });\n const themePressColorAndroid = dark ? 'rgba(255, 255, 255, .32)' : 'rgba(0, 0, 0, .32)';\n\n const {\n onPress,\n style,\n renderButtonElement,\n background,\n iconName,\n title,\n buttonStyle,\n IconComponent,\n iconSize,\n color,\n pressColor,\n ...other\n } = props;\n\n const usedColor = color || themeColor;\n const usedPressColor = pressColor || themePressColorAndroid;\n\n const ButtonElement = renderButtonElement({\n iconName,\n title,\n buttonStyle,\n IconComponent,\n iconSize,\n color: usedColor,\n });\n\n const handlePress = () => onPress && requestAnimationFrame(onPress);\n\n return (\n \n {ButtonElement}\n \n );\n}\n\nconst styles = StyleSheet.create({\n buttonContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n","// @flow\nimport * as React from 'react';\nimport { HeaderButton } from './HeaderButton';\n\nexport const HeaderButtonsContext: any = React.createContext>(\n HeaderButton\n);\n","// @flow\nimport * as React from 'react';\nimport { Platform, StyleSheet, View } from 'react-native';\n\n/*\n * the `left` prop can be provided to HeaderButtons as well as OverflowMenu\n * this will render some extra margins on the corresponding side\n * but must be considered only once which is the job of this Context\n * */\n\nconst ButtonsExtraMarginContext = React.createContext<\n 'toBeHandledByOverflowMenu' | 'alreadyHandledByHeaderButtons'\n>('toBeHandledByOverflowMenu');\n\ntype Props = {\n left: boolean,\n children: React.Node,\n};\n\nexport const ButtonsWrapper = ({ left, children }: Props): any => {\n const marginStatus = React.useContext(ButtonsExtraMarginContext);\n const valueOfLeft = marginStatus === 'alreadyHandledByHeaderButtons' ? null : left;\n const extraSideMargin = getMargin(valueOfLeft);\n\n return (\n \n {children}\n \n );\n};\n\nconst getMargin = (left) => {\n if (left === null) {\n return undefined;\n }\n return left ? styles.extraEdgeMarginOnLeft : styles.extraEdgeMarginOnRight;\n};\n\nconst styles = StyleSheet.create({\n row: { flexDirection: 'row', justifyContent: 'center' },\n extraEdgeMarginOnLeft: {\n ...Platform.select({\n android: {\n marginLeft: 5,\n },\n default: {\n marginLeft: 4,\n },\n }),\n },\n extraEdgeMarginOnRight: {\n ...Platform.select({\n android: {\n marginRight: 4,\n },\n default: {\n marginRight: 5,\n },\n }),\n },\n});\n","/*\n * @flow\n */\nimport * as React from 'react';\nimport { HeaderButton } from './HeaderButton';\nimport { HeaderButtonsContext } from './HeaderButtonsContext';\nimport { ButtonsWrapper } from './ButtonsWrapper';\n\ntype HeaderButtonsProps = {\n children: React.Node,\n left?: boolean,\n HeaderButtonComponent?: React.ComponentType,\n};\n\nexport const HeaderButtons = ({\n children,\n HeaderButtonComponent = HeaderButton,\n left = false,\n}: HeaderButtonsProps): React.Element => {\n return (\n \n {children}\n \n );\n};\n","import { NativeModules, Platform } from 'react-native';\n\n// Use the existence of expo-constants as a heuristic for determining if the\n// status bar is translucent on Android. This should be replaced in the future\n// with react-native-safe-area-context.\nconst estimatedStatusBarHeight =\n NativeModules.NativeUnimoduleProxy?.modulesConstants?.ExponentConstants?.statusBarHeight ?? 0;\n\nexport const getDefaultSpaceAboveMenu = () => {\n const spaceAboveDropdownMenu = Platform.select({\n android: estimatedStatusBarHeight,\n ios: -4,\n default: 0,\n });\n return spaceAboveDropdownMenu;\n};\n","// @flow\nimport * as React from 'react';\nimport { Dimensions } from 'react-native';\nimport { getDefaultSpaceAboveMenu } from './statusBarUtils';\nimport { Menu } from './vendor/Menu';\nimport { useTheme } from '@react-navigation/native';\n\nexport type ToggleMenuParam = ?{\n elements: React.ChildrenArray,\n x: number,\n y: number,\n};\n\nexport const OVERFLOW_TOP = 15;\n\nconst warn = () => {\n // the noop value will be replaced by OverflowMenuProvider rendered in app root\n console.warn(\n 'It seems like you tried to open the overflow menu using the overflowMenuPressHandlerDropdownMenu' +\n ' - which is the default handler on android - but you forgot to wrap your root component in .' +\n 'Please check the installation instructions in the react-navigation-header-buttons readme!'\n );\n};\nexport const OverflowMenuContext: any = React.createContext<(ToggleMenuParam) => void>(warn);\n\ntype Props = {\n children: React.Element,\n spaceAboveMenu?: number,\n};\n\nexport const OverflowMenuProvider = ({\n children,\n spaceAboveMenu,\n}: Props): React.Element => {\n const [visible, setVisible] = React.useState(false);\n const [position, setPosition] = React.useState({ x: Dimensions.get('window').width - 10, y: 40 });\n const [elements, setElements] = React.useState(null);\n const {\n colors: { card },\n } = useTheme();\n\n const hideMenu = React.useCallback(() => {\n setVisible(false);\n }, []);\n\n const toggleMenu = React.useCallback(\n (params: ToggleMenuParam) => {\n setElements(params?.elements || []);\n if (params) {\n const { x, y } = params;\n const extraDelta = spaceAboveMenu ?? getDefaultSpaceAboveMenu();\n setPosition({ x, y: y + extraDelta });\n }\n setVisible((prevVisible) => !prevVisible);\n },\n [spaceAboveMenu]\n );\n\n return (\n \n {React.Children.only(children)}\n \n {elements}\n \n \n );\n};\n","// @flow\nimport * as React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\nimport type { ViewStyleProp } from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport TouchableItem from '../../TouchableItem';\nimport { useTheme } from '@react-navigation/native';\n\nexport type Props = {\n /**\n * Title text for the `MenuItem`.\n */\n title: string,\n /**\n * Icon to display for the `MenuItem`.\n */\n icon?: ?React.Node,\n /**\n * Whether the 'item' is disabled. A disabled 'item' is greyed out and `onPress` is not called on touch.\n */\n disabled?: boolean,\n /**\n * Function to execute on press.\n */\n onPress: ?() => any,\n /**\n * @optional\n */\n style?: ViewStyleProp,\n titleStyle?: ViewStyleProp,\n /**\n * TestID used for testing purposes\n */\n testID?: string,\n};\n\n/**\n * A component to show a single list item inside a Menu.\n */\nexport function MenuItem(props: Props): React.Element {\n const { icon, title, disabled, onPress, style, titleStyle, testID } = props;\n\n const {\n dark,\n colors: { text },\n } = useTheme();\n\n const disabledColor = dark ? styles.darkDisabled : styles.lightDisabled;\n const titleColor = disabled ? disabledColor : { color: text };\n const themePressColorAndroid = dark ? 'rgba(255, 255, 255, .32)' : 'rgba(0, 0, 0, .32)';\n\n return (\n \n \n {React.isValidElement(icon) && (\n \n {icon}\n \n )}\n \n \n {title}\n \n \n \n \n );\n}\n\nconst minWidth = 112;\nconst maxWidth = 280;\nconst iconWidth = 25;\n\nconst styles = StyleSheet.create({\n container: {\n paddingHorizontal: 8,\n minWidth,\n maxWidth,\n height: 48,\n justifyContent: 'center',\n },\n row: {\n flexDirection: 'row',\n },\n icon: {\n width: iconWidth,\n },\n title: {\n fontSize: 16,\n },\n item: {\n marginHorizontal: 8,\n },\n content: {\n justifyContent: 'center',\n minWidth: minWidth - 16,\n maxWidth: maxWidth - 16,\n },\n widthWithIcon: {\n maxWidth: maxWidth - (iconWidth + 48),\n },\n lightDisabled: {\n color: 'rgba(0, 0, 0, 0.32)',\n },\n darkDisabled: {\n color: 'rgba(255, 255, 255, 0.32)',\n },\n});\n","// @flow\nimport * as React from 'react';\nimport { type ItemProps, type VisibleButtonProps } from './HeaderButton';\nimport { type Props as MenuItemProps } from './overflowMenu/vendor/MenuItem';\nimport { HeaderButtonsContext } from './HeaderButtonsContext';\nimport { Text, StyleSheet, Platform } from 'react-native';\nimport { OverflowMenuContext } from './overflowMenu/OverflowMenuContext';\nimport { MenuItem } from './overflowMenu/vendor/MenuItem';\n\ntype HiddenItemProps = {\n ...MenuItemProps,\n destructive?: boolean,\n};\n\nexport function HiddenItem({\n onPress,\n ...otherProps\n}: HiddenItemProps): React.Element {\n const toggleMenu = React.useContext(OverflowMenuContext);\n\n // when rendering dropdown menu (e.g. android default) the return value is actually rendered\n // when we show action sheet, we do not render the returned value,\n // but just extract title, onPress and destructive passed to HiddenItem. HiddenItem() is not called\n const onMenuItemPress = () => {\n toggleMenu();\n onPress && onPress();\n };\n\n // $FlowFixMeProps\n return ;\n}\n\n// TODO check RTL\nexport function Item(props: ItemProps): React.Element {\n const HeaderButtonComponent = React.useContext(HeaderButtonsContext);\n // HeaderButtonComponent already knows iconSize, icon color and etc.\n // Item itself will likely only have title and onPress but can override iconSize, icon color and etc. if needed\n return ;\n}\n\nexport function renderVisibleButton(visibleButtonProps: VisibleButtonProps): React.Element {\n const { IconComponent, iconSize, color, iconName, title, buttonStyle } = visibleButtonProps;\n\n return IconComponent && iconName ? (\n \n ) : (\n {title}\n );\n}\n\nconst styles = StyleSheet.create({\n text: {\n ...Platform.select({\n android: {\n fontFamily: 'sans-serif-medium',\n fontSize: 14,\n marginHorizontal: 11,\n textTransform: 'uppercase',\n },\n default: {\n fontSize: 17,\n marginHorizontal: 10,\n textTransform: 'capitalize',\n },\n }),\n },\n button: {\n marginHorizontal: 11,\n },\n});\n","// @flow\nimport * as React from 'react';\nimport { Platform, ActionSheetIOS, UIManager, findNodeHandle, typeof View } from 'react-native';\nimport { HiddenItem } from './HeaderItems';\nimport invariant from 'invariant';\nimport type { ToggleMenuParam } from './overflowMenu/OverflowMenuContext';\n\ntype OverflowButtonDescriptors = $ReadOnlyArray<{\n title: string,\n onPress: () => void | Promise,\n destructive?: boolean,\n disabled?: boolean,\n}>;\n\nexport const extractOverflowButtonData = (\n hiddenButtons: React.Node,\n detectedElementTypes: Array> = [HiddenItem]\n): OverflowButtonDescriptors => {\n // don't do this at home - this is not how React is meant to be used!\n const btnsData = React.Children.toArray(hiddenButtons).map((button) => {\n const { props, type } = button;\n if (detectedElementTypes.includes(type)) {\n return extract(button);\n }\n\n if (typeof type === 'function') {\n const nestedElement = callSafe(type, props);\n if (nestedElement && detectedElementTypes.includes(nestedElement.type)) {\n return extract(nestedElement);\n }\n }\n return false;\n });\n // $FlowFixMe\n return btnsData.filter(Boolean);\n};\n\nconst callSafe = (type, props) => {\n try {\n return type(props);\n } catch {\n return false;\n }\n};\n\nconst extract = (element: React.Element) => {\n const {\n props: { title, onPress, disabled, destructive },\n } = element;\n return { title, onPress, destructive: destructive === true, disabled: disabled === true };\n};\n\nexport type OnOverflowMenuPressParams = {\n hiddenButtons: OverflowButtonDescriptors,\n _private_toggleMenu: (ToggleMenuParam) => void,\n overflowButtonRef: null | View,\n cancelButtonLabel?: string,\n children: React.Node,\n};\n\nconst checkParams = (hiddenButtons) => {\n invariant(Array.isArray(hiddenButtons), 'hiddenButtons must be an array');\n};\n\nexport const overflowMenuPressHandlerActionSheet = ({\n hiddenButtons,\n cancelButtonLabel = 'Cancel',\n}: OnOverflowMenuPressParams) => {\n checkParams(hiddenButtons);\n let actionTitles = hiddenButtons.map((btn) => btn.title);\n actionTitles.unshift(cancelButtonLabel);\n\n const disabledButtonIndices: Array = (() => {\n let result = [];\n hiddenButtons.forEach((it, index) => {\n if (it.disabled === true) {\n result.push(index + 1);\n }\n });\n return result;\n })();\n\n const destructiveButtonIndex: Array = (() => {\n let result = [];\n hiddenButtons.forEach((it, index) => {\n if (it.destructive === true) {\n result.push(index + 1);\n }\n });\n return result;\n })();\n\n ActionSheetIOS.showActionSheetWithOptions(\n // $FlowFixMe - typings are old\n {\n options: actionTitles,\n cancelButtonIndex: 0,\n disabledButtonIndices,\n destructiveButtonIndex,\n },\n (buttonIndex: number) => {\n if (buttonIndex > 0) {\n hiddenButtons[buttonIndex - 1].onPress();\n }\n }\n );\n};\n\nexport const overflowMenuPressHandlerPopupMenu = ({\n hiddenButtons,\n overflowButtonRef,\n}: OnOverflowMenuPressParams) => {\n checkParams(hiddenButtons);\n const enabledButtons = hiddenButtons.filter((it) => it.disabled !== true);\n\n UIManager.showPopupMenu(\n findNodeHandle(overflowButtonRef),\n enabledButtons.map((btn) => btn.title),\n (err) => console.debug('overflowBtn error', err),\n (eventName: string, index?: number) => {\n if (eventName !== 'itemSelected' || typeof index !== 'number') {\n return;\n }\n enabledButtons[index].onPress();\n }\n );\n};\n\nexport const overflowMenuPressHandlerDropdownMenu = ({\n children,\n overflowButtonRef,\n _private_toggleMenu,\n}: OnOverflowMenuPressParams) => {\n if (overflowButtonRef) {\n // $FlowFixMe\n overflowButtonRef.measureInWindow((x, y, width) => {\n _private_toggleMenu({ elements: children, x: x + width, y });\n });\n } else {\n // TODO ignore or show?\n }\n};\n\nexport const defaultOnOverflowMenuPress: (OnOverflowMenuPressParams) => void = Platform.select({\n ios: overflowMenuPressHandlerActionSheet,\n default: overflowMenuPressHandlerDropdownMenu,\n});\n","// @flow\nimport * as React from 'react';\nimport {\n extractOverflowButtonData,\n overflowMenuPressHandlerDropdownMenu,\n defaultOnOverflowMenuPress,\n type OnOverflowMenuPressParams,\n} from '../overflowMenuPressHandlers';\nimport { OVERFLOW_TOP, OverflowMenuContext } from './OverflowMenuContext';\nimport { View, StyleSheet, Platform } from 'react-native';\nimport { HeaderButton } from '../HeaderButton';\nimport type { ViewStyleProp } from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport { OVERFLOW_BUTTON_TEST_ID } from '../e2e';\nimport { ButtonsWrapper } from '../ButtonsWrapper';\n\nexport type OverflowMenuProps = {\n children: React.Node,\n OverflowIcon: React.Element | React.ComponentType,\n style?: ViewStyleProp,\n testID?: string,\n accessibilityLabel?: string,\n onPress: (OnOverflowMenuPressParams) => any,\n left?: boolean,\n ...\n};\n\nexport const OverflowMenu = ({\n children,\n style,\n OverflowIcon = ,\n accessibilityLabel = 'More options',\n testID = OVERFLOW_BUTTON_TEST_ID,\n onPress = defaultOnOverflowMenuPress,\n left = false, // this is needed only when OverflowMenu is rendered without HeaderButtons,\n ...other\n}: OverflowMenuProps): React.Node => {\n const toggleMenu = React.useContext(OverflowMenuContext);\n const btnRef = React.useRef(null);\n const renderButtonElement = React.useCallback(\n ({ color }) => {\n // $FlowIssue\n return React.isValidElement(OverflowIcon) ? OverflowIcon : ;\n },\n [OverflowIcon]\n );\n\n const usedOnPress = React.useCallback(() => {\n const titlesAndOnPresses =\n onPress === overflowMenuPressHandlerDropdownMenu ? [] : extractOverflowButtonData(children);\n onPress({\n children,\n hiddenButtons: titlesAndOnPresses,\n overflowButtonRef: btnRef.current,\n _private_toggleMenu: toggleMenu,\n });\n }, [children, onPress, toggleMenu]);\n\n const validChildren = React.Children.toArray(children).filter(React.isValidElement);\n if (validChildren.length === 0) {\n return null;\n }\n\n return (\n \n \n {/* $FlowFixMeProps yeaah, this is boring :/ */}\n \n \n );\n};\n\nconst styles = StyleSheet.create({\n icon: {\n ...Platform.select({\n android: {\n marginRight: 9,\n marginLeft: 7,\n },\n }),\n },\n overflowMenuView: {\n // these are really just needed bcs of the native android popup menu\n position: 'absolute',\n top: -OVERFLOW_TOP,\n // TODO android actually has a little gap on the right of the menu\n right: 0,\n backgroundColor: 'transparent',\n width: 1,\n height: 1,\n },\n});\n","// @flow\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport type { ViewProps } from 'react-native/Libraries/Components/View/ViewPropTypes';\nimport { useTheme } from '@react-navigation/native';\n\ntype Props = {\n ...ViewProps,\n inset?: boolean,\n};\n\n/**\n * A divider is a thin, lightweight separator that groups content in lists and page layouts.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { Divider, Text } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * Apple\n * \n * Orange\n * \n * \n * );\n *\n * ```\n */\nexport function Divider(props: Props): React.Element {\n const { dark } = useTheme();\n const { inset, style, ...rest } = props;\n const textStyle = dark ? styles.dark : styles.light;\n return ;\n}\n\nconst styles = StyleSheet.create({\n light: {\n backgroundColor: 'rgba(0, 0, 0, 0.12)',\n height: StyleSheet.hairlineWidth,\n },\n dark: {\n backgroundColor: 'rgba(255, 255, 255, 0.12)',\n height: StyleSheet.hairlineWidth,\n },\n inset: {\n marginLeft: 72,\n },\n});\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * \n */\n'use strict';\n\nimport _bezier from './bezier';\nvar ease;\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\n\nclass Easing {\n /**\n * A stepping function, returns 1 for any positive value of `n`.\n */\n static step0(n) {\n return n > 0 ? 1 : 0;\n }\n /**\n * A stepping function, returns 1 if `n` is greater than or equal to 1.\n */\n\n\n static step1(n) {\n return n >= 1 ? 1 : 0;\n }\n /**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\n\n\n static linear(t) {\n return t;\n }\n /**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\n\n\n static ease(t) {\n if (!ease) {\n ease = Easing.bezier(0.42, 0, 1, 1);\n }\n\n return ease(t);\n }\n /**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\n\n\n static quad(t) {\n return t * t;\n }\n /**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\n\n\n static cubic(t) {\n return t * t * t;\n }\n /**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\n\n\n static poly(n) {\n return t => Math.pow(t, n);\n }\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n\n\n static sin(t) {\n return 1 - Math.cos(t * Math.PI / 2);\n }\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n\n\n static circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n\n\n static exp(t) {\n return Math.pow(2, 10 * (t - 1));\n }\n /**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\n\n\n static elastic(bounciness) {\n if (bounciness === void 0) {\n bounciness = 1;\n }\n\n var p = bounciness * Math.PI;\n return t => 1 - Math.pow(Math.cos(t * Math.PI / 2), 3) * Math.cos(t * p);\n }\n /**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * Wolfram Plot:\n *\n * - http://tiny.cc/back_default (s = 1.70158, default)\n */\n\n\n static back(s) {\n if (s === void 0) {\n s = 1.70158;\n }\n\n return t => t * t * ((s + 1) * t - s);\n }\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n\n\n static bounce(t) {\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n\n if (t < 2 / 2.75) {\n var _t = t - 1.5 / 2.75;\n\n return 7.5625 * _t * _t + 0.75;\n }\n\n if (t < 2.5 / 2.75) {\n var _t2 = t - 2.25 / 2.75;\n\n return 7.5625 * _t2 * _t2 + 0.9375;\n }\n\n var t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n }\n /**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\n\n\n static bezier(x1, y1, x2, y2) {\n return _bezier(x1, y1, x2, y2);\n }\n /**\n * Runs an easing function forwards.\n */\n\n\n static in(easing) {\n return easing;\n }\n /**\n * Runs an easing function backwards.\n */\n\n\n static out(easing) {\n return t => 1 - easing(1 - t);\n }\n /**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\n\n\n static inOut(easing) {\n return t => {\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n\n return 1 - easing((1 - t) * 2) / 2;\n };\n }\n\n}\n\nexport default Easing;","/**\n * Portions Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\n/**\n * BezierEasing - use bezier curve for transition easing function\n * https://github.com/gre/bezier-easing\n * @copyright 2014-2015 Gaëtan Renaudeau. MIT License.\n */\n'use strict'; // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\n\nfunction B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\n\nfunction C(aA1) {\n return 3.0 * aA1;\n} // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n} // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\nfunction getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\n\nfunction binarySubdivide(aX, _aA, _aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0,\n aA = _aA,\n aB = _aB;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n}\n\nfunction newtonRaphsonIterate(aX, _aGuessT, mX1, mX2) {\n var aGuessT = _aGuessT;\n\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n}\n\nexport default function bezier(mX1, mY1, mX2, mY2) {\n if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n } // Precompute samples table\n\n\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function BezierEasing(x) {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n } // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n\n if (x === 0) {\n return 0;\n }\n\n if (x === 1) {\n return 1;\n }\n\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport Easing from '../../vendor/react-native/Animated/Easing';\nexport default Easing;","import { useEffect, useRef } from 'react';\nimport { processColor } from '../Colors';\nimport { makeRemote } from '../core';\nimport { isWeb, isJest } from '../PlatformChecker';\nimport { colorProps } from '../UpdateProps';\nimport WorkletEventHandler from '../WorkletEventHandler';\nexport function useEvent(handler, eventNames = [], rebuild = false) {\n const initRef = useRef(null);\n if (initRef.current === null) {\n initRef.current = new WorkletEventHandler(handler, eventNames);\n }\n else if (rebuild) {\n initRef.current.updateWorklet(handler);\n }\n return initRef;\n}\nexport function useHandler(handlers, dependencies) {\n const initRef = useRef(null);\n if (initRef.current === null) {\n initRef.current = {\n context: makeRemote({}),\n savedDependencies: [],\n };\n }\n useEffect(() => {\n return () => {\n initRef.current = null;\n };\n }, []);\n const { context, savedDependencies } = initRef.current;\n dependencies = buildDependencies(dependencies, handlers);\n const doDependenciesDiffer = !areDependenciesEqual(dependencies, savedDependencies);\n initRef.current.savedDependencies = dependencies;\n const useWeb = isWeb() || isJest();\n return { context, doDependenciesDiffer, useWeb };\n}\n// builds one big hash from multiple worklets' hashes\nexport function buildWorkletsHash(handlers) {\n return Object.values(handlers).reduce((acc, worklet) => \n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n acc + worklet.__workletHash.toString(), '');\n}\n// builds dependencies array for gesture handlers\nexport function buildDependencies(dependencies, handlers) {\n const handlersList = Object.values(handlers).filter((handler) => handler !== undefined);\n if (!dependencies) {\n dependencies = handlersList.map((handler) => {\n return {\n workletHash: handler.__workletHash,\n closure: handler._closure,\n };\n });\n }\n else {\n dependencies.push(buildWorkletsHash(handlersList));\n }\n return dependencies;\n}\n// this is supposed to work as useEffect comparison\nexport function areDependenciesEqual(nextDeps, prevDeps) {\n function is(x, y) {\n /* eslint-disable no-self-compare */\n return (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y);\n /* eslint-enable no-self-compare */\n }\n const objectIs = typeof Object.is === 'function' ? Object.is : is;\n function areHookInputsEqual(nextDeps, prevDeps) {\n if (!nextDeps || !prevDeps || prevDeps.length !== nextDeps.length) {\n return false;\n }\n for (let i = 0; i < prevDeps.length; ++i) {\n if (!objectIs(nextDeps[i], prevDeps[i])) {\n return false;\n }\n }\n return true;\n }\n return areHookInputsEqual(nextDeps, prevDeps);\n}\nexport function hasColorProps(updates) {\n const colorPropsSet = new Set(colorProps);\n for (const key in updates) {\n if (colorPropsSet.has(key)) {\n return true;\n }\n }\n return false;\n}\nexport function parseColors(updates) {\n 'worklet';\n for (const key in updates) {\n if (colorProps.indexOf(key) !== -1) {\n // value could be an animation in which case processColor will recognize it and will return undefined\n // -> in such a case we don't want to override style of that key\n const processedColor = processColor(updates[key]);\n if (processedColor !== undefined) {\n updates[key] = processedColor;\n }\n }\n }\n}\nexport function canApplyOptimalisation(upadterFn) {\n const FUNCTIONLESS_FLAG = 0b00000001;\n const STATEMENTLESS_FLAG = 0b00000010;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const optimalization = upadterFn.__optimalization;\n return (optimalization & FUNCTIONLESS_FLAG && optimalization & STATEMENTLESS_FLAG);\n}\nexport function isAnimated(prop) {\n 'worklet';\n if (Array.isArray(prop)) {\n return prop.some(isAnimated);\n }\n else if (typeof prop === 'object') {\n if (prop.onFrame !== undefined) {\n return true;\n }\n else {\n return Object.values(prop).some(isAnimated);\n }\n }\n return false;\n}\nexport function styleDiff(oldStyle, newStyle) {\n 'worklet';\n const diff = {};\n for (const key in oldStyle) {\n if (newStyle[key] === undefined) {\n diff[key] = null;\n }\n }\n for (const key in newStyle) {\n const value = newStyle[key];\n const oldValue = oldStyle[key];\n if (isAnimated(value)) {\n // do nothing\n continue;\n }\n if (oldValue !== value) {\n diff[key] = value;\n }\n }\n return diff;\n}\nexport function getStyleWithoutAnimations(newStyle) {\n 'worklet';\n const diff = {};\n for (const key in newStyle) {\n const value = newStyle[key];\n if (isAnimated(value)) {\n continue;\n }\n diff[key] = value;\n }\n return diff;\n}\nexport const validateAnimatedStyles = (styles) => {\n 'worklet';\n if (typeof styles !== 'object') {\n throw new Error(`useAnimatedStyle has to return an object, found ${typeof styles} instead`);\n }\n else if (Array.isArray(styles)) {\n throw new Error('useAnimatedStyle has to return an object and cannot return static styles combined with dynamic ones. Please do merging where a component receives props.');\n }\n};\n","export var NetworkStatus;\n(function (NetworkStatus) {\n NetworkStatus[NetworkStatus[\"loading\"] = 1] = \"loading\";\n NetworkStatus[NetworkStatus[\"setVariables\"] = 2] = \"setVariables\";\n NetworkStatus[NetworkStatus[\"fetchMore\"] = 3] = \"fetchMore\";\n NetworkStatus[NetworkStatus[\"refetch\"] = 4] = \"refetch\";\n NetworkStatus[NetworkStatus[\"poll\"] = 6] = \"poll\";\n NetworkStatus[NetworkStatus[\"ready\"] = 7] = \"ready\";\n NetworkStatus[NetworkStatus[\"error\"] = 8] = \"error\";\n})(NetworkStatus || (NetworkStatus = {}));\nexport function isNetworkRequestInFlight(networkStatus) {\n return networkStatus ? networkStatus < 7 : false;\n}\n//# sourceMappingURL=networkStatus.js.map","import { Platform } from 'react-native';\nexport function isJest() {\n return !!process.env.JEST_WORKER_ID;\n}\nexport function isChromeDebugger() {\n return !global.nativeCallSyncHook || global.__REMOTEDEV__;\n}\nexport function isWeb() {\n return Platform.OS === 'web';\n}\nexport function shouldBeUseWeb() {\n return isJest() || isChromeDebugger() || isWeb();\n}\nexport function nativeShouldBeMock() {\n return isJest() || isChromeDebugger();\n}\n","export { default as Background } from './Background';\nexport { default as getDefaultHeaderHeight } from './Header/getDefaultHeaderHeight';\nexport { default as getHeaderTitle } from './Header/getHeaderTitle';\nexport { default as Header } from './Header/Header';\nexport { default as HeaderBackButton } from './Header/HeaderBackButton';\nexport { default as HeaderBackContext } from './Header/HeaderBackContext';\nexport { default as HeaderBackground } from './Header/HeaderBackground';\nexport { default as HeaderHeightContext } from './Header/HeaderHeightContext';\nexport { default as HeaderShownContext } from './Header/HeaderShownContext';\nexport { default as HeaderTitle } from './Header/HeaderTitle';\nexport { default as useHeaderHeight } from './Header/useHeaderHeight';\nexport { default as MissingIcon } from './MissingIcon';\nexport { default as PlatformPressable } from './PlatformPressable';\nexport { default as ResourceSavingView } from './ResourceSavingView';\nexport { default as SafeAreaProviderCompat } from './SafeAreaProviderCompat';\nexport { default as Screen } from './Screen';\nexport const Assets = [\n// eslint-disable-next-line import/no-commonjs\nrequire('./assets/back-icon.png'),\n// eslint-disable-next-line import/no-commonjs\nrequire('./assets/back-icon-mask.png')];\nexport * from './types';\n//# sourceMappingURL=index.js.map","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport UIManager from '../UIManager'; // NativeModules shim\n\nvar NativeModules = {\n UIManager\n};\nexport default NativeModules;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport InteractionManager from '../../../../exports/InteractionManager';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an Animated.Value is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\n\nfunction _flush(rootNode) {\n var animatedStyles = new Set();\n\n function findAnimatedStyles(node) {\n /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.68 was deployed. To see the error delete this\n * comment and run Flow. */\n if (typeof node.update === 'function') {\n animatedStyles.add(node);\n } else {\n node.__getChildren().forEach(findAnimatedStyles);\n }\n }\n\n findAnimatedStyles(rootNode);\n /* $FlowFixMe */\n\n animatedStyles.forEach(animatedStyle => animatedStyle.update());\n}\n/**\n * Standard value for driving animations. One `Animated.Value` can drive\n * multiple properties in a synchronized fashion, but can only be driven by one\n * mechanism at a time. Using a new mechanism (e.g. starting a new animation,\n * or calling `setValue`) will stop any previous ones.\n *\n * See https://reactnative.dev/docs/animatedvalue.html\n */\n\n\nclass AnimatedValue extends AnimatedWithChildren {\n constructor(value) {\n super();\n\n if (typeof value !== 'number') {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n\n this._startingValue = this._value = value;\n this._offset = 0;\n this._animation = null;\n }\n\n __detach() {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), value => {\n this._value = value;\n });\n }\n\n this.stopAnimation();\n\n super.__detach();\n }\n\n __getValue() {\n return this._value + this._offset;\n }\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#setvalue\n */\n\n\n setValue(value) {\n if (this._animation) {\n this._animation.stop();\n\n this._animation = null;\n }\n\n this._updateValue(value, !this.__isNative\n /* don't perform a flush for natively driven values */\n );\n\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), value);\n }\n }\n /**\n * Sets an offset that is applied on top of whatever value is set, whether via\n * `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#setoffset\n */\n\n\n setOffset(offset) {\n this._offset = offset;\n\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeOffset(this.__getNativeTag(), offset);\n }\n }\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#flattenoffset\n */\n\n\n flattenOffset() {\n this._value += this._offset;\n this._offset = 0;\n\n if (this.__isNative) {\n NativeAnimatedAPI.flattenAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n /**\n * Sets the offset value to the base value, and resets the base value to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#extractoffset\n */\n\n\n extractOffset() {\n this._offset += this._value;\n this._value = 0;\n\n if (this.__isNative) {\n NativeAnimatedAPI.extractAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#stopanimation\n */\n\n\n stopAnimation(callback) {\n this.stopTracking();\n this._animation && this._animation.stop();\n this._animation = null;\n callback && callback(this.__getValue());\n }\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#resetanimation\n */\n\n\n resetAnimation(callback) {\n this.stopAnimation(callback);\n this._value = this._startingValue;\n }\n\n _onAnimatedValueUpdateReceived(value) {\n this._updateValue(value, false\n /*flush*/\n );\n }\n /**\n * Interpolates the value before updating the property, e.g. mapping 0-1 to\n * 0-10.\n */\n\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n /**\n * Typically only used internally, but could be used by a custom Animation\n * class.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#animate\n */\n\n\n animate(animation, callback) {\n var handle = null;\n\n if (animation.__isInteraction) {\n handle = InteractionManager.createInteractionHandle();\n }\n\n var previousAnimation = this._animation;\n this._animation && this._animation.stop();\n this._animation = animation;\n animation.start(this._value, value => {\n // Natively driven animations will never call into that callback, therefore we can always\n // pass flush = true to allow the updated value to propagate to native with setNativeProps\n this._updateValue(value, true\n /* flush */\n );\n }, result => {\n this._animation = null;\n\n if (handle !== null) {\n InteractionManager.clearInteractionHandle(handle);\n }\n\n callback && callback(result);\n }, previousAnimation, this);\n }\n /**\n * Typically only used internally.\n */\n\n\n stopTracking() {\n this._tracking && this._tracking.__detach();\n this._tracking = null;\n }\n /**\n * Typically only used internally.\n */\n\n\n track(tracking) {\n this.stopTracking();\n this._tracking = tracking;\n }\n\n _updateValue(value, flush) {\n if (value === undefined) {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n\n this._value = value;\n\n if (flush) {\n _flush(this);\n }\n\n super.__callListeners(this.__getValue());\n }\n\n __getNativeConfig() {\n return {\n type: 'value',\n value: this._value,\n offset: this._offset\n };\n }\n\n}\n\nexport default AnimatedValue;","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nexport { nanoid, customAlphabet }\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nexport var defaultProps = {\n children: true,\n dataSet: true,\n nativeID: true,\n ref: true,\n suppressHydrationWarning: true,\n testID: true\n};\nexport var accessibilityProps = {\n accessibilityActiveDescendant: true,\n accessibilityAtomic: true,\n accessibilityAutoComplete: true,\n accessibilityBusy: true,\n accessibilityChecked: true,\n accessibilityColumnCount: true,\n accessibilityColumnIndex: true,\n accessibilityColumnSpan: true,\n accessibilityControls: true,\n accessibilityCurrent: true,\n accessibilityDescribedBy: true,\n accessibilityDetails: true,\n accessibilityDisabled: true,\n accessibilityErrorMessage: true,\n accessibilityExpanded: true,\n accessibilityFlowTo: true,\n accessibilityHasPopup: true,\n accessibilityHidden: true,\n accessibilityInvalid: true,\n accessibilityKeyShortcuts: true,\n accessibilityLabel: true,\n accessibilityLabelledBy: true,\n accessibilityLevel: true,\n accessibilityLiveRegion: true,\n accessibilityModal: true,\n accessibilityMultiline: true,\n accessibilityMultiSelectable: true,\n accessibilityOrientation: true,\n accessibilityOwns: true,\n accessibilityPlaceholder: true,\n accessibilityPosInSet: true,\n accessibilityPressed: true,\n accessibilityReadOnly: true,\n accessibilityRequired: true,\n accessibilityRole: true,\n accessibilityRoleDescription: true,\n accessibilityRowCount: true,\n accessibilityRowIndex: true,\n accessibilityRowSpan: true,\n accessibilitySelected: true,\n accessibilitySetSize: true,\n accessibilitySort: true,\n accessibilityValueMax: true,\n accessibilityValueMin: true,\n accessibilityValueNow: true,\n accessibilityValueText: true,\n dir: true,\n focusable: true\n};\nexport var clickProps = {\n onClick: true,\n onClickCapture: true,\n onContextMenu: true\n};\nexport var focusProps = {\n onBlur: true,\n onFocus: true\n};\nexport var keyboardProps = {\n onKeyDown: true,\n onKeyDownCapture: true,\n onKeyUp: true,\n onKeyUpCapture: true\n};\nexport var mouseProps = {\n onMouseDown: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseMove: true,\n onMouseOver: true,\n onMouseOut: true,\n onMouseUp: true\n};\nexport var touchProps = {\n onTouchCancel: true,\n onTouchCancelCapture: true,\n onTouchEnd: true,\n onTouchEndCapture: true,\n onTouchMove: true,\n onTouchMoveCapture: true,\n onTouchStart: true,\n onTouchStartCapture: true\n};\nexport var styleProps = {\n classList: true,\n style: true\n};","/* global _WORKLET */\nimport { isColor, convertToRGBA, rgbaArrayToRGBAColor, toGammaSpace, toLinearSpace, } from '../Colors';\nimport NativeReanimatedModule from '../NativeReanimated';\nlet IN_STYLE_UPDATER = false;\nexport function initialUpdaterRun(updater) {\n IN_STYLE_UPDATER = true;\n const result = updater();\n IN_STYLE_UPDATER = false;\n return result;\n}\nfunction recognizePrefixSuffix(value) {\n 'worklet';\n var _a;\n if (typeof value === 'string') {\n const match = value.match(/([A-Za-z]*)(-?\\d*\\.?\\d*)([eE][-+]?[0-9]+)?([A-Za-z%]*)/);\n if (!match) {\n throw Error(\"Couldn't parse animation value. Check if there isn't any typo.\");\n }\n const prefix = match[1];\n const suffix = match[4];\n // number with scientific notation\n const number = match[2] + ((_a = match[3]) !== null && _a !== void 0 ? _a : '');\n return { prefix, suffix, strippedValue: parseFloat(number) };\n }\n else {\n return { strippedValue: value };\n }\n}\nfunction decorateAnimation(animation) {\n 'worklet';\n if (animation.isHigherOrder) {\n return;\n }\n const baseOnStart = animation.onStart;\n const baseOnFrame = animation.onFrame;\n const animationCopy = Object.assign({}, animation);\n delete animationCopy.callback;\n const prefNumberSuffOnStart = (animation, value, timestamp, previousAnimation) => {\n var _a, _b, _c, _d;\n // recognize prefix, suffix, and updates stripped value on animation start\n const { prefix, suffix, strippedValue } = recognizePrefixSuffix(value);\n animation.__prefix = prefix;\n animation.__suffix = suffix;\n animation.strippedCurrent = strippedValue;\n const { strippedValue: strippedToValue } = recognizePrefixSuffix(animation.toValue);\n animation.current = strippedValue;\n animation.startValue = strippedValue;\n animation.toValue = strippedToValue;\n if (previousAnimation && previousAnimation !== animation) {\n const { prefix: paPrefix, suffix: paSuffix, strippedValue: paStrippedValue, } = recognizePrefixSuffix(previousAnimation.current);\n previousAnimation.current = paStrippedValue;\n previousAnimation.__prefix = paPrefix;\n previousAnimation.__suffix = paSuffix;\n }\n baseOnStart(animation, strippedValue, timestamp, previousAnimation);\n animation.current =\n ((_a = animation.__prefix) !== null && _a !== void 0 ? _a : '') +\n animation.current +\n ((_b = animation.__suffix) !== null && _b !== void 0 ? _b : '');\n if (previousAnimation && previousAnimation !== animation) {\n previousAnimation.current =\n ((_c = previousAnimation.__prefix) !== null && _c !== void 0 ? _c : '') +\n previousAnimation.current +\n ((_d = previousAnimation.__suffix) !== null && _d !== void 0 ? _d : '');\n }\n };\n const prefNumberSuffOnFrame = (animation, timestamp) => {\n var _a, _b;\n animation.current = animation.strippedCurrent;\n const res = baseOnFrame(animation, timestamp);\n animation.strippedCurrent = animation.current;\n animation.current =\n ((_a = animation.__prefix) !== null && _a !== void 0 ? _a : '') +\n animation.current +\n ((_b = animation.__suffix) !== null && _b !== void 0 ? _b : '');\n return res;\n };\n const tab = ['R', 'G', 'B', 'A'];\n const colorOnStart = (animation, value, timestamp, previousAnimation) => {\n let RGBAValue;\n let RGBACurrent;\n let RGBAToValue;\n const res = [];\n if (isColor(value)) {\n RGBACurrent = toLinearSpace(convertToRGBA(animation.current));\n RGBAValue = toLinearSpace(convertToRGBA(value));\n if (animation.toValue) {\n RGBAToValue = toLinearSpace(convertToRGBA(animation.toValue));\n }\n }\n tab.forEach((i, index) => {\n animation[i] = Object.assign({}, animationCopy);\n animation[i].current = RGBACurrent[index];\n animation[i].toValue = RGBAToValue ? RGBAToValue[index] : undefined;\n animation[i].onStart(animation[i], RGBAValue[index], timestamp, previousAnimation ? previousAnimation[i] : undefined);\n res.push(animation[i].current);\n });\n animation.current = rgbaArrayToRGBAColor(toGammaSpace(res));\n };\n const colorOnFrame = (animation, timestamp) => {\n const RGBACurrent = toLinearSpace(convertToRGBA(animation.current));\n const res = [];\n let finished = true;\n tab.forEach((i, index) => {\n animation[i].current = RGBACurrent[index];\n // @ts-ignore: disable-next-line\n finished &= animation[i].onFrame(animation[i], timestamp);\n res.push(animation[i].current);\n });\n animation.current = rgbaArrayToRGBAColor(toGammaSpace(res));\n return finished;\n };\n const arrayOnStart = (animation, value, timestamp, previousAnimation) => {\n value.forEach((v, i) => {\n animation[i] = Object.assign({}, animationCopy);\n animation[i].current = v;\n animation[i].toValue = animation.toValue[i];\n animation[i].onStart(animation[i], v, timestamp, previousAnimation ? previousAnimation[i] : undefined);\n });\n animation.current = value;\n };\n const arrayOnFrame = (animation, timestamp) => {\n let finished = true;\n animation.current.forEach((v, i) => {\n // @ts-ignore: disable-next-line\n finished &= animation[i].onFrame(animation[i], timestamp);\n animation.current[i] = animation[i].current;\n });\n return finished;\n };\n animation.onStart = (animation, value, timestamp, previousAnimation) => {\n if (isColor(value)) {\n colorOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = colorOnFrame;\n return;\n }\n else if (Array.isArray(value)) {\n arrayOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = arrayOnFrame;\n return;\n }\n else if (typeof value === 'string') {\n prefNumberSuffOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = prefNumberSuffOnFrame;\n return;\n }\n baseOnStart(animation, value, timestamp, previousAnimation);\n };\n}\nexport function defineAnimation(starting, factory) {\n 'worklet';\n if (IN_STYLE_UPDATER) {\n return starting;\n }\n const create = () => {\n 'worklet';\n const animation = factory();\n decorateAnimation(animation);\n return animation;\n };\n if (_WORKLET || !NativeReanimatedModule.native) {\n return create();\n }\n // @ts-ignore: eslint-disable-line\n return create;\n}\nexport function cancelAnimation(sharedValue) {\n 'worklet';\n // setting the current value cancels the animation if one is currently running\n sharedValue.value = sharedValue.value; // eslint-disable-line no-self-assign\n}\n// TODO it should work only if there was no animation before.\nexport function withStartValue(startValue, animation) {\n 'worklet';\n return defineAnimation(startValue, () => {\n 'worklet';\n if (!_WORKLET && typeof animation === 'function') {\n animation = animation();\n }\n animation.current = startValue;\n return animation;\n });\n}\n","/**\n * https://github.com/gre/bezier-easing\n * BezierEasing - use bezier curve for transition easing function\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\n */\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nexport function Bezier(mX1, mY1, mX2, mY2) {\n 'worklet';\n const NEWTON_ITERATIONS = 4;\n const NEWTON_MIN_SLOPE = 0.001;\n const SUBDIVISION_PRECISION = 0.0000001;\n const SUBDIVISION_MAX_ITERATIONS = 10;\n const kSplineTableSize = 11;\n const kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n function A(aA1, aA2) {\n 'worklet';\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n function B(aA1, aA2) {\n 'worklet';\n return 3.0 * aA2 - 6.0 * aA1;\n }\n function C(aA1) {\n 'worklet';\n return 3.0 * aA1;\n }\n // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n function calcBezier(aT, aA1, aA2) {\n 'worklet';\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n }\n // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n function getSlope(aT, aA1, aA2) {\n 'worklet';\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n 'worklet';\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n }\n else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION &&\n ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n }\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n 'worklet';\n for (let i = 0; i < NEWTON_ITERATIONS; ++i) {\n const currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n const currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n function LinearEasing(x) {\n 'worklet';\n return x;\n }\n if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n if (mX1 === mY1 && mX2 === mY2) {\n return LinearEasing;\n }\n // FIXME: Float32Array is not available in Hermes right now\n //\n // var float32ArraySupported = typeof Float32Array === 'function';\n // const sampleValues = float32ArraySupported\n // ? new Float32Array(kSplineTableSize)\n // : new Array(kSplineTableSize);\n // Precompute samples table\n const sampleValues = new Array(kSplineTableSize);\n for (let i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n function getTForX(aX) {\n 'worklet';\n let intervalStart = 0.0;\n let currentSample = 1;\n const lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n // Interpolate to provide an initial guess for t\n const dist = (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n const guessForT = intervalStart + dist * kSampleStepSize;\n const initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n else if (initialSlope === 0.0) {\n return guessForT;\n }\n else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n return function BezierEasing(x) {\n 'worklet';\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n }\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n","// spread and rest parameters can't be used in worklets right now\n/* eslint-disable prefer-rest-params */\n/* eslint-disable prefer-spread */\n/* global _WORKLET */\n// @ts-ignore reanimated1/Easing is JS file\nimport EasingNode from '../reanimated1/Easing';\nimport { Bezier } from './Bezier';\n/**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\nfunction linear(t) {\n 'worklet';\n return t;\n}\n/**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\nfunction ease(t) {\n 'worklet';\n return Bezier(0.42, 0, 1, 1)(t);\n}\n/**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\nfunction quad(t) {\n 'worklet';\n return t * t;\n}\n/**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\nfunction cubic(t) {\n 'worklet';\n return t * t * t;\n}\n/**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\nfunction poly(n) {\n 'worklet';\n return (t) => {\n 'worklet';\n return Math.pow(t, n);\n };\n}\n/**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\nfunction sin(t) {\n 'worklet';\n return 1 - Math.cos((t * Math.PI) / 2);\n}\n/**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\nfunction circle(t) {\n 'worklet';\n return 1 - Math.sqrt(1 - t * t);\n}\n/**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\nfunction exp(t) {\n 'worklet';\n return Math.pow(2, 10 * (t - 1));\n}\n/**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\nfunction elastic(bounciness = 1) {\n 'worklet';\n const p = bounciness * Math.PI;\n return (t) => {\n 'worklet';\n return 1 - Math.pow(Math.cos((t * Math.PI) / 2), 3) * Math.cos(t * p);\n };\n}\n/**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * Wolfram Plot:\n *\n * - http://tiny.cc/back_default (s = 1.70158, default)\n */\nfunction back(s = 1.70158) {\n 'worklet';\n return (t) => {\n 'worklet';\n return t * t * ((s + 1) * t - s);\n };\n}\n/**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\nfunction bounce(t) {\n 'worklet';\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n if (t < 2 / 2.75) {\n const t2 = t - 1.5 / 2.75;\n return 7.5625 * t2 * t2 + 0.75;\n }\n if (t < 2.5 / 2.75) {\n const t2 = t - 2.25 / 2.75;\n return 7.5625 * t2 * t2 + 0.9375;\n }\n const t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n}\n/**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\nfunction bezier(x1, y1, x2, y2) {\n 'worklet';\n return {\n factory: () => {\n 'worklet';\n return Bezier(x1, y1, x2, y2);\n },\n };\n}\nfunction bezierFn(x1, y1, x2, y2) {\n 'worklet';\n return Bezier(x1, y1, x2, y2);\n}\n/**\n * Runs an easing function forwards.\n */\nfunction in_(easing) {\n 'worklet';\n return easing;\n}\n/**\n * Runs an easing function backwards.\n */\nfunction out(easing) {\n 'worklet';\n return (t) => {\n 'worklet';\n return 1 - easing(1 - t);\n };\n}\n/**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\nfunction inOut(easing) {\n 'worklet';\n return (t) => {\n 'worklet';\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n return 1 - easing((1 - t) * 2) / 2;\n };\n}\nconst EasingObject = {\n linear,\n ease,\n quad,\n cubic,\n poly,\n sin,\n circle,\n exp,\n elastic,\n back,\n bounce,\n bezier,\n bezierFn,\n in: in_,\n out,\n inOut,\n};\n// TODO type worklets\nfunction createChecker(worklet, workletName, prevArgs) {\n /* should return Animated.Value or worklet */\n function checkIfReaOne() {\n 'worklet';\n if (arguments && !_WORKLET) {\n for (let i = 0; i < arguments.length; i++) {\n const arg = arguments[i];\n if (arg && arg.__nodeID) {\n console.warn(`Easing was renamed to EasingNode in Reanimated 2. Please use EasingNode instead`);\n if (prevArgs) {\n return EasingNode[workletName]\n .apply(undefined, prevArgs)\n .apply(undefined, arguments);\n }\n return EasingNode[workletName].apply(undefined, arguments);\n }\n }\n }\n // @ts-ignore this is implicitly any - TODO\n const res = worklet.apply(this, arguments);\n if (!_WORKLET && res && typeof res === 'function' && res.__workletHash) {\n return createChecker(res, workletName, arguments);\n }\n return res;\n }\n // use original worklet on UI side\n checkIfReaOne._closure = worklet._closure;\n checkIfReaOne.asString = worklet.asString;\n checkIfReaOne.__workletHash = worklet.__workletHash;\n checkIfReaOne.__location = worklet.__location;\n return checkIfReaOne;\n}\nObject.keys(EasingObject).forEach((key) => {\n EasingObject[key] = createChecker(EasingObject[key], key);\n});\nexport const Easing = EasingObject;\n","import defineInspect from \"../jsutils/defineInspect.mjs\";\n\n/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport var Location = /*#__PURE__*/function () {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n function Location(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n var _proto = Location.prototype;\n\n _proto.toJSON = function toJSON() {\n return {\n start: this.start,\n end: this.end\n };\n };\n\n return Location;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Location);\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport var Token = /*#__PURE__*/function () {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. is always the first node and \n * the last.\n */\n function Token(kind, start, end, line, column, prev, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column;\n this.value = value;\n this.prev = prev;\n this.next = null;\n }\n\n var _proto2 = Token.prototype;\n\n _proto2.toJSON = function toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column\n };\n };\n\n return Token;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Token);\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n return maybeNode != null && typeof maybeNode.kind === 'string';\n}\n/**\n * The list of all possible AST node types.\n */\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar assets = [];\nexport function registerAsset(asset) {\n // `push` returns new array length, so the first asset will\n // get id 1 (not 0) to make the value truthy\n return assets.push(asset);\n}\nexport function getAssetByID(assetId) {\n return assets[assetId - 1];\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar dataUriPattern = /^data:/;\nexport class ImageUriCache {\n static has(uri) {\n var entries = ImageUriCache._entries;\n var isDataUri = dataUriPattern.test(uri);\n return isDataUri || Boolean(entries[uri]);\n }\n\n static add(uri) {\n var entries = ImageUriCache._entries;\n var lastUsedTimestamp = Date.now();\n\n if (entries[uri]) {\n entries[uri].lastUsedTimestamp = lastUsedTimestamp;\n entries[uri].refCount += 1;\n } else {\n entries[uri] = {\n lastUsedTimestamp,\n refCount: 1\n };\n }\n }\n\n static remove(uri) {\n var entries = ImageUriCache._entries;\n\n if (entries[uri]) {\n entries[uri].refCount -= 1;\n } // Free up entries when the cache is \"full\"\n\n\n ImageUriCache._cleanUpIfNeeded();\n }\n\n static _cleanUpIfNeeded() {\n var entries = ImageUriCache._entries;\n var imageUris = Object.keys(entries);\n\n if (imageUris.length + 1 > ImageUriCache._maximumEntries) {\n var leastRecentlyUsedKey;\n var leastRecentlyUsedEntry;\n imageUris.forEach(uri => {\n var entry = entries[uri];\n\n if ((!leastRecentlyUsedEntry || entry.lastUsedTimestamp < leastRecentlyUsedEntry.lastUsedTimestamp) && entry.refCount === 0) {\n leastRecentlyUsedKey = uri;\n leastRecentlyUsedEntry = entry;\n }\n });\n\n if (leastRecentlyUsedKey) {\n delete entries[leastRecentlyUsedKey];\n }\n }\n }\n\n}\nImageUriCache._maximumEntries = 256;\nImageUriCache._entries = {};\nvar id = 0;\nvar requests = {};\nvar ImageLoader = {\n abort(requestId) {\n var image = requests[\"\" + requestId];\n\n if (image) {\n image.onerror = null;\n image.onload = null;\n image = null;\n delete requests[\"\" + requestId];\n }\n },\n\n getSize(uri, success, failure) {\n var complete = false;\n var interval = setInterval(callback, 16);\n var requestId = ImageLoader.load(uri, callback, errorCallback);\n\n function callback() {\n var image = requests[\"\" + requestId];\n\n if (image) {\n var naturalHeight = image.naturalHeight,\n naturalWidth = image.naturalWidth;\n\n if (naturalHeight && naturalWidth) {\n success(naturalWidth, naturalHeight);\n complete = true;\n }\n }\n\n if (complete) {\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n }\n\n function errorCallback() {\n if (typeof failure === 'function') {\n failure();\n }\n\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n },\n\n has(uri) {\n return ImageUriCache.has(uri);\n },\n\n load(uri, onLoad, onError) {\n id += 1;\n var image = new window.Image();\n image.onerror = onError;\n\n image.onload = e => {\n // avoid blocking the main thread\n var onDecode = () => onLoad({\n nativeEvent: e\n });\n\n if (typeof image.decode === 'function') {\n // Safari currently throws exceptions when decoding svgs.\n // We want to catch that error and allow the load handler\n // to be forwarded to the onLoad handler in this case\n image.decode().then(onDecode, onDecode);\n } else {\n setTimeout(onDecode, 0);\n }\n };\n\n image.src = uri;\n requests[\"\" + id] = image;\n return id;\n },\n\n prefetch(uri) {\n return new Promise((resolve, reject) => {\n ImageLoader.load(uri, () => {\n // Add the uri to the cache so it can be immediately displayed when used\n // but also immediately remove it to correctly reflect that it has no active references\n ImageUriCache.add(uri);\n ImageUriCache.remove(uri);\n resolve();\n }, reject);\n });\n },\n\n queryCache(uris) {\n var result = {};\n uris.forEach(u => {\n if (ImageUriCache.has(u)) {\n result[u] = 'disk/memory';\n }\n });\n return Promise.resolve(result);\n }\n\n};\nexport default ImageLoader;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"accessibilityLabel\", \"blurRadius\", \"defaultSource\", \"draggable\", \"onError\", \"onLayout\", \"onLoad\", \"onLoadEnd\", \"onLoadStart\", \"pointerEvents\", \"source\", \"style\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport { getAssetByID } from '../../modules/AssetRegistry';\nimport { createBoxShadowValue } from '../StyleSheet/preprocess';\nimport ImageLoader from '../../modules/ImageLoader';\nimport PixelRatio from '../PixelRatio';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\nimport View from '../View';\nvar ERRORED = 'ERRORED';\nvar LOADED = 'LOADED';\nvar LOADING = 'LOADING';\nvar IDLE = 'IDLE';\nvar _filterId = 0;\nvar svgDataUriPattern = /^(data:image\\/svg\\+xml;utf8,)(.*)/;\n\nfunction createTintColorSVG(tintColor, id) {\n return tintColor && id != null ? /*#__PURE__*/React.createElement(\"svg\", {\n style: {\n position: 'absolute',\n height: 0,\n visibility: 'hidden',\n width: 0\n }\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"tint-\" + id,\n suppressHydrationWarning: true\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodColor: \"\" + tintColor,\n key: tintColor\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"SourceAlpha\",\n operator: \"atop\"\n })))) : null;\n}\n\nfunction getFlatStyle(style, blurRadius, filterId) {\n var flatStyle = StyleSheet.flatten(style);\n var filter = flatStyle.filter,\n resizeMode = flatStyle.resizeMode,\n shadowOffset = flatStyle.shadowOffset,\n tintColor = flatStyle.tintColor; // Add CSS filters\n // React Native exposes these features as props and proprietary styles\n\n var filters = [];\n var _filter = null;\n\n if (filter) {\n filters.push(filter);\n }\n\n if (blurRadius) {\n filters.push(\"blur(\" + blurRadius + \"px)\");\n }\n\n if (shadowOffset) {\n var shadowString = createBoxShadowValue(flatStyle);\n\n if (shadowString) {\n filters.push(\"drop-shadow(\" + shadowString + \")\");\n }\n }\n\n if (tintColor && filterId != null) {\n filters.push(\"url(#tint-\" + filterId + \")\");\n }\n\n if (filters.length > 0) {\n _filter = filters.join(' ');\n } // These styles are converted to CSS filters applied to the\n // element displaying the background image.\n\n\n delete flatStyle.blurRadius;\n delete flatStyle.shadowColor;\n delete flatStyle.shadowOpacity;\n delete flatStyle.shadowOffset;\n delete flatStyle.shadowRadius;\n delete flatStyle.tintColor; // These styles are not supported on View\n\n delete flatStyle.overlayColor;\n delete flatStyle.resizeMode;\n return [flatStyle, resizeMode, _filter, tintColor];\n}\n\nfunction resolveAssetDimensions(source) {\n if (typeof source === 'number') {\n var _getAssetByID = getAssetByID(source),\n _height = _getAssetByID.height,\n _width = _getAssetByID.width;\n\n return {\n height: _height,\n width: _width\n };\n } else if (source != null && !Array.isArray(source) && typeof source === 'object') {\n var _height2 = source.height,\n _width2 = source.width;\n return {\n height: _height2,\n width: _width2\n };\n }\n}\n\nfunction resolveAssetUri(source) {\n var uri = null;\n\n if (typeof source === 'number') {\n // get the URI from the packager\n var asset = getAssetByID(source);\n\n if (asset == null) {\n throw new Error(\"Image: asset with ID \\\"\" + source + \"\\\" could not be found. Please check the image source or packager.\");\n }\n\n var scale = asset.scales[0];\n\n if (asset.scales.length > 1) {\n var preferredScale = PixelRatio.get(); // Get the scale which is closest to the preferred scale\n\n scale = asset.scales.reduce((prev, curr) => Math.abs(curr - preferredScale) < Math.abs(prev - preferredScale) ? curr : prev);\n }\n\n var scaleSuffix = scale !== 1 ? \"@\" + scale + \"x\" : '';\n uri = asset ? asset.httpServerLocation + \"/\" + asset.name + scaleSuffix + \".\" + asset.type : '';\n } else if (typeof source === 'string') {\n uri = source;\n } else if (source && typeof source.uri === 'string') {\n uri = source.uri;\n }\n\n if (uri) {\n var match = uri.match(svgDataUriPattern); // inline SVG markup may contain characters (e.g., #, \") that need to be escaped\n\n if (match) {\n var prefix = match[1],\n svg = match[2];\n var encodedSvg = encodeURIComponent(svg);\n return \"\" + prefix + encodedSvg;\n }\n }\n\n return uri;\n}\n\nvar Image = /*#__PURE__*/React.forwardRef((props, ref) => {\n var accessibilityLabel = props.accessibilityLabel,\n blurRadius = props.blurRadius,\n defaultSource = props.defaultSource,\n draggable = props.draggable,\n onError = props.onError,\n onLayout = props.onLayout,\n onLoad = props.onLoad,\n onLoadEnd = props.onLoadEnd,\n onLoadStart = props.onLoadStart,\n pointerEvents = props.pointerEvents,\n source = props.source,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (props.children) {\n throw new Error('The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.');\n }\n }\n\n var _React$useState = React.useState(() => {\n var uri = resolveAssetUri(source);\n\n if (uri != null) {\n var isLoaded = ImageLoader.has(uri);\n\n if (isLoaded) {\n return LOADED;\n }\n }\n\n return IDLE;\n }),\n state = _React$useState[0],\n updateState = _React$useState[1];\n\n var _React$useState2 = React.useState({}),\n layout = _React$useState2[0],\n updateLayout = _React$useState2[1];\n\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hiddenImageRef = React.useRef(null);\n var filterRef = React.useRef(_filterId++);\n var requestRef = React.useRef(null);\n var shouldDisplaySource = state === LOADED || state === LOADING && defaultSource == null;\n\n var _getFlatStyle = getFlatStyle(style, blurRadius, filterRef.current),\n flatStyle = _getFlatStyle[0],\n _resizeMode = _getFlatStyle[1],\n filter = _getFlatStyle[2],\n tintColor = _getFlatStyle[3];\n\n var resizeMode = props.resizeMode || _resizeMode || 'cover';\n var selectedSource = shouldDisplaySource ? source : defaultSource;\n var displayImageUri = resolveAssetUri(selectedSource);\n var imageSizeStyle = resolveAssetDimensions(selectedSource);\n var backgroundImage = displayImageUri ? \"url(\\\"\" + displayImageUri + \"\\\")\" : null;\n var backgroundSize = getBackgroundSize(); // Accessibility image allows users to trigger the browser's image context menu\n\n var hiddenImage = displayImageUri ? createElement('img', {\n alt: accessibilityLabel || '',\n style: styles.accessibilityImage$raw,\n draggable: draggable || false,\n ref: hiddenImageRef,\n src: displayImageUri\n }) : null;\n\n function getBackgroundSize() {\n if (hiddenImageRef.current != null && (resizeMode === 'center' || resizeMode === 'repeat')) {\n var _hiddenImageRef$curre = hiddenImageRef.current,\n naturalHeight = _hiddenImageRef$curre.naturalHeight,\n naturalWidth = _hiddenImageRef$curre.naturalWidth;\n var _height3 = layout.height,\n _width3 = layout.width;\n\n if (naturalHeight && naturalWidth && _height3 && _width3) {\n var scaleFactor = Math.min(1, _width3 / naturalWidth, _height3 / naturalHeight);\n var x = Math.ceil(scaleFactor * naturalWidth);\n var y = Math.ceil(scaleFactor * naturalHeight);\n return x + \"px \" + y + \"px\";\n }\n }\n }\n\n function handleLayout(e) {\n if (resizeMode === 'center' || resizeMode === 'repeat' || onLayout) {\n var _layout = e.nativeEvent.layout;\n onLayout && onLayout(e);\n updateLayout(_layout);\n }\n } // Image loading\n\n\n var uri = resolveAssetUri(source);\n React.useEffect(() => {\n abortPendingRequest();\n\n if (uri != null) {\n updateState(LOADING);\n\n if (onLoadStart) {\n onLoadStart();\n }\n\n requestRef.current = ImageLoader.load(uri, function load(e) {\n updateState(LOADED);\n\n if (onLoad) {\n onLoad(e);\n }\n\n if (onLoadEnd) {\n onLoadEnd();\n }\n }, function error() {\n updateState(ERRORED);\n\n if (onError) {\n onError({\n nativeEvent: {\n error: \"Failed to load resource \" + uri + \" (404)\"\n }\n });\n }\n\n if (onLoadEnd) {\n onLoadEnd();\n }\n });\n }\n\n function abortPendingRequest() {\n if (requestRef.current != null) {\n ImageLoader.abort(requestRef.current);\n requestRef.current = null;\n }\n }\n\n return abortPendingRequest;\n }, [uri, requestRef, updateState, onError, onLoad, onLoadEnd, onLoadStart]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n accessibilityLabel: accessibilityLabel,\n onLayout: handleLayout,\n pointerEvents: pointerEvents,\n ref: ref,\n style: [styles.root, hasTextAncestor && styles.inline, imageSizeStyle, flatStyle]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.image, resizeModeStyles[resizeMode], {\n backgroundImage,\n filter\n }, backgroundSize != null && {\n backgroundSize\n }],\n suppressHydrationWarning: true\n }), hiddenImage, createTintColorSVG(tintColor, filterRef.current));\n});\nImage.displayName = 'Image'; // $FlowIgnore: This is the correct type, but casting makes it unhappy since the variables aren't defined yet\n\nvar ImageWithStatics = Image;\n\nImageWithStatics.getSize = function (uri, success, failure) {\n ImageLoader.getSize(uri, success, failure);\n};\n\nImageWithStatics.prefetch = function (uri) {\n return ImageLoader.prefetch(uri);\n};\n\nImageWithStatics.queryCache = function (uris) {\n return ImageLoader.queryCache(uris);\n};\n\nvar styles = StyleSheet.create({\n root: {\n flexBasis: 'auto',\n overflow: 'hidden',\n zIndex: 0\n },\n inline: {\n display: 'inline-flex'\n },\n image: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n backgroundColor: 'transparent',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n height: '100%',\n width: '100%',\n zIndex: -1\n }),\n accessibilityImage$raw: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n opacity: 0,\n width: '100%',\n zIndex: -1\n })\n});\nvar resizeModeStyles = StyleSheet.create({\n center: {\n backgroundSize: 'auto'\n },\n contain: {\n backgroundSize: 'contain'\n },\n cover: {\n backgroundSize: 'cover'\n },\n none: {\n backgroundPosition: '0',\n backgroundSize: 'auto'\n },\n repeat: {\n backgroundPosition: '0',\n backgroundRepeat: 'repeat',\n backgroundSize: 'auto'\n },\n stretch: {\n backgroundSize: '100% 100%'\n }\n});\nexport default ImageWithStatics;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nvar unitlessNumbers = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\n\nvar prefixKey = (prefix, key) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nObject.keys(unitlessNumbers).forEach(prop => {\n prefixes.forEach(prefix => {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * From React 16.0.0\n * \n */\nimport isUnitlessNumber from '../unitlessNumbers';\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\n\nexport default dangerousStyleValue;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * From React 16.3.0\n * \n */\nimport dangerousStyleValue from './dangerousStyleValue';\n/**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\n\nexport default setValueForStyles;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport setValueForStyles from '../../modules/setValueForStyles';\n\nvar getRect = node => {\n // Unlike the DOM's getBoundingClientRect, React Native layout measurements\n // for \"height\" and \"width\" ignore scale transforms.\n // https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements\n var _getBoundingClientRec = getBoundingClientRect(node),\n x = _getBoundingClientRec.x,\n y = _getBoundingClientRec.y,\n top = _getBoundingClientRec.top,\n left = _getBoundingClientRec.left;\n\n var width = node.offsetWidth;\n var height = node.offsetHeight;\n return {\n x,\n y,\n width,\n height,\n top,\n left\n };\n};\n\nvar measureLayout = (node, relativeToNativeNode, callback) => {\n var relativeNode = relativeToNativeNode || node && node.parentNode;\n\n if (node && relativeNode) {\n setTimeout(() => {\n var relativeRect = getBoundingClientRect(relativeNode);\n\n var _getRect = getRect(node),\n height = _getRect.height,\n left = _getRect.left,\n top = _getRect.top,\n width = _getRect.width;\n\n var x = left - relativeRect.left;\n var y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }, 0);\n }\n};\n\nvar elementsToIgnore = {\n A: true,\n BODY: true,\n INPUT: true,\n SELECT: true,\n TEXTAREA: true\n};\nvar UIManager = {\n blur(node) {\n try {\n node.blur();\n } catch (err) {}\n },\n\n focus(node) {\n try {\n var name = node.nodeName; // A tabIndex of -1 allows element to be programmatically focused but\n // prevents keyboard focus. We don't want to set the tabindex value on\n // elements that should not prevent keyboard focus.\n\n if (node.getAttribute('tabIndex') == null && node.isContentEditable !== true && elementsToIgnore[name] == null) {\n node.setAttribute('tabIndex', '-1');\n }\n\n node.focus();\n } catch (err) {}\n },\n\n measure(node, callback) {\n measureLayout(node, null, callback);\n },\n\n measureInWindow(node, callback) {\n if (node) {\n setTimeout(() => {\n var _getRect2 = getRect(node),\n height = _getRect2.height,\n left = _getRect2.left,\n top = _getRect2.top,\n width = _getRect2.width;\n\n callback(left, top, width, height);\n }, 0);\n }\n },\n\n measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n measureLayout(node, relativeToNativeNode, onSuccess);\n },\n\n updateView(node, props) {\n for (var prop in props) {\n if (!Object.prototype.hasOwnProperty.call(props, prop)) {\n continue;\n }\n\n var value = props[prop];\n\n switch (prop) {\n case 'style':\n {\n setValueForStyles(node, value);\n break;\n }\n\n case 'class':\n case 'className':\n {\n node.setAttribute('class', value);\n break;\n }\n\n case 'text':\n case 'value':\n // native platforms use `text` prop to replace text input value\n node.value = value;\n break;\n\n default:\n node.setAttribute(prop, value);\n }\n }\n },\n\n configureNextLayoutAnimation(config, onAnimationDidEnd) {\n onAnimationDidEnd();\n },\n\n // mocks\n setLayoutAnimationEnabledExperimental() {}\n\n};\nexport default UIManager;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nclass Alert {\n static alert() {}\n\n}\n\nexport default Alert;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useLayoutEffect from '../../modules/useLayoutEffect';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport { getLocaleDirection, useLocaleContext } from '../../modules/useLocale';\nimport StyleSheet from '../StyleSheet';\nimport TextInputState from '../../modules/TextInputState';\n/**\n * Determines whether a 'selection' prop differs from a node's existing\n * selection state.\n */\n\nvar isSelectionStale = (node, selection) => {\n var selectionEnd = node.selectionEnd,\n selectionStart = node.selectionStart;\n var start = selection.start,\n end = selection.end;\n return start !== selectionStart || end !== selectionEnd;\n};\n/**\n * Certain input types do no support 'selectSelectionRange' and will throw an\n * error.\n */\n\n\nvar setSelection = (node, selection) => {\n if (isSelectionStale(node, selection)) {\n var start = selection.start,\n end = selection.end;\n\n try {\n node.setSelectionRange(start, end || start);\n } catch (e) {}\n }\n};\n\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n autoCapitalize: true,\n autoComplete: true,\n autoCorrect: true,\n autoFocus: true,\n defaultValue: true,\n disabled: true,\n lang: true,\n maxLength: true,\n onChange: true,\n onScroll: true,\n placeholder: true,\n pointerEvents: true,\n readOnly: true,\n rows: true,\n spellCheck: true,\n value: true,\n type: true\n});\n\nvar pickProps = props => pick(props, forwardPropsList); // If an Input Method Editor is processing key input, the 'keyCode' is 229.\n// https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n\n\nfunction isEventComposing(nativeEvent) {\n return nativeEvent.isComposing || nativeEvent.keyCode === 229;\n}\n\nvar focusTimeout = null;\nvar TextInput = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var _props$autoCapitalize = props.autoCapitalize,\n autoCapitalize = _props$autoCapitalize === void 0 ? 'sentences' : _props$autoCapitalize,\n autoComplete = props.autoComplete,\n autoCompleteType = props.autoCompleteType,\n _props$autoCorrect = props.autoCorrect,\n autoCorrect = _props$autoCorrect === void 0 ? true : _props$autoCorrect,\n blurOnSubmit = props.blurOnSubmit,\n clearTextOnFocus = props.clearTextOnFocus,\n dir = props.dir,\n _props$editable = props.editable,\n editable = _props$editable === void 0 ? true : _props$editable,\n _props$keyboardType = props.keyboardType,\n keyboardType = _props$keyboardType === void 0 ? 'default' : _props$keyboardType,\n _props$multiline = props.multiline,\n multiline = _props$multiline === void 0 ? false : _props$multiline,\n _props$numberOfLines = props.numberOfLines,\n numberOfLines = _props$numberOfLines === void 0 ? 1 : _props$numberOfLines,\n onBlur = props.onBlur,\n onChange = props.onChange,\n onChangeText = props.onChangeText,\n onContentSizeChange = props.onContentSizeChange,\n onFocus = props.onFocus,\n onKeyPress = props.onKeyPress,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChange = props.onSelectionChange,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n onSubmitEditing = props.onSubmitEditing,\n placeholderTextColor = props.placeholderTextColor,\n returnKeyType = props.returnKeyType,\n _props$secureTextEntr = props.secureTextEntry,\n secureTextEntry = _props$secureTextEntr === void 0 ? false : _props$secureTextEntr,\n selection = props.selection,\n selectTextOnFocus = props.selectTextOnFocus,\n spellCheck = props.spellCheck;\n var type;\n var inputMode;\n\n switch (keyboardType) {\n case 'email-address':\n type = 'email';\n break;\n\n case 'number-pad':\n case 'numeric':\n inputMode = 'numeric';\n break;\n\n case 'decimal-pad':\n inputMode = 'decimal';\n break;\n\n case 'phone-pad':\n type = 'tel';\n break;\n\n case 'search':\n case 'web-search':\n type = 'search';\n break;\n\n case 'url':\n type = 'url';\n break;\n\n default:\n type = 'text';\n }\n\n if (secureTextEntry) {\n type = 'password';\n }\n\n var dimensions = React.useRef({\n height: null,\n width: null\n });\n var hostRef = React.useRef(null);\n var handleContentSizeChange = React.useCallback(hostNode => {\n if (multiline && onContentSizeChange && hostNode != null) {\n var newHeight = hostNode.scrollHeight;\n var newWidth = hostNode.scrollWidth;\n\n if (newHeight !== dimensions.current.height || newWidth !== dimensions.current.width) {\n dimensions.current.height = newHeight;\n dimensions.current.width = newWidth;\n onContentSizeChange({\n nativeEvent: {\n contentSize: {\n height: dimensions.current.height,\n width: dimensions.current.width\n }\n }\n });\n }\n }\n }, [multiline, onContentSizeChange]);\n var imperativeRef = React.useMemo(() => hostNode => {\n // TextInput needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `TextInput.clear(hostRef)` is added to React Native.\n if (hostNode != null) {\n hostNode.clear = function () {\n if (hostNode != null) {\n hostNode.value = '';\n }\n };\n\n hostNode.isFocused = function () {\n return hostNode != null && TextInputState.currentlyFocusedField() === hostNode;\n };\n\n handleContentSizeChange(hostNode);\n }\n }, [handleContentSizeChange]);\n\n function handleBlur(e) {\n TextInputState._currentlyFocusedNode = null;\n\n if (onBlur) {\n e.nativeEvent.text = e.target.value;\n onBlur(e);\n }\n }\n\n function handleChange(e) {\n var hostNode = e.target;\n var text = hostNode.value;\n e.nativeEvent.text = text;\n handleContentSizeChange(hostNode);\n\n if (onChange) {\n onChange(e);\n }\n\n if (onChangeText) {\n onChangeText(text);\n }\n }\n\n function handleFocus(e) {\n var hostNode = e.target;\n\n if (onFocus) {\n e.nativeEvent.text = hostNode.value;\n onFocus(e);\n }\n\n if (hostNode != null) {\n TextInputState._currentlyFocusedNode = hostNode;\n\n if (clearTextOnFocus) {\n hostNode.value = '';\n }\n\n if (selectTextOnFocus) {\n // Safari requires selection to occur in a setTimeout\n if (focusTimeout != null) {\n clearTimeout(focusTimeout);\n }\n\n focusTimeout = setTimeout(() => {\n if (hostNode != null) {\n hostNode.select();\n }\n }, 0);\n }\n }\n }\n\n function handleKeyDown(e) {\n var hostNode = e.target; // Prevent key events bubbling (see #612)\n\n e.stopPropagation();\n var blurOnSubmitDefault = !multiline;\n var shouldBlurOnSubmit = blurOnSubmit == null ? blurOnSubmitDefault : blurOnSubmit;\n var nativeEvent = e.nativeEvent;\n var isComposing = isEventComposing(nativeEvent);\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (e.key === 'Enter' && !e.shiftKey && // Do not call submit if composition is occuring.\n !isComposing && !e.isDefaultPrevented()) {\n if ((blurOnSubmit || !multiline) && onSubmitEditing) {\n // prevent \"Enter\" from inserting a newline or submitting a form\n e.preventDefault();\n nativeEvent.text = e.target.value;\n onSubmitEditing(e);\n }\n\n if (shouldBlurOnSubmit && hostNode != null) {\n setTimeout(() => hostNode.blur(), 0);\n }\n }\n }\n\n function handleSelectionChange(e) {\n if (onSelectionChange) {\n try {\n var node = e.target;\n var selectionStart = node.selectionStart,\n selectionEnd = node.selectionEnd;\n e.nativeEvent.selection = {\n start: selectionStart,\n end: selectionEnd\n };\n e.nativeEvent.text = e.target.value;\n onSelectionChange(e);\n } catch (e) {}\n }\n }\n\n useLayoutEffect(() => {\n var node = hostRef.current;\n\n if (node != null && selection != null) {\n setSelection(node, selection);\n }\n\n if (document.activeElement === node) {\n TextInputState._currentlyFocusedNode = node;\n }\n }, [hostRef, selection]);\n var component = multiline ? 'textarea' : 'input';\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n\n var supportedProps = pickProps(props);\n supportedProps.autoCapitalize = autoCapitalize;\n supportedProps.autoComplete = autoComplete || autoCompleteType || 'on';\n supportedProps.autoCorrect = autoCorrect ? 'on' : 'off'; // 'auto' by default allows browsers to infer writing direction\n\n supportedProps.dir = dir !== undefined ? dir : 'auto';\n supportedProps.enterKeyHint = returnKeyType;\n supportedProps.inputMode = inputMode;\n supportedProps.onBlur = handleBlur;\n supportedProps.onChange = handleChange;\n supportedProps.onFocus = handleFocus;\n supportedProps.onKeyDown = handleKeyDown;\n supportedProps.onSelect = handleSelectionChange;\n supportedProps.readOnly = !editable;\n supportedProps.rows = multiline ? numberOfLines : undefined;\n supportedProps.spellCheck = spellCheck != null ? spellCheck : autoCorrect;\n supportedProps.style = [{\n '--placeholderTextColor': placeholderTextColor\n }, styles.textinput$raw, styles.placeholder, props.style];\n supportedProps.type = multiline ? undefined : type;\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, imperativeRef, forwardedRef);\n supportedProps.ref = setRef;\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var element = createElement(component, supportedProps, {\n writingDirection\n });\n return element;\n});\nTextInput.displayName = 'TextInput'; // $FlowFixMe\n\nTextInput.State = TextInputState;\nvar styles = StyleSheet.create({\n textinput$raw: {\n MozAppearance: 'textfield',\n WebkitAppearance: 'none',\n backgroundColor: 'transparent',\n border: '0 solid black',\n borderRadius: 0,\n boxSizing: 'border-box',\n font: '14px System',\n margin: 0,\n padding: 0,\n resize: 'none'\n },\n placeholder: {\n placeholderTextColor: 'var(--placeholderTextColor)'\n }\n});\nexport default TextInput;","import * as React from 'react';\nimport {\n TouchableWithoutFeedback,\n View,\n ViewStyle,\n StyleSheet,\n StyleProp,\n GestureResponderEvent,\n Platform,\n} from 'react-native';\nimport color from 'color';\nimport { withTheme } from '../../core/theming';\n\nexport type Props = React.ComponentPropsWithRef<\n typeof TouchableWithoutFeedback\n> & {\n /**\n * Whether to render the ripple outside the view bounds.\n */\n borderless?: boolean;\n /**\n * Type of background drawabale to display the feedback (Android).\n * https://reactnative.dev/docs/touchablenativefeedback#background\n */\n background?: Object;\n /**\n * Whether to start the ripple at the center (Web).\n */\n centered?: boolean;\n /**\n * Whether to prevent interaction with the touchable.\n */\n disabled?: boolean;\n /**\n * Function to execute on press. If not set, will cause the touchable to be disabled.\n */\n onPress?: (e: GestureResponderEvent) => void;\n /**\n * Function to execute on long press.\n */\n onLongPress?: (e: GestureResponderEvent) => void;\n /**\n * Color of the ripple effect (Android >= 5.0 and Web).\n */\n rippleColor?: string;\n /**\n * Color of the underlay for the highlight effect (Android < 5.0 and iOS).\n */\n underlayColor?: string;\n /**\n * Content of the `TouchableRipple`.\n */\n children: React.ReactNode;\n style?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\n/**\n * A wrapper for views that should respond to touches.\n * Provides a material \"ink ripple\" interaction effect for supported platforms (>= Android Lollipop).\n * On unsupported platforms, it falls back to a highlight effect.\n *\n *

\n *
\n * \n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { Text, TouchableRipple } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * console.log('Pressed')}\n * rippleColor=\"rgba(0, 0, 0, .32)\"\n * >\n * Press anywhere\n * \n * );\n *\n * export default MyComponent;\n * ```\n *\n * @extends TouchableWithoutFeedback props https://reactnative.dev/docs/touchablewithoutfeedback#props\n */\nconst TouchableRipple = ({\n style,\n background: _background,\n borderless = false,\n disabled: disabledProp,\n rippleColor,\n underlayColor: _underlayColor,\n children,\n theme,\n ...rest\n}: Props) => {\n const handlePressIn = (e: any) => {\n const { centered, onPressIn } = rest;\n\n onPressIn?.(e);\n\n const { dark, colors } = theme;\n const calculatedRippleColor =\n rippleColor ||\n color(colors.text)\n .alpha(dark ? 0.32 : 0.2)\n .rgb()\n .string();\n\n const button = e.currentTarget;\n const style = window.getComputedStyle(button);\n const dimensions = button.getBoundingClientRect();\n\n let touchX;\n let touchY;\n\n const { changedTouches, touches } = e.nativeEvent;\n const touch = touches?.[0] ?? changedTouches?.[0];\n\n // If centered or it was pressed using keyboard - enter or space\n if (centered || !touch) {\n touchX = dimensions.width / 2;\n touchY = dimensions.height / 2;\n } else {\n touchX = touch.locationX ?? e.pageX;\n touchY = touch.locationY ?? e.pageY;\n }\n\n // Get the size of the button to determine how big the ripple should be\n const size = centered\n ? // If ripple is always centered, we don't need to make it too big\n Math.min(dimensions.width, dimensions.height) * 1.25\n : // Otherwise make it twice as big so clicking on one end spreads ripple to other\n Math.max(dimensions.width, dimensions.height) * 2;\n\n // Create a container for our ripple effect so we don't need to change the parent's style\n const container = document.createElement('span');\n\n container.setAttribute('data-paper-ripple', '');\n\n Object.assign(container.style, {\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n borderTopLeftRadius: style.borderTopLeftRadius,\n borderTopRightRadius: style.borderTopRightRadius,\n borderBottomRightRadius: style.borderBottomRightRadius,\n borderBottomLeftRadius: style.borderBottomLeftRadius,\n overflow: centered ? 'visible' : 'hidden',\n });\n\n // Create span to show the ripple effect\n const ripple = document.createElement('span');\n\n Object.assign(ripple.style, {\n position: 'absolute',\n pointerEvents: 'none',\n backgroundColor: calculatedRippleColor,\n borderRadius: '50%',\n\n /* Transition configuration */\n transitionProperty: 'transform opacity',\n transitionDuration: `${Math.min(size * 1.5, 350)}ms`,\n transitionTimingFunction: 'linear',\n transformOrigin: 'center',\n\n /* We'll animate these properties */\n transform: 'translate3d(-50%, -50%, 0) scale3d(0.1, 0.1, 0.1)',\n opacity: '0.5',\n\n // Position the ripple where cursor was\n left: `${touchX}px`,\n top: `${touchY}px`,\n width: `${size}px`,\n height: `${size}px`,\n });\n\n // Finally, append it to DOM\n container.appendChild(ripple);\n button.appendChild(container);\n\n // rAF runs in the same frame as the event handler\n // Use double rAF to ensure the transition class is added in next frame\n // This will make sure that the transition animation is triggered\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n Object.assign(ripple.style, {\n transform: 'translate3d(-50%, -50%, 0) scale3d(1, 1, 1)',\n opacity: '1',\n });\n });\n });\n };\n\n const handlePressOut = (e: any) => {\n rest.onPressOut?.(e);\n\n const containers = e.currentTarget.querySelectorAll(\n '[data-paper-ripple]'\n ) as HTMLElement[];\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n containers.forEach((container) => {\n const ripple = container.firstChild as HTMLSpanElement;\n\n Object.assign(ripple.style, {\n transitionDuration: '250ms',\n opacity: 0,\n });\n\n // Finally remove the span after the transition\n setTimeout(() => {\n const { parentNode } = container;\n\n if (parentNode) {\n parentNode.removeChild(container);\n }\n }, 500);\n });\n });\n });\n };\n\n const disabled = disabledProp || !rest.onPress;\n\n return (\n \n \n {React.Children.only(children)}\n \n \n );\n};\n\n/**\n * Whether ripple effect is supported.\n */\nTouchableRipple.supported = true;\n\nconst styles = StyleSheet.create({\n touchable: {\n position: 'relative',\n ...(Platform.OS === 'web' && { cursor: 'pointer' }),\n },\n borderless: {\n overflow: 'hidden',\n },\n});\n\nexport default withTheme(TouchableRipple);\n","var SHORT_TO_HEX = {};\nvar HEX_TO_SHORT = {};\nfor (var i = 0; i < 256; i++) {\n var encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = \"0\" + encodedByte;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\n/**\n * Converts a hexadecimal encoded string to a Uint8Array of bytes.\n *\n * @param encoded The hexadecimal encoded string\n */\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n var out = new Uint8Array(encoded.length / 2);\n for (var i = 0; i < encoded.length; i += 2) {\n var encodedByte = encoded.substr(i, 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(\"Cannot decode unrecognized sequence \" + encodedByte + \" as hexadecimal\");\n }\n }\n return out;\n}\n/**\n * Converts a Uint8Array of binary data to a hexadecimal encoded string.\n *\n * @param bytes The binary data to encode\n */\nexport function toHex(bytes) {\n var out = \"\";\n for (var i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBTSxZQUFZLEdBQThCLEVBQUUsQ0FBQztBQUNuRCxJQUFNLFlBQVksR0FBOEIsRUFBRSxDQUFDO0FBRW5ELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDNUIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzVCLFdBQVcsR0FBRyxNQUFJLFdBQWEsQ0FBQztLQUNqQztJQUVELFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUM7SUFDOUIsWUFBWSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUMvQjtBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLE9BQWU7SUFDckMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0tBQ3hFO0lBRUQsSUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzFDLElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZELElBQUksV0FBVyxJQUFJLFlBQVksRUFBRTtZQUMvQixHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN4QzthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBdUMsV0FBVyxvQkFBaUIsQ0FBQyxDQUFDO1NBQ3RGO0tBQ0Y7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxLQUFpQjtJQUNyQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN6QyxHQUFHLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQy9CO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgU0hPUlRfVE9fSEVYOiB7IFtrZXk6IG51bWJlcl06IHN0cmluZyB9ID0ge307XG5jb25zdCBIRVhfVE9fU0hPUlQ6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcblxuZm9yIChsZXQgaSA9IDA7IGkgPCAyNTY7IGkrKykge1xuICBsZXQgZW5jb2RlZEJ5dGUgPSBpLnRvU3RyaW5nKDE2KS50b0xvd2VyQ2FzZSgpO1xuICBpZiAoZW5jb2RlZEJ5dGUubGVuZ3RoID09PSAxKSB7XG4gICAgZW5jb2RlZEJ5dGUgPSBgMCR7ZW5jb2RlZEJ5dGV9YDtcbiAgfVxuXG4gIFNIT1JUX1RPX0hFWFtpXSA9IGVuY29kZWRCeXRlO1xuICBIRVhfVE9fU0hPUlRbZW5jb2RlZEJ5dGVdID0gaTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGhleGFkZWNpbWFsIGVuY29kZWQgc3RyaW5nIHRvIGEgVWludDhBcnJheSBvZiBieXRlcy5cbiAqXG4gKiBAcGFyYW0gZW5jb2RlZCBUaGUgaGV4YWRlY2ltYWwgZW5jb2RlZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21IZXgoZW5jb2RlZDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGlmIChlbmNvZGVkLmxlbmd0aCAlIDIgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJIZXggZW5jb2RlZCBzdHJpbmdzIG11c3QgaGF2ZSBhbiBldmVuIG51bWJlciBsZW5ndGhcIik7XG4gIH1cblxuICBjb25zdCBvdXQgPSBuZXcgVWludDhBcnJheShlbmNvZGVkLmxlbmd0aCAvIDIpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGVuY29kZWQubGVuZ3RoOyBpICs9IDIpIHtcbiAgICBjb25zdCBlbmNvZGVkQnl0ZSA9IGVuY29kZWQuc3Vic3RyKGksIDIpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGVuY29kZWRCeXRlIGluIEhFWF9UT19TSE9SVCkge1xuICAgICAgb3V0W2kgLyAyXSA9IEhFWF9UT19TSE9SVFtlbmNvZGVkQnl0ZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGRlY29kZSB1bnJlY29nbml6ZWQgc2VxdWVuY2UgJHtlbmNvZGVkQnl0ZX0gYXMgaGV4YWRlY2ltYWxgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0O1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgVWludDhBcnJheSBvZiBiaW5hcnkgZGF0YSB0byBhIGhleGFkZWNpbWFsIGVuY29kZWQgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBieXRlcyBUaGUgYmluYXJ5IGRhdGEgdG8gZW5jb2RlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0hleChieXRlczogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGxldCBvdXQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVzLmJ5dGVMZW5ndGg7IGkrKykge1xuICAgIG91dCArPSBTSE9SVF9UT19IRVhbYnl0ZXNbaV1dO1xuICB9XG5cbiAgcmV0dXJuIG91dDtcbn1cbiJdfQ==","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport dismissKeyboard from '../../modules/dismissKeyboard';\nvar Keyboard = {\n addListener() {\n return {\n remove: () => {}\n };\n },\n\n dismiss() {\n dismissKeyboard();\n },\n\n removeAllListeners() {},\n\n removeListener() {}\n\n};\nexport default Keyboard;","// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nexport var SYMBOL_ITERATOR = typeof Symbol === 'function' && Symbol.iterator != null ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_ASYNC_ITERATOR = typeof Symbol === 'function' && Symbol.asyncIterator != null ? Symbol.asyncIterator : '@@asyncIterator'; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_TO_STRING_TAG = typeof Symbol === 'function' && Symbol.toStringTag != null ? Symbol.toStringTag : '@@toStringTag';\n","export const handlePress = ({\n onPress,\n value,\n onValueChange,\n}: {\n onPress?: () => void;\n value: string;\n onValueChange?: (value: string) => void;\n}) => {\n if (onPress && onValueChange) {\n console.warn(\n `onPress in the scope of RadioButtonGroup will not be executed, use onValueChange instead`\n );\n }\n\n onValueChange ? onValueChange(value) : onPress?.();\n};\n\nexport const isChecked = ({\n value,\n status,\n contextValue,\n}: {\n value: string;\n status?: 'checked' | 'unchecked';\n contextValue?: string;\n}) => {\n if (contextValue !== undefined && contextValue !== null) {\n return contextValue === value ? 'checked' : 'unchecked';\n } else {\n return status;\n }\n};\n","import { __assign, __rest as __rest_1, __spreadArray } from \"tslib\";\nimport { __rest } from \"tslib\";\nimport { mergeDeep } from \"../common/mergeDeep.js\";\nexport function concatPagination(keyArgs) {\n if (keyArgs === void 0) { keyArgs = false; }\n return {\n keyArgs: keyArgs,\n merge: function (existing, incoming) {\n return existing ? __spreadArray(__spreadArray([], existing, true), incoming, true) : incoming;\n },\n };\n}\nexport function offsetLimitPagination(keyArgs) {\n if (keyArgs === void 0) { keyArgs = false; }\n return {\n keyArgs: keyArgs,\n merge: function (existing, incoming, _a) {\n var args = _a.args;\n var merged = existing ? existing.slice(0) : [];\n if (args) {\n var _b = args.offset, offset = _b === void 0 ? 0 : _b;\n for (var i = 0; i < incoming.length; ++i) {\n merged[offset + i] = incoming[i];\n }\n }\n else {\n merged.push.apply(merged, incoming);\n }\n return merged;\n },\n };\n}\nexport function relayStylePagination(keyArgs) {\n if (keyArgs === void 0) { keyArgs = false; }\n return {\n keyArgs: keyArgs,\n read: function (existing, _a) {\n var canRead = _a.canRead, readField = _a.readField;\n if (!existing)\n return existing;\n var edges = [];\n var firstEdgeCursor = \"\";\n var lastEdgeCursor = \"\";\n existing.edges.forEach(function (edge) {\n if (canRead(readField(\"node\", edge))) {\n edges.push(edge);\n if (edge.cursor) {\n firstEdgeCursor = firstEdgeCursor || edge.cursor || \"\";\n lastEdgeCursor = edge.cursor || lastEdgeCursor;\n }\n }\n });\n var _b = existing.pageInfo || {}, startCursor = _b.startCursor, endCursor = _b.endCursor;\n return __assign(__assign({}, getExtras(existing)), { edges: edges, pageInfo: __assign(__assign({}, existing.pageInfo), { startCursor: startCursor || firstEdgeCursor, endCursor: endCursor || lastEdgeCursor }) });\n },\n merge: function (existing, incoming, _a) {\n var args = _a.args, isReference = _a.isReference, readField = _a.readField;\n if (!existing) {\n existing = makeEmptyData();\n }\n if (!incoming) {\n return existing;\n }\n var incomingEdges = incoming.edges ? incoming.edges.map(function (edge) {\n if (isReference(edge = __assign({}, edge))) {\n edge.cursor = readField(\"cursor\", edge);\n }\n return edge;\n }) : [];\n if (incoming.pageInfo) {\n var pageInfo_1 = incoming.pageInfo;\n var startCursor = pageInfo_1.startCursor, endCursor = pageInfo_1.endCursor;\n var firstEdge = incomingEdges[0];\n var lastEdge = incomingEdges[incomingEdges.length - 1];\n if (firstEdge && startCursor) {\n firstEdge.cursor = startCursor;\n }\n if (lastEdge && endCursor) {\n lastEdge.cursor = endCursor;\n }\n var firstCursor = firstEdge && firstEdge.cursor;\n if (firstCursor && !startCursor) {\n incoming = mergeDeep(incoming, {\n pageInfo: {\n startCursor: firstCursor,\n },\n });\n }\n var lastCursor = lastEdge && lastEdge.cursor;\n if (lastCursor && !endCursor) {\n incoming = mergeDeep(incoming, {\n pageInfo: {\n endCursor: lastCursor,\n },\n });\n }\n }\n var prefix = existing.edges;\n var suffix = [];\n if (args && args.after) {\n var index = prefix.findIndex(function (edge) { return edge.cursor === args.after; });\n if (index >= 0) {\n prefix = prefix.slice(0, index + 1);\n }\n }\n else if (args && args.before) {\n var index = prefix.findIndex(function (edge) { return edge.cursor === args.before; });\n suffix = index < 0 ? prefix : prefix.slice(index);\n prefix = [];\n }\n else if (incoming.edges) {\n prefix = [];\n }\n var edges = __spreadArray(__spreadArray(__spreadArray([], prefix, true), incomingEdges, true), suffix, true);\n var pageInfo = __assign(__assign({}, incoming.pageInfo), existing.pageInfo);\n if (incoming.pageInfo) {\n var _b = incoming.pageInfo, hasPreviousPage = _b.hasPreviousPage, hasNextPage = _b.hasNextPage, startCursor = _b.startCursor, endCursor = _b.endCursor, extras = __rest_1(_b, [\"hasPreviousPage\", \"hasNextPage\", \"startCursor\", \"endCursor\"]);\n Object.assign(pageInfo, extras);\n if (!prefix.length) {\n if (void 0 !== hasPreviousPage)\n pageInfo.hasPreviousPage = hasPreviousPage;\n if (void 0 !== startCursor)\n pageInfo.startCursor = startCursor;\n }\n if (!suffix.length) {\n if (void 0 !== hasNextPage)\n pageInfo.hasNextPage = hasNextPage;\n if (void 0 !== endCursor)\n pageInfo.endCursor = endCursor;\n }\n }\n return __assign(__assign(__assign({}, getExtras(existing)), getExtras(incoming)), { edges: edges, pageInfo: pageInfo });\n },\n };\n}\nvar getExtras = function (obj) { return __rest(obj, notExtras); };\nvar notExtras = [\"edges\", \"pageInfo\"];\nfunction makeEmptyData() {\n return {\n edges: [],\n pageInfo: {\n hasPreviousPage: false,\n hasNextPage: true,\n startCursor: \"\",\n endCursor: \"\",\n },\n };\n}\n//# sourceMappingURL=pagination.js.map","import { makeUniqueId } from \"./makeUniqueId.js\";\nexport function stringifyForDisplay(value) {\n var undefId = makeUniqueId(\"stringifyForDisplay\");\n return JSON.stringify(value, function (key, value) {\n return value === void 0 ? undefId : value;\n }).split(JSON.stringify(undefId)).join(\"\");\n}\n//# sourceMappingURL=stringifyForDisplay.js.map","import { InvariantError } from \"../globals/index.js\";\nimport { isNonNullObject } from \"../common/objects.js\";\nimport { getFragmentFromSelection } from \"./fragments.js\";\nexport function makeReference(id) {\n return { __ref: String(id) };\n}\nexport function isReference(obj) {\n return Boolean(obj && typeof obj === 'object' && typeof obj.__ref === 'string');\n}\nexport function isDocumentNode(value) {\n return (isNonNullObject(value) &&\n value.kind === \"Document\" &&\n Array.isArray(value.definitions));\n}\nfunction isStringValue(value) {\n return value.kind === 'StringValue';\n}\nfunction isBooleanValue(value) {\n return value.kind === 'BooleanValue';\n}\nfunction isIntValue(value) {\n return value.kind === 'IntValue';\n}\nfunction isFloatValue(value) {\n return value.kind === 'FloatValue';\n}\nfunction isVariable(value) {\n return value.kind === 'Variable';\n}\nfunction isObjectValue(value) {\n return value.kind === 'ObjectValue';\n}\nfunction isListValue(value) {\n return value.kind === 'ListValue';\n}\nfunction isEnumValue(value) {\n return value.kind === 'EnumValue';\n}\nfunction isNullValue(value) {\n return value.kind === 'NullValue';\n}\nexport function valueToObjectRepresentation(argObj, name, value, variables) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n }\n else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n }\n else if (isObjectValue(value)) {\n var nestedArgObj_1 = {};\n value.fields.map(function (obj) {\n return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables);\n });\n argObj[name.value] = nestedArgObj_1;\n }\n else if (isVariable(value)) {\n var variableValue = (variables || {})[value.name.value];\n argObj[name.value] = variableValue;\n }\n else if (isListValue(value)) {\n argObj[name.value] = value.values.map(function (listValue) {\n var nestedArgArrayObj = {};\n valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables);\n return nestedArgArrayObj[name.value];\n });\n }\n else if (isEnumValue(value)) {\n argObj[name.value] = value.value;\n }\n else if (isNullValue(value)) {\n argObj[name.value] = null;\n }\n else {\n throw __DEV__ ? new InvariantError(\"The inline argument \\\"\" + name.value + \"\\\" of kind \\\"\" + value.kind + \"\\\"\" +\n 'is not supported. Use variables instead of inline arguments to ' +\n 'overcome this limitation.') : new InvariantError(54);\n }\n}\nexport function storeKeyNameFromField(field, variables) {\n var directivesObj = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(function (directive) {\n directivesObj[directive.name.value] = {};\n if (directive.arguments) {\n directive.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables);\n });\n }\n });\n }\n var argObj = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(argObj, name, value, variables);\n });\n }\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\nvar KNOWN_DIRECTIVES = [\n 'connection',\n 'include',\n 'skip',\n 'client',\n 'rest',\n 'export',\n];\nexport var getStoreKeyName = Object.assign(function (fieldName, args, directives) {\n if (args &&\n directives &&\n directives['connection'] &&\n directives['connection']['key']) {\n if (directives['connection']['filter'] &&\n directives['connection']['filter'].length > 0) {\n var filterKeys = directives['connection']['filter']\n ? directives['connection']['filter']\n : [];\n filterKeys.sort();\n var filteredArgs_1 = {};\n filterKeys.forEach(function (key) {\n filteredArgs_1[key] = args[key];\n });\n return directives['connection']['key'] + \"(\" + stringify(filteredArgs_1) + \")\";\n }\n else {\n return directives['connection']['key'];\n }\n }\n var completeFieldName = fieldName;\n if (args) {\n var stringifiedArgs = stringify(args);\n completeFieldName += \"(\" + stringifiedArgs + \")\";\n }\n if (directives) {\n Object.keys(directives).forEach(function (key) {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1)\n return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += \"@\" + key + \"(\" + stringify(directives[key]) + \")\";\n }\n else {\n completeFieldName += \"@\" + key;\n }\n });\n }\n return completeFieldName;\n}, {\n setStringify: function (s) {\n var previous = stringify;\n stringify = s;\n return previous;\n },\n});\nvar stringify = function defaultStringify(value) {\n return JSON.stringify(value, stringifyReplacer);\n};\nfunction stringifyReplacer(_key, value) {\n if (isNonNullObject(value) && !Array.isArray(value)) {\n value = Object.keys(value).sort().reduce(function (copy, key) {\n copy[key] = value[key];\n return copy;\n }, {});\n }\n return value;\n}\nexport function argumentsObjectFromField(field, variables) {\n if (field.arguments && field.arguments.length) {\n var argObj_1 = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(argObj_1, name, value, variables);\n });\n return argObj_1;\n }\n return null;\n}\nexport function resultKeyNameFromField(field) {\n return field.alias ? field.alias.value : field.name.value;\n}\nexport function getTypenameFromResult(result, selectionSet, fragmentMap) {\n if (typeof result.__typename === 'string') {\n return result.__typename;\n }\n for (var _i = 0, _a = selectionSet.selections; _i < _a.length; _i++) {\n var selection = _a[_i];\n if (isField(selection)) {\n if (selection.name.value === '__typename') {\n return result[resultKeyNameFromField(selection)];\n }\n }\n else {\n var typename = getTypenameFromResult(result, getFragmentFromSelection(selection, fragmentMap).selectionSet, fragmentMap);\n if (typeof typename === 'string') {\n return typename;\n }\n }\n }\n}\nexport function isField(selection) {\n return selection.kind === 'Field';\n}\nexport function isInlineFragment(selection) {\n return selection.kind === 'InlineFragment';\n}\n//# sourceMappingURL=storeUtils.js.map","import { PermissionResponse, PermissionStatus } from 'expo-modules-core';\n\nimport {\n LocationLastKnownOptions,\n LocationObject,\n LocationOptions,\n LocationAccuracy,\n} from './Location.types';\nimport { LocationEventEmitter } from './LocationEventEmitter';\n\nclass GeocoderError extends Error {\n code: string;\n\n constructor() {\n super('Geocoder service is not available for this device.');\n this.code = 'E_NO_GEOCODER';\n }\n}\n\n/**\n * Converts `GeolocationPosition` to JavaScript object.\n */\nfunction geolocationPositionToJSON(position: LocationObject): LocationObject {\n const { coords, timestamp } = position;\n return {\n coords: {\n latitude: coords.latitude,\n longitude: coords.longitude,\n altitude: coords.altitude,\n accuracy: coords.accuracy,\n altitudeAccuracy: coords.altitudeAccuracy,\n heading: coords.heading,\n speed: coords.speed,\n },\n timestamp,\n };\n}\n\n/**\n * Checks whether given location didn't exceed given `maxAge` and fits in the required accuracy.\n */\nfunction isLocationValid(location: LocationObject, options: LocationLastKnownOptions): boolean {\n const maxAge = typeof options.maxAge === 'number' ? options.maxAge : Infinity;\n const requiredAccuracy =\n typeof options.requiredAccuracy === 'number' ? options.requiredAccuracy : Infinity;\n const locationAccuracy = location.coords.accuracy ?? Infinity;\n\n return Date.now() - location.timestamp <= maxAge && locationAccuracy <= requiredAccuracy;\n}\n\n/**\n * Gets the permission details. The implementation is not very good as it actually requests\n * for the current location, but there is no better way on web so far :(\n */\nasync function getPermissionsAsync(): Promise {\n return new Promise((resolve) => {\n const resolveWithStatus = (status) =>\n resolve({\n status,\n granted: status === PermissionStatus.GRANTED,\n canAskAgain: true,\n expires: 0,\n });\n\n navigator.geolocation.getCurrentPosition(\n () => resolveWithStatus(PermissionStatus.GRANTED),\n ({ code }) => {\n if (code === 1 /* PERMISSION_DENIED */) {\n resolveWithStatus(PermissionStatus.DENIED);\n } else {\n resolveWithStatus(PermissionStatus.UNDETERMINED);\n }\n },\n { enableHighAccuracy: false, maximumAge: Infinity }\n );\n });\n}\n\nlet lastKnownPosition: LocationObject | null = null;\n\nexport default {\n get name(): string {\n return 'ExpoLocation';\n },\n async getProviderStatusAsync(): Promise<{ locationServicesEnabled: boolean }> {\n return {\n locationServicesEnabled: 'geolocation' in navigator,\n };\n },\n async getLastKnownPositionAsync(\n options: LocationLastKnownOptions = {}\n ): Promise {\n if (lastKnownPosition && isLocationValid(lastKnownPosition, options)) {\n return lastKnownPosition;\n }\n return null;\n },\n async getCurrentPositionAsync(options: LocationOptions): Promise {\n return new Promise((resolve, reject) => {\n const resolver = (position) => {\n lastKnownPosition = geolocationPositionToJSON(position);\n resolve(lastKnownPosition);\n };\n navigator.geolocation.getCurrentPosition(resolver, reject, {\n maximumAge: Infinity,\n enableHighAccuracy: (options.accuracy ?? 0) > LocationAccuracy.Balanced,\n ...options,\n });\n });\n },\n async removeWatchAsync(watchId): Promise {\n navigator.geolocation.clearWatch(watchId);\n },\n async watchDeviceHeading(headingId): Promise {\n console.warn('Location.watchDeviceHeading: is not supported on web');\n },\n async hasServicesEnabledAsync(): Promise {\n return 'geolocation' in navigator;\n },\n async geocodeAsync(): Promise {\n throw new GeocoderError();\n },\n async reverseGeocodeAsync(): Promise {\n throw new GeocoderError();\n },\n async watchPositionImplAsync(watchId: string, options: LocationOptions): Promise {\n return new Promise((resolve) => {\n // @ts-ignore: the types here need to be fixed\n watchId = global.navigator.geolocation.watchPosition(\n (position) => {\n lastKnownPosition = geolocationPositionToJSON(position);\n LocationEventEmitter.emit('Expo.locationChanged', {\n watchId,\n location: lastKnownPosition,\n });\n },\n undefined,\n // @ts-ignore: the options object needs to be fixed\n options\n );\n resolve(watchId);\n });\n },\n\n getPermissionsAsync,\n async requestPermissionsAsync(): Promise {\n return getPermissionsAsync();\n },\n async requestForegroundPermissionsAsync(): Promise {\n return getPermissionsAsync();\n },\n async requestBackgroundPermissionsAsync(): Promise {\n return getPermissionsAsync();\n },\n async getForegroundPermissionsAsync(): Promise {\n return getPermissionsAsync();\n },\n async getBackgroundPermissionsAsync(): Promise {\n return getPermissionsAsync();\n },\n\n // no-op\n startObserving() {},\n stopObserving() {},\n};\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport createDOMProps from '../../modules/createDOMProps';\nimport React from 'react';\nimport { LocaleProvider } from '../../modules/useLocale';\n\nvar createElement = (component, props, options) => {\n // Use equivalent platform elements where possible.\n var accessibilityComponent;\n\n if (component && component.constructor === String) {\n accessibilityComponent = AccessibilityUtil.propsToAccessibilityComponent(props);\n }\n\n var Component = accessibilityComponent || component;\n var domProps = createDOMProps(Component, props, options);\n var element = /*#__PURE__*/React.createElement(Component, domProps); // Update locale context if element's writing direction prop changes\n\n var elementWithLocaleProvider = domProps.dir ? /*#__PURE__*/React.createElement(LocaleProvider, {\n children: element,\n direction: domProps.dir,\n locale: domProps.lang\n }) : element;\n return elementWithLocaleProvider;\n};\n\nexport default createElement;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __awaiter, __generator } from \"tslib\";\nexport var deserializerMiddleware = function (options, deserializer) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var response, parsed;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, next(args)];\n case 1:\n response = (_a.sent()).response;\n return [4 /*yield*/, deserializer(response, options)];\n case 2:\n parsed = _a.sent();\n return [2 /*return*/, {\n response: response,\n output: parsed,\n }];\n }\n });\n}); }; }; };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzZXJpYWxpemVyTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZXNlcmlhbGl6ZXJNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFTQSxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRyxVQUNwQyxPQUFxQixFQUNyQixZQUEwRCxJQUNqQixPQUFBLFVBQ3pDLElBQXVDLEVBQ3ZDLE9BQWdDLElBQ00sT0FBQSxVQUN0QyxJQUF3Qzs7OztvQkFFbkIscUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFBOztnQkFBN0IsUUFBUSxHQUFLLENBQUEsU0FBZ0IsQ0FBQSxTQUFyQjtnQkFDRCxxQkFBTSxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFBOztnQkFBOUMsTUFBTSxHQUFHLFNBQXFDO2dCQUNwRCxzQkFBTzt3QkFDTCxRQUFRLFVBQUE7d0JBQ1IsTUFBTSxFQUFFLE1BQWdCO3FCQUN6QixFQUFDOzs7S0FDSCxFQVR1QyxDQVN2QyxFQVowQyxDQVkxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVzZXJpYWxpemVIYW5kbGVyLFxuICBEZXNlcmlhbGl6ZUhhbmRsZXJBcmd1bWVudHMsXG4gIERlc2VyaWFsaXplSGFuZGxlck91dHB1dCxcbiAgRGVzZXJpYWxpemVNaWRkbGV3YXJlLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgUmVzcG9uc2VEZXNlcmlhbGl6ZXIsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgZGVzZXJpYWxpemVyTWlkZGxld2FyZSA9IDxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0LCBSdW50aW1lVXRpbHMgPSBhbnk+KFxuICBvcHRpb25zOiBSdW50aW1lVXRpbHMsXG4gIGRlc2VyaWFsaXplcjogUmVzcG9uc2VEZXNlcmlhbGl6ZXI8YW55LCBhbnksIFJ1bnRpbWVVdGlscz5cbik6IERlc2VyaWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PiA9PiAoXG4gIG5leHQ6IERlc2VyaWFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IERlc2VyaWFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0PiA9PiBhc3luYyAoXG4gIGFyZ3M6IERlc2VyaWFsaXplSGFuZGxlckFyZ3VtZW50czxJbnB1dD5cbik6IFByb21pc2U8RGVzZXJpYWxpemVIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgY29uc3QgeyByZXNwb25zZSB9ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgY29uc3QgcGFyc2VkID0gYXdhaXQgZGVzZXJpYWxpemVyKHJlc3BvbnNlLCBvcHRpb25zKTtcbiAgcmV0dXJuIHtcbiAgICByZXNwb25zZSxcbiAgICBvdXRwdXQ6IHBhcnNlZCBhcyBPdXRwdXQsXG4gIH07XG59O1xuIl19","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport var deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nexport var serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: function (commandStack) {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyZGVQbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyZGVQbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQThCO0lBQ3JFLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsSUFBSSxFQUFFLGFBQWE7SUFDbkIsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO0lBQ3RCLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLDBCQUEwQixHQUE0QjtJQUNqRSxJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLElBQUksRUFBRSxXQUFXO0lBQ2pCLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQztJQUNwQixRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRixNQUFNLFVBQVUsY0FBYyxDQUs1QixNQUFvQixFQUNwQixVQUFnRCxFQUNoRCxZQUFpRTtJQUVqRSxPQUFPO1FBQ0wsWUFBWSxFQUFFLFVBQUMsWUFBb0Q7WUFDakUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztZQUM3RixZQUFZLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlc2VyaWFsaXplSGFuZGxlck9wdGlvbnMsXG4gIEVuZHBvaW50QmVhcmVyLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgTWlkZGxld2FyZVN0YWNrLFxuICBQbHVnZ2FibGUsXG4gIFJlcXVlc3RTZXJpYWxpemVyLFxuICBSZXNwb25zZURlc2VyaWFsaXplcixcbiAgU2VyaWFsaXplSGFuZGxlck9wdGlvbnMsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlIH0gZnJvbSBcIi4vZGVzZXJpYWxpemVyTWlkZGxld2FyZVwiO1xuaW1wb3J0IHsgc2VyaWFsaXplck1pZGRsZXdhcmUgfSBmcm9tIFwiLi9zZXJpYWxpemVyTWlkZGxld2FyZVwiO1xuXG5leHBvcnQgY29uc3QgZGVzZXJpYWxpemVyTWlkZGxld2FyZU9wdGlvbjogRGVzZXJpYWxpemVIYW5kbGVyT3B0aW9ucyA9IHtcbiAgbmFtZTogXCJkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlXCIsXG4gIHN0ZXA6IFwiZGVzZXJpYWxpemVcIixcbiAgdGFnczogW1wiREVTRVJJQUxJWkVSXCJdLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVyTWlkZGxld2FyZU9wdGlvbjogU2VyaWFsaXplSGFuZGxlck9wdGlvbnMgPSB7XG4gIG5hbWU6IFwic2VyaWFsaXplck1pZGRsZXdhcmVcIixcbiAgc3RlcDogXCJzZXJpYWxpemVcIixcbiAgdGFnczogW1wiU0VSSUFMSVpFUlwiXSxcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VyZGVQbHVnaW48XG4gIElucHV0VHlwZSBleHRlbmRzIG9iamVjdCxcbiAgU2VyRGVDb250ZXh0IGV4dGVuZHMgRW5kcG9pbnRCZWFyZXIsXG4gIE91dHB1dFR5cGUgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlclxuPihcbiAgY29uZmlnOiBTZXJEZUNvbnRleHQsXG4gIHNlcmlhbGl6ZXI6IFJlcXVlc3RTZXJpYWxpemVyPGFueSwgU2VyRGVDb250ZXh0PixcbiAgZGVzZXJpYWxpemVyOiBSZXNwb25zZURlc2VyaWFsaXplcjxPdXRwdXRUeXBlLCBhbnksIFNlckRlQ29udGV4dD5cbik6IFBsdWdnYWJsZTxJbnB1dFR5cGUsIE91dHB1dFR5cGU+IHtcbiAgcmV0dXJuIHtcbiAgICBhcHBseVRvU3RhY2s6IChjb21tYW5kU3RhY2s6IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+KSA9PiB7XG4gICAgICBjb21tYW5kU3RhY2suYWRkKGRlc2VyaWFsaXplck1pZGRsZXdhcmUoY29uZmlnLCBkZXNlcmlhbGl6ZXIpLCBkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlT3B0aW9uKTtcbiAgICAgIGNvbW1hbmRTdGFjay5hZGQoc2VyaWFsaXplck1pZGRsZXdhcmUoY29uZmlnLCBzZXJpYWxpemVyKSwgc2VyaWFsaXplck1pZGRsZXdhcmVPcHRpb24pO1xuICAgIH0sXG4gIH07XG59XG4iXX0=","import { __assign, __awaiter, __generator } from \"tslib\";\nexport var serializerMiddleware = function (options, serializer) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, serializer(args.input, options)];\n case 1:\n request = _a.sent();\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n}); }; }; };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplck1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplck1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVVBLE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLFVBQ2xDLE9BQXFCLEVBQ3JCLFVBQWdELElBQ1QsT0FBQSxVQUN2QyxJQUFxQyxFQUNyQyxPQUFnQyxJQUNJLE9BQUEsVUFDcEMsSUFBc0M7Ozs7b0JBRXRCLHFCQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFBOztnQkFBL0MsT0FBTyxHQUFHLFNBQXFDO2dCQUNyRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOzs7S0FDSixFQVJxQyxDQVFyQyxFQVh3QyxDQVd4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW5kcG9pbnRCZWFyZXIsXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBSZXF1ZXN0U2VyaWFsaXplcixcbiAgU2VyaWFsaXplSGFuZGxlcixcbiAgU2VyaWFsaXplSGFuZGxlckFyZ3VtZW50cyxcbiAgU2VyaWFsaXplSGFuZGxlck91dHB1dCxcbiAgU2VyaWFsaXplTWlkZGxld2FyZSxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVyTWlkZGxld2FyZSA9IDxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0LCBSdW50aW1lVXRpbHMgZXh0ZW5kcyBFbmRwb2ludEJlYXJlcj4oXG4gIG9wdGlvbnM6IFJ1bnRpbWVVdGlscyxcbiAgc2VyaWFsaXplcjogUmVxdWVzdFNlcmlhbGl6ZXI8YW55LCBSdW50aW1lVXRpbHM+XG4pOiBTZXJpYWxpemVNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+ID0+IChcbiAgbmV4dDogU2VyaWFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IFNlcmlhbGl6ZUhhbmRsZXI8SW5wdXQsIE91dHB1dD4gPT4gYXN5bmMgKFxuICBhcmdzOiBTZXJpYWxpemVIYW5kbGVyQXJndW1lbnRzPElucHV0PlxuKTogUHJvbWlzZTxTZXJpYWxpemVIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHNlcmlhbGl6ZXIoYXJncy5pbnB1dCwgb3B0aW9ucyk7XG4gIHJldHVybiBuZXh0KHtcbiAgICAuLi5hcmdzLFxuICAgIHJlcXVlc3QsXG4gIH0pO1xufTtcbiJdfQ==","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nexport default {\n disconnectNodeFromView() {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n attachEvent(_viewTag, _eventName, _nodeID) {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n detachEvent(_viewTag, _eventName, _nodeID) {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n createNode(_nodeID, _config) {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n dropNode(_nodeID) {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n configureProps(_nativeProps, _uiProps) {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n disconnectNodes() {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n addListener() {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n removeListeners() {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n removeAllListeners() {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n animateNextTransition() {\n return __awaiter(this, void 0, void 0, function* () {\n console.warn('Reanimated: animateNextTransition is unimplemented on current platform');\n });\n },\n};\n","import ReanimatedModuleCompat from './ReanimatedModuleCompat';\nexport default ReanimatedModuleCompat;\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport AnimatedNode from './AnimatedNode';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nclass AnimatedWithChildren extends AnimatedNode {\n constructor() {\n super();\n this._children = [];\n }\n\n __makeNative() {\n if (!this.__isNative) {\n this.__isNative = true;\n\n for (var _iterator = _createForOfIteratorHelperLoose(this._children), _step; !(_step = _iterator()).done;) {\n var child = _step.value;\n\n child.__makeNative();\n\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n }\n\n super.__makeNative();\n }\n\n __addChild(child) {\n if (this._children.length === 0) {\n this.__attach();\n }\n\n this._children.push(child);\n\n if (this.__isNative) {\n // Only accept \"native\" animated nodes as children\n child.__makeNative();\n\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n }\n\n __removeChild(child) {\n var index = this._children.indexOf(child);\n\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n\n if (this.__isNative && child.__isNative) {\n NativeAnimatedHelper.API.disconnectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n\n this._children.splice(index, 1);\n\n if (this._children.length === 0) {\n this.__detach();\n }\n }\n\n __getChildren() {\n return this._children;\n }\n\n __callListeners(value) {\n super.__callListeners(value);\n\n if (!this.__isNative) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this._children), _step2; !(_step2 = _iterator2()).done;) {\n var child = _step2.value;\n\n if (child.__getValue) {\n child.__callListeners(child.__getValue());\n }\n }\n }\n }\n\n}\n\nexport default AnimatedWithChildren;","import * as React from 'react';\nimport {\n Text as NativeText,\n TextStyle,\n StyleProp,\n StyleSheet,\n} from 'react-native';\nimport { withTheme } from '../../core/theming';\n\nexport type Props = React.ComponentProps & {\n style?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\n// @component-group Typography\n\n/**\n * Text component which follows styles from the theme.\n *\n * @extends Text props https://reactnative.dev/docs/text#props\n */\nconst Text: React.RefForwardingComponent<{}, Props> = (\n { style, theme, ...rest }: Props,\n ref\n) => {\n const root = React.useRef(null);\n\n React.useImperativeHandle(ref, () => ({\n setNativeProps: (args: Object) => root.current?.setNativeProps(args),\n }));\n\n return (\n \n );\n};\n\nconst styles = StyleSheet.create({\n text: {\n textAlign: 'left',\n },\n});\n\nexport default withTheme(React.forwardRef(Text));\n","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); }\n\n/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport default function isObjectLike(value) {\n return _typeof(value) == 'object' && value !== null;\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar emptyFunction = () => {};\n\nfunction StatusBar() {\n return null;\n}\n\nStatusBar.setBackgroundColor = emptyFunction;\nStatusBar.setBarStyle = emptyFunction;\nStatusBar.setHidden = emptyFunction;\nStatusBar.setNetworkActivityIndicatorVisible = emptyFunction;\nStatusBar.setTranslucent = emptyFunction;\nexport default StatusBar;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\n/* eslint no-bitwise: 0 */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nimport normalizeColor from 'normalize-css-color';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar linear = t => t;\n/**\n * Very handy helper to map input ranges to output ranges with an easing\n * function and custom behavior outside of the ranges.\n */\n\n\nfunction createInterpolation(config) {\n if (config.outputRange && typeof config.outputRange[0] === 'string') {\n return createInterpolationFromStringOutputRange(config);\n }\n\n var outputRange = config.outputRange;\n checkInfiniteRange('outputRange', outputRange);\n var inputRange = config.inputRange;\n checkInfiniteRange('inputRange', inputRange);\n checkValidInputRange(inputRange);\n invariant(inputRange.length === outputRange.length, 'inputRange (' + inputRange.length + ') and outputRange (' + outputRange.length + ') must have the same length');\n var easing = config.easing || linear;\n var extrapolateLeft = 'extend';\n\n if (config.extrapolateLeft !== undefined) {\n extrapolateLeft = config.extrapolateLeft;\n } else if (config.extrapolate !== undefined) {\n extrapolateLeft = config.extrapolate;\n }\n\n var extrapolateRight = 'extend';\n\n if (config.extrapolateRight !== undefined) {\n extrapolateRight = config.extrapolateRight;\n } else if (config.extrapolate !== undefined) {\n extrapolateRight = config.extrapolate;\n }\n\n return input => {\n invariant(typeof input === 'number', 'Cannot interpolation an input which is not a number');\n var range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight);\n };\n}\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight) {\n var result = input; // Extrapolate\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {// noop\n }\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {// noop\n }\n }\n\n if (outputMin === outputMax) {\n return outputMin;\n }\n\n if (inputMin === inputMax) {\n if (input <= inputMin) {\n return outputMin;\n }\n\n return outputMax;\n } // Input Range\n\n\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n } // Easing\n\n\n result = easing(result); // Output Range\n\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n\n return result;\n}\n\nfunction colorToRgba(input) {\n var normalizedColor = normalizeColor(input);\n\n if (normalizedColor === null || typeof normalizedColor !== 'number') {\n return input;\n }\n\n normalizedColor = normalizedColor || 0;\n var r = (normalizedColor & 0xff000000) >>> 24;\n var g = (normalizedColor & 0x00ff0000) >>> 16;\n var b = (normalizedColor & 0x0000ff00) >>> 8;\n var a = (normalizedColor & 0x000000ff) / 255;\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n}\n\nvar stringShapeRegex = /[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?/g;\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n */\n\nfunction createInterpolationFromStringOutputRange(config) {\n var outputRange = config.outputRange;\n invariant(outputRange.length >= 2, 'Bad output range');\n outputRange = outputRange.map(colorToRgba);\n checkPattern(outputRange); // ['rgba(0, 100, 200, 0)', 'rgba(50, 150, 250, 0.5)']\n // ->\n // [\n // [0, 50],\n // [100, 150],\n // [200, 250],\n // [0, 0.5],\n // ]\n\n /* $FlowFixMe(>=0.18.0): `outputRange[0].match()` can return `null`. Need to\n * guard against this possibility.\n */\n\n var outputRanges = outputRange[0].match(stringShapeRegex).map(() => []);\n outputRange.forEach(value => {\n /* $FlowFixMe(>=0.18.0): `value.match()` can return `null`. Need to guard\n * against this possibility.\n */\n value.match(stringShapeRegex).forEach((number, i) => {\n outputRanges[i].push(+number);\n });\n });\n var interpolations = outputRange[0].match(stringShapeRegex)\n /* $FlowFixMe(>=0.18.0): `outputRange[0].match()` can return `null`. Need\n * to guard against this possibility. */\n .map((value, i) => {\n return createInterpolation(_objectSpread(_objectSpread({}, config), {}, {\n outputRange: outputRanges[i]\n }));\n }); // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n\n var shouldRound = isRgbOrRgba(outputRange[0]);\n return input => {\n var i = 0; // 'rgba(0, 100, 200, 0)'\n // ->\n // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n\n return outputRange[0].replace(stringShapeRegex, () => {\n var val = +interpolations[i++](input);\n\n if (shouldRound) {\n val = i < 4 ? Math.round(val) : Math.round(val * 1000) / 1000;\n }\n\n return String(val);\n });\n };\n}\n\nfunction isRgbOrRgba(range) {\n return typeof range === 'string' && range.startsWith('rgb');\n}\n\nfunction checkPattern(arr) {\n var pattern = arr[0].replace(stringShapeRegex, '');\n\n for (var i = 1; i < arr.length; ++i) {\n invariant(pattern === arr[i].replace(stringShapeRegex, ''), 'invalid pattern ' + arr[0] + ' and ' + arr[i]);\n }\n}\n\nfunction findRange(input, inputRange) {\n var i;\n\n for (i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) {\n break;\n }\n }\n\n return i - 1;\n}\n\nfunction checkValidInputRange(arr) {\n invariant(arr.length >= 2, 'inputRange must have at least 2 elements');\n\n for (var i = 1; i < arr.length; ++i) {\n invariant(arr[i] >= arr[i - 1],\n /* $FlowFixMe(>=0.13.0) - In the addition expression below this comment,\n * one or both of the operands may be something that doesn't cleanly\n * convert to a string, like undefined, null, and object, etc. If you really\n * mean this implicit string conversion, you can do something like\n * String(myThing)\n */\n 'inputRange must be monotonically non-decreasing ' + arr);\n }\n}\n\nfunction checkInfiniteRange(name, arr) {\n invariant(arr.length >= 2, name + ' must have at least 2 elements');\n invariant(arr.length !== 2 || arr[0] !== -Infinity || arr[1] !== Infinity,\n /* $FlowFixMe(>=0.13.0) - In the addition expression below this comment,\n * one or both of the operands may be something that doesn't cleanly convert\n * to a string, like undefined, null, and object, etc. If you really mean\n * this implicit string conversion, you can do something like\n * String(myThing)\n */\n name + 'cannot be ]-infinity;+infinity[ ' + arr);\n}\n\nclass AnimatedInterpolation extends AnimatedWithChildren {\n // Export for testing.\n constructor(parent, config) {\n super();\n this._parent = parent;\n this._config = config;\n this._interpolation = createInterpolation(config);\n }\n\n __makeNative() {\n this._parent.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n var parentValue = this._parent.__getValue();\n\n invariant(typeof parentValue === 'number', 'Cannot interpolate an input which is not a number.');\n return this._interpolation(parentValue);\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._parent.__addChild(this);\n }\n\n __detach() {\n this._parent.__removeChild(this);\n\n super.__detach();\n }\n\n __transformDataType(range) {\n return range.map(NativeAnimatedHelper.transformDataType);\n }\n\n __getNativeConfig() {\n if (__DEV__) {\n NativeAnimatedHelper.validateInterpolation(this._config);\n }\n\n return {\n inputRange: this._config.inputRange,\n // Only the `outputRange` can contain strings so we don't need to transform `inputRange` here\n\n /* $FlowFixMe(>=0.38.0) - Flow error detected during the deployment of\n * v0.38.0. To see the error, remove this comment and run flow */\n outputRange: this.__transformDataType(this._config.outputRange),\n extrapolateLeft: this._config.extrapolateLeft || this._config.extrapolate || 'extend',\n extrapolateRight: this._config.extrapolateRight || this._config.extrapolate || 'extend',\n type: 'interpolation'\n };\n }\n\n}\n\nAnimatedInterpolation.__createInterpolation = createInterpolation;\nexport default AnimatedInterpolation;","export function isNonNullObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n//# sourceMappingURL=objects.js.map","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport invariant from 'fbjs/lib/invariant';\nimport EventEmitter from '../../vendor/react-native/emitter/_EventEmitter';\nimport canUseDOM from '../../modules/canUseDom'; // Android 4.4 browser\n\nvar isPrefixed = canUseDOM && !document.hasOwnProperty('hidden') && document.hasOwnProperty('webkitHidden');\nvar EVENT_TYPES = ['change', 'memoryWarning'];\nvar VISIBILITY_CHANGE_EVENT = isPrefixed ? 'webkitvisibilitychange' : 'visibilitychange';\nvar VISIBILITY_STATE_PROPERTY = isPrefixed ? 'webkitVisibilityState' : 'visibilityState';\nvar AppStates = {\n BACKGROUND: 'background',\n ACTIVE: 'active'\n};\nvar changeEmitter = null;\nexport default class AppState {\n static get currentState() {\n if (!AppState.isAvailable) {\n return AppStates.ACTIVE;\n }\n\n switch (document[VISIBILITY_STATE_PROPERTY]) {\n case 'hidden':\n case 'prerender':\n case 'unloaded':\n return AppStates.BACKGROUND;\n\n default:\n return AppStates.ACTIVE;\n }\n }\n\n static addEventListener(type, handler) {\n if (AppState.isAvailable) {\n invariant(EVENT_TYPES.indexOf(type) !== -1, 'Trying to subscribe to unknown event: \"%s\"', type);\n\n if (type === 'change') {\n if (!changeEmitter) {\n changeEmitter = new EventEmitter();\n document.addEventListener(VISIBILITY_CHANGE_EVENT, () => {\n if (changeEmitter) {\n changeEmitter.emit('change', AppState.currentState);\n }\n }, false);\n }\n\n return changeEmitter.addListener(type, handler);\n }\n }\n }\n\n static removeEventListener(type, handler) {\n if (AppState.isAvailable) {\n console.error(\"AppState.removeListener('\" + type + \"', ...): Method has been \" + 'deprecated. Please instead use `remove()` on the subscription ' + 'returned by `AppState.addEventListener`.');\n invariant(EVENT_TYPES.indexOf(type) !== -1, 'Trying to remove listener for unknown event: \"%s\"', type);\n\n if (type === 'change' && changeEmitter) {\n changeEmitter.removeListener(handler);\n }\n }\n }\n\n}\nAppState.isAvailable = canUseDOM && document[VISIBILITY_STATE_PROPERTY];","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nvar clipboardAvailable;\nexport default class Clipboard {\n static isAvailable() {\n if (clipboardAvailable === undefined) {\n clipboardAvailable = typeof document.queryCommandSupported === 'function' && document.queryCommandSupported('copy');\n }\n\n return clipboardAvailable;\n }\n\n static getString() {\n return Promise.resolve('');\n }\n\n static setString(text) {\n var success = false;\n var body = document.body;\n\n if (body) {\n // add the text to a hidden node\n var node = document.createElement('span');\n node.textContent = text;\n node.style.opacity = '0';\n node.style.position = 'absolute';\n node.style.whiteSpace = 'pre-wrap';\n node.style.userSelect = 'auto';\n body.appendChild(node); // select the text\n\n var selection = window.getSelection();\n selection.removeAllRanges();\n var range = document.createRange();\n range.selectNodeContents(node);\n selection.addRange(range); // attempt to copy\n\n try {\n document.execCommand('copy');\n success = true;\n } catch (e) {} // remove selection and node\n\n\n selection.removeAllRanges();\n body.removeChild(node);\n }\n\n return success;\n }\n\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport Dimensions from '../Dimensions';\nimport canUseDOM from '../../modules/canUseDom';\nvar DeviceInfo = {\n Dimensions: {\n get windowPhysicalPixels() {\n var _Dimensions$get = Dimensions.get('window'),\n width = _Dimensions$get.width,\n height = _Dimensions$get.height,\n fontScale = _Dimensions$get.fontScale,\n scale = _Dimensions$get.scale;\n\n return {\n width: width * scale,\n height: height * scale,\n scale,\n fontScale\n };\n },\n\n get screenPhysicalPixels() {\n var _Dimensions$get2 = Dimensions.get('screen'),\n width = _Dimensions$get2.width,\n height = _Dimensions$get2.height,\n fontScale = _Dimensions$get2.fontScale,\n scale = _Dimensions$get2.scale;\n\n return {\n width: width * scale,\n height: height * scale,\n scale,\n fontScale\n };\n }\n\n },\n\n get locale() {\n if (canUseDOM) {\n if (navigator.languages) {\n return navigator.languages[0];\n } else {\n return navigator.language;\n }\n }\n },\n\n get totalMemory() {\n // $FlowIssue deviceMemory not defined in navigator\n return canUseDOM ? navigator.deviceMemory : undefined;\n },\n\n get userAgent() {\n return canUseDOM ? navigator.userAgent : '';\n }\n\n};\nexport default DeviceInfo;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport Platform from '../../../exports/Platform';\nimport UIManager from '../../../exports/UIManager';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nfunction configureNext(config, onAnimationDidEnd) {\n if (!Platform.isTesting) {\n UIManager.configureNextLayoutAnimation(config, onAnimationDidEnd !== null && onAnimationDidEnd !== void 0 ? onAnimationDidEnd : function () {}, function () {}\n /* unused onError */\n );\n }\n}\n\nfunction create(duration, type, property) {\n return {\n duration,\n create: {\n type,\n property\n },\n update: {\n type\n },\n delete: {\n type,\n property\n }\n };\n}\n\nvar Presets = {\n easeInEaseOut: create(300, 'easeInEaseOut', 'opacity'),\n linear: create(500, 'linear', 'opacity'),\n spring: {\n duration: 700,\n create: {\n type: 'linear',\n property: 'opacity'\n },\n update: {\n type: 'spring',\n springDamping: 0.4\n },\n delete: {\n type: 'linear',\n property: 'opacity'\n }\n }\n};\n/**\n * Automatically animates views to their new positions when the\n * next layout happens.\n *\n * A common way to use this API is to call it before calling `setState`.\n *\n * Note that in order to get this to work on **Android** you need to set the following flags via `UIManager`:\n *\n * UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);\n */\n\nvar LayoutAnimation = {\n /**\n * Schedules an animation to happen on the next layout.\n *\n * @param config Specifies animation properties:\n *\n * - `duration` in milliseconds\n * - `create`, `AnimationConfig` for animating in new views\n * - `update`, `AnimationConfig` for animating views that have been updated\n *\n * @param onAnimationDidEnd Called when the animation finished.\n * Only supported on iOS.\n * @param onError Called on error. Only supported on iOS.\n */\n configureNext,\n\n /**\n * Helper for creating a config for `configureNext`.\n */\n create,\n Types: Object.freeze({\n spring: 'spring',\n linear: 'linear',\n easeInEaseOut: 'easeInEaseOut',\n easeIn: 'easeIn',\n easeOut: 'easeOut',\n keyboard: 'keyboard'\n }),\n Properties: Object.freeze({\n opacity: 'opacity',\n scaleX: 'scaleX',\n scaleY: 'scaleY',\n scaleXY: 'scaleXY'\n }),\n\n checkConfig() {\n console.error('LayoutAnimation.checkConfig(...) has been disabled.');\n },\n\n Presets,\n easeInEaseOut: configureNext.bind(null, Presets.easeInEaseOut),\n linear: configureNext.bind(null, Presets.linear),\n spring: configureNext.bind(null, Presets.spring)\n};\nexport default LayoutAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport LayoutAnimation from '../../vendor/react-native/LayoutAnimation';\nexport default LayoutAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport invariant from 'fbjs/lib/invariant';\nimport canUseDOM from '../../modules/canUseDom';\nvar initialURL = canUseDOM ? window.location.href : '';\n\nclass Linking {\n constructor() {\n this._eventCallbacks = {};\n\n this.addEventListener = (event, callback) => {\n if (!this._eventCallbacks[event]) {\n this._eventCallbacks[event] = [callback];\n return;\n }\n\n this._eventCallbacks[event].push(callback);\n };\n\n this.removeEventListener = (event, callback) => {\n var callbacks = this._eventCallbacks[event];\n var filteredCallbacks = callbacks.filter(c => c.toString() !== callback.toString());\n this._eventCallbacks[event] = filteredCallbacks;\n };\n }\n\n _dispatchEvent(event) {\n for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n data[_key - 1] = arguments[_key];\n }\n\n var listeners = this._eventCallbacks[event];\n\n if (listeners != null && Array.isArray(listeners)) {\n listeners.map(listener => {\n listener(...data);\n });\n }\n }\n /**\n * Adds a event listener for the specified event. The callback will be called when the\n * said event is dispatched.\n */\n\n\n canOpenURL() {\n return Promise.resolve(true);\n }\n\n getInitialURL() {\n return Promise.resolve(initialURL);\n }\n /**\n * Try to open the given url in a secure fashion. The method returns a Promise object.\n * If a target is passed (including undefined) that target will be used, otherwise '_blank'.\n * If the url opens, the promise is resolved. If not, the promise is rejected.\n * Dispatches the `onOpen` event if `url` is opened successfully.\n */\n\n\n openURL(url, target) {\n if (arguments.length === 1) {\n target = '_blank';\n }\n\n try {\n open(url, target);\n\n this._dispatchEvent('onOpen', url);\n\n return Promise.resolve();\n } catch (e) {\n return Promise.reject(e);\n }\n }\n\n _validateURL(url) {\n invariant(typeof url === 'string', 'Invalid URL: should be a string. Was: ' + url);\n invariant(url, 'Invalid URL: cannot be empty');\n }\n\n}\n\nvar open = (url, target) => {\n if (canUseDOM) {\n var urlToOpen = new URL(url, window.location).toString();\n\n if (urlToOpen.indexOf('tel:') === 0) {\n window.location = urlToOpen;\n } else {\n window.open(urlToOpen, target, 'noopener');\n }\n }\n};\n\nexport default new Linking();","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nvar vibrate = pattern => {\n if ('vibrate' in window.navigator) {\n window.navigator.vibrate(pattern);\n }\n};\n\nvar Vibration = {\n cancel() {\n vibrate(0);\n },\n\n vibrate(pattern) {\n if (pattern === void 0) {\n pattern = 400;\n }\n\n vibrate(pattern);\n }\n\n};\nexport default Vibration;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport TouchableOpacity from '../TouchableOpacity';\nimport Text from '../Text';\nvar Button = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var accessibilityLabel = props.accessibilityLabel,\n color = props.color,\n disabled = props.disabled,\n onPress = props.onPress,\n testID = props.testID,\n title = props.title;\n return /*#__PURE__*/React.createElement(TouchableOpacity, {\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"button\",\n disabled: disabled,\n focusable: !disabled,\n onPress: onPress,\n ref: forwardedRef,\n style: [styles.button, color && {\n backgroundColor: color\n }, disabled && styles.buttonDisabled],\n testID: testID\n }, /*#__PURE__*/React.createElement(Text, {\n style: [styles.text, disabled && styles.textDisabled]\n }, title));\n});\nButton.displayName = 'Button';\nvar styles = StyleSheet.create({\n button: {\n backgroundColor: '#2196F3',\n borderRadius: 2\n },\n text: {\n color: '#fff',\n fontWeight: '500',\n padding: 8,\n textAlign: 'center',\n textTransform: 'uppercase'\n },\n buttonDisabled: {\n backgroundColor: '#dfdfdf'\n },\n textDisabled: {\n color: '#a1a1a1'\n }\n});\nexport default Button;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"accessibilityReadOnly\", \"color\", \"disabled\", \"onChange\", \"onValueChange\", \"style\", \"value\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar CheckBox = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var accessibilityReadOnly = props.accessibilityReadOnly,\n color = props.color,\n disabled = props.disabled,\n onChange = props.onChange,\n onValueChange = props.onValueChange,\n style = props.style,\n value = props.value,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n function handleChange(event) {\n var value = event.nativeEvent.target.checked;\n event.nativeEvent.value = value;\n onChange && onChange(event);\n onValueChange && onValueChange(value);\n }\n\n var fakeControl = /*#__PURE__*/React.createElement(View, {\n style: [styles.fakeControl, value && styles.fakeControlChecked, // custom color\n value && color && {\n backgroundColor: color,\n borderColor: color\n }, disabled && styles.fakeControlDisabled, value && disabled && styles.fakeControlCheckedAndDisabled]\n });\n var nativeControl = createElement('input', {\n checked: value,\n disabled: disabled,\n onChange: handleChange,\n readOnly: accessibilityReadOnly,\n ref: forwardedRef,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox'\n });\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityDisabled: disabled,\n accessibilityReadOnly: accessibilityReadOnly,\n style: [styles.root, style, disabled && styles.cursorDefault]\n }), fakeControl, nativeControl);\n});\nCheckBox.displayName = 'CheckBox';\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n height: 16,\n userSelect: 'none',\n width: 16\n },\n cursorDefault: {\n cursor: 'default'\n },\n cursorInherit: {\n cursor: 'inherit'\n },\n fakeControl: {\n alignItems: 'center',\n backgroundColor: '#fff',\n borderColor: '#657786',\n borderRadius: 2,\n borderStyle: 'solid',\n borderWidth: 2,\n height: '100%',\n justifyContent: 'center',\n width: '100%'\n },\n fakeControlChecked: {\n backgroundColor: '#009688',\n backgroundImage: 'url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K\")',\n backgroundRepeat: 'no-repeat',\n borderColor: '#009688'\n },\n fakeControlDisabled: {\n borderColor: '#CCD6DD'\n },\n fakeControlCheckedAndDisabled: {\n backgroundColor: '#AAB8C2',\n borderColor: '#AAB8C2'\n },\n nativeControl: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n margin: 0,\n appearance: 'none',\n padding: 0,\n width: '100%'\n })\n});\nexport default CheckBox;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"style\", \"imageStyle\", \"imageRef\"];\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport Image from '../Image';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar emptyObject = {};\n/**\n * Very simple drop-in replacement for which supports nesting views.\n */\n\nvar ImageBackground = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var children = props.children,\n _props$style = props.style,\n style = _props$style === void 0 ? emptyObject : _props$style,\n imageStyle = props.imageStyle,\n imageRef = props.imageRef,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var _StyleSheet$flatten = StyleSheet.flatten(style),\n height = _StyleSheet$flatten.height,\n width = _StyleSheet$flatten.width;\n\n return /*#__PURE__*/React.createElement(View, {\n ref: forwardedRef,\n style: style\n }, /*#__PURE__*/React.createElement(Image, _extends({}, rest, {\n ref: imageRef,\n style: [{\n // Temporary Workaround:\n // Current (imperfect yet) implementation of overwrites width and height styles\n // (which is not quite correct), and these styles conflict with explicitly set styles\n // of and with our internal layout model here.\n // So, we have to proxy/reapply these styles explicitly for actual component.\n // This workaround should be removed after implementing proper support of\n // intrinsic content size of the .\n width,\n height,\n zIndex: -1\n }, StyleSheet.absoluteFill, imageStyle]\n })), children);\n});\nImageBackground.displayName = 'ImageBackground';\nexport default ImageBackground;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"behavior\", \"contentContainerStyle\", \"keyboardVerticalOffset\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport View from '../View';\n\nclass KeyboardAvoidingView extends React.Component {\n constructor() {\n super(...arguments);\n this.frame = null;\n\n this.onLayout = event => {\n this.frame = event.nativeEvent.layout;\n };\n }\n\n relativeKeyboardHeight(keyboardFrame) {\n var frame = this.frame;\n\n if (!frame || !keyboardFrame) {\n return 0;\n }\n\n var keyboardY = keyboardFrame.screenY - (this.props.keyboardVerticalOffset || 0);\n return Math.max(frame.y + frame.height - keyboardY, 0);\n }\n\n onKeyboardChange(event) {}\n\n render() {\n var _this$props = this.props,\n behavior = _this$props.behavior,\n contentContainerStyle = _this$props.contentContainerStyle,\n keyboardVerticalOffset = _this$props.keyboardVerticalOffset,\n rest = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n return /*#__PURE__*/React.createElement(View, _extends({\n onLayout: this.onLayout\n }, rest));\n }\n\n}\n\nexport default KeyboardAvoidingView;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDOM from '../../modules/canUseDom';\n\nfunction ModalPortal(props) {\n var children = props.children;\n var elementRef = React.useRef(null);\n\n if (canUseDOM && !elementRef.current) {\n var element = document.createElement('div');\n\n if (element && document.body) {\n document.body.appendChild(element);\n elementRef.current = element;\n }\n }\n\n React.useEffect(() => {\n if (canUseDOM) {\n return () => {\n if (document.body && elementRef.current) {\n document.body.removeChild(elementRef.current);\n elementRef.current = null;\n }\n };\n }\n }, []);\n return elementRef.current && canUseDOM ? /*#__PURE__*/ReactDOM.createPortal(children, elementRef.current) : null;\n}\n\nexport default ModalPortal;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport createElement from '../createElement';\nvar ANIMATION_DURATION = 300;\n\nfunction getAnimationStyle(animationType, visible) {\n if (animationType === 'slide') {\n return visible ? animatedSlideInStyles : animatedSlideOutStyles;\n }\n\n if (animationType === 'fade') {\n return visible ? animatedFadeInStyles : animatedFadeOutStyles;\n }\n\n return visible ? styles.container : styles.hidden;\n}\n\nfunction ModalAnimation(props) {\n var animationType = props.animationType,\n children = props.children,\n onDismiss = props.onDismiss,\n onShow = props.onShow,\n visible = props.visible;\n\n var _React$useState = React.useState(false),\n isRendering = _React$useState[0],\n setIsRendering = _React$useState[1];\n\n var wasVisible = React.useRef(false);\n var isAnimated = animationType && animationType !== 'none';\n var animationEndCallback = React.useCallback(e => {\n if (e && e.currentTarget !== e.target) {\n // If the event was generated for something NOT this element we\n // should ignore it as it's not relevant to us\n return;\n }\n\n if (visible) {\n if (onShow) {\n onShow();\n }\n } else {\n setIsRendering(false);\n\n if (onDismiss) {\n onDismiss();\n }\n }\n }, [onDismiss, onShow, visible]);\n React.useEffect(() => {\n if (visible) {\n setIsRendering(true);\n }\n\n if (visible !== wasVisible.current && !isAnimated) {\n // Manually call `animationEndCallback` if no animation is used\n animationEndCallback();\n }\n\n wasVisible.current = visible;\n }, [isAnimated, visible, animationEndCallback]);\n return isRendering || visible ? createElement('div', {\n style: isRendering ? getAnimationStyle(animationType, visible) : styles.hidden,\n onAnimationEnd: animationEndCallback,\n children\n }) : null;\n}\n\nvar styles = StyleSheet.create({\n container: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 9999\n },\n animatedIn: {\n animationDuration: ANIMATION_DURATION + \"ms\",\n animationTimingFunction: 'ease-in'\n },\n animatedOut: {\n pointerEvents: 'none',\n animationDuration: ANIMATION_DURATION + \"ms\",\n animationTimingFunction: 'ease-out'\n },\n fadeIn: {\n opacity: 1,\n animationKeyframes: {\n '0%': {\n opacity: 0\n },\n '100%': {\n opacity: 1\n }\n }\n },\n fadeOut: {\n opacity: 0,\n animationKeyframes: {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n }\n },\n slideIn: {\n transform: [{\n translateY: '0%'\n }],\n animationKeyframes: {\n '0%': {\n transform: [{\n translateY: '100%'\n }]\n },\n '100%': {\n transform: [{\n translateY: '0%'\n }]\n }\n }\n },\n slideOut: {\n transform: [{\n translateY: '100%'\n }],\n animationKeyframes: {\n '0%': {\n transform: [{\n translateY: '0%'\n }]\n },\n '100%': {\n transform: [{\n translateY: '100%'\n }]\n }\n }\n },\n hidden: {\n opacity: 0\n }\n});\nvar animatedSlideInStyles = [styles.container, styles.animatedIn, styles.slideIn];\nvar animatedSlideOutStyles = [styles.container, styles.animatedOut, styles.slideOut];\nvar animatedFadeInStyles = [styles.container, styles.animatedIn, styles.fadeIn];\nvar animatedFadeOutStyles = [styles.container, styles.animatedOut, styles.fadeOut];\nexport default ModalAnimation;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"active\", \"children\", \"onRequestClose\", \"transparent\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport View from '../View';\nimport StyleSheet from '../StyleSheet';\nimport canUseDOM from '../../modules/canUseDom';\nvar ModalContent = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var active = props.active,\n children = props.children,\n onRequestClose = props.onRequestClose,\n transparent = props.transparent,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n React.useEffect(() => {\n if (canUseDOM) {\n var closeOnEscape = e => {\n if (active && e.key === 'Escape') {\n e.stopPropagation();\n\n if (onRequestClose) {\n onRequestClose();\n }\n }\n };\n\n document.addEventListener('keyup', closeOnEscape, false);\n return () => document.removeEventListener('keyup', closeOnEscape, false);\n }\n }, [active, onRequestClose]);\n var style = React.useMemo(() => {\n return [styles.modal, transparent ? styles.modalTransparent : styles.modalOpaque];\n }, [transparent]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n accessibilityModal: true,\n accessibilityRole: active ? 'dialog' : null,\n ref: forwardedRef,\n style: style\n }), /*#__PURE__*/React.createElement(View, {\n style: styles.container\n }, children));\n});\nvar styles = StyleSheet.create({\n modal: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n modalTransparent: {\n backgroundColor: 'transparent'\n },\n modalOpaque: {\n backgroundColor: 'white'\n },\n container: {\n top: 0,\n flex: 1\n }\n});\nexport default ModalContent;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport View from '../View';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport UIManager from '../UIManager';\nimport canUseDOM from '../../modules/canUseDom';\n/**\n * This Component is used to \"wrap\" the modal we're opening\n * so that changing focus via tab will never leave the document.\n *\n * This allows us to properly trap the focus within a modal\n * even if the modal is at the start or end of a document.\n */\n\nvar FocusBracket = () => {\n return createElement('div', {\n accessibilityRole: 'none',\n tabIndex: 0,\n style: styles.focusBracket\n });\n};\n\nfunction attemptFocus(element) {\n if (!canUseDOM) {\n return false;\n }\n\n try {\n element.focus();\n } catch (e) {// Do nothing\n }\n\n return document.activeElement === element;\n}\n\nfunction focusFirstDescendant(element) {\n for (var i = 0; i < element.childNodes.length; i++) {\n var child = element.childNodes[i];\n\n if (attemptFocus(child) || focusFirstDescendant(child)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction focusLastDescendant(element) {\n for (var i = element.childNodes.length - 1; i >= 0; i--) {\n var child = element.childNodes[i];\n\n if (attemptFocus(child) || focusLastDescendant(child)) {\n return true;\n }\n }\n\n return false;\n}\n\nvar ModalFocusTrap = _ref => {\n var active = _ref.active,\n children = _ref.children;\n var trapElementRef = React.useRef();\n var focusRef = React.useRef({\n trapFocusInProgress: false,\n lastFocusedElement: null\n });\n React.useEffect(() => {\n if (canUseDOM) {\n var trapFocus = () => {\n // We should not trap focus if:\n // - The modal hasn't fully initialized with an HTMLElement ref\n // - Focus is already in the process of being trapped (e.g., we're refocusing)\n // - isTrapActive prop being falsey tells us to do nothing\n if (trapElementRef.current == null || focusRef.current.trapFocusInProgress || !active) {\n return;\n }\n\n try {\n focusRef.current.trapFocusInProgress = true;\n\n if (document.activeElement instanceof Node && !trapElementRef.current.contains(document.activeElement)) {\n // To handle keyboard focusing we can make an assumption here.\n // If you're tabbing through the focusable elements, the previously\n // active element will either be the first or the last.\n // If the previously selected element is the \"first\" descendant\n // and we're leaving it - this means that we should be looping\n // around to the other side of the modal.\n var hasFocused = focusFirstDescendant(trapElementRef.current);\n\n if (focusRef.current.lastFocusedElement === document.activeElement) {\n hasFocused = focusLastDescendant(trapElementRef.current);\n } // If we couldn't focus a new element then we need to focus onto the trap target\n\n\n if (!hasFocused && trapElementRef.current != null && document.activeElement) {\n UIManager.focus(trapElementRef.current);\n }\n }\n } finally {\n focusRef.current.trapFocusInProgress = false;\n }\n\n focusRef.current.lastFocusedElement = document.activeElement;\n }; // Call the trapFocus callback at least once when this modal has been activated.\n\n\n trapFocus();\n document.addEventListener('focus', trapFocus, true);\n return () => document.removeEventListener('focus', trapFocus, true);\n }\n }, [active]); // To be fully compliant with WCAG we need to refocus element that triggered opening modal\n // after closing it\n\n React.useEffect(function () {\n if (canUseDOM) {\n var lastFocusedElementOutsideTrap = document.activeElement;\n return function () {\n if (lastFocusedElementOutsideTrap && document.contains(lastFocusedElementOutsideTrap)) {\n UIManager.focus(lastFocusedElementOutsideTrap);\n }\n };\n }\n }, []);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FocusBracket, null), /*#__PURE__*/React.createElement(View, {\n ref: trapElementRef\n }, children), /*#__PURE__*/React.createElement(FocusBracket, null));\n};\n\nexport default ModalFocusTrap;\nvar styles = StyleSheet.create({\n focusBracket: {\n outlineStyle: 'none'\n }\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animationType\", \"children\", \"onDismiss\", \"onRequestClose\", \"onShow\", \"transparent\", \"visible\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport ModalPortal from './ModalPortal';\nimport ModalAnimation from './ModalAnimation';\nimport ModalContent from './ModalContent';\nimport ModalFocusTrap from './ModalFocusTrap';\nvar uniqueModalIdentifier = 0;\nvar activeModalStack = [];\nvar activeModalListeners = {};\n\nfunction notifyActiveModalListeners() {\n if (activeModalStack.length === 0) {\n return;\n }\n\n var activeModalId = activeModalStack[activeModalStack.length - 1];\n activeModalStack.forEach(modalId => {\n if (modalId in activeModalListeners) {\n activeModalListeners[modalId](modalId === activeModalId);\n }\n });\n}\n\nfunction removeActiveModal(modalId) {\n if (modalId in activeModalListeners) {\n // Before removing this listener we should probably tell it\n // that it's no longer the active modal for sure.\n activeModalListeners[modalId](false);\n delete activeModalListeners[modalId];\n }\n\n var index = activeModalStack.indexOf(modalId);\n\n if (index !== -1) {\n activeModalStack.splice(index, 1);\n notifyActiveModalListeners();\n }\n}\n\nfunction addActiveModal(modalId, listener) {\n removeActiveModal(modalId);\n activeModalStack.push(modalId);\n activeModalListeners[modalId] = listener;\n notifyActiveModalListeners();\n}\n\nvar Modal = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var animationType = props.animationType,\n children = props.children,\n onDismiss = props.onDismiss,\n onRequestClose = props.onRequestClose,\n onShow = props.onShow,\n transparent = props.transparent,\n _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n rest = _objectWithoutPropertiesLoose(props, _excluded); // Set a unique model identifier so we can correctly route\n // dismissals and check the layering of modals.\n\n\n var modalId = React.useMemo(() => uniqueModalIdentifier++, []);\n\n var _React$useState = React.useState(false),\n isActive = _React$useState[0],\n setIsActive = _React$useState[1];\n\n var onDismissCallback = React.useCallback(() => {\n removeActiveModal(modalId);\n\n if (onDismiss) {\n onDismiss();\n }\n }, [modalId, onDismiss]);\n var onShowCallback = React.useCallback(() => {\n addActiveModal(modalId, setIsActive);\n\n if (onShow) {\n onShow();\n }\n }, [modalId, onShow]);\n React.useEffect(() => {\n return () => removeActiveModal(modalId);\n }, [modalId]);\n return /*#__PURE__*/React.createElement(ModalPortal, null, /*#__PURE__*/React.createElement(ModalAnimation, {\n animationType: animationType,\n onDismiss: onDismissCallback,\n onShow: onShowCallback,\n visible: visible\n }, /*#__PURE__*/React.createElement(ModalFocusTrap, {\n active: isActive\n }, /*#__PURE__*/React.createElement(ModalContent, _extends({}, rest, {\n active: isActive,\n onRequestClose: onRequestClose,\n ref: forwardedRef,\n transparent: transparent\n }), children))));\n});\nexport default Modal;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"enabled\", \"onValueChange\", \"selectedValue\", \"style\", \"testID\", \"itemStyle\", \"mode\", \"prompt\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport PickerItem from './PickerItem';\nimport StyleSheet from '../StyleSheet';\nvar Picker = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var children = props.children,\n enabled = props.enabled,\n onValueChange = props.onValueChange,\n selectedValue = props.selectedValue,\n style = props.style,\n testID = props.testID,\n itemStyle = props.itemStyle,\n mode = props.mode,\n prompt = props.prompt,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n var hostRef = React.useRef(null);\n\n function handleChange(e) {\n var _e$target = e.target,\n selectedIndex = _e$target.selectedIndex,\n value = _e$target.value;\n\n if (onValueChange) {\n onValueChange(value, selectedIndex);\n }\n } // $FlowFixMe\n\n\n var supportedProps = _objectSpread({\n children,\n disabled: enabled === false ? true : undefined,\n onChange: handleChange,\n style: [styles.initial, style],\n testID,\n value: selectedValue\n }, other);\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement('select', supportedProps);\n}); // $FlowFixMe\n\nPicker.Item = PickerItem;\nvar styles = StyleSheet.create({\n initial: {\n fontFamily: 'System',\n fontSize: 'inherit',\n margin: 0\n }\n});\nexport default Picker;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport createElement from '../createElement';\nexport default function PickerItem(props) {\n var color = props.color,\n label = props.label,\n testID = props.testID,\n value = props.value;\n var style = {\n color\n };\n return createElement('option', {\n children: label,\n style,\n testID,\n value\n });\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"color\", \"indeterminate\", \"progress\", \"trackColor\", \"style\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar ProgressBar = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$indeterminate = props.indeterminate,\n indeterminate = _props$indeterminate === void 0 ? false : _props$indeterminate,\n _props$progress = props.progress,\n progress = _props$progress === void 0 ? 0 : _props$progress,\n _props$trackColor = props.trackColor,\n trackColor = _props$trackColor === void 0 ? 'transparent' : _props$trackColor,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n var percentageProgress = progress * 100;\n var width = indeterminate ? '25%' : percentageProgress + \"%\";\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityRole: \"progressbar\",\n accessibilityValueMax: 100,\n accessibilityValueMin: 0,\n accessibilityValueNow: indeterminate ? null : percentageProgress,\n ref: ref,\n style: [styles.track, style, {\n backgroundColor: trackColor\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [{\n backgroundColor: color,\n width\n }, styles.progress, indeterminate && styles.animation]\n }));\n});\nProgressBar.displayName = 'ProgressBar';\nvar styles = StyleSheet.create({\n track: {\n forcedColorAdjust: 'none',\n height: 5,\n overflow: 'hidden',\n userSelect: 'none',\n zIndex: 0\n },\n progress: {\n forcedColorAdjust: 'none',\n height: '100%',\n zIndex: -1\n },\n animation: {\n animationDuration: '1s',\n animationKeyframes: [{\n '0%': {\n transform: [{\n translateX: '-100%'\n }]\n },\n '100%': {\n transform: [{\n translateX: '400%'\n }]\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n }\n});\nexport default ProgressBar;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"style\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport canUseDOM from '../../modules/canUseDom';\n\nvar cssFunction = function () {\n if (canUseDOM && window.CSS && window.CSS.supports && window.CSS.supports('top: constant(safe-area-inset-top)')) {\n return 'constant';\n }\n\n return 'env';\n}();\n\nvar SafeAreaView = /*#__PURE__*/React.forwardRef((props, ref) => {\n var style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n ref: ref,\n style: StyleSheet.compose(styles.root, style)\n }));\n});\nSafeAreaView.displayName = 'SafeAreaView';\nvar styles = StyleSheet.create({\n root: {\n paddingTop: cssFunction + \"(safe-area-inset-top)\",\n paddingRight: cssFunction + \"(safe-area-inset-right)\",\n paddingBottom: cssFunction + \"(safe-area-inset-bottom)\",\n paddingLeft: cssFunction + \"(safe-area-inset-left)\"\n }\n});\nexport default SafeAreaView;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * From React 16.0.0\n */\nimport invariant from 'fbjs/lib/invariant';\n\nvar twoArgumentPooler = function twoArgumentPooler(a1, a2) {\n var Klass = this;\n\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\nvar standardReleaser = function standardReleaser(instance) {\n var Klass = this;\n instance.destructor();\n\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = twoArgumentPooler;\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\n\nvar addPoolingTo = function addPoolingTo(CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n twoArgumentPooler: twoArgumentPooler\n};\nexport default PooledClass;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\n/**\n * PooledClass representing the bounding rectangle of a region.\n */\n\nfunction BoundingDimensions(width, height) {\n this.width = width;\n this.height = height;\n}\n\nBoundingDimensions.prototype.destructor = function () {\n this.width = null;\n this.height = null;\n};\n\nBoundingDimensions.getPooledFromElement = function (element) {\n return BoundingDimensions.getPooled(element.offsetWidth, element.offsetHeight);\n};\n\nPooledClass.addPoolingTo(BoundingDimensions, twoArgumentPooler);\nexport default BoundingDimensions;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\n\nfunction Position(left, top) {\n this.left = left;\n this.top = top;\n}\n\nPosition.prototype.destructor = function () {\n this.left = null;\n this.top = null;\n};\n\nPooledClass.addPoolingTo(Position, twoArgumentPooler);\nexport default Position;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport BoundingDimensions from './BoundingDimensions';\nimport findNodeHandle from '../findNodeHandle';\nimport normalizeColor from 'normalize-css-color';\nimport Position from './Position';\nimport React from 'react';\nimport UIManager from '../UIManager';\nimport View from '../View';\n\nvar extractSingleTouch = nativeEvent => {\n var touches = nativeEvent.touches;\n var changedTouches = nativeEvent.changedTouches;\n var hasTouches = touches && touches.length > 0;\n var hasChangedTouches = changedTouches && changedTouches.length > 0;\n return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent;\n};\n/**\n * `Touchable`: Taps done right.\n *\n * You hook your `ResponderEventPlugin` events into `Touchable`. `Touchable`\n * will measure time/geometry and tells you when to give feedback to the user.\n *\n * ====================== Touchable Tutorial ===============================\n * The `Touchable` mixin helps you handle the \"press\" interaction. It analyzes\n * the geometry of elements, and observes when another responder (scroll view\n * etc) has stolen the touch lock. It notifies your component when it should\n * give feedback to the user. (bouncing/highlighting/unhighlighting).\n *\n * - When a touch was activated (typically you highlight)\n * - When a touch was deactivated (typically you unhighlight)\n * - When a touch was \"pressed\" - a touch ended while still within the geometry\n * of the element, and no other element (like scroller) has \"stolen\" touch\n * lock (\"responder\") (Typically you bounce the element).\n *\n * A good tap interaction isn't as simple as you might think. There should be a\n * slight delay before showing a highlight when starting a touch. If a\n * subsequent touch move exceeds the boundary of the element, it should\n * unhighlight, but if that same touch is brought back within the boundary, it\n * should rehighlight again. A touch can move in and out of that boundary\n * several times, each time toggling highlighting, but a \"press\" is only\n * triggered if that touch ends while within the element's boundary and no\n * scroller (or anything else) has stolen the lock on touches.\n *\n * To create a new type of component that handles interaction using the\n * `Touchable` mixin, do the following:\n *\n * - Initialize the `Touchable` state.\n *\n * getInitialState: function() {\n * return merge(this.touchableGetInitialState(), yourComponentState);\n * }\n *\n * - Choose the rendered component who's touches should start the interactive\n * sequence. On that rendered node, forward all `Touchable` responder\n * handlers. You can choose any rendered node you like. Choose a node whose\n * hit target you'd like to instigate the interaction sequence:\n *\n * // In render function:\n * return (\n * \n * \n * Even though the hit detection/interactions are triggered by the\n * wrapping (typically larger) node, we usually end up implementing\n * custom logic that highlights this inner one.\n * \n *
\n * );\n *\n * - You may set up your own handlers for each of these events, so long as you\n * also invoke the `touchable*` handlers inside of your custom handler.\n *\n * - Implement the handlers on your component class in order to provide\n * feedback to the user. See documentation for each of these class methods\n * that you should implement.\n *\n * touchableHandlePress: function() {\n * this.performBounceAnimation(); // or whatever you want to do.\n * },\n * touchableHandleActivePressIn: function() {\n * this.beginHighlighting(...); // Whatever you like to convey activation\n * },\n * touchableHandleActivePressOut: function() {\n * this.endHighlighting(...); // Whatever you like to convey deactivation\n * },\n *\n * - There are more advanced methods you can implement (see documentation below):\n * touchableGetHighlightDelayMS: function() {\n * return 20;\n * }\n * // In practice, *always* use a predeclared constant (conserve memory).\n * touchableGetPressRectOffset: function() {\n * return {top: 20, left: 20, right: 20, bottom: 100};\n * }\n */\n\n/**\n * Touchable states.\n */\n\n\nvar States = {\n NOT_RESPONDER: 'NOT_RESPONDER',\n // Not the responder\n RESPONDER_INACTIVE_PRESS_IN: 'RESPONDER_INACTIVE_PRESS_IN',\n // Responder, inactive, in the `PressRect`\n RESPONDER_INACTIVE_PRESS_OUT: 'RESPONDER_INACTIVE_PRESS_OUT',\n // Responder, inactive, out of `PressRect`\n RESPONDER_ACTIVE_PRESS_IN: 'RESPONDER_ACTIVE_PRESS_IN',\n // Responder, active, in the `PressRect`\n RESPONDER_ACTIVE_PRESS_OUT: 'RESPONDER_ACTIVE_PRESS_OUT',\n // Responder, active, out of `PressRect`\n RESPONDER_ACTIVE_LONG_PRESS_IN: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n // Responder, active, in the `PressRect`, after long press threshold\n RESPONDER_ACTIVE_LONG_PRESS_OUT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n // Responder, active, out of `PressRect`, after long press threshold\n ERROR: 'ERROR'\n};\n\n/*\n * Quick lookup map for states that are considered to be \"active\"\n */\nvar baseStatesConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false\n};\n\nvar IsActive = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true\n});\n/**\n * Quick lookup for states that are considered to be \"pressing\" and are\n * therefore eligible to result in a \"selection\" if the press stops.\n */\n\n\nvar IsPressingIn = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_INACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true\n});\n\nvar IsLongPressingIn = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_ACTIVE_LONG_PRESS_IN: true\n});\n/**\n * Inputs to the state machine.\n */\n\n\nvar Signals = {\n DELAY: 'DELAY',\n RESPONDER_GRANT: 'RESPONDER_GRANT',\n RESPONDER_RELEASE: 'RESPONDER_RELEASE',\n RESPONDER_TERMINATED: 'RESPONDER_TERMINATED',\n ENTER_PRESS_RECT: 'ENTER_PRESS_RECT',\n LEAVE_PRESS_RECT: 'LEAVE_PRESS_RECT',\n LONG_PRESS_DETECTED: 'LONG_PRESS_DETECTED'\n};\n\n/**\n * Mapping from States x Signals => States\n */\nvar Transitions = {\n NOT_RESPONDER: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.ERROR,\n RESPONDER_TERMINATED: States.ERROR,\n ENTER_PRESS_RECT: States.ERROR,\n LEAVE_PRESS_RECT: States.ERROR,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_IN,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_OUT,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n error: {\n DELAY: States.NOT_RESPONDER,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.NOT_RESPONDER,\n LEAVE_PRESS_RECT: States.NOT_RESPONDER,\n LONG_PRESS_DETECTED: States.NOT_RESPONDER\n }\n}; // ==== Typical Constants for integrating into UI components ====\n// var HIT_EXPAND_PX = 20;\n// var HIT_VERT_OFFSET_PX = 10;\n\nvar HIGHLIGHT_DELAY_MS = 130;\nvar PRESS_EXPAND_PX = 20;\nvar LONG_PRESS_THRESHOLD = 500;\nvar LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\nvar LONG_PRESS_ALLOWED_MOVEMENT = 10; // Default amount \"active\" region protrudes beyond box\n\n/**\n * By convention, methods prefixed with underscores are meant to be @private,\n * and not @protected. Mixers shouldn't access them - not even to provide them\n * as callback handlers.\n *\n *\n * ========== Geometry =========\n * `Touchable` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * +--------------------------+\n * | | - \"Start\" events in `HitRect` cause `HitRect`\n * | +--------------------+ | to become the responder.\n * | | +--------------+ | | - `HitRect` is typically expanded around\n * | | | | | | the `VisualRect`, but shifted downward.\n * | | | VisualRect | | | - After pressing down, after some delay,\n * | | | | | | and before letting up, the Visual React\n * | | +--------------+ | | will become \"active\". This makes it eligible\n * | | HitRect | | for being highlighted (so long as the\n * | +--------------------+ | press remains in the `PressRect`).\n * | PressRect o |\n * +----------------------|---+\n * Out Region |\n * +-----+ This gap between the `HitRect` and\n * `PressRect` allows a touch to move far away\n * from the original hit rect, and remain\n * highlighted, and eligible for a \"Press\".\n * Customize this via\n * `touchableGetPressRectOffset()`.\n *\n *\n *\n * ======= State Machine =======\n *\n * +-------------+ <---+ RESPONDER_RELEASE\n * |NOT_RESPONDER|\n * +-------------+ <---+ RESPONDER_TERMINATED\n * +\n * | RESPONDER_GRANT (HitRect)\n * v\n * +---------------------------+ DELAY +-------------------------+ T + DELAY +------------------------------+\n * |RESPONDER_INACTIVE_PRESS_IN|+-------->|RESPONDER_ACTIVE_PRESS_IN| +------------> |RESPONDER_ACTIVE_LONG_PRESS_IN|\n * +---------------------------+ +-------------------------+ +------------------------------+\n * + ^ + ^ + ^\n * |LEAVE_ |ENTER_ |LEAVE_ |ENTER_ |LEAVE_ |ENTER_\n * |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT\n * | | | | | |\n * v + v + v +\n * +----------------------------+ DELAY +--------------------------+ +-------------------------------+\n * |RESPONDER_INACTIVE_PRESS_OUT|+------->|RESPONDER_ACTIVE_PRESS_OUT| |RESPONDER_ACTIVE_LONG_PRESS_OUT|\n * +----------------------------+ +--------------------------+ +-------------------------------+\n *\n * T + DELAY => LONG_PRESS_DELAY_MS + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the `touchableHandlePress` abstract method invocation that occurs\n * when a responder is released while in either of the \"Press\" states.\n *\n * The other important side effects are the highlight abstract method\n * invocations (internal callbacks) to be implemented by the mixer.\n *\n *\n * @lends Touchable.prototype\n */\n\nvar TouchableMixin = {\n // HACK (part 1): basic support for touchable interactions using a keyboard\n componentDidMount: function componentDidMount() {\n this._touchableNode = findNodeHandle(this);\n\n if (this._touchableNode && this._touchableNode.addEventListener) {\n this._touchableBlurListener = e => {\n if (this._isTouchableKeyboardActive) {\n if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {\n this.touchableHandleResponderTerminate({\n nativeEvent: e\n });\n }\n\n this._isTouchableKeyboardActive = false;\n }\n };\n\n this._touchableNode.addEventListener('blur', this._touchableBlurListener);\n }\n },\n\n /**\n * Clear all timeouts on unmount\n */\n componentWillUnmount: function componentWillUnmount() {\n if (this._touchableNode && this._touchableNode.addEventListener) {\n this._touchableNode.removeEventListener('blur', this._touchableBlurListener);\n }\n\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout); // Clear DOM nodes\n\n this.pressInLocation = null;\n this.state.touchable.responderID = null;\n this._touchableNode = null;\n },\n\n /**\n * It's prefer that mixins determine state in this way, having the class\n * explicitly mix the state in the one and only `getInitialState` method.\n *\n * @return {object} State object to be placed inside of\n * `this.state.touchable`.\n */\n touchableGetInitialState: function touchableGetInitialState() {\n return {\n touchable: {\n touchState: undefined,\n responderID: null\n }\n };\n },\n // ==== Hooks to Gesture Responder system ====\n\n /**\n * Must return true if embedded in a native platform scroll view.\n */\n touchableHandleResponderTerminationRequest: function touchableHandleResponderTerminationRequest() {\n return !this.props.rejectResponderTermination;\n },\n\n /**\n * Must return true to start the process of `Touchable`.\n */\n touchableHandleStartShouldSetResponder: function touchableHandleStartShouldSetResponder() {\n return !this.props.disabled;\n },\n\n /**\n * Return true to cancel press on long press.\n */\n touchableLongPressCancelsPress: function touchableLongPressCancelsPress() {\n return true;\n },\n\n /**\n * Place as callback for a DOM element's `onResponderGrant` event.\n * @param {SyntheticEvent} e Synthetic event from event system.\n *\n */\n touchableHandleResponderGrant: function touchableHandleResponderGrant(e) {\n var dispatchID = e.currentTarget; // Since e is used in a callback invoked on another event loop\n // (as in setTimeout etc), we need to call e.persist() on the\n // event to make sure it doesn't get reused in the event object pool.\n\n e.persist();\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n this.pressOutDelayTimeout = null;\n this.state.touchable.touchState = States.NOT_RESPONDER;\n this.state.touchable.responderID = dispatchID;\n\n this._receiveSignal(Signals.RESPONDER_GRANT, e);\n\n var delayMS = this.touchableGetHighlightDelayMS !== undefined ? Math.max(this.touchableGetHighlightDelayMS(), 0) : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n\n if (delayMS !== 0) {\n this.touchableDelayTimeout = setTimeout(this._handleDelay.bind(this, e), delayMS);\n } else {\n this._handleDelay(e);\n }\n\n var longDelayMS = this.touchableGetLongPressDelayMS !== undefined ? Math.max(this.touchableGetLongPressDelayMS(), 10) : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this.longPressDelayTimeout = setTimeout(this._handleLongDelay.bind(this, e), longDelayMS + delayMS);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderRelease` event.\n */\n touchableHandleResponderRelease: function touchableHandleResponderRelease(e) {\n this.pressInLocation = null;\n\n this._receiveSignal(Signals.RESPONDER_RELEASE, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderTerminate` event.\n */\n touchableHandleResponderTerminate: function touchableHandleResponderTerminate(e) {\n this.pressInLocation = null;\n\n this._receiveSignal(Signals.RESPONDER_TERMINATED, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderMove` event.\n */\n touchableHandleResponderMove: function touchableHandleResponderMove(e) {\n // Measurement may not have returned yet.\n if (!this.state.touchable.positionOnActivate) {\n return;\n }\n\n var positionOnActivate = this.state.touchable.positionOnActivate;\n var dimensionsOnActivate = this.state.touchable.dimensionsOnActivate;\n var pressRectOffset = this.touchableGetPressRectOffset ? this.touchableGetPressRectOffset() : {\n left: PRESS_EXPAND_PX,\n right: PRESS_EXPAND_PX,\n top: PRESS_EXPAND_PX,\n bottom: PRESS_EXPAND_PX\n };\n var pressExpandLeft = pressRectOffset.left;\n var pressExpandTop = pressRectOffset.top;\n var pressExpandRight = pressRectOffset.right;\n var pressExpandBottom = pressRectOffset.bottom;\n var hitSlop = this.touchableGetHitSlop ? this.touchableGetHitSlop() : null;\n\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n\n if (this.pressInLocation) {\n var movedDistance = this._getDistanceBetweenPoints(pageX, pageY, this.pressInLocation.pageX, this.pressInLocation.pageY);\n\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n var isTouchWithinActive = pageX > positionOnActivate.left - pressExpandLeft && pageY > positionOnActivate.top - pressExpandTop && pageX < positionOnActivate.left + dimensionsOnActivate.width + pressExpandRight && pageY < positionOnActivate.top + dimensionsOnActivate.height + pressExpandBottom;\n\n if (isTouchWithinActive) {\n var prevState = this.state.touchable.touchState;\n\n this._receiveSignal(Signals.ENTER_PRESS_RECT, e);\n\n var curState = this.state.touchable.touchState;\n\n if (curState === States.RESPONDER_INACTIVE_PRESS_IN && prevState !== States.RESPONDER_INACTIVE_PRESS_IN) {\n // fix for t7967420\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n\n this._receiveSignal(Signals.LEAVE_PRESS_RECT, e);\n }\n },\n\n /**\n * Invoked when the item receives focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * currently has the focus. Most platforms only support a single element being\n * focused at a time, in which case there may have been a previously focused\n * element that was blurred just prior to this. This can be overridden when\n * using `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n touchableHandleFocus: function touchableHandleFocus(e) {\n this.props.onFocus && this.props.onFocus(e);\n },\n\n /**\n * Invoked when the item loses focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * no longer has focus. Most platforms only support a single element being\n * focused at a time, in which case the focus may have moved to another.\n * This can be overridden when using\n * `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n touchableHandleBlur: function touchableHandleBlur(e) {\n this.props.onBlur && this.props.onBlur(e);\n },\n // ==== Abstract Application Callbacks ====\n\n /**\n * Invoked when the item should be highlighted. Mixers should implement this\n * to visually distinguish the `VisualRect` so that the user knows that\n * releasing a touch will result in a \"selection\" (analog to click).\n *\n * @abstract\n * touchableHandleActivePressIn: function,\n */\n\n /**\n * Invoked when the item is \"active\" (in that it is still eligible to become\n * a \"select\") but the touch has left the `PressRect`. Usually the mixer will\n * want to unhighlight the `VisualRect`. If the user (while pressing) moves\n * back into the `PressRect` `touchableHandleActivePressIn` will be invoked\n * again and the mixer should probably highlight the `VisualRect` again. This\n * event will not fire on an `touchEnd/mouseUp` event, only move events while\n * the user is depressing the mouse/touch.\n *\n * @abstract\n * touchableHandleActivePressOut: function\n */\n\n /**\n * Invoked when the item is \"selected\" - meaning the interaction ended by\n * letting up while the item was either in the state\n * `RESPONDER_ACTIVE_PRESS_IN` or `RESPONDER_INACTIVE_PRESS_IN`.\n *\n * @abstract\n * touchableHandlePress: function\n */\n\n /**\n * Invoked when the item is long pressed - meaning the interaction ended by\n * letting up while the item was in `RESPONDER_ACTIVE_LONG_PRESS_IN`. If\n * `touchableHandleLongPress` is *not* provided, `touchableHandlePress` will\n * be called as it normally is. If `touchableHandleLongPress` is provided, by\n * default any `touchableHandlePress` callback will not be invoked. To\n * override this default behavior, override `touchableLongPressCancelsPress`\n * to return false. As a result, `touchableHandlePress` will be called when\n * lifting up, even if `touchableHandleLongPress` has also been called.\n *\n * @abstract\n * touchableHandleLongPress: function\n */\n\n /**\n * Returns the number of millis to wait before triggering a highlight.\n *\n * @abstract\n * touchableGetHighlightDelayMS: function\n */\n\n /**\n * Returns the amount to extend the `HitRect` into the `PressRect`. Positive\n * numbers mean the size expands outwards.\n *\n * @abstract\n * touchableGetPressRectOffset: function\n */\n // ==== Internal Logic ====\n\n /**\n * Measures the `HitRect` node on activation. The Bounding rectangle is with\n * respect to viewport - not page, so adding the `pageXOffset/pageYOffset`\n * should result in points that are in the same coordinate system as an\n * event's `globalX/globalY` data values.\n *\n * - Consider caching this for the lifetime of the component, or possibly\n * being able to share this cache between any `ScrollMap` view.\n *\n * @sideeffects\n * @private\n */\n _remeasureMetricsOnActivation: function _remeasureMetricsOnActivation() {\n var tag = this.state.touchable.responderID;\n\n if (tag == null) {\n return;\n }\n\n UIManager.measure(tag, this._handleQueryLayout);\n },\n _handleQueryLayout: function _handleQueryLayout(l, t, w, h, globalX, globalY) {\n //don't do anything UIManager failed to measure node\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n\n this.state.touchable.positionOnActivate && Position.release(this.state.touchable.positionOnActivate);\n this.state.touchable.dimensionsOnActivate && // $FlowFixMe\n BoundingDimensions.release(this.state.touchable.dimensionsOnActivate);\n this.state.touchable.positionOnActivate = Position.getPooled(globalX, globalY); // $FlowFixMe\n\n this.state.touchable.dimensionsOnActivate = BoundingDimensions.getPooled(w, h);\n },\n _handleDelay: function _handleDelay(e) {\n this.touchableDelayTimeout = null;\n\n this._receiveSignal(Signals.DELAY, e);\n },\n _handleLongDelay: function _handleLongDelay(e) {\n this.longPressDelayTimeout = null;\n var curState = this.state.touchable.touchState;\n\n if (curState !== States.RESPONDER_ACTIVE_PRESS_IN && curState !== States.RESPONDER_ACTIVE_LONG_PRESS_IN) {\n console.error('Attempted to transition from state `' + curState + '` to `' + States.RESPONDER_ACTIVE_LONG_PRESS_IN + '`, which is not supported. This is ' + 'most likely due to `Touchable.longPressDelayTimeout` not being cancelled.');\n } else {\n this._receiveSignal(Signals.LONG_PRESS_DETECTED, e);\n }\n },\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n *\n * @param {Signals} signal State machine signal.\n * @throws Error if invalid state transition or unrecognized signal.\n * @sideeffects\n */\n _receiveSignal: function _receiveSignal(signal, e) {\n var responderID = this.state.touchable.responderID;\n var curState = this.state.touchable.touchState;\n var nextState = Transitions[curState] && Transitions[curState][signal];\n\n if (!responderID && signal === Signals.RESPONDER_RELEASE) {\n return;\n }\n\n if (!nextState) {\n throw new Error('Unrecognized signal `' + signal + '` or state `' + curState + '` for Touchable responder `' + responderID + '`');\n }\n\n if (nextState === States.ERROR) {\n throw new Error('Touchable cannot transition from `' + curState + '` to `' + signal + '` for responder `' + responderID + '`');\n }\n\n if (curState !== nextState) {\n this._performSideEffectsForTransition(curState, nextState, signal, e);\n\n this.state.touchable.touchState = nextState;\n }\n },\n _cancelLongPressDelayTimeout: function _cancelLongPressDelayTimeout() {\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.longPressDelayTimeout = null;\n },\n _isHighlight: function _isHighlight(state) {\n return state === States.RESPONDER_ACTIVE_PRESS_IN || state === States.RESPONDER_ACTIVE_LONG_PRESS_IN;\n },\n _savePressInLocation: function _savePressInLocation(e) {\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n var locationX = touch && touch.locationX;\n var locationY = touch && touch.locationY;\n this.pressInLocation = {\n pageX,\n pageY,\n locationX,\n locationY\n };\n },\n _getDistanceBetweenPoints: function _getDistanceBetweenPoints(aX, aY, bX, bY) {\n var deltaX = aX - bX;\n var deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n },\n\n /**\n * Will perform a transition between touchable states, and identify any\n * highlighting or unhighlighting that must be performed for this particular\n * transition.\n *\n * @param {States} curState Current Touchable state.\n * @param {States} nextState Next Touchable state.\n * @param {Signal} signal Signal that triggered the transition.\n * @param {Event} e Native event.\n * @sideeffects\n */\n _performSideEffectsForTransition: function _performSideEffectsForTransition(curState, nextState, signal, e) {\n var curIsHighlight = this._isHighlight(curState);\n\n var newIsHighlight = this._isHighlight(nextState);\n\n var isFinalSignal = signal === Signals.RESPONDER_TERMINATED || signal === Signals.RESPONDER_RELEASE;\n\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n\n var isInitialTransition = curState === States.NOT_RESPONDER && nextState === States.RESPONDER_INACTIVE_PRESS_IN;\n var isActiveTransition = !IsActive[curState] && IsActive[nextState];\n\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n\n if (IsPressingIn[curState] && signal === Signals.LONG_PRESS_DETECTED) {\n this.touchableHandleLongPress && this.touchableHandleLongPress(e);\n }\n\n if (newIsHighlight && !curIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && curIsHighlight) {\n this._endHighlight(e);\n }\n\n if (IsPressingIn[curState] && signal === Signals.RESPONDER_RELEASE) {\n var hasLongPressHandler = !!this.props.onLongPress;\n var pressIsLongButStillCallOnPress = IsLongPressingIn[curState] && ( // We *are* long pressing.. // But either has no long handler\n !hasLongPressHandler || !this.touchableLongPressCancelsPress()); // or we're told to ignore it.\n\n var shouldInvokePress = !IsLongPressingIn[curState] || pressIsLongButStillCallOnPress;\n\n if (shouldInvokePress && this.touchableHandlePress) {\n if (!newIsHighlight && !curIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n\n this._endHighlight(e);\n }\n\n this.touchableHandlePress(e);\n }\n }\n\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.touchableDelayTimeout = null;\n },\n _playTouchSound: function _playTouchSound() {\n UIManager.playTouchSound();\n },\n _startHighlight: function _startHighlight(e) {\n this._savePressInLocation(e);\n\n this.touchableHandleActivePressIn && this.touchableHandleActivePressIn(e);\n },\n _endHighlight: function _endHighlight(e) {\n if (this.touchableHandleActivePressOut) {\n if (this.touchableGetPressOutDelayMS && this.touchableGetPressOutDelayMS()) {\n this.pressOutDelayTimeout = setTimeout(() => {\n this.touchableHandleActivePressOut(e);\n }, this.touchableGetPressOutDelayMS());\n } else {\n this.touchableHandleActivePressOut(e);\n }\n }\n },\n // HACK (part 2): basic support for touchable interactions using a keyboard (including\n // delays and longPress)\n touchableHandleKeyEvent: function touchableHandleKeyEvent(e) {\n var type = e.type,\n key = e.key;\n\n if (key === 'Enter' || key === ' ') {\n if (type === 'keydown') {\n if (!this._isTouchableKeyboardActive) {\n if (!this.state.touchable.touchState || this.state.touchable.touchState === States.NOT_RESPONDER) {\n this.touchableHandleResponderGrant(e);\n this._isTouchableKeyboardActive = true;\n }\n }\n } else if (type === 'keyup') {\n if (this._isTouchableKeyboardActive) {\n if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {\n this.touchableHandleResponderRelease(e);\n this._isTouchableKeyboardActive = false;\n }\n }\n }\n\n e.stopPropagation(); // prevent the default behaviour unless the Touchable functions as a link\n // and Enter is pressed\n\n if (!(key === 'Enter' && AccessibilityUtil.propsToAriaRole(this.props) === 'link')) {\n e.preventDefault();\n }\n }\n },\n withoutDefaultFocusAndBlur: {}\n};\n/**\n * Provide an optional version of the mixin where `touchableHandleFocus` and\n * `touchableHandleBlur` can be overridden. This allows appropriate defaults to\n * be set on TV platforms, without breaking existing implementations of\n * `Touchable`.\n */\n\nvar touchableHandleFocus = TouchableMixin.touchableHandleFocus,\n touchableHandleBlur = TouchableMixin.touchableHandleBlur,\n TouchableMixinWithoutDefaultFocusAndBlur = _objectWithoutPropertiesLoose(TouchableMixin, [\"touchableHandleFocus\", \"touchableHandleBlur\"]);\n\nTouchableMixin.withoutDefaultFocusAndBlur = TouchableMixinWithoutDefaultFocusAndBlur;\nvar Touchable = {\n Mixin: TouchableMixin,\n TOUCH_TARGET_DEBUG: false,\n // Highlights all touchable targets. Toggle with Inspector.\n\n /**\n * Renders a debugging overlay to visualize touch target with hitSlop (might not work on Android).\n */\n renderDebugView: _ref => {\n var color = _ref.color,\n hitSlop = _ref.hitSlop;\n\n if (!Touchable.TOUCH_TARGET_DEBUG) {\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n throw Error('Touchable.TOUCH_TARGET_DEBUG should not be enabled in prod!');\n }\n\n var debugHitSlopStyle = {};\n hitSlop = hitSlop || {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n\n for (var key in hitSlop) {\n debugHitSlopStyle[key] = -hitSlop[key];\n }\n\n var normalizedColor = normalizeColor(color);\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n var hexColor = '#' + ('00000000' + normalizedColor.toString(16)).substr(-8);\n return /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n style: _objectSpread({\n position: 'absolute',\n borderColor: hexColor.slice(0, -2) + '55',\n // More opaque\n borderWidth: 1,\n borderStyle: 'dashed',\n backgroundColor: hexColor.slice(0, -2) + '0F'\n }, debugHitSlopStyle)\n });\n }\n};\nexport default Touchable;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport React from 'react';\nimport UnimplementedView from '../../modules/UnimplementedView';\n\nfunction YellowBox(props) {\n return /*#__PURE__*/React.createElement(UnimplementedView, props);\n}\n\nYellowBox.ignoreWarnings = () => {};\n\nexport default YellowBox;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","var promiseMock = () => Promise.resolve(false);\n\nexport default {\n PERMISSIONS: {},\n RESULTS: {},\n checkPermission: promiseMock,\n check: promiseMock,\n requestPermission: promiseMock,\n request: promiseMock,\n requestMultiple: promiseMock\n};","export default {};","export default {};","export default {};","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport { useLocaleContext } from '../../modules/useLocale';\nexport default useLocaleContext;","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar AuthenticationDetails = /*#__PURE__*/function () {\n /**\n * Constructs a new AuthenticationDetails object\n * @param {object=} data Creation options.\n * @param {string} data.Username User being authenticated.\n * @param {string} data.Password Plain-text password to authenticate with.\n * @param {(AttributeArg[])?} data.ValidationData Application extra metadata.\n * @param {(AttributeArg[])?} data.AuthParamaters Authentication paramaters for custom auth.\n */\n function AuthenticationDetails(data) {\n var _ref = data || {},\n ValidationData = _ref.ValidationData,\n Username = _ref.Username,\n Password = _ref.Password,\n AuthParameters = _ref.AuthParameters,\n ClientMetadata = _ref.ClientMetadata;\n this.validationData = ValidationData || {};\n this.authParameters = AuthParameters || {};\n this.clientMetadata = ClientMetadata || {};\n this.username = Username;\n this.password = Password;\n }\n\n /**\n * @returns {string} the record's username\n */\n var _proto = AuthenticationDetails.prototype;\n _proto.getUsername = function getUsername() {\n return this.username;\n }\n\n /**\n * @returns {string} the record's password\n */;\n _proto.getPassword = function getPassword() {\n return this.password;\n }\n\n /**\n * @returns {Array} the record's validationData\n */;\n _proto.getValidationData = function getValidationData() {\n return this.validationData;\n }\n\n /**\n * @returns {Array} the record's authParameters\n */;\n _proto.getAuthParameters = function getAuthParameters() {\n return this.authParameters;\n }\n\n /**\n * @returns {ClientMetadata} the clientMetadata for a Lambda trigger\n */;\n _proto.getClientMetadata = function getClientMetadata() {\n return this.clientMetadata;\n };\n return AuthenticationDetails;\n}();\nexport { AuthenticationDetails as default };","var crypto;\n\n// Native crypto from window (Browser)\nif (typeof window !== 'undefined' && window.crypto) {\n crypto = window.crypto;\n}\n\n// Native (experimental IE 11) crypto from window (Browser)\nif (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n crypto = window.msCrypto;\n}\n\n/*\n * Cryptographically secure pseudorandom number generator\n * As Math.random() is cryptographically not safe to use\n */\nexport default function cryptoSecureRandomInt() {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === 'function') {\n try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n } catch (err) {}\n }\n\n // Use randomBytes method (NodeJS)\n if (typeof crypto.randomBytes === 'function') {\n try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\n }\n throw new Error('Native crypto module could not be used to get secure random number.');\n}","import cryptoSecureRandomInt from './cryptoSecureRandomInt';\n\n/**\n * Hex encoding strategy.\n * Converts a word array to a hex string.\n * @param {WordArray} wordArray The word array.\n * @return {string} The hex string.\n * @static\n */\nfunction hexStringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n\n // Convert\n var hexChars = [];\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n return hexChars.join('');\n}\nvar WordArray = /*#__PURE__*/function () {\n function WordArray(words, sigBytes) {\n words = this.words = words || [];\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 4;\n }\n }\n var _proto = WordArray.prototype;\n _proto.random = function random(nBytes) {\n var words = [];\n for (var i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n return new WordArray(words, nBytes);\n };\n _proto.toString = function toString() {\n return hexStringify(this);\n };\n return WordArray;\n}();\nexport { WordArray as default };","// A small implementation of BigInteger based on http://www-cs-students.stanford.edu/~tjw/jsbn/\n//\n// All public methods have been removed except the following:\n// new BigInteger(a, b) (only radix 2, 4, 8, 16 and 32 supported)\n// toString (only radix 2, 4, 8, 16 and 32 supported)\n// negate\n// abs\n// compareTo\n// bitLength\n// mod\n// equals\n// add\n// subtract\n// multiply\n// divide\n// modPow\n\nexport default BigInteger;\n\n/*\n * Copyright (c) 2003-2005 Tom Wu\n * All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY\n * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n *\n * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,\n * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER\n * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF\n * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT\n * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n *\n * In addition, the following condition applies:\n *\n * All redistributions must retain an intact copy of this copyright notice\n * and disclaimer.\n */\n\n// (public) Constructor\nfunction BigInteger(a, b) {\n if (a != null) this.fromString(a, b);\n}\n\n// return new, unset BigInteger\nfunction nbi() {\n return new BigInteger(null);\n}\n\n// Bits per digit\nvar dbits;\n\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = (canary & 0xffffff) == 0xefcafe;\n\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\n\n// am1: use a single mult and divide to get the high bits,\n// max digit bits should be 26 because\n// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\nfunction am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n var v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 0x4000000);\n w[j++] = v & 0x3ffffff;\n }\n return c;\n}\n// am2 avoids a big mult-and-extract completely.\n// Max digit bits should be <= 30 because we do bitwise ops\n// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\nfunction am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff,\n xh = x >> 15;\n while (--n >= 0) {\n var l = this[i] & 0x7fff;\n var h = this[i++] >> 15;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 0x3fffffff;\n }\n return c;\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff,\n xh = x >> 14;\n while (--n >= 0) {\n var l = this[i] & 0x3fff;\n var h = this[i++] >> 14;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 0xfffffff;\n }\n return c;\n}\nvar inBrowser = typeof navigator !== 'undefined';\nif (inBrowser && j_lm && navigator.appName == 'Microsoft Internet Explorer') {\n BigInteger.prototype.am = am2;\n dbits = 30;\n} else if (inBrowser && j_lm && navigator.appName != 'Netscape') {\n BigInteger.prototype.am = am1;\n dbits = 26;\n} else {\n // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n}\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = (1 << dbits) - 1;\nBigInteger.prototype.DV = 1 << dbits;\nvar BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n\n// Digit conversions\nvar BI_RM = '0123456789abcdefghijklmnopqrstuvwxyz';\nvar BI_RC = new Array();\nvar rr, vv;\nrr = '0'.charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;\nrr = 'a'.charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;\nrr = 'A'.charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return c == null ? -1 : c;\n}\n\n// (protected) copy this to r\nfunction bnpCopyTo(r) {\n for (var i = this.t - 1; i >= 0; --i) r[i] = this[i];\n r.t = this.t;\n r.s = this.s;\n}\n\n// (protected) set from integer value x, -DV <= x < DV\nfunction bnpFromInt(x) {\n this.t = 1;\n this.s = x < 0 ? -1 : 0;\n if (x > 0) this[0] = x;else if (x < -1) this[0] = x + this.DV;else this.t = 0;\n}\n\n// return bigint initialized to value\nfunction nbv(i) {\n var r = nbi();\n r.fromInt(i);\n return r;\n}\n\n// (protected) set from string and radix\nfunction bnpFromString(s, b) {\n var k;\n if (b == 16) k = 4;else if (b == 8) k = 3;else if (b == 2) k = 1;else if (b == 32) k = 5;else if (b == 4) k = 2;else throw new Error('Only radix 2, 4, 8, 16, 32 are supported');\n this.t = 0;\n this.s = 0;\n var i = s.length,\n mi = false,\n sh = 0;\n while (--i >= 0) {\n var x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == '-') mi = true;\n continue;\n }\n mi = false;\n if (sh == 0) this[this.t++] = x;else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & (1 << this.DB - sh) - 1) << sh;\n this[this.t++] = x >> this.DB - sh;\n } else this[this.t - 1] |= x << sh;\n sh += k;\n if (sh >= this.DB) sh -= this.DB;\n }\n this.clamp();\n if (mi) BigInteger.ZERO.subTo(this, this);\n}\n\n// (protected) clamp off excess high words\nfunction bnpClamp() {\n var c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c) --this.t;\n}\n\n// (public) return string representation in given radix\nfunction bnToString(b) {\n if (this.s < 0) return '-' + this.negate().toString(b);\n var k;\n if (b == 16) k = 4;else if (b == 8) k = 3;else if (b == 2) k = 1;else if (b == 32) k = 5;else if (b == 4) k = 2;else throw new Error('Only radix 2, 4, 8, 16, 32 are supported');\n var km = (1 << k) - 1,\n d,\n m = false,\n r = '',\n i = this.t;\n var p = this.DB - i * this.DB % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & (1 << p) - 1) << k - p;\n d |= this[--i] >> (p += this.DB - k);\n } else {\n d = this[i] >> (p -= k) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) m = true;\n if (m) r += int2char(d);\n }\n }\n return m ? r : '0';\n}\n\n// (public) -this\nfunction bnNegate() {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n}\n\n// (public) |this|\nfunction bnAbs() {\n return this.s < 0 ? this.negate() : this;\n}\n\n// (public) return + if this > a, - if this < a, 0 if equal\nfunction bnCompareTo(a) {\n var r = this.s - a.s;\n if (r != 0) return r;\n var i = this.t;\n r = i - a.t;\n if (r != 0) return this.s < 0 ? -r : r;\n while (--i >= 0) if ((r = this[i] - a[i]) != 0) return r;\n return 0;\n}\n\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1,\n t;\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n\n// (public) return the number of bits in \"this\"\nfunction bnBitLength() {\n if (this.t <= 0) return 0;\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ this.s & this.DM);\n}\n\n// (protected) r = this << n*DB\nfunction bnpDLShiftTo(n, r) {\n var i;\n for (i = this.t - 1; i >= 0; --i) r[i + n] = this[i];\n for (i = n - 1; i >= 0; --i) r[i] = 0;\n r.t = this.t + n;\n r.s = this.s;\n}\n\n// (protected) r = this >> n*DB\nfunction bnpDRShiftTo(n, r) {\n for (var i = n; i < this.t; ++i) r[i - n] = this[i];\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n}\n\n// (protected) r = this << n\nfunction bnpLShiftTo(n, r) {\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << cbs) - 1;\n var ds = Math.floor(n / this.DB),\n c = this.s << bs & this.DM,\n i;\n for (i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = this[i] >> cbs | c;\n c = (this[i] & bm) << bs;\n }\n for (i = ds - 1; i >= 0; --i) r[i] = 0;\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n}\n\n// (protected) r = this >> n\nfunction bnpRShiftTo(n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n for (var i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n if (bs > 0) r[this.t - ds - 1] |= (this.s & bm) << cbs;\n r.t = this.t - ds;\n r.clamp();\n}\n\n// (protected) r = this - a\nfunction bnpSubTo(a, r) {\n var i = 0,\n c = 0,\n m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c < -1) r[i++] = this.DV + c;else if (c > 0) r[i++] = c;\n r.t = i;\n r.clamp();\n}\n\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyTo(a, r) {\n var x = this.abs(),\n y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n while (--i >= 0) r[i] = 0;\n for (i = 0; i < y.t; ++i) r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n r.s = 0;\n r.clamp();\n if (this.s != a.s) BigInteger.ZERO.subTo(r, r);\n}\n\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction bnpSquareTo(r) {\n var x = this.abs();\n var i = r.t = 2 * x.t;\n while (--i >= 0) r[i] = 0;\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n if (r.t > 0) r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n r.s = 0;\n r.clamp();\n}\n\n// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n// r != q, this != m. q or r may be null.\nfunction bnpDivRemTo(m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0) return;\n var pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null) q.fromInt(0);\n if (r != null) this.copyTo(r);\n return;\n }\n if (r == null) r = nbi();\n var y = nbi(),\n ts = this.s,\n ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]);\n // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n } else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n var ys = y.t;\n var y0 = y[ys - 1];\n if (y0 == 0) return;\n var yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0);\n var d1 = this.FV / yt,\n d2 = (1 << this.F1) / yt,\n e = 1 << this.F2;\n var i = r.t,\n j = i - ys,\n t = q == null ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y);\n // \"negative\" y so we can replace sub with am later\n while (y.t < ys) y[y.t++] = 0;\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {\n // Try it out\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n while (r[i] < --qd) r.subTo(t, r);\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms) BigInteger.ZERO.subTo(q, q);\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0) r.rShiftTo(nsh, r);\n // Denormalize remainder\n if (ts < 0) BigInteger.ZERO.subTo(r, r);\n}\n\n// (public) this mod a\nfunction bnMod(a) {\n var r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r, r);\n return r;\n}\n\n// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n// justification:\n// xy == 1 (mod m)\n// xy = 1+km\n// xy(2-xy) = (1+km)(1-km)\n// x[y(2-xy)] = 1-k^2m^2\n// x[y(2-xy)] == 1 (mod m^2)\n// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n// JS multiply \"overflows\" differently from C/C++, so care is needed here.\nfunction bnpInvDigit() {\n if (this.t < 1) return 0;\n var x = this[0];\n if ((x & 1) == 0) return 0;\n var y = x & 3;\n // y == 1/x mod 2^2\n y = y * (2 - (x & 0xf) * y) & 0xf;\n // y == 1/x mod 2^4\n y = y * (2 - (x & 0xff) * y) & 0xff;\n // y == 1/x mod 2^8\n y = y * (2 - ((x & 0xffff) * y & 0xffff)) & 0xffff;\n // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = y * (2 - x * y % this.DV) % this.DV;\n // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return y > 0 ? this.DV - y : -y;\n}\nfunction bnEquals(a) {\n return this.compareTo(a) == 0;\n}\n\n// (protected) r = this + a\nfunction bnpAddTo(a, r) {\n var i = 0,\n c = 0,\n m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c > 0) r[i++] = c;else if (c < -1) r[i++] = this.DV + c;\n r.t = i;\n r.clamp();\n}\n\n// (public) this + a\nfunction bnAdd(a) {\n var r = nbi();\n this.addTo(a, r);\n return r;\n}\n\n// (public) this - a\nfunction bnSubtract(a) {\n var r = nbi();\n this.subTo(a, r);\n return r;\n}\n\n// (public) this * a\nfunction bnMultiply(a) {\n var r = nbi();\n this.multiplyTo(a, r);\n return r;\n}\n\n// (public) this / a\nfunction bnDivide(a) {\n var r = nbi();\n this.divRemTo(a, r, null);\n return r;\n}\n\n// Montgomery reduction\nfunction Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 0x7fff;\n this.mph = this.mp >> 15;\n this.um = (1 << m.DB - 15) - 1;\n this.mt2 = 2 * m.t;\n}\n\n// xR mod m\nfunction montConvert(x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r, r);\n return r;\n}\n\n// x/R mod m\nfunction montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n}\n\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while (x.t <= this.mt2)\n // pad x so am has enough room later\n x[x.t++] = 0;\n for (var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i] & 0x7fff;\n var u0 = j * this.mpl + ((j * this.mph + (x[i] >> 15) * this.mpl & this.um) << 15) & x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0) x.subTo(this.m, x);\n}\n\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x, r) {\n x.squareTo(r);\n this.reduce(r);\n}\n\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n}\nMontgomery.prototype.convert = montConvert;\nMontgomery.prototype.revert = montRevert;\nMontgomery.prototype.reduce = montReduce;\nMontgomery.prototype.mulTo = montMulTo;\nMontgomery.prototype.sqrTo = montSqrTo;\n\n// (public) this^e % m (HAC 14.85)\nfunction bnModPow(e, m, callback) {\n var i = e.bitLength(),\n k,\n r = nbv(1),\n z = new Montgomery(m);\n if (i <= 0) return r;else if (i < 18) k = 1;else if (i < 48) k = 3;else if (i < 144) k = 4;else if (i < 768) k = 5;else k = 6;\n\n // precomputation\n var g = new Array(),\n n = 3,\n k1 = k - 1,\n km = (1 << k) - 1;\n g[1] = z.convert(this);\n if (k > 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n var j = e.t - 1,\n w,\n is1 = true,\n r2 = nbi(),\n t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1) w = e[j] >> i - k1 & km;else {\n w = (e[j] & (1 << i + 1) - 1) << k1 - i;\n if (j > 0) w |= e[j - 1] >> this.DB + i - k1;\n }\n n = k;\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n if (is1) {\n // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n } else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n if (n > 0) z.sqrTo(r, r2);else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n while (j >= 0 && (e[j] & 1 << i) == 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n var result = z.revert(r);\n callback(null, result);\n return result;\n}\n\n// protected\nBigInteger.prototype.copyTo = bnpCopyTo;\nBigInteger.prototype.fromInt = bnpFromInt;\nBigInteger.prototype.fromString = bnpFromString;\nBigInteger.prototype.clamp = bnpClamp;\nBigInteger.prototype.dlShiftTo = bnpDLShiftTo;\nBigInteger.prototype.drShiftTo = bnpDRShiftTo;\nBigInteger.prototype.lShiftTo = bnpLShiftTo;\nBigInteger.prototype.rShiftTo = bnpRShiftTo;\nBigInteger.prototype.subTo = bnpSubTo;\nBigInteger.prototype.multiplyTo = bnpMultiplyTo;\nBigInteger.prototype.squareTo = bnpSquareTo;\nBigInteger.prototype.divRemTo = bnpDivRemTo;\nBigInteger.prototype.invDigit = bnpInvDigit;\nBigInteger.prototype.addTo = bnpAddTo;\n\n// public\nBigInteger.prototype.toString = bnToString;\nBigInteger.prototype.negate = bnNegate;\nBigInteger.prototype.abs = bnAbs;\nBigInteger.prototype.compareTo = bnCompareTo;\nBigInteger.prototype.bitLength = bnBitLength;\nBigInteger.prototype.mod = bnMod;\nBigInteger.prototype.equals = bnEquals;\nBigInteger.prototype.add = bnAdd;\nBigInteger.prototype.subtract = bnSubtract;\nBigInteger.prototype.multiply = bnMultiply;\nBigInteger.prototype.divide = bnDivide;\nBigInteger.prototype.modPow = bnModPow;\n\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer } from 'buffer';\nimport CryptoJS from 'crypto-js/core';\nimport 'crypto-js/lib-typedarrays'; // necessary for crypto js\nimport SHA256 from 'crypto-js/sha256';\nimport HmacSHA256 from 'crypto-js/hmac-sha256';\nimport WordArray from './utils/WordArray';\n\n/**\n * Returns a Buffer with a sequence of random nBytes\n *\n * @param {number} nBytes\n * @returns {Buffer} fixed-length sequence of random bytes\n */\n\nfunction randomBytes(nBytes) {\n return Buffer.from(new WordArray().random(nBytes).toString(), 'hex');\n}\nimport BigInteger from './BigInteger';\n\n/**\n * Tests if a hex string has it most significant bit set (case-insensitive regex)\n */\nvar HEX_MSB_REGEX = /^[89a-f]/i;\nvar initN = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1' + '29024E088A67CC74020BBEA63B139B22514A08798E3404DD' + 'EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245' + 'E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D' + 'C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F' + '83655D23DCA3AD961C62F356208552BB9ED529077096966D' + '670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B' + 'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9' + 'DE2BCBF6955817183995497CEA956AE515D2261898FA0510' + '15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64' + 'ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7' + 'ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B' + 'F12FFA06D98A0864D87602733EC86A64521F2B18177B200C' + 'BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31' + '43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF';\nvar newPasswordRequiredChallengeUserAttributePrefix = 'userAttributes.';\n\n/** @class */\nvar AuthenticationHelper = /*#__PURE__*/function () {\n /**\n * Constructs a new AuthenticationHelper object\n * @param {string} PoolName Cognito user pool name.\n */\n function AuthenticationHelper(PoolName) {\n this.N = new BigInteger(initN, 16);\n this.g = new BigInteger('2', 16);\n this.k = new BigInteger(this.hexHash(\"\" + this.padHex(this.N) + this.padHex(this.g)), 16);\n this.smallAValue = this.generateRandomSmallA();\n this.getLargeAValue(function () {});\n this.infoBits = Buffer.from('Caldera Derived Key', 'utf8');\n this.poolName = PoolName;\n }\n\n /**\n * @returns {BigInteger} small A, a random number\n */\n var _proto = AuthenticationHelper.prototype;\n _proto.getSmallAValue = function getSmallAValue() {\n return this.smallAValue;\n }\n\n /**\n * @param {nodeCallback} callback Called with (err, largeAValue)\n * @returns {void}\n */;\n _proto.getLargeAValue = function getLargeAValue(callback) {\n var _this = this;\n if (this.largeAValue) {\n callback(null, this.largeAValue);\n } else {\n this.calculateA(this.smallAValue, function (err, largeAValue) {\n if (err) {\n callback(err, null);\n }\n _this.largeAValue = largeAValue;\n callback(null, _this.largeAValue);\n });\n }\n }\n\n /**\n * helper function to generate a random big integer\n * @returns {BigInteger} a random value.\n * @private\n */;\n _proto.generateRandomSmallA = function generateRandomSmallA() {\n // This will be interpreted as a postive 128-bit integer\n var hexRandom = randomBytes(128).toString('hex');\n var randomBigInt = new BigInteger(hexRandom, 16);\n\n // There is no need to do randomBigInt.mod(this.N - 1) as N (3072-bit) is > 128 bytes (1024-bit)\n\n return randomBigInt;\n }\n\n /**\n * helper function to generate a random string\n * @returns {string} a random value.\n * @private\n */;\n _proto.generateRandomString = function generateRandomString() {\n return randomBytes(40).toString('base64');\n }\n\n /**\n * @returns {string} Generated random value included in password hash.\n */;\n _proto.getRandomPassword = function getRandomPassword() {\n return this.randomPassword;\n }\n\n /**\n * @returns {string} Generated random value included in devices hash.\n */;\n _proto.getSaltDevices = function getSaltDevices() {\n return this.SaltToHashDevices;\n }\n\n /**\n * @returns {string} Value used to verify devices.\n */;\n _proto.getVerifierDevices = function getVerifierDevices() {\n return this.verifierDevices;\n }\n\n /**\n * Generate salts and compute verifier.\n * @param {string} deviceGroupKey Devices to generate verifier for.\n * @param {string} username User to generate verifier for.\n * @param {nodeCallback} callback Called with (err, null)\n * @returns {void}\n */;\n _proto.generateHashDevice = function generateHashDevice(deviceGroupKey, username, callback) {\n var _this2 = this;\n this.randomPassword = this.generateRandomString();\n var combinedString = \"\" + deviceGroupKey + username + \":\" + this.randomPassword;\n var hashedString = this.hash(combinedString);\n var hexRandom = randomBytes(16).toString('hex');\n\n // The random hex will be unambiguously represented as a postive integer\n this.SaltToHashDevices = this.padHex(new BigInteger(hexRandom, 16));\n this.g.modPow(new BigInteger(this.hexHash(this.SaltToHashDevices + hashedString), 16), this.N, function (err, verifierDevicesNotPadded) {\n if (err) {\n callback(err, null);\n }\n _this2.verifierDevices = _this2.padHex(verifierDevicesNotPadded);\n callback(null, null);\n });\n }\n\n /**\n * Calculate the client's public value A = g^a%N\n * with the generated random number a\n * @param {BigInteger} a Randomly generated small A.\n * @param {nodeCallback} callback Called with (err, largeAValue)\n * @returns {void}\n * @private\n */;\n _proto.calculateA = function calculateA(a, callback) {\n var _this3 = this;\n this.g.modPow(a, this.N, function (err, A) {\n if (err) {\n callback(err, null);\n }\n if (A.mod(_this3.N).equals(BigInteger.ZERO)) {\n callback(new Error('Illegal paramater. A mod N cannot be 0.'), null);\n }\n callback(null, A);\n });\n }\n\n /**\n * Calculate the client's value U which is the hash of A and B\n * @param {BigInteger} A Large A value.\n * @param {BigInteger} B Server B value.\n * @returns {BigInteger} Computed U value.\n * @private\n */;\n _proto.calculateU = function calculateU(A, B) {\n this.UHexHash = this.hexHash(this.padHex(A) + this.padHex(B));\n var finalU = new BigInteger(this.UHexHash, 16);\n return finalU;\n }\n\n /**\n * Calculate a hash from a bitArray\n * @param {Buffer} buf Value to hash.\n * @returns {String} Hex-encoded hash.\n * @private\n */;\n _proto.hash = function hash(buf) {\n var str = buf instanceof Buffer ? CryptoJS.lib.WordArray.create(buf) : buf;\n var hashHex = SHA256(str).toString();\n return new Array(64 - hashHex.length).join('0') + hashHex;\n }\n\n /**\n * Calculate a hash from a hex string\n * @param {String} hexStr Value to hash.\n * @returns {String} Hex-encoded hash.\n * @private\n */;\n _proto.hexHash = function hexHash(hexStr) {\n return this.hash(Buffer.from(hexStr, 'hex'));\n }\n\n /**\n * Standard hkdf algorithm\n * @param {Buffer} ikm Input key material.\n * @param {Buffer} salt Salt value.\n * @returns {Buffer} Strong key material.\n * @private\n */;\n _proto.computehkdf = function computehkdf(ikm, salt) {\n var infoBitsWordArray = CryptoJS.lib.WordArray.create(Buffer.concat([this.infoBits, Buffer.from(String.fromCharCode(1), 'utf8')]));\n var ikmWordArray = ikm instanceof Buffer ? CryptoJS.lib.WordArray.create(ikm) : ikm;\n var saltWordArray = salt instanceof Buffer ? CryptoJS.lib.WordArray.create(salt) : salt;\n var prk = HmacSHA256(ikmWordArray, saltWordArray);\n var hmac = HmacSHA256(infoBitsWordArray, prk);\n return Buffer.from(hmac.toString(), 'hex').slice(0, 16);\n }\n\n /**\n * Calculates the final hkdf based on computed S value, and computed U value and the key\n * @param {String} username Username.\n * @param {String} password Password.\n * @param {BigInteger} serverBValue Server B value.\n * @param {BigInteger} salt Generated salt.\n * @param {nodeCallback} callback Called with (err, hkdfValue)\n * @returns {void}\n */;\n _proto.getPasswordAuthenticationKey = function getPasswordAuthenticationKey(username, password, serverBValue, salt, callback) {\n var _this4 = this;\n if (serverBValue.mod(this.N).equals(BigInteger.ZERO)) {\n throw new Error('B cannot be zero.');\n }\n this.UValue = this.calculateU(this.largeAValue, serverBValue);\n if (this.UValue.equals(BigInteger.ZERO)) {\n throw new Error('U cannot be zero.');\n }\n var usernamePassword = \"\" + this.poolName + username + \":\" + password;\n var usernamePasswordHash = this.hash(usernamePassword);\n var xValue = new BigInteger(this.hexHash(this.padHex(salt) + usernamePasswordHash), 16);\n this.calculateS(xValue, serverBValue, function (err, sValue) {\n if (err) {\n callback(err, null);\n }\n var hkdf = _this4.computehkdf(Buffer.from(_this4.padHex(sValue), 'hex'), Buffer.from(_this4.padHex(_this4.UValue), 'hex'));\n callback(null, hkdf);\n });\n }\n\n /**\n * Calculates the S value used in getPasswordAuthenticationKey\n * @param {BigInteger} xValue Salted password hash value.\n * @param {BigInteger} serverBValue Server B value.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.calculateS = function calculateS(xValue, serverBValue, callback) {\n var _this5 = this;\n this.g.modPow(xValue, this.N, function (err, gModPowXN) {\n if (err) {\n callback(err, null);\n }\n var intValue2 = serverBValue.subtract(_this5.k.multiply(gModPowXN));\n intValue2.modPow(_this5.smallAValue.add(_this5.UValue.multiply(xValue)), _this5.N, function (err2, result) {\n if (err2) {\n callback(err2, null);\n }\n callback(null, result.mod(_this5.N));\n });\n });\n }\n\n /**\n * Return constant newPasswordRequiredChallengeUserAttributePrefix\n * @return {newPasswordRequiredChallengeUserAttributePrefix} constant prefix value\n */;\n _proto.getNewPasswordRequiredChallengeUserAttributePrefix = function getNewPasswordRequiredChallengeUserAttributePrefix() {\n return newPasswordRequiredChallengeUserAttributePrefix;\n }\n\n /**\n * Returns an unambiguous, even-length hex string of the two's complement encoding of an integer.\n *\n * It is compatible with the hex encoding of Java's BigInteger's toByteArray(), wich returns a\n * byte array containing the two's-complement representation of a BigInteger. The array contains\n * the minimum number of bytes required to represent the BigInteger, including at least one sign bit.\n *\n * Examples showing how ambiguity is avoided by left padding with:\n * \t\"00\" (for positive values where the most-significant-bit is set)\n * \"FF\" (for negative values where the most-significant-bit is set)\n *\n * padHex(bigInteger.fromInt(-236)) === \"FF14\"\n * padHex(bigInteger.fromInt(20)) === \"14\"\n *\n * padHex(bigInteger.fromInt(-200)) === \"FF38\"\n * padHex(bigInteger.fromInt(56)) === \"38\"\n *\n * padHex(bigInteger.fromInt(-20)) === \"EC\"\n * padHex(bigInteger.fromInt(236)) === \"00EC\"\n *\n * padHex(bigInteger.fromInt(-56)) === \"C8\"\n * padHex(bigInteger.fromInt(200)) === \"00C8\"\n *\n * @param {BigInteger} bigInt Number to encode.\n * @returns {String} even-length hex string of the two's complement encoding.\n */;\n _proto.padHex = function padHex(bigInt) {\n if (!(bigInt instanceof BigInteger)) {\n throw new Error('Not a BigInteger');\n }\n var isNegative = bigInt.compareTo(BigInteger.ZERO) < 0;\n\n /* Get a hex string for abs(bigInt) */\n var hexStr = bigInt.abs().toString(16);\n\n /* Pad hex to even length if needed */\n hexStr = hexStr.length % 2 !== 0 ? \"0\" + hexStr : hexStr;\n\n /* Prepend \"00\" if the most significant bit is set */\n hexStr = HEX_MSB_REGEX.test(hexStr) ? \"00\" + hexStr : hexStr;\n if (isNegative) {\n /* Flip the bits of the representation */\n var invertedNibbles = hexStr.split('').map(function (x) {\n var invertedNibble = ~parseInt(x, 16) & 0xf;\n return '0123456789ABCDEF'.charAt(invertedNibble);\n }).join('');\n\n /* After flipping the bits, add one to get the 2's complement representation */\n var flippedBitsBI = new BigInteger(invertedNibbles, 16).add(BigInteger.ONE);\n hexStr = flippedBitsBI.toString(16);\n\n /*\n For hex strings starting with 'FF8', 'FF' can be dropped, e.g. 0xFFFF80=0xFF80=0x80=-128\n \t\tAny sequence of '1' bits on the left can always be substituted with a single '1' bit\n without changing the represented value.\n \t\tThis only happens in the case when the input is 80...00\n */\n if (hexStr.toUpperCase().startsWith('FF8')) {\n hexStr = hexStr.substring(2);\n }\n }\n return hexStr;\n };\n return AuthenticationHelper;\n}();\nexport { AuthenticationHelper as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer } from 'buffer';\n\n/** @class */\nvar CognitoJwtToken = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoJwtToken object\n * @param {string=} token The JWT token.\n */\n function CognitoJwtToken(token) {\n // Assign object\n this.jwtToken = token || '';\n this.payload = this.decodePayload();\n }\n\n /**\n * @returns {string} the record's token.\n */\n var _proto = CognitoJwtToken.prototype;\n _proto.getJwtToken = function getJwtToken() {\n return this.jwtToken;\n }\n\n /**\n * @returns {int} the token's expiration (exp member).\n */;\n _proto.getExpiration = function getExpiration() {\n return this.payload.exp;\n }\n\n /**\n * @returns {int} the token's \"issued at\" (iat member).\n */;\n _proto.getIssuedAt = function getIssuedAt() {\n return this.payload.iat;\n }\n\n /**\n * @returns {object} the token's payload.\n */;\n _proto.decodePayload = function decodePayload() {\n var payload = this.jwtToken.split('.')[1];\n try {\n return JSON.parse(Buffer.from(payload, 'base64').toString('utf8'));\n } catch (err) {\n return {};\n }\n };\n return CognitoJwtToken;\n}();\nexport { CognitoJwtToken as default };","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport CognitoJwtToken from './CognitoJwtToken';\n\n/** @class */\nvar CognitoAccessToken = /*#__PURE__*/function (_CognitoJwtToken) {\n _inheritsLoose(CognitoAccessToken, _CognitoJwtToken);\n /**\n * Constructs a new CognitoAccessToken object\n * @param {string=} AccessToken The JWT access token.\n */\n function CognitoAccessToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n AccessToken = _ref.AccessToken;\n return _CognitoJwtToken.call(this, AccessToken || '') || this;\n }\n return CognitoAccessToken;\n}(CognitoJwtToken);\nexport { CognitoAccessToken as default };","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport CognitoJwtToken from './CognitoJwtToken';\n\n/** @class */\nvar CognitoIdToken = /*#__PURE__*/function (_CognitoJwtToken) {\n _inheritsLoose(CognitoIdToken, _CognitoJwtToken);\n /**\n * Constructs a new CognitoIdToken object\n * @param {string=} IdToken The JWT Id token\n */\n function CognitoIdToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n IdToken = _ref.IdToken;\n return _CognitoJwtToken.call(this, IdToken || '') || this;\n }\n return CognitoIdToken;\n}(CognitoJwtToken);\nexport { CognitoIdToken as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar CognitoRefreshToken = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoRefreshToken object\n * @param {string=} RefreshToken The JWT refresh token.\n */\n function CognitoRefreshToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n RefreshToken = _ref.RefreshToken;\n // Assign object\n this.token = RefreshToken || '';\n }\n\n /**\n * @returns {string} the record's token.\n */\n var _proto = CognitoRefreshToken.prototype;\n _proto.getToken = function getToken() {\n return this.token;\n };\n return CognitoRefreshToken;\n}();\nexport { CognitoRefreshToken as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar CognitoUserSession = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserSession object\n * @param {CognitoIdToken} IdToken The session's Id token.\n * @param {CognitoRefreshToken=} RefreshToken The session's refresh token.\n * @param {CognitoAccessToken} AccessToken The session's access token.\n * @param {int} ClockDrift The saved computer's clock drift or undefined to force calculation.\n */\n function CognitoUserSession(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n IdToken = _ref.IdToken,\n RefreshToken = _ref.RefreshToken,\n AccessToken = _ref.AccessToken,\n ClockDrift = _ref.ClockDrift;\n if (AccessToken == null || IdToken == null) {\n throw new Error('Id token and Access Token must be present.');\n }\n this.idToken = IdToken;\n this.refreshToken = RefreshToken;\n this.accessToken = AccessToken;\n this.clockDrift = ClockDrift === undefined ? this.calculateClockDrift() : ClockDrift;\n }\n\n /**\n * @returns {CognitoIdToken} the session's Id token\n */\n var _proto = CognitoUserSession.prototype;\n _proto.getIdToken = function getIdToken() {\n return this.idToken;\n }\n\n /**\n * @returns {CognitoRefreshToken} the session's refresh token\n */;\n _proto.getRefreshToken = function getRefreshToken() {\n return this.refreshToken;\n }\n\n /**\n * @returns {CognitoAccessToken} the session's access token\n */;\n _proto.getAccessToken = function getAccessToken() {\n return this.accessToken;\n }\n\n /**\n * @returns {int} the session's clock drift\n */;\n _proto.getClockDrift = function getClockDrift() {\n return this.clockDrift;\n }\n\n /**\n * @returns {int} the computer's clock drift\n */;\n _proto.calculateClockDrift = function calculateClockDrift() {\n var now = Math.floor(new Date() / 1000);\n var iat = Math.min(this.accessToken.getIssuedAt(), this.idToken.getIssuedAt());\n return now - iat;\n }\n\n /**\n * Checks to see if the session is still valid based on session expiry information found\n * in tokens and the current time (adjusted with clock drift)\n * @returns {boolean} if the session is still valid\n */;\n _proto.isValid = function isValid() {\n var now = Math.floor(new Date() / 1000);\n var adjusted = now - this.clockDrift;\n return adjusted < this.accessToken.getExpiration() && adjusted < this.idToken.getExpiration();\n };\n return CognitoUserSession;\n}();\nexport { CognitoUserSession as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\nvar weekNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\n/** @class */\nvar DateHelper = /*#__PURE__*/function () {\n function DateHelper() {}\n var _proto = DateHelper.prototype;\n /**\n * @returns {string} The current time in \"ddd MMM D HH:mm:ss UTC YYYY\" format.\n */\n _proto.getNowString = function getNowString() {\n var now = new Date();\n var weekDay = weekNames[now.getUTCDay()];\n var month = monthNames[now.getUTCMonth()];\n var day = now.getUTCDate();\n var hours = now.getUTCHours();\n if (hours < 10) {\n hours = \"0\" + hours;\n }\n var minutes = now.getUTCMinutes();\n if (minutes < 10) {\n minutes = \"0\" + minutes;\n }\n var seconds = now.getUTCSeconds();\n if (seconds < 10) {\n seconds = \"0\" + seconds;\n }\n var year = now.getUTCFullYear();\n\n // ddd MMM D HH:mm:ss UTC YYYY\n var dateNow = weekDay + \" \" + month + \" \" + day + \" \" + hours + \":\" + minutes + \":\" + seconds + \" UTC \" + year;\n return dateNow;\n };\n return DateHelper;\n}();\nexport { DateHelper as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar CognitoUserAttribute = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserAttribute object\n * @param {string=} Name The record's name\n * @param {string=} Value The record's value\n */\n function CognitoUserAttribute(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n Name = _ref.Name,\n Value = _ref.Value;\n this.Name = Name || '';\n this.Value = Value || '';\n }\n\n /**\n * @returns {string} the record's value.\n */\n var _proto = CognitoUserAttribute.prototype;\n _proto.getValue = function getValue() {\n return this.Value;\n }\n\n /**\n * Sets the record's value.\n * @param {string} value The new value.\n * @returns {CognitoUserAttribute} The record for method chaining.\n */;\n _proto.setValue = function setValue(value) {\n this.Value = value;\n return this;\n }\n\n /**\n * @returns {string} the record's name.\n */;\n _proto.getName = function getName() {\n return this.Name;\n }\n\n /**\n * Sets the record's name\n * @param {string} name The new name.\n * @returns {CognitoUserAttribute} The record for method chaining.\n */;\n _proto.setName = function setName(name) {\n this.Name = name;\n return this;\n }\n\n /**\n * @returns {string} a string representation of the record.\n */;\n _proto.toString = function toString() {\n return JSON.stringify(this);\n }\n\n /**\n * @returns {object} a flat object representing the record.\n */;\n _proto.toJSON = function toJSON() {\n return {\n Name: this.Name,\n Value: this.Value\n };\n };\n return CognitoUserAttribute;\n}();\nexport { CognitoUserAttribute as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar dataMemory = {};\n\n/** @class */\nexport var MemoryStorage = /*#__PURE__*/function () {\n function MemoryStorage() {}\n /**\n * This is used to set a specific item in storage\n * @param {string} key - the key for the item\n * @param {object} value - the value\n * @returns {string} value that was set\n */\n MemoryStorage.setItem = function setItem(key, value) {\n dataMemory[key] = value;\n return dataMemory[key];\n }\n\n /**\n * This is used to get a specific key from storage\n * @param {string} key - the key for the item\n * This is used to clear the storage\n * @returns {string} the data item\n */;\n MemoryStorage.getItem = function getItem(key) {\n return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined;\n }\n\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {boolean} return true\n */;\n MemoryStorage.removeItem = function removeItem(key) {\n return delete dataMemory[key];\n }\n\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */;\n MemoryStorage.clear = function clear() {\n dataMemory = {};\n return dataMemory;\n };\n return MemoryStorage;\n}();\n\n/** @class */\nvar StorageHelper = /*#__PURE__*/function () {\n /**\n * This is used to get a storage object\n * @returns {object} the storage\n */\n function StorageHelper() {\n try {\n this.storageWindow = window.localStorage;\n this.storageWindow.setItem('aws.cognito.test-ls', 1);\n this.storageWindow.removeItem('aws.cognito.test-ls');\n } catch (exception) {\n this.storageWindow = MemoryStorage;\n }\n }\n\n /**\n * This is used to return the storage\n * @returns {object} the storage\n */\n var _proto = StorageHelper.prototype;\n _proto.getStorage = function getStorage() {\n return this.storageWindow;\n };\n return StorageHelper;\n}();\nexport { StorageHelper as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer } from 'buffer';\nimport CryptoJS from 'crypto-js/core';\nimport TypedArrays from 'crypto-js/lib-typedarrays'; // necessary for crypto js\nimport Base64 from 'crypto-js/enc-base64';\nimport HmacSHA256 from 'crypto-js/hmac-sha256';\nimport BigInteger from './BigInteger';\nimport AuthenticationHelper from './AuthenticationHelper';\nimport CognitoAccessToken from './CognitoAccessToken';\nimport CognitoIdToken from './CognitoIdToken';\nimport CognitoRefreshToken from './CognitoRefreshToken';\nimport CognitoUserSession from './CognitoUserSession';\nimport DateHelper from './DateHelper';\nimport CognitoUserAttribute from './CognitoUserAttribute';\nimport StorageHelper from './StorageHelper';\n\n/**\n * @callback nodeCallback\n * @template T result\n * @param {*} err The operation failure reason, or null.\n * @param {T} result The operation result.\n */\n\n/**\n * @callback onFailure\n * @param {*} err Failure reason.\n */\n\n/**\n * @callback onSuccess\n * @template T result\n * @param {T} result The operation result.\n */\n\n/**\n * @callback mfaRequired\n * @param {*} details MFA challenge details.\n */\n\n/**\n * @callback customChallenge\n * @param {*} details Custom challenge details.\n */\n\n/**\n * @callback inputVerificationCode\n * @param {*} data Server response.\n */\n\n/**\n * @callback authSuccess\n * @param {CognitoUserSession} session The new session.\n * @param {bool=} userConfirmationNecessary User must be confirmed.\n */\n\nvar isBrowser = typeof navigator !== 'undefined';\nvar userAgent = isBrowser ? navigator.userAgent : 'nodejs';\n\n/** @class */\nvar CognitoUser = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUser object\n * @param {object} data Creation options\n * @param {string} data.Username The user's username.\n * @param {CognitoUserPool} data.Pool Pool containing the user.\n * @param {object} data.Storage Optional storage object.\n */\n function CognitoUser(data) {\n if (data == null || data.Username == null || data.Pool == null) {\n throw new Error('Username and Pool information are required.');\n }\n this.username = data.Username || '';\n this.pool = data.Pool;\n this.Session = null;\n this.client = data.Pool.client;\n this.signInUserSession = null;\n this.authenticationFlowType = 'USER_SRP_AUTH';\n this.storage = data.Storage || new StorageHelper().getStorage();\n this.keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n this.userDataKey = this.keyPrefix + \".\" + this.username + \".userData\";\n }\n\n /**\n * Sets the session for this user\n * @param {CognitoUserSession} signInUserSession the session\n * @returns {void}\n */\n var _proto = CognitoUser.prototype;\n _proto.setSignInUserSession = function setSignInUserSession(signInUserSession) {\n this.clearCachedUserData();\n this.signInUserSession = signInUserSession;\n this.cacheTokens();\n }\n\n /**\n * @returns {CognitoUserSession} the current session for this user\n */;\n _proto.getSignInUserSession = function getSignInUserSession() {\n return this.signInUserSession;\n }\n\n /**\n * @returns {string} the user's username\n */;\n _proto.getUsername = function getUsername() {\n return this.username;\n }\n\n /**\n * @returns {String} the authentication flow type\n */;\n _proto.getAuthenticationFlowType = function getAuthenticationFlowType() {\n return this.authenticationFlowType;\n }\n\n /**\n * sets authentication flow type\n * @param {string} authenticationFlowType New value.\n * @returns {void}\n */;\n _proto.setAuthenticationFlowType = function setAuthenticationFlowType(authenticationFlowType) {\n this.authenticationFlowType = authenticationFlowType;\n }\n\n /**\n * This is used for authenticating the user through the custom authentication flow.\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.initiateAuth = function initiateAuth(authDetails, callback) {\n var _this = this;\n var authParameters = authDetails.getAuthParameters();\n authParameters.USERNAME = this.username;\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: 'CUSTOM_AUTH',\n ClientId: this.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('InitiateAuth', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeName = data.ChallengeName;\n var challengeParameters = data.ChallengeParameters;\n if (challengeName === 'CUSTOM_CHALLENGE') {\n _this.Session = data.Session;\n return callback.customChallenge(challengeParameters);\n }\n _this.signInUserSession = _this.getCognitoUserSession(data.AuthenticationResult);\n _this.cacheTokens();\n return callback.onSuccess(_this.signInUserSession);\n });\n }\n\n /**\n * This is used for authenticating the user.\n * stuff\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {newPasswordRequired} callback.newPasswordRequired new\n * password and any required attributes are required to continue\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.authenticateUser = function authenticateUser(authDetails, callback) {\n if (this.authenticationFlowType === 'USER_PASSWORD_AUTH') {\n return this.authenticateUserPlainUsernamePassword(authDetails, callback);\n } else if (this.authenticationFlowType === 'USER_SRP_AUTH' || this.authenticationFlowType === 'CUSTOM_AUTH') {\n return this.authenticateUserDefaultAuth(authDetails, callback);\n }\n return callback.onFailure(new Error('Authentication flow type is invalid.'));\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * It calls the AuthenticationHelper for SRP related\n * stuff\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {newPasswordRequired} callback.newPasswordRequired new\n * password and any required attributes are required to continue\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.authenticateUserDefaultAuth = function authenticateUserDefaultAuth(authDetails, callback) {\n var _this2 = this;\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n var dateHelper = new DateHelper();\n var serverBValue;\n var salt;\n var authParameters = {};\n if (this.deviceKey != null) {\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n authParameters.USERNAME = this.username;\n authenticationHelper.getLargeAValue(function (errOnAValue, aValue) {\n // getLargeAValue callback start\n if (errOnAValue) {\n callback.onFailure(errOnAValue);\n }\n authParameters.SRP_A = aValue.toString(16);\n if (_this2.authenticationFlowType === 'CUSTOM_AUTH') {\n authParameters.CHALLENGE_NAME = 'SRP_A';\n }\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: _this2.authenticationFlowType,\n ClientId: _this2.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n if (_this2.getUserContextData(_this2.username)) {\n jsonReq.UserContextData = _this2.getUserContextData(_this2.username);\n }\n _this2.client.request('InitiateAuth', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeParameters = data.ChallengeParameters;\n _this2.username = challengeParameters.USER_ID_FOR_SRP;\n _this2.userDataKey = _this2.keyPrefix + \".\" + _this2.username + \".userData\";\n serverBValue = new BigInteger(challengeParameters.SRP_B, 16);\n salt = new BigInteger(challengeParameters.SALT, 16);\n _this2.getCachedDeviceKeyAndPassword();\n authenticationHelper.getPasswordAuthenticationKey(_this2.username, authDetails.getPassword(), serverBValue, salt, function (errOnHkdf, hkdf) {\n // getPasswordAuthenticationKey callback start\n if (errOnHkdf) {\n callback.onFailure(errOnHkdf);\n }\n var dateNow = dateHelper.getNowString();\n var message = CryptoJS.lib.WordArray.create(Buffer.concat([Buffer.from(_this2.pool.getUserPoolName(), 'utf8'), Buffer.from(_this2.username, 'utf8'), Buffer.from(challengeParameters.SECRET_BLOCK, 'base64'), Buffer.from(dateNow, 'utf8')]));\n var key = CryptoJS.lib.WordArray.create(hkdf);\n var signatureString = Base64.stringify(HmacSHA256(message, key));\n var challengeResponses = {};\n challengeResponses.USERNAME = _this2.username;\n challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n challengeResponses.TIMESTAMP = dateNow;\n challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n if (_this2.deviceKey != null) {\n challengeResponses.DEVICE_KEY = _this2.deviceKey;\n }\n var respondToAuthChallenge = function respondToAuthChallenge(challenge, challengeCallback) {\n return _this2.client.request('RespondToAuthChallenge', challenge, function (errChallenge, dataChallenge) {\n if (errChallenge && errChallenge.code === 'ResourceNotFoundException' && errChallenge.message.toLowerCase().indexOf('device') !== -1) {\n challengeResponses.DEVICE_KEY = null;\n _this2.deviceKey = null;\n _this2.randomPassword = null;\n _this2.deviceGroupKey = null;\n _this2.clearCachedDeviceKeyAndPassword();\n return respondToAuthChallenge(challenge, challengeCallback);\n }\n return challengeCallback(errChallenge, dataChallenge);\n });\n };\n var jsonReqResp = {\n ChallengeName: 'PASSWORD_VERIFIER',\n ClientId: _this2.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: data.Session,\n ClientMetadata: clientMetaData\n };\n if (_this2.getUserContextData()) {\n jsonReqResp.UserContextData = _this2.getUserContextData();\n }\n respondToAuthChallenge(jsonReqResp, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n return _this2.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n });\n return undefined;\n // getPasswordAuthenticationKey callback end\n });\n\n return undefined;\n });\n // getLargeAValue callback end\n });\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * @param {AuthenticationDetails} authDetails Contains the authentication data.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.authenticateUserPlainUsernamePassword = function authenticateUserPlainUsernamePassword(authDetails, callback) {\n var _this3 = this;\n var authParameters = {};\n authParameters.USERNAME = this.username;\n authParameters.PASSWORD = authDetails.getPassword();\n if (!authParameters.PASSWORD) {\n callback.onFailure(new Error('PASSWORD parameter is required'));\n return;\n }\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n this.getCachedDeviceKeyAndPassword();\n if (this.deviceKey != null) {\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: 'USER_PASSWORD_AUTH',\n ClientId: this.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n if (this.getUserContextData(this.username)) {\n jsonReq.UserContextData = this.getUserContextData(this.username);\n }\n // USER_PASSWORD_AUTH happens in a single round-trip: client sends userName and password,\n // Cognito UserPools verifies password and returns tokens.\n this.client.request('InitiateAuth', jsonReq, function (err, authResult) {\n if (err) {\n return callback.onFailure(err);\n }\n return _this3.authenticateUserInternal(authResult, authenticationHelper, callback);\n });\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * @param {object} dataAuthenticate authentication data\n * @param {object} authenticationHelper helper created\n * @param {callback} callback passed on from caller\n * @returns {void}\n */;\n _proto.authenticateUserInternal = function authenticateUserInternal(dataAuthenticate, authenticationHelper, callback) {\n var _this4 = this;\n var challengeName = dataAuthenticate.ChallengeName;\n var challengeParameters = dataAuthenticate.ChallengeParameters;\n if (challengeName === 'SMS_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaRequired(challengeName, challengeParameters);\n }\n if (challengeName === 'SELECT_MFA_TYPE') {\n this.Session = dataAuthenticate.Session;\n return callback.selectMFAType(challengeName, challengeParameters);\n }\n if (challengeName === 'MFA_SETUP') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaSetup(challengeName, challengeParameters);\n }\n if (challengeName === 'SOFTWARE_TOKEN_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.totpRequired(challengeName, challengeParameters);\n }\n if (challengeName === 'CUSTOM_CHALLENGE') {\n this.Session = dataAuthenticate.Session;\n return callback.customChallenge(challengeParameters);\n }\n if (challengeName === 'NEW_PASSWORD_REQUIRED') {\n this.Session = dataAuthenticate.Session;\n var userAttributes = null;\n var rawRequiredAttributes = null;\n var requiredAttributes = [];\n var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n if (challengeParameters) {\n userAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.userAttributes);\n rawRequiredAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.requiredAttributes);\n }\n if (rawRequiredAttributes) {\n for (var i = 0; i < rawRequiredAttributes.length; i++) {\n requiredAttributes[i] = rawRequiredAttributes[i].substr(userAttributesPrefix.length);\n }\n }\n return callback.newPasswordRequired(userAttributes, requiredAttributes);\n }\n if (challengeName === 'DEVICE_SRP_AUTH') {\n this.Session = dataAuthenticate.Session;\n this.getDeviceResponse(callback);\n return undefined;\n }\n this.signInUserSession = this.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n this.challengeName = challengeName;\n this.cacheTokens();\n var newDeviceMetadata = dataAuthenticate.AuthenticationResult.NewDeviceMetadata;\n if (newDeviceMetadata == null) {\n return callback.onSuccess(this.signInUserSession);\n }\n authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\n var deviceSecretVerifierConfig = {\n Salt: Buffer.from(authenticationHelper.getSaltDevices(), 'hex').toString('base64'),\n PasswordVerifier: Buffer.from(authenticationHelper.getVerifierDevices(), 'hex').toString('base64')\n };\n _this4.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n _this4.deviceGroupKey = newDeviceMetadata.DeviceGroupKey;\n _this4.randomPassword = authenticationHelper.getRandomPassword();\n _this4.client.request('ConfirmDevice', {\n DeviceKey: newDeviceMetadata.DeviceKey,\n AccessToken: _this4.signInUserSession.getAccessToken().getJwtToken(),\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n DeviceName: userAgent\n }, function (errConfirm, dataConfirm) {\n if (errConfirm) {\n return callback.onFailure(errConfirm);\n }\n _this4.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n _this4.cacheDeviceKeyAndPassword();\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(_this4.signInUserSession, dataConfirm.UserConfirmationNecessary);\n }\n return callback.onSuccess(_this4.signInUserSession);\n });\n return undefined;\n });\n return undefined;\n }\n\n /**\n * This method is user to complete the NEW_PASSWORD_REQUIRED challenge.\n * Pass the new password with any new user attributes to be updated.\n * User attribute keys must be of format userAttributes..\n * @param {string} newPassword new password for this user\n * @param {object} requiredAttributeData map with values for all required attributes\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {mfaRequired} callback.mfaRequired MFA code required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.completeNewPasswordChallenge = function completeNewPasswordChallenge(newPassword, requiredAttributeData, callback, clientMetadata) {\n var _this5 = this;\n if (!newPassword) {\n return callback.onFailure(new Error('New password is required.'));\n }\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n var finalUserAttributes = {};\n if (requiredAttributeData) {\n Object.keys(requiredAttributeData).forEach(function (key) {\n finalUserAttributes[userAttributesPrefix + key] = requiredAttributeData[key];\n });\n }\n finalUserAttributes.NEW_PASSWORD = newPassword;\n finalUserAttributes.USERNAME = this.username;\n var jsonReq = {\n ChallengeName: 'NEW_PASSWORD_REQUIRED',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: finalUserAttributes,\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n return _this5.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n });\n return undefined;\n }\n\n /**\n * This is used to get a session using device authentication. It is called at the end of user\n * authentication\n *\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n * @private\n */;\n _proto.getDeviceResponse = function getDeviceResponse(callback, clientMetadata) {\n var _this6 = this;\n var authenticationHelper = new AuthenticationHelper(this.deviceGroupKey);\n var dateHelper = new DateHelper();\n var authParameters = {};\n authParameters.USERNAME = this.username;\n authParameters.DEVICE_KEY = this.deviceKey;\n authenticationHelper.getLargeAValue(function (errAValue, aValue) {\n // getLargeAValue callback start\n if (errAValue) {\n callback.onFailure(errAValue);\n }\n authParameters.SRP_A = aValue.toString(16);\n var jsonReq = {\n ChallengeName: 'DEVICE_SRP_AUTH',\n ClientId: _this6.pool.getClientId(),\n ChallengeResponses: authParameters,\n ClientMetadata: clientMetadata,\n Session: _this6.Session\n };\n if (_this6.getUserContextData()) {\n jsonReq.UserContextData = _this6.getUserContextData();\n }\n _this6.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeParameters = data.ChallengeParameters;\n var serverBValue = new BigInteger(challengeParameters.SRP_B, 16);\n var salt = new BigInteger(challengeParameters.SALT, 16);\n authenticationHelper.getPasswordAuthenticationKey(_this6.deviceKey, _this6.randomPassword, serverBValue, salt, function (errHkdf, hkdf) {\n // getPasswordAuthenticationKey callback start\n if (errHkdf) {\n return callback.onFailure(errHkdf);\n }\n var dateNow = dateHelper.getNowString();\n var message = CryptoJS.lib.WordArray.create(Buffer.concat([Buffer.from(_this6.deviceGroupKey, 'utf8'), Buffer.from(_this6.deviceKey, 'utf8'), Buffer.from(challengeParameters.SECRET_BLOCK, 'base64'), Buffer.from(dateNow, 'utf8')]));\n var key = CryptoJS.lib.WordArray.create(hkdf);\n var signatureString = Base64.stringify(HmacSHA256(message, key));\n var challengeResponses = {};\n challengeResponses.USERNAME = _this6.username;\n challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n challengeResponses.TIMESTAMP = dateNow;\n challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n challengeResponses.DEVICE_KEY = _this6.deviceKey;\n var jsonReqResp = {\n ChallengeName: 'DEVICE_PASSWORD_VERIFIER',\n ClientId: _this6.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: data.Session\n };\n if (_this6.getUserContextData()) {\n jsonReqResp.UserContextData = _this6.getUserContextData();\n }\n _this6.client.request('RespondToAuthChallenge', jsonReqResp, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n _this6.signInUserSession = _this6.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n _this6.cacheTokens();\n return callback.onSuccess(_this6.signInUserSession);\n });\n return undefined;\n // getPasswordAuthenticationKey callback end\n });\n\n return undefined;\n });\n // getLargeAValue callback end\n });\n }\n\n /**\n * This is used for a certain user to confirm the registration by using a confirmation code\n * @param {string} confirmationCode Code entered by user.\n * @param {bool} forceAliasCreation Allow migrating from an existing email / phone number.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.confirmRegistration = function confirmRegistration(confirmationCode, forceAliasCreation, callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n ConfirmationCode: confirmationCode,\n Username: this.username,\n ForceAliasCreation: forceAliasCreation,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('ConfirmSignUp', jsonReq, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n }\n\n /**\n * This is used by the user once he has the responses to a custom challenge\n * @param {string} answerChallenge The custom challenge answer.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {customChallenge} callback.customChallenge\n * Custom challenge response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.sendCustomChallengeAnswer = function sendCustomChallengeAnswer(answerChallenge, callback, clientMetadata) {\n var _this7 = this;\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.ANSWER = answerChallenge;\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n this.getCachedDeviceKeyAndPassword();\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n var jsonReq = {\n ChallengeName: 'CUSTOM_CHALLENGE',\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return _this7.authenticateUserInternal(data, authenticationHelper, callback);\n });\n }\n\n /**\n * This is used by the user once he has an MFA code\n * @param {string} confirmationCode The MFA code entered by the user.\n * @param {object} callback Result callback map.\n * @param {string} mfaType The mfa we are replying to.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.sendMFACode = function sendMFACode(confirmationCode, callback, mfaType, clientMetadata) {\n var _this8 = this;\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.SMS_MFA_CODE = confirmationCode;\n var mfaTypeSelection = mfaType || 'SMS_MFA';\n if (mfaTypeSelection === 'SOFTWARE_TOKEN_MFA') {\n challengeResponses.SOFTWARE_TOKEN_MFA_CODE = confirmationCode;\n }\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n var jsonReq = {\n ChallengeName: mfaTypeSelection,\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, dataAuthenticate) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeName = dataAuthenticate.ChallengeName;\n if (challengeName === 'DEVICE_SRP_AUTH') {\n _this8.getDeviceResponse(callback);\n return undefined;\n }\n _this8.signInUserSession = _this8.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n _this8.cacheTokens();\n if (dataAuthenticate.AuthenticationResult.NewDeviceMetadata == null) {\n return callback.onSuccess(_this8.signInUserSession);\n }\n var authenticationHelper = new AuthenticationHelper(_this8.pool.getUserPoolName());\n authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\n var deviceSecretVerifierConfig = {\n Salt: Buffer.from(authenticationHelper.getSaltDevices(), 'hex').toString('base64'),\n PasswordVerifier: Buffer.from(authenticationHelper.getVerifierDevices(), 'hex').toString('base64')\n };\n _this8.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n _this8.deviceGroupKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey;\n _this8.randomPassword = authenticationHelper.getRandomPassword();\n _this8.client.request('ConfirmDevice', {\n DeviceKey: dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey,\n AccessToken: _this8.signInUserSession.getAccessToken().getJwtToken(),\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n DeviceName: userAgent\n }, function (errConfirm, dataConfirm) {\n if (errConfirm) {\n return callback.onFailure(errConfirm);\n }\n _this8.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n _this8.cacheDeviceKeyAndPassword();\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(_this8.signInUserSession, dataConfirm.UserConfirmationNecessary);\n }\n return callback.onSuccess(_this8.signInUserSession);\n });\n return undefined;\n });\n return undefined;\n });\n }\n\n /**\n * This is used by an authenticated user to change the current password\n * @param {string} oldUserPassword The current password.\n * @param {string} newUserPassword The requested new password.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.changePassword = function changePassword(oldUserPassword, newUserPassword, callback, clientMetadata) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('ChangePassword', {\n PreviousPassword: oldUserPassword,\n ProposedPassword: newUserPassword,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to enable MFA for itself\n * @deprecated\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.enableMFA = function enableMFA(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n var mfaOptions = [];\n var mfaEnabled = {\n DeliveryMedium: 'SMS',\n AttributeName: 'phone_number'\n };\n mfaOptions.push(mfaEnabled);\n this.client.request('SetUserSettings', {\n MFAOptions: mfaOptions,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to enable MFA for itself\n * @param {IMfaSettings} smsMfaSettings the sms mfa settings\n * @param {IMFASettings} softwareTokenMfaSettings the software token mfa settings\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.setUserMfaPreference = function setUserMfaPreference(smsMfaSettings, softwareTokenMfaSettings, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('SetUserMFAPreference', {\n SMSMfaSettings: smsMfaSettings,\n SoftwareTokenMfaSettings: softwareTokenMfaSettings,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to disable MFA for itself\n * @deprecated\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.disableMFA = function disableMFA(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n var mfaOptions = [];\n this.client.request('SetUserSettings', {\n MFAOptions: mfaOptions,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to delete itself\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.deleteUser = function deleteUser(callback, clientMetadata) {\n var _this9 = this;\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('DeleteUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n _this9.clearCachedUser();\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * @typedef {CognitoUserAttribute | { Name:string, Value:string }} AttributeArg\n */\n /**\n * This is used by an authenticated user to change a list of attributes\n * @param {AttributeArg[]} attributes A list of the new user attributes.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.updateAttributes = function updateAttributes(attributes, callback, clientMetadata) {\n var _this10 = this;\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('UpdateUserAttributes', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n UserAttributes: attributes,\n ClientMetadata: clientMetadata\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n\n // update cached user\n return _this10.getUserData(function () {\n return callback(null, 'SUCCESS');\n }, {\n bypassCache: true\n });\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to get a list of attributes\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.getUserAttributes = function getUserAttributes(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, userData) {\n if (err) {\n return callback(err, null);\n }\n var attributeList = [];\n for (var i = 0; i < userData.UserAttributes.length; i++) {\n var attribute = {\n Name: userData.UserAttributes[i].Name,\n Value: userData.UserAttributes[i].Value\n };\n var userAttribute = new CognitoUserAttribute(attribute);\n attributeList.push(userAttribute);\n }\n return callback(null, attributeList);\n });\n return undefined;\n }\n\n /**\n * This was previously used by an authenticated user to get MFAOptions,\n * but no longer returns a meaningful response. Refer to the documentation for\n * how to setup and use MFA: https://docs.amplify.aws/lib/auth/mfa/q/platform/js\n * @deprecated\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.getMFAOptions = function getMFAOptions(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, userData) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, userData.MFAOptions);\n });\n return undefined;\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.createGetUserRequest = function createGetUserRequest() {\n return this.client.promisifyRequest('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n });\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.refreshSessionIfPossible = function refreshSessionIfPossible(options) {\n var _this11 = this;\n if (options === void 0) {\n options = {};\n }\n // best effort, if not possible\n return new Promise(function (resolve) {\n var refresh = _this11.signInUserSession.getRefreshToken();\n if (refresh && refresh.getToken()) {\n _this11.refreshSession(refresh, resolve, options.clientMetadata);\n } else {\n resolve();\n }\n });\n }\n\n /**\n * @typedef {Object} GetUserDataOptions\n * @property {boolean} bypassCache - force getting data from Cognito service\n * @property {Record} clientMetadata - clientMetadata for getSession\n */\n\n /**\n * This is used by an authenticated users to get the userData\n * @param {nodeCallback} callback Called on success or error.\n * @param {GetUserDataOptions} params\n * @returns {void}\n */;\n _proto.getUserData = function getUserData(callback, params) {\n var _this12 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.clearCachedUserData();\n return callback(new Error('User is not authenticated'), null);\n }\n var userData = this.getUserDataFromCache();\n if (!userData) {\n this.fetchUserData().then(function (data) {\n callback(null, data);\n })[\"catch\"](callback);\n return;\n }\n if (this.isFetchUserDataAndTokenRequired(params)) {\n this.fetchUserData().then(function (data) {\n return _this12.refreshSessionIfPossible(params).then(function () {\n return data;\n });\n }).then(function (data) {\n return callback(null, data);\n })[\"catch\"](callback);\n return;\n }\n try {\n callback(null, JSON.parse(userData));\n return;\n } catch (err) {\n this.clearCachedUserData();\n callback(err, null);\n return;\n }\n }\n\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.getUserDataFromCache = function getUserDataFromCache() {\n var userData = this.storage.getItem(this.userDataKey);\n return userData;\n }\n\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.isFetchUserDataAndTokenRequired = function isFetchUserDataAndTokenRequired(params) {\n var _ref = params || {},\n _ref$bypassCache = _ref.bypassCache,\n bypassCache = _ref$bypassCache === void 0 ? false : _ref$bypassCache;\n return bypassCache;\n }\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.fetchUserData = function fetchUserData() {\n var _this13 = this;\n return this.createGetUserRequest().then(function (data) {\n _this13.cacheUserData(data);\n return data;\n });\n }\n\n /**\n * This is used by an authenticated user to delete a list of attributes\n * @param {string[]} attributeList Names of the attributes to delete.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.deleteAttributes = function deleteAttributes(attributeList, callback) {\n var _this14 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('DeleteUserAttributes', {\n UserAttributeNames: attributeList,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n\n // update cached user\n return _this14.getUserData(function () {\n return callback(null, 'SUCCESS');\n }, {\n bypassCache: true\n });\n });\n return undefined;\n }\n\n /**\n * This is used by a user to resend a confirmation code\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.resendConfirmationCode = function resendConfirmationCode(callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ClientMetadata: clientMetadata\n };\n this.client.request('ResendConfirmationCode', jsonReq, function (err, result) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, result);\n });\n }\n\n /**\n * @typedef {Object} GetSessionOptions\n * @property {Record} clientMetadata - clientMetadata for getSession\n */\n\n /**\n * This is used to get a session, either from the session object\n * or from the local storage, or by using a refresh token\n *\n * @param {nodeCallback} callback Called on success or error.\n * @param {GetSessionOptions} options\n * @returns {void}\n */;\n _proto.getSession = function getSession(callback, options) {\n if (options === void 0) {\n options = {};\n }\n if (this.username == null) {\n return callback(new Error('Username is null. Cannot retrieve a new session'), null);\n }\n if (this.signInUserSession != null && this.signInUserSession.isValid()) {\n return callback(null, this.signInUserSession);\n }\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var idTokenKey = keyPrefix + \".idToken\";\n var accessTokenKey = keyPrefix + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".refreshToken\";\n var clockDriftKey = keyPrefix + \".clockDrift\";\n if (this.storage.getItem(idTokenKey)) {\n var idToken = new CognitoIdToken({\n IdToken: this.storage.getItem(idTokenKey)\n });\n var accessToken = new CognitoAccessToken({\n AccessToken: this.storage.getItem(accessTokenKey)\n });\n var refreshToken = new CognitoRefreshToken({\n RefreshToken: this.storage.getItem(refreshTokenKey)\n });\n var clockDrift = parseInt(this.storage.getItem(clockDriftKey), 0) || 0;\n var sessionData = {\n IdToken: idToken,\n AccessToken: accessToken,\n RefreshToken: refreshToken,\n ClockDrift: clockDrift\n };\n var cachedSession = new CognitoUserSession(sessionData);\n if (cachedSession.isValid()) {\n this.signInUserSession = cachedSession;\n return callback(null, this.signInUserSession);\n }\n if (!refreshToken.getToken()) {\n return callback(new Error('Cannot retrieve a new session. Please authenticate.'), null);\n }\n this.refreshSession(refreshToken, callback, options.clientMetadata);\n } else {\n callback(new Error('Local storage is missing an ID Token, Please authenticate'), null);\n }\n return undefined;\n }\n\n /**\n * This uses the refreshToken to retrieve a new session\n * @param {CognitoRefreshToken} refreshToken A previous session's refresh token.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.refreshSession = function refreshSession(refreshToken, callback, clientMetadata) {\n var _this15 = this;\n var wrappedCallback = this.pool.wrapRefreshSessionCallback ? this.pool.wrapRefreshSessionCallback(callback) : callback;\n var authParameters = {};\n authParameters.REFRESH_TOKEN = refreshToken.getToken();\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n if (this.storage.getItem(lastUserKey)) {\n this.username = this.storage.getItem(lastUserKey);\n var deviceKeyKey = keyPrefix + \".\" + this.username + \".deviceKey\";\n this.deviceKey = this.storage.getItem(deviceKeyKey);\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n AuthFlow: 'REFRESH_TOKEN_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('InitiateAuth', jsonReq, function (err, authResult) {\n if (err) {\n if (err.code === 'NotAuthorizedException') {\n _this15.clearCachedUser();\n }\n return wrappedCallback(err, null);\n }\n if (authResult) {\n var authenticationResult = authResult.AuthenticationResult;\n if (!Object.prototype.hasOwnProperty.call(authenticationResult, 'RefreshToken')) {\n authenticationResult.RefreshToken = refreshToken.getToken();\n }\n _this15.signInUserSession = _this15.getCognitoUserSession(authenticationResult);\n _this15.cacheTokens();\n return wrappedCallback(null, _this15.signInUserSession);\n }\n return undefined;\n });\n }\n\n /**\n * This is used to save the session tokens to local storage\n * @returns {void}\n */;\n _proto.cacheTokens = function cacheTokens() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var idTokenKey = keyPrefix + \".\" + this.username + \".idToken\";\n var accessTokenKey = keyPrefix + \".\" + this.username + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".\" + this.username + \".refreshToken\";\n var clockDriftKey = keyPrefix + \".\" + this.username + \".clockDrift\";\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n this.storage.setItem(idTokenKey, this.signInUserSession.getIdToken().getJwtToken());\n this.storage.setItem(accessTokenKey, this.signInUserSession.getAccessToken().getJwtToken());\n this.storage.setItem(refreshTokenKey, this.signInUserSession.getRefreshToken().getToken());\n this.storage.setItem(clockDriftKey, \"\" + this.signInUserSession.getClockDrift());\n this.storage.setItem(lastUserKey, this.username);\n }\n\n /**\n * This is to cache user data\n */;\n _proto.cacheUserData = function cacheUserData(userData) {\n this.storage.setItem(this.userDataKey, JSON.stringify(userData));\n }\n\n /**\n * This is to remove cached user data\n */;\n _proto.clearCachedUserData = function clearCachedUserData() {\n this.storage.removeItem(this.userDataKey);\n };\n _proto.clearCachedUser = function clearCachedUser() {\n this.clearCachedTokens();\n this.clearCachedUserData();\n }\n\n /**\n * This is used to cache the device key and device group and device password\n * @returns {void}\n */;\n _proto.cacheDeviceKeyAndPassword = function cacheDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n this.storage.setItem(deviceKeyKey, this.deviceKey);\n this.storage.setItem(randomPasswordKey, this.randomPassword);\n this.storage.setItem(deviceGroupKeyKey, this.deviceGroupKey);\n }\n\n /**\n * This is used to get current device key and device group and device password\n * @returns {void}\n */;\n _proto.getCachedDeviceKeyAndPassword = function getCachedDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n if (this.storage.getItem(deviceKeyKey)) {\n this.deviceKey = this.storage.getItem(deviceKeyKey);\n this.randomPassword = this.storage.getItem(randomPasswordKey);\n this.deviceGroupKey = this.storage.getItem(deviceGroupKeyKey);\n }\n }\n\n /**\n * This is used to clear the device key info from local storage\n * @returns {void}\n */;\n _proto.clearCachedDeviceKeyAndPassword = function clearCachedDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n this.storage.removeItem(deviceKeyKey);\n this.storage.removeItem(randomPasswordKey);\n this.storage.removeItem(deviceGroupKeyKey);\n }\n\n /**\n * This is used to clear the session tokens from local storage\n * @returns {void}\n */;\n _proto.clearCachedTokens = function clearCachedTokens() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var idTokenKey = keyPrefix + \".\" + this.username + \".idToken\";\n var accessTokenKey = keyPrefix + \".\" + this.username + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".\" + this.username + \".refreshToken\";\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n var clockDriftKey = keyPrefix + \".\" + this.username + \".clockDrift\";\n this.storage.removeItem(idTokenKey);\n this.storage.removeItem(accessTokenKey);\n this.storage.removeItem(refreshTokenKey);\n this.storage.removeItem(lastUserKey);\n this.storage.removeItem(clockDriftKey);\n }\n\n /**\n * This is used to build a user session from tokens retrieved in the authentication result\n * @param {object} authResult Successful auth response from server.\n * @returns {CognitoUserSession} The new user session.\n * @private\n */;\n _proto.getCognitoUserSession = function getCognitoUserSession(authResult) {\n var idToken = new CognitoIdToken(authResult);\n var accessToken = new CognitoAccessToken(authResult);\n var refreshToken = new CognitoRefreshToken(authResult);\n var sessionData = {\n IdToken: idToken,\n AccessToken: accessToken,\n RefreshToken: refreshToken\n };\n return new CognitoUserSession(sessionData);\n }\n\n /**\n * This is used to initiate a forgot password request\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {inputVerificationCode?} callback.inputVerificationCode\n * Optional callback raised instead of onSuccess with response data.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.forgotPassword = function forgotPassword(callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('ForgotPassword', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n return callback.onSuccess(data);\n });\n }\n\n /**\n * This is used to confirm a new password using a confirmationCode\n * @param {string} confirmationCode Code entered by user.\n * @param {string} newPassword Confirm new password.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.confirmPassword = function confirmPassword(confirmationCode, newPassword, callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ConfirmationCode: confirmationCode,\n Password: newPassword,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('ConfirmForgotPassword', jsonReq, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n }\n\n /**\n * This is used to initiate an attribute confirmation request\n * @param {string} attributeName User attribute that needs confirmation.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {inputVerificationCode} callback.inputVerificationCode Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.getAttributeVerificationCode = function getAttributeVerificationCode(attributeName, callback, clientMetadata) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('GetUserAttributeVerificationCode', {\n AttributeName: attributeName,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to confirm an attribute using a confirmation code\n * @param {string} attributeName Attribute being confirmed.\n * @param {string} confirmationCode Code entered by user.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.verifyAttribute = function verifyAttribute(attributeName, confirmationCode, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('VerifyUserAttribute', {\n AttributeName: attributeName,\n Code: confirmationCode,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to get the device information using the current device key\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<*>} callback.onSuccess Called on success with device data.\n * @returns {void}\n */;\n _proto.getDevice = function getDevice(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('GetDevice', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n return undefined;\n }\n\n /**\n * This is used to forget a specific device\n * @param {string} deviceKey Device key.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.forgetSpecificDevice = function forgetSpecificDevice(deviceKey, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('ForgetDevice', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: deviceKey\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to forget the current device\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.forgetDevice = function forgetDevice(callback) {\n var _this16 = this;\n this.forgetSpecificDevice(this.deviceKey, {\n onFailure: callback.onFailure,\n onSuccess: function onSuccess(result) {\n _this16.deviceKey = null;\n _this16.deviceGroupKey = null;\n _this16.randomPassword = null;\n _this16.clearCachedDeviceKeyAndPassword();\n return callback.onSuccess(result);\n }\n });\n }\n\n /**\n * This is used to set the device status as remembered\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.setDeviceStatusRemembered = function setDeviceStatusRemembered(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('UpdateDeviceStatus', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n DeviceRememberedStatus: 'remembered'\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to set the device status as not remembered\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.setDeviceStatusNotRemembered = function setDeviceStatusNotRemembered(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('UpdateDeviceStatus', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n DeviceRememberedStatus: 'not_remembered'\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to list all devices for a user\n *\n * @param {int} limit the number of devices returned in a call\n * @param {string | null} paginationToken the pagination token in case any was returned before\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<*>} callback.onSuccess Called on success with device list.\n * @returns {void}\n */;\n _proto.listDevices = function listDevices(limit, paginationToken, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n var requestParams = {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n Limit: limit\n };\n if (paginationToken) {\n requestParams.PaginationToken = paginationToken;\n }\n this.client.request('ListDevices', requestParams, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n return undefined;\n }\n\n /**\n * This is used to globally revoke all tokens issued to a user\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.globalSignOut = function globalSignOut(callback) {\n var _this17 = this;\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('GlobalSignOut', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n _this17.clearCachedUser();\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used for the user to signOut of the application and clear the cached tokens.\n * @returns {void}\n */;\n _proto.signOut = function signOut(revokeTokenCallback) {\n var _this18 = this;\n // If tokens won't be revoked, we just clean the client data.\n if (!revokeTokenCallback || typeof revokeTokenCallback !== 'function') {\n this.cleanClientData();\n return;\n }\n this.getSession(function (error, _session) {\n if (error) {\n return revokeTokenCallback(error);\n }\n _this18.revokeTokens(function (err) {\n _this18.cleanClientData();\n revokeTokenCallback(err);\n });\n });\n };\n _proto.revokeTokens = function revokeTokens(revokeTokenCallback) {\n if (revokeTokenCallback === void 0) {\n revokeTokenCallback = function revokeTokenCallback() {};\n }\n if (typeof revokeTokenCallback !== 'function') {\n throw new Error('Invalid revokeTokenCallback. It should be a function.');\n }\n var tokensToBeRevoked = [];\n if (!this.signInUserSession) {\n var error = new Error('User is not authenticated');\n return revokeTokenCallback(error);\n }\n if (!this.signInUserSession.getAccessToken()) {\n var _error = new Error('No Access token available');\n return revokeTokenCallback(_error);\n }\n var refreshToken = this.signInUserSession.getRefreshToken().getToken();\n var accessToken = this.signInUserSession.getAccessToken();\n if (this.isSessionRevocable(accessToken)) {\n if (refreshToken) {\n return this.revokeToken({\n token: refreshToken,\n callback: revokeTokenCallback\n });\n }\n }\n revokeTokenCallback();\n };\n _proto.isSessionRevocable = function isSessionRevocable(token) {\n if (token && typeof token.decodePayload === 'function') {\n try {\n var _token$decodePayload2 = token.decodePayload(),\n origin_jti = _token$decodePayload2.origin_jti;\n return !!origin_jti;\n } catch (err) {\n // Nothing to do, token doesnt have origin_jti claim\n }\n }\n return false;\n };\n _proto.cleanClientData = function cleanClientData() {\n this.signInUserSession = null;\n this.clearCachedUser();\n };\n _proto.revokeToken = function revokeToken(_ref2) {\n var token = _ref2.token,\n callback = _ref2.callback;\n this.client.requestWithRetry('RevokeToken', {\n Token: token,\n ClientId: this.pool.getClientId()\n }, function (err) {\n if (err) {\n return callback(err);\n }\n callback();\n });\n }\n\n /**\n * This is used by a user trying to select a given MFA\n * @param {string} answerChallenge the mfa the user wants\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.sendMFASelectionAnswer = function sendMFASelectionAnswer(answerChallenge, callback) {\n var _this19 = this;\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.ANSWER = answerChallenge;\n var jsonReq = {\n ChallengeName: 'SELECT_MFA_TYPE',\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n _this19.Session = data.Session;\n if (answerChallenge === 'SMS_MFA') {\n return callback.mfaRequired(data.ChallengeName, data.ChallengeParameters);\n }\n if (answerChallenge === 'SOFTWARE_TOKEN_MFA') {\n return callback.totpRequired(data.ChallengeName, data.ChallengeParameters);\n }\n return undefined;\n });\n }\n\n /**\n * This returns the user context data for advanced security feature.\n * @returns {string} the user context data from CognitoUserPool\n */;\n _proto.getUserContextData = function getUserContextData() {\n var pool = this.pool;\n return pool.getUserContextData(this.username);\n }\n\n /**\n * This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.associateSoftwareToken = function associateSoftwareToken(callback) {\n var _this20 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.client.request('AssociateSoftwareToken', {\n Session: this.Session\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n _this20.Session = data.Session;\n return callback.associateSecretCode(data.SecretCode);\n });\n } else {\n this.client.request('AssociateSoftwareToken', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.associateSecretCode(data.SecretCode);\n });\n }\n }\n\n /**\n * This is used by an authenticated or a user trying to authenticate to verify a TOTP MFA\n * @param {string} totpCode The MFA code entered by the user.\n * @param {string} friendlyDeviceName The device name we are assigning to the device.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.verifySoftwareToken = function verifySoftwareToken(totpCode, friendlyDeviceName, callback) {\n var _this21 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.client.request('VerifySoftwareToken', {\n Session: this.Session,\n UserCode: totpCode,\n FriendlyDeviceName: friendlyDeviceName\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n _this21.Session = data.Session;\n var challengeResponses = {};\n challengeResponses.USERNAME = _this21.username;\n var jsonReq = {\n ChallengeName: 'MFA_SETUP',\n ClientId: _this21.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: _this21.Session\n };\n if (_this21.getUserContextData()) {\n jsonReq.UserContextData = _this21.getUserContextData();\n }\n _this21.client.request('RespondToAuthChallenge', jsonReq, function (errRespond, dataRespond) {\n if (errRespond) {\n return callback.onFailure(errRespond);\n }\n _this21.signInUserSession = _this21.getCognitoUserSession(dataRespond.AuthenticationResult);\n _this21.cacheTokens();\n return callback.onSuccess(_this21.signInUserSession);\n });\n return undefined;\n });\n } else {\n this.client.request('VerifySoftwareToken', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n UserCode: totpCode,\n FriendlyDeviceName: friendlyDeviceName\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n }\n };\n return CognitoUser;\n}();\nexport { CognitoUser as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { version } from './version';\nvar BASE_USER_AGENT = \"aws-amplify/\" + version;\nexport var Platform = {\n userAgent: BASE_USER_AGENT + \" js\",\n product: '',\n navigator: null,\n isReactNative: false\n};\nif (typeof navigator !== 'undefined' && navigator.product) {\n Platform.product = navigator.product || '';\n Platform.navigator = navigator || null;\n switch (navigator.product) {\n case 'ReactNative':\n Platform.userAgent = BASE_USER_AGENT + \" react-native\";\n Platform.isReactNative = true;\n break;\n default:\n Platform.userAgent = BASE_USER_AGENT + \" js\";\n Platform.isReactNative = false;\n break;\n }\n}\nexport var getUserAgent = function getUserAgent() {\n return Platform.userAgent;\n};\n\n/**\n * @deprecated use named import\n */\nexport default Platform;","import { getUserAgent } from \"./Platform\";\n// constructor\nfunction UserAgent() {}\n// public\nUserAgent.prototype.userAgent = getUserAgent();\nexport var appendToCognitoUserAgent = function appendToCognitoUserAgent(content) {\n if (!content) {\n return;\n }\n if (UserAgent.prototype.userAgent && !UserAgent.prototype.userAgent.includes(content)) {\n UserAgent.prototype.userAgent = UserAgent.prototype.userAgent.concat(' ', content);\n }\n if (!UserAgent.prototype.userAgent || UserAgent.prototype.userAgent === '') {\n UserAgent.prototype.userAgent = content;\n }\n};\n\n// class for defining the amzn user-agent\nexport default UserAgent;","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _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); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } 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); }\nfunction _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; } }\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport 'isomorphic-unfetch';\nimport UserAgent from './UserAgent';\nvar CognitoError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(CognitoError, _Error);\n function CognitoError(message, code, name, statusCode) {\n var _this;\n _this = _Error.call(this, message) || this;\n _this.code = code;\n _this.name = name;\n _this.statusCode = statusCode;\n return _this;\n }\n return CognitoError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/** @class */\nvar Client = /*#__PURE__*/function () {\n /**\n * Constructs a new AWS Cognito Identity Provider client object\n * @param {string} region AWS region\n * @param {string} endpoint endpoint\n * @param {object} fetchOptions options for fetch API (only credentials is supported)\n */\n function Client(region, endpoint, fetchOptions) {\n this.endpoint = endpoint || \"https://cognito-idp.\" + region + \".amazonaws.com/\";\n var _ref = fetchOptions || {},\n credentials = _ref.credentials;\n this.fetchOptions = credentials ? {\n credentials: credentials\n } : {};\n }\n\n /**\n * Makes an unauthenticated request on AWS Cognito Identity Provider API\n * using fetch\n * @param {string} operation API operation\n * @param {object} params Input parameters\n * @returns Promise\n */\n var _proto = Client.prototype;\n _proto.promisifyRequest = function promisifyRequest(operation, params) {\n var _this2 = this;\n return new Promise(function (resolve, reject) {\n _this2.request(operation, params, function (err, data) {\n if (err) {\n reject(new CognitoError(err.message, err.code, err.name, err.statusCode));\n } else {\n resolve(data);\n }\n });\n });\n };\n _proto.requestWithRetry = function requestWithRetry(operation, params, callback) {\n var _this3 = this;\n var MAX_DELAY_IN_MILLIS = 5 * 1000;\n jitteredExponentialRetry(function (p) {\n return new Promise(function (res, rej) {\n _this3.request(operation, p, function (error, result) {\n if (error) {\n rej(error);\n } else {\n res(result);\n }\n });\n });\n }, [params], MAX_DELAY_IN_MILLIS).then(function (result) {\n return callback(null, result);\n })[\"catch\"](function (error) {\n return callback(error);\n });\n }\n\n /**\n * Makes an unauthenticated request on AWS Cognito Identity Provider API\n * using fetch\n * @param {string} operation API operation\n * @param {object} params Input parameters\n * @param {function} callback Callback called when a response is returned\n * @returns {void}\n */;\n _proto.request = function request(operation, params, callback) {\n var headers = {\n 'Content-Type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': \"AWSCognitoIdentityProviderService.\" + operation,\n 'X-Amz-User-Agent': UserAgent.prototype.userAgent,\n 'Cache-Control': 'no-store'\n };\n var options = Object.assign({}, this.fetchOptions, {\n headers: headers,\n method: 'POST',\n mode: 'cors',\n body: JSON.stringify(params)\n });\n var response;\n var responseJsonData;\n fetch(this.endpoint, options).then(function (resp) {\n response = resp;\n return resp;\n }, function (err) {\n // If error happens here, the request failed\n // if it is TypeError throw network error\n if (err instanceof TypeError) {\n throw new Error('Network error');\n }\n throw err;\n }).then(function (resp) {\n return resp.json()[\"catch\"](function () {\n return {};\n });\n }).then(function (data) {\n // return parsed body stream\n if (response.ok) return callback(null, data);\n responseJsonData = data;\n\n // Taken from aws-sdk-js/lib/protocol/json.js\n // eslint-disable-next-line no-underscore-dangle\n var code = (data.__type || data.code).split('#').pop();\n var error = new Error(data.message || data.Message || null);\n error.name = code;\n error.code = code;\n return callback(error);\n })[\"catch\"](function (err) {\n // first check if we have a service error\n if (response && response.headers && response.headers.get('x-amzn-errortype')) {\n try {\n var code = response.headers.get('x-amzn-errortype').split(':')[0];\n var error = new Error(response.status ? response.status.toString() : null);\n error.code = code;\n error.name = code;\n error.statusCode = response.status;\n return callback(error);\n } catch (ex) {\n return callback(err);\n }\n // otherwise check if error is Network error\n } else if (err instanceof Error && err.message === 'Network error') {\n err.code = 'NetworkError';\n }\n return callback(err);\n });\n };\n return Client;\n}();\nexport { Client as default };\nvar logger = {\n debug: function debug() {\n // Intentionally blank. This package doesn't have logging\n }\n};\n\n/**\n * For now, all errors are retryable.\n */\nvar NonRetryableError = /*#__PURE__*/function (_Error2) {\n _inheritsLoose(NonRetryableError, _Error2);\n function NonRetryableError(message) {\n var _this4;\n _this4 = _Error2.call(this, message) || this;\n _this4.nonRetryable = true;\n return _this4;\n }\n return NonRetryableError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nvar isNonRetryableError = function isNonRetryableError(obj) {\n var key = 'nonRetryable';\n return obj && obj[key];\n};\nfunction retry(functionToRetry, args, delayFn, attempt) {\n if (attempt === void 0) {\n attempt = 1;\n }\n if (typeof functionToRetry !== 'function') {\n throw Error('functionToRetry must be a function');\n }\n logger.debug(functionToRetry.name + \" attempt #\" + attempt + \" with args: \" + JSON.stringify(args));\n return functionToRetry.apply(void 0, args)[\"catch\"](function (err) {\n logger.debug(\"error on \" + functionToRetry.name, err);\n if (isNonRetryableError(err)) {\n logger.debug(functionToRetry.name + \" non retryable error\", err);\n throw err;\n }\n var retryIn = delayFn(attempt, args, err);\n logger.debug(functionToRetry.name + \" retrying in \" + retryIn + \" ms\");\n if (retryIn !== false) {\n return new Promise(function (res) {\n return setTimeout(res, retryIn);\n }).then(function () {\n return retry(functionToRetry, args, delayFn, attempt + 1);\n });\n } else {\n throw err;\n }\n });\n}\nfunction jitteredBackoff(maxDelayMs) {\n var BASE_TIME_MS = 100;\n var JITTER_FACTOR = 100;\n return function (attempt) {\n var delay = Math.pow(2, attempt) * BASE_TIME_MS + JITTER_FACTOR * Math.random();\n return delay > maxDelayMs ? false : delay;\n };\n}\nvar MAX_DELAY_MS = 5 * 60 * 1000;\nfunction jitteredExponentialRetry(functionToRetry, args, maxDelayMs) {\n if (maxDelayMs === void 0) {\n maxDelayMs = MAX_DELAY_MS;\n }\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs));\n}","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport Client from './Client';\nimport CognitoUser from './CognitoUser';\nimport StorageHelper from './StorageHelper';\nvar USER_POOL_ID_MAX_LENGTH = 55;\n\n/** @class */\nvar CognitoUserPool = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserPool object\n * @param {object} data Creation options.\n * @param {string} data.UserPoolId Cognito user pool id.\n * @param {string} data.ClientId User pool application client id.\n * @param {string} data.endpoint Optional custom service endpoint.\n * @param {object} data.fetchOptions Optional options for fetch API.\n * (only credentials option is supported)\n * @param {object} data.Storage Optional storage object.\n * @param {boolean} data.AdvancedSecurityDataCollectionFlag Optional:\n * boolean flag indicating if the data collection is enabled\n * to support cognito advanced security features. By default, this\n * flag is set to true.\n */\n function CognitoUserPool(data, wrapRefreshSessionCallback) {\n var _ref = data || {},\n UserPoolId = _ref.UserPoolId,\n ClientId = _ref.ClientId,\n endpoint = _ref.endpoint,\n fetchOptions = _ref.fetchOptions,\n AdvancedSecurityDataCollectionFlag = _ref.AdvancedSecurityDataCollectionFlag;\n if (!UserPoolId || !ClientId) {\n throw new Error('Both UserPoolId and ClientId are required.');\n }\n if (UserPoolId.length > USER_POOL_ID_MAX_LENGTH || !/^[\\w-]+_[0-9a-zA-Z]+$/.test(UserPoolId)) {\n throw new Error('Invalid UserPoolId format.');\n }\n var region = UserPoolId.split('_')[0];\n this.userPoolId = UserPoolId;\n this.clientId = ClientId;\n this.client = new Client(region, endpoint, fetchOptions);\n\n /**\n * By default, AdvancedSecurityDataCollectionFlag is set to true,\n * if no input value is provided.\n */\n this.advancedSecurityDataCollectionFlag = AdvancedSecurityDataCollectionFlag !== false;\n this.storage = data.Storage || new StorageHelper().getStorage();\n if (wrapRefreshSessionCallback) {\n this.wrapRefreshSessionCallback = wrapRefreshSessionCallback;\n }\n }\n\n /**\n * @returns {string} the user pool id\n */\n var _proto = CognitoUserPool.prototype;\n _proto.getUserPoolId = function getUserPoolId() {\n return this.userPoolId;\n }\n\n /**\n * @returns {string} the user pool name\n */;\n _proto.getUserPoolName = function getUserPoolName() {\n return this.getUserPoolId().split('_')[1];\n }\n\n /**\n * @returns {string} the client id\n */;\n _proto.getClientId = function getClientId() {\n return this.clientId;\n }\n\n /**\n * @typedef {object} SignUpResult\n * @property {CognitoUser} user New user.\n * @property {bool} userConfirmed If the user is already confirmed.\n */\n /**\n * method for signing up a user\n * @param {string} username User's username.\n * @param {string} password Plain-text initial password entered by user.\n * @param {(AttributeArg[])=} userAttributes New user attributes.\n * @param {(AttributeArg[])=} validationData Application metadata.\n * @param {(AttributeArg[])=} clientMetadata Client metadata.\n * @param {nodeCallback} callback Called on error or with the new user.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.signUp = function signUp(username, password, userAttributes, validationData, callback, clientMetadata) {\n var _this = this;\n var jsonReq = {\n ClientId: this.clientId,\n Username: username,\n Password: password,\n UserAttributes: userAttributes,\n ValidationData: validationData,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData(username)) {\n jsonReq.UserContextData = this.getUserContextData(username);\n }\n this.client.request('SignUp', jsonReq, function (err, data) {\n if (err) {\n return callback(err, null);\n }\n var cognitoUser = {\n Username: username,\n Pool: _this,\n Storage: _this.storage\n };\n var returnData = {\n user: new CognitoUser(cognitoUser),\n userConfirmed: data.UserConfirmed,\n userSub: data.UserSub,\n codeDeliveryDetails: data.CodeDeliveryDetails\n };\n return callback(null, returnData);\n });\n }\n\n /**\n * method for getting the current user of the application from the local storage\n *\n * @returns {CognitoUser} the user retrieved from storage\n */;\n _proto.getCurrentUser = function getCurrentUser() {\n var lastUserKey = \"CognitoIdentityServiceProvider.\" + this.clientId + \".LastAuthUser\";\n var lastAuthUser = this.storage.getItem(lastUserKey);\n if (lastAuthUser) {\n var cognitoUser = {\n Username: lastAuthUser,\n Pool: this,\n Storage: this.storage\n };\n return new CognitoUser(cognitoUser);\n }\n return null;\n }\n\n /**\n * This method returns the encoded data string used for cognito advanced security feature.\n * This would be generated only when developer has included the JS used for collecting the\n * data on their client. Please refer to documentation to know more about using AdvancedSecurity\n * features\n * @param {string} username the username for the context data\n * @returns {string} the user context data\n **/;\n _proto.getUserContextData = function getUserContextData(username) {\n if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') {\n return undefined;\n }\n /* eslint-disable */\n var amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData;\n /* eslint-enable */\n\n if (this.advancedSecurityDataCollectionFlag) {\n var advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username, this.userPoolId, this.clientId);\n if (advancedSecurityData) {\n var userContextData = {\n EncodedData: advancedSecurityData\n };\n return userContextData;\n }\n }\n return {};\n };\n return CognitoUserPool;\n}();\nexport { CognitoUserPool as default };","import * as Cookies from 'js-cookie';\n\n/** @class */\nvar CookieStorage = /*#__PURE__*/function () {\n /**\n * Constructs a new CookieStorage object\n * @param {object} data Creation options.\n * @param {string} data.domain Cookies domain (mandatory).\n * @param {string} data.path Cookies path (default: '/')\n * @param {integer} data.expires Cookie expiration (in days, default: 365)\n * @param {boolean} data.secure Cookie secure flag (default: true)\n * @param {string} data.sameSite Cookie request behaviour (default: null)\n */\n function CookieStorage(data) {\n if (data.domain) {\n this.domain = data.domain;\n } else {\n throw new Error('The domain of cookieStorage can not be undefined.');\n }\n if (data.path) {\n this.path = data.path;\n } else {\n this.path = '/';\n }\n if (Object.prototype.hasOwnProperty.call(data, 'expires')) {\n this.expires = data.expires;\n } else {\n this.expires = 365;\n }\n if (Object.prototype.hasOwnProperty.call(data, 'secure')) {\n this.secure = data.secure;\n } else {\n this.secure = true;\n }\n if (Object.prototype.hasOwnProperty.call(data, 'sameSite')) {\n if (!['strict', 'lax', 'none'].includes(data.sameSite)) {\n throw new Error('The sameSite value of cookieStorage must be \"lax\", \"strict\" or \"none\".');\n }\n if (data.sameSite === 'none' && !this.secure) {\n throw new Error('sameSite = None requires the Secure attribute in latest browser versions.');\n }\n this.sameSite = data.sameSite;\n } else {\n this.sameSite = null;\n }\n }\n\n /**\n * This is used to set a specific item in storage\n * @param {string} key - the key for the item\n * @param {object} value - the value\n * @returns {string} value that was set\n */\n var _proto = CookieStorage.prototype;\n _proto.setItem = function setItem(key, value) {\n var options = {\n path: this.path,\n expires: this.expires,\n domain: this.domain,\n secure: this.secure\n };\n if (this.sameSite) {\n options.sameSite = this.sameSite;\n }\n Cookies.set(key, value, options);\n return Cookies.get(key);\n }\n\n /**\n * This is used to get a specific key from storage\n * @param {string} key - the key for the item\n * This is used to clear the storage\n * @returns {string} the data item\n */;\n _proto.getItem = function getItem(key) {\n return Cookies.get(key);\n }\n\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {string} value - value that was deleted\n */;\n _proto.removeItem = function removeItem(key) {\n var options = {\n path: this.path,\n expires: this.expires,\n domain: this.domain,\n secure: this.secure\n };\n if (this.sameSite) {\n options.sameSite = this.sameSite;\n }\n return Cookies.remove(key, options);\n }\n\n /**\n * This is used to clear the storage of optional\n * items that were previously set\n * @returns {} an empty object\n */;\n _proto.clear = function clear() {\n var cookies = Cookies.get();\n var numKeys = Object.keys(cookies).length;\n for (var index = 0; index < numKeys; ++index) {\n this.removeItem(Object.keys(cookies)[index]);\n }\n return {};\n };\n return CookieStorage;\n}();\nexport { CookieStorage as default };","import GestureHandler from '../handlers/GestureHandler';\nimport { Config, Handler } from '../interfaces';\n\nexport default class InteractionManager {\n private static instance: InteractionManager;\n private readonly waitForRelations: Map = new Map();\n private readonly simultaneousRelations: Map = new Map();\n\n // Private becaues of singleton\n // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function\n private constructor() {}\n\n public configureInteractions(handler: GestureHandler, config: Config) {\n this.dropRelationsForHandlerWithTag(handler.getTag());\n\n if (config.waitFor) {\n const waitFor: number[] = [];\n config.waitFor.forEach((otherHandler: Handler): void => {\n // New API reference\n if (typeof otherHandler === 'number') {\n waitFor.push(otherHandler);\n } else {\n // Old API reference\n waitFor.push(otherHandler.handlerTag);\n }\n });\n\n this.waitForRelations.set(handler.getTag(), waitFor);\n }\n\n if (config.simultaneousHandlers) {\n const simultaneousHandlers: number[] = [];\n config.simultaneousHandlers.forEach((otherHandler: Handler): void => {\n if (typeof otherHandler === 'number') {\n simultaneousHandlers.push(otherHandler);\n } else {\n simultaneousHandlers.push(otherHandler.handlerTag);\n }\n });\n\n this.simultaneousRelations.set(handler.getTag(), simultaneousHandlers);\n }\n }\n\n public shouldWaitForHandlerFailure(\n handler: GestureHandler,\n otherHandler: GestureHandler\n ): boolean {\n const waitFor: number[] | undefined = this.waitForRelations.get(\n handler.getTag()\n );\n if (!waitFor) {\n return false;\n }\n\n let shouldWait = false;\n\n waitFor.forEach((tag: number): void => {\n if (tag === otherHandler.getTag()) {\n shouldWait = true;\n return; //Returns from callback\n }\n });\n\n return shouldWait;\n }\n\n public shouldRecognizeSimultaneously(\n handler: GestureHandler,\n otherHandler: GestureHandler\n ): boolean {\n const simultaneousHandlers: number[] | undefined =\n this.simultaneousRelations.get(handler.getTag());\n if (!simultaneousHandlers) {\n return false;\n }\n\n let shouldRecognizeSimultaneously = false;\n\n simultaneousHandlers.forEach((tag: number): void => {\n if (tag === otherHandler.getTag()) {\n shouldRecognizeSimultaneously = true;\n return;\n }\n });\n\n return shouldRecognizeSimultaneously;\n }\n\n public shouldRequireHandlerToWaitForFailure(\n _handler: GestureHandler,\n _otherHandler: GestureHandler\n ): boolean {\n //TODO: Implement logic\n return false;\n }\n\n public shouldHandlerBeCancelledBy(\n _handler: GestureHandler,\n _otherHandler: GestureHandler\n ): boolean {\n //TODO: Implement logic\n return false;\n }\n\n public dropRelationsForHandlerWithTag(handlerTag: number): void {\n this.waitForRelations.delete(handlerTag);\n this.simultaneousRelations.delete(handlerTag);\n }\n\n public reset() {\n this.waitForRelations.clear();\n this.simultaneousRelations.clear();\n }\n\n public static getInstance(): InteractionManager {\n if (!this.instance) {\n this.instance = new InteractionManager();\n }\n\n return this.instance;\n }\n}\n","import { UserSelect } from '../handlers/gestureHandlerCommon';\nimport { Directions } from '../Directions';\nimport { State } from '../State';\n\nexport interface HitSlop {\n left?: number;\n right?: number;\n top?: number;\n bottom?: number;\n horizontal?: number;\n vertical?: number;\n width?: number;\n height?: number;\n}\n\nexport interface Handler {\n handlerTag: number;\n}\n\ntype ConfigArgs =\n | number\n | boolean\n | HitSlop\n | UserSelect\n | Directions\n | Handler[]\n | null\n | undefined;\n\nexport interface Config extends Record {\n enabled?: boolean;\n simultaneousHandlers?: Handler[] | null;\n waitFor?: Handler[] | null;\n hitSlop?: HitSlop;\n shouldCancelWhenOutside?: boolean;\n userSelect?: UserSelect;\n\n activateAfterLongPress?: number;\n failOffsetXStart?: number;\n failOffsetYStart?: number;\n failOffsetXEnd?: number;\n failOffsetYEnd?: number;\n activeOffsetXStart?: number;\n activeOffsetXEnd?: number;\n activeOffsetYStart?: number;\n activeOffsetYEnd?: number;\n minPointers?: number;\n maxPointers?: number;\n minDist?: number;\n minDistSq?: number;\n minVelocity?: number;\n minVelocityX?: number;\n minVelocityY?: number;\n minVelocitySq?: number;\n maxDist?: number;\n maxDistSq?: number;\n numberOfPointers?: number;\n minDurationMs?: number;\n numberOfTaps?: number;\n maxDurationMs?: number;\n maxDelayMs?: number;\n maxDeltaX?: number;\n maxDeltaY?: number;\n shouldActivateOnStart?: boolean;\n disallowInterruption?: boolean;\n direction?: Directions;\n}\n\ntype NativeEventArgs = number | State | boolean | undefined;\ninterface NativeEvent extends Record {\n numberOfPointers: number;\n state: State;\n pointerInside: boolean | undefined;\n handlerTag: number;\n target: number;\n oldState?: State;\n}\n\nexport interface PointerData {\n id: number;\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n}\n\ntype TouchNativeArgs = number | State | TouchEventType | PointerData[];\n\ninterface NativeTouchEvent extends Record {\n handlerTag: number;\n state: State;\n eventType: TouchEventType;\n changedTouches: PointerData[];\n allTouches: PointerData[];\n numberOfTouches: number;\n}\n\nexport interface ResultEvent extends Record {\n nativeEvent: NativeEvent;\n timeStamp: number;\n}\n\nexport interface ResultTouchEvent\n extends Record {\n nativeEvent: NativeTouchEvent;\n timeStamp: number;\n}\n\nexport interface PropsRef {\n onGestureHandlerEvent: () => void;\n onGestureHandlerStateChange: () => void;\n}\n\nexport interface AdaptedEvent {\n x: number;\n y: number;\n offsetX: number;\n offsetY: number;\n pointerId: number;\n eventType: EventTypes;\n pointerType: PointerType;\n buttons: number;\n time: number;\n allTouches?: TouchList;\n changedTouches?: TouchList;\n touchEventType?: TouchEventType;\n}\n\nexport enum MouseButtons {\n NONE,\n LEFT,\n RIGHT,\n LEFT_RIGHT,\n SCROLL,\n SCROLL_LEFT,\n SCROLL_RIGHT,\n SCROLL_LEFT_RIGHT,\n}\n\nexport enum EventTypes {\n DOWN,\n ADDITIONAL_POINTER_DOWN,\n UP,\n ADDITIONAL_POINTER_UP,\n MOVE,\n ENTER,\n OUT,\n CANCEL,\n}\n\nexport enum TouchEventType {\n UNDETERMINED,\n DOWN,\n MOVE,\n UP,\n CANCELLED,\n}\n\nexport enum PointerType {\n NONE = 'none',\n MOUSE = 'mouse',\n TOUCH = 'touch',\n PEN = 'pen',\n}\n","const DEFAULT_OPACITY = 0.5;\nconst DEFAULT_APPEARS_ON_INDEX = 1;\nconst DEFAULT_DISAPPEARS_ON_INDEX = 0;\nconst DEFAULT_ENABLE_TOUCH_THROUGH = false;\nconst DEFAULT_PRESS_BEHAVIOR = 'close' as const;\n\nexport {\n DEFAULT_OPACITY,\n DEFAULT_APPEARS_ON_INDEX,\n DEFAULT_DISAPPEARS_ON_INDEX,\n DEFAULT_ENABLE_TOUCH_THROUGH,\n DEFAULT_PRESS_BEHAVIOR,\n};\n","import { AdaptedEvent } from '../interfaces';\n\nexport interface TrackerElement {\n lastX: number;\n lastY: number;\n\n timeStamp: number;\n\n velocityX: number;\n velocityY: number;\n}\n\n// Used to scale velocity so that it is similar to velocity in Android/iOS\nconst VELOCITY_FACTOR = 0.2;\nconst MAX_POINTERS = 20;\n\nexport default class PointerTracker {\n private trackedPointers: Map = new Map<\n number,\n TrackerElement\n >();\n\n private touchEventsIds: Map = new Map();\n\n private lastMovedPointerId: number;\n\n private cachedAverages: { x: number; y: number } = { x: 0, y: 0 };\n\n public constructor() {\n this.lastMovedPointerId = NaN;\n\n for (let i = 0; i < MAX_POINTERS; ++i) {\n this.touchEventsIds.set(i, NaN);\n }\n }\n\n public addToTracker(event: AdaptedEvent): void {\n if (this.trackedPointers.has(event.pointerId)) {\n return;\n }\n\n this.lastMovedPointerId = event.pointerId;\n\n const newElement: TrackerElement = {\n lastX: event.x,\n lastY: event.y,\n timeStamp: event.time,\n velocityX: 0,\n velocityY: 0,\n };\n\n this.trackedPointers.set(event.pointerId, newElement);\n this.mapTouchEventId(event.pointerId);\n\n this.cachedAverages = {\n x: this.getLastAvgX(),\n y: this.getLastAvgY(),\n };\n }\n\n public removeFromTracker(pointerId: number): void {\n this.trackedPointers.delete(pointerId);\n this.removeMappedTouchId(pointerId);\n }\n\n public track(event: AdaptedEvent): void {\n const element: TrackerElement = this.trackedPointers.get(\n event.pointerId\n ) as TrackerElement;\n\n if (!element) {\n return;\n }\n\n this.lastMovedPointerId = event.pointerId;\n\n const dx = event.x - element.lastX;\n const dy = event.y - element.lastY;\n const dt = event.time - element.timeStamp;\n\n element.velocityX = (dx / dt) * 1000 * VELOCITY_FACTOR;\n element.velocityY = (dy / dt) * 1000 * VELOCITY_FACTOR;\n\n element.lastX = event.x;\n element.lastY = event.y;\n\n this.trackedPointers.set(event.pointerId, element);\n\n const avgX: number = this.getLastAvgX();\n const avgY: number = this.getLastAvgY();\n\n this.cachedAverages = {\n x: avgX,\n y: avgY,\n };\n }\n\n //Mapping TouchEvents ID\n private mapTouchEventId(id: number): void {\n for (const [mappedId, touchId] of this.touchEventsIds) {\n if (isNaN(touchId)) {\n this.touchEventsIds.set(mappedId, id);\n break;\n }\n }\n }\n\n private removeMappedTouchId(id: number): void {\n const mappedId: number = this.getMappedTouchEventId(id);\n if (!isNaN(mappedId)) {\n this.touchEventsIds.set(mappedId, NaN);\n }\n }\n\n public getMappedTouchEventId(touchEventId: number): number {\n for (const [key, value] of this.touchEventsIds.entries()) {\n if (value === touchEventId) {\n return key;\n }\n }\n\n return NaN;\n }\n\n public getVelocityX(pointerId: number): number {\n return this.trackedPointers.get(pointerId)?.velocityX as number;\n }\n public getVelocityY(pointerId: number): number {\n return this.trackedPointers.get(pointerId)?.velocityY as number;\n }\n\n /**\n * Returns X coordinate of last moved pointer\n */\n public getLastX(): number;\n\n /**\n *\n * @param pointerId\n * Returns X coordinate of given pointer\n */\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n public getLastX(pointerId: number): number;\n\n public getLastX(pointerId?: number): number {\n if (pointerId !== undefined) {\n return this.trackedPointers.get(pointerId)?.lastX as number;\n } else {\n return this.trackedPointers.get(this.lastMovedPointerId)?.lastX as number;\n }\n }\n\n /**\n * Returns Y coordinate of last moved pointer\n */\n public getLastY(): number;\n\n /**\n *\n * @param pointerId\n * Returns Y coordinate of given pointer\n */\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n public getLastY(pointerId: number): number;\n\n public getLastY(pointerId?: number): number {\n if (pointerId !== undefined) {\n return this.trackedPointers.get(pointerId)?.lastY as number;\n } else {\n return this.trackedPointers.get(this.lastMovedPointerId)?.lastY as number;\n }\n }\n\n // Some handlers use these methods to send average values in native event.\n // This may happen when pointers have already been removed from tracker (i.e. pointerup event).\n // In situation when NaN would be sent as a response, we return cached value.\n // That prevents handlers from crashing\n public getLastAvgX(): number {\n const avgX: number = this.getSumX() / this.trackedPointers.size;\n return isNaN(avgX) ? this.cachedAverages.x : avgX;\n }\n public getLastAvgY(): number {\n const avgY: number = this.getSumY() / this.trackedPointers.size;\n return isNaN(avgY) ? this.cachedAverages.y : avgY;\n }\n public getSumX(ignoredPointer?: number): number {\n let sumX = 0;\n\n this.trackedPointers.forEach((value, key) => {\n if (key !== ignoredPointer) {\n sumX += value.lastX;\n }\n });\n\n return sumX;\n }\n public getSumY(ignoredPointer?: number): number {\n let sumY = 0;\n\n this.trackedPointers.forEach((value, key) => {\n if (key !== ignoredPointer) {\n sumY += value.lastY;\n }\n });\n\n return sumY;\n }\n public getTrackedPointersCount(): number {\n return this.trackedPointers.size;\n }\n public getTrackedPointersID(): number[] {\n const keys: number[] = [];\n\n this.trackedPointers.forEach((_value, key) => {\n keys.push(key);\n });\n\n return keys;\n }\n\n public getData(): Map {\n return this.trackedPointers;\n }\n\n public resetTracker(): void {\n this.trackedPointers.clear();\n this.lastMovedPointerId = NaN;\n\n for (let i = 0; i < MAX_POINTERS; ++i) {\n this.touchEventsIds.set(i, NaN);\n }\n }\n\n public static shareCommonPointers(\n stPointers: number[],\n ndPointers: number[]\n ): boolean {\n return stPointers.some((pointerId) => ndPointers.includes(pointerId));\n }\n}\n","import { State } from '../../State';\nimport { PointerType } from '../interfaces';\n\nimport GestureHandler from '../handlers/GestureHandler';\nimport PointerTracker from './PointerTracker';\nimport { isPointerInBounds } from '../utils';\n\nexport default class GestureHandlerOrchestrator {\n private static instance: GestureHandlerOrchestrator;\n\n private gestureHandlers: GestureHandler[] = [];\n private awaitingHandlers: GestureHandler[] = [];\n private handlersToCancel: GestureHandler[] = [];\n\n private handlingChangeSemaphore = 0;\n private activationIndex = 0;\n\n // Private beacuse of Singleton\n // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function\n private constructor() {}\n\n private scheduleFinishedHandlersCleanup(): void {\n if (this.handlingChangeSemaphore === 0) {\n this.cleanupFinishedHandlers();\n }\n }\n\n private cleanHandler(handler: GestureHandler): void {\n handler.reset();\n handler.setActive(false);\n handler.setAwaiting(false);\n handler.setActivationIndex(Number.MAX_VALUE);\n }\n\n public removeHandlerFromOrchestrator(handler: GestureHandler): void {\n this.gestureHandlers.splice(this.gestureHandlers.indexOf(handler), 1);\n this.awaitingHandlers.splice(this.awaitingHandlers.indexOf(handler), 1);\n this.handlersToCancel.splice(this.handlersToCancel.indexOf(handler), 1);\n }\n\n private cleanupFinishedHandlers(): void {\n for (let i = this.gestureHandlers.length - 1; i >= 0; --i) {\n const handler = this.gestureHandlers[i];\n\n if (!handler) {\n continue;\n }\n if (this.isFinished(handler.getState()) && !handler.isAwaiting()) {\n this.gestureHandlers.splice(i, 1);\n\n this.cleanHandler(handler);\n }\n }\n }\n\n private hasOtherHandlerToWaitFor(handler: GestureHandler): boolean {\n let hasToWait = false;\n this.gestureHandlers.forEach((otherHandler) => {\n if (\n otherHandler &&\n !this.isFinished(otherHandler.getState()) &&\n this.shouldHandlerWaitForOther(handler, otherHandler)\n ) {\n hasToWait = true;\n return;\n }\n });\n\n return hasToWait;\n }\n\n private tryActivate(handler: GestureHandler): void {\n if (this.hasOtherHandlerToWaitFor(handler)) {\n this.addAwaitingHandler(handler);\n } else if (\n handler.getState() !== State.CANCELLED &&\n handler.getState() !== State.FAILED\n ) {\n if (this.shouldActivate(handler)) {\n this.makeActive(handler);\n } else {\n switch (handler.getState()) {\n case State.ACTIVE:\n handler.fail();\n break;\n case State.BEGAN:\n handler.cancel();\n }\n }\n }\n }\n\n private shouldActivate(handler: GestureHandler): boolean {\n for (const otherHandler of this.gestureHandlers) {\n if (this.shouldHandlerBeCancelledBy(handler, otherHandler)) {\n return false;\n }\n }\n\n return true;\n }\n\n private cleanupAwaitingHandlers(handler: GestureHandler): void {\n for (let i = 0; i < this.awaitingHandlers.length; ++i) {\n if (\n !this.awaitingHandlers[i].isAwaiting() &&\n this.shouldHandlerWaitForOther(this.awaitingHandlers[i], handler)\n ) {\n this.cleanHandler(this.awaitingHandlers[i]);\n this.awaitingHandlers.splice(i, 1);\n }\n }\n }\n\n public onHandlerStateChange(\n handler: GestureHandler,\n newState: State,\n oldState: State,\n sendIfDisabled?: boolean\n ): void {\n if (!handler.isEnabled() && !sendIfDisabled) {\n return;\n }\n\n this.handlingChangeSemaphore += 1;\n\n if (this.isFinished(newState)) {\n this.awaitingHandlers.forEach((otherHandler) => {\n if (this.shouldHandlerWaitForOther(otherHandler, handler)) {\n if (newState === State.END) {\n otherHandler?.cancel();\n if (otherHandler.getState() === State.END) {\n // Handle edge case, where discrete gestures end immediately after activation thus\n // their state is set to END and when the gesture they are waiting for activates they\n // should be cancelled, however `cancel` was never sent as gestures were already in the END state.\n // Send synthetic BEGAN -> CANCELLED to properly handle JS logic\n otherHandler.sendEvent(State.CANCELLED, State.BEGAN);\n }\n otherHandler?.setAwaiting(false);\n } else {\n this.tryActivate(otherHandler);\n }\n }\n });\n }\n\n if (newState === State.ACTIVE) {\n this.tryActivate(handler);\n } else if (oldState === State.ACTIVE || oldState === State.END) {\n if (handler.isActive()) {\n handler.sendEvent(newState, oldState);\n } else if (\n oldState === State.ACTIVE &&\n (newState === State.CANCELLED || newState === State.FAILED)\n ) {\n handler.sendEvent(newState, State.BEGAN);\n }\n } else if (\n oldState !== State.UNDETERMINED ||\n newState !== State.CANCELLED\n ) {\n handler.sendEvent(newState, oldState);\n }\n\n this.handlingChangeSemaphore -= 1;\n\n this.scheduleFinishedHandlersCleanup();\n\n if (this.awaitingHandlers.indexOf(handler) < 0) {\n this.cleanupAwaitingHandlers(handler);\n }\n }\n\n private makeActive(handler: GestureHandler): void {\n const currentState = handler.getState();\n\n handler.setActive(true);\n handler.setShouldResetProgress(true);\n handler.setActivationIndex(this.activationIndex++);\n\n this.gestureHandlers.forEach((otherHandler) => {\n // Order of arguments is correct - we check whether current handler should cancel existing handlers\n\n if (this.shouldHandlerBeCancelledBy(otherHandler, handler)) {\n this.handlersToCancel.push(otherHandler);\n }\n });\n\n for (let i = this.handlersToCancel.length - 1; i >= 0; --i) {\n this.handlersToCancel[i]?.cancel();\n }\n this.awaitingHandlers.forEach((otherHandler) => {\n if (this.shouldHandlerBeCancelledBy(otherHandler, handler)) {\n otherHandler?.cancel();\n otherHandler?.setAwaiting(true);\n }\n });\n\n handler.sendEvent(State.ACTIVE, State.BEGAN);\n\n if (currentState !== State.ACTIVE) {\n handler.sendEvent(State.END, State.ACTIVE);\n if (currentState !== State.END) {\n handler.sendEvent(State.UNDETERMINED, State.END);\n }\n }\n\n if (handler.isAwaiting()) {\n handler.setAwaiting(false);\n for (let i = 0; i < this.awaitingHandlers.length; ++i) {\n if (this.awaitingHandlers[i] === handler) {\n this.awaitingHandlers.splice(i, 1);\n }\n }\n }\n\n this.handlersToCancel = [];\n }\n\n private addAwaitingHandler(handler: GestureHandler): void {\n let alreadyExists = false;\n\n this.awaitingHandlers.forEach((otherHandler) => {\n if (otherHandler === handler) {\n alreadyExists = true;\n return;\n }\n });\n\n if (alreadyExists) {\n return;\n }\n\n this.awaitingHandlers.push(handler);\n\n handler.setAwaiting(true);\n handler.setActivationIndex(this.activationIndex++);\n }\n\n public recordHandlerIfNotPresent(handler: GestureHandler): void {\n let alreadyExists = false;\n\n this.gestureHandlers.forEach((otherHandler) => {\n if (otherHandler === handler) {\n alreadyExists = true;\n return;\n }\n });\n\n if (alreadyExists) {\n return;\n }\n\n this.gestureHandlers.push(handler);\n\n handler.setActive(false);\n handler.setAwaiting(false);\n handler.setActivationIndex(Number.MAX_SAFE_INTEGER);\n }\n\n private shouldHandlerWaitForOther(\n handler: GestureHandler,\n otherHandler: GestureHandler\n ): boolean {\n return (\n handler !== otherHandler &&\n (handler.shouldWaitForHandlerFailure(otherHandler) ||\n otherHandler.shouldRequireToWaitForFailure(handler))\n );\n }\n\n private canRunSimultaneously(\n gh1: GestureHandler,\n gh2: GestureHandler\n ): boolean {\n return (\n gh1 === gh2 ||\n gh1.shouldRecognizeSimultaneously(gh2) ||\n gh2.shouldRecognizeSimultaneously(gh1)\n );\n }\n\n private shouldHandlerBeCancelledBy(\n handler: GestureHandler,\n otherHandler: GestureHandler\n ): boolean {\n if (this.canRunSimultaneously(handler, otherHandler)) {\n return false;\n }\n\n if (\n handler !== otherHandler &&\n (handler.isAwaiting() || handler.getState() === State.ACTIVE)\n ) {\n // For now it always returns false\n return handler.shouldBeCancelledByOther(otherHandler);\n }\n\n const handlerPointers: number[] = handler.getTrackedPointersID();\n const otherPointers: number[] = otherHandler.getTrackedPointersID();\n\n if (\n !PointerTracker.shareCommonPointers(handlerPointers, otherPointers) &&\n handler.getView() !== otherHandler.getView()\n ) {\n return this.checkOverlap(handler, otherHandler);\n }\n\n return true;\n }\n\n private checkOverlap(\n handler: GestureHandler,\n otherHandler: GestureHandler\n ): boolean {\n // If handlers don't have common pointers, default return value is false.\n // However, if at least on pointer overlaps with both handlers, we return true\n // This solves issue in overlapping parents example\n\n // TODO: Find better way to handle that issue, for example by activation order and handler cancelling\n\n const handlerPointers: number[] = handler.getTrackedPointersID();\n const otherPointers: number[] = otherHandler.getTrackedPointersID();\n\n let overlap = false;\n\n handlerPointers.forEach((pointer: number) => {\n const handlerX: number = handler.getTracker().getLastX(pointer);\n const handlerY: number = handler.getTracker().getLastY(pointer);\n\n if (\n isPointerInBounds(handler.getView(), { x: handlerX, y: handlerY }) &&\n isPointerInBounds(otherHandler.getView(), { x: handlerX, y: handlerY })\n ) {\n overlap = true;\n }\n });\n\n otherPointers.forEach((pointer: number) => {\n const otherX: number = otherHandler.getTracker().getLastX(pointer);\n const otherY: number = otherHandler.getTracker().getLastY(pointer);\n\n if (\n isPointerInBounds(handler.getView(), { x: otherX, y: otherY }) &&\n isPointerInBounds(otherHandler.getView(), { x: otherX, y: otherY })\n ) {\n overlap = true;\n }\n });\n\n return overlap;\n }\n\n private isFinished(state: State): boolean {\n return (\n state === State.END || state === State.FAILED || state === State.CANCELLED\n );\n }\n\n // This function is called when handler receives touchdown event\n // If handler is using mouse or pen as a pointer and any handler receives touch event,\n // mouse/pen event dissappears - it doesn't send onPointerCancel nor onPointerUp (and others)\n // This became a problem because handler was left at active state without any signal to end or fail\n // To handle this, when new touch event is received, we loop through active handlers and check which type of\n // pointer they're using. If there are any handler with mouse/pen as a pointer, we cancel them\n public cancelMouseAndPenGestures(currentHandler: GestureHandler): void {\n this.gestureHandlers.forEach((handler: GestureHandler) => {\n if (\n handler.getPointerType() !== PointerType.MOUSE &&\n handler.getPointerType() !== PointerType.PEN\n ) {\n return;\n }\n\n if (handler !== currentHandler) {\n handler.cancel();\n } else {\n // Handler that received touch event should have its pointer tracker reset\n // This allows handler to smoothly change from mouse/pen to touch\n // The drawback is, that when we try to use mouse/pen one more time, it doesn't send onPointerDown at the first time\n // so it is required to click two times to get handler to work\n //\n // However, handler will receive manually created onPointerEnter that is triggered in EventManager in onPointerMove method.\n // There may be possibility to use that fact to make handler respond properly to first mouse click\n handler.getTracker().resetTracker();\n }\n });\n }\n\n public static getInstance(): GestureHandlerOrchestrator {\n if (!GestureHandlerOrchestrator.instance) {\n GestureHandlerOrchestrator.instance = new GestureHandlerOrchestrator();\n }\n\n return GestureHandlerOrchestrator.instance;\n }\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\nimport { AdaptedEvent, EventTypes, TouchEventType } from '../interfaces';\n\nexport default abstract class EventManager {\n protected readonly view: HTMLElement;\n protected pointersInBounds: number[] = [];\n protected activePointersCounter: number;\n\n constructor(view: HTMLElement) {\n this.view = view;\n this.activePointersCounter = 0;\n }\n\n public abstract setListeners(): void;\n protected abstract mapEvent(\n event: Event,\n eventType: EventTypes,\n index?: number,\n touchEventType?: TouchEventType\n ): AdaptedEvent;\n\n protected onPointerDown(_event: AdaptedEvent): void {}\n protected onPointerAdd(_event: AdaptedEvent): void {}\n protected onPointerUp(_event: AdaptedEvent): void {}\n protected onPointerRemove(_event: AdaptedEvent): void {}\n protected onPointerMove(_event: AdaptedEvent): void {}\n protected onPointerOut(_event: AdaptedEvent): void {}\n protected onPointerEnter(_event: AdaptedEvent): void {}\n protected onPointerCancel(_event: AdaptedEvent): void {\n // When pointer cancel is triggered and there are more pointers on the view, only one pointer is cancelled\n // Because we want all pointers to be cancelled by that event, we are doing it manually by reseting handler and changing activePointersCounter to 0\n // Events that correspond to removing the pointer (pointerup, touchend) have condition, that they don't perform any action when activePointersCounter\n // is equal to 0. This prevents counter from going to negative values, when pointers are removed from view after one of them has been cancelled\n }\n protected onPointerOutOfBounds(_event: AdaptedEvent): void {}\n\n public setOnPointerDown(callback: (event: AdaptedEvent) => void): void {\n this.onPointerDown = callback;\n }\n public setOnPointerAdd(callback: (event: AdaptedEvent) => void): void {\n this.onPointerAdd = callback;\n }\n public setOnPointerUp(callback: (event: AdaptedEvent) => void): void {\n this.onPointerUp = callback;\n }\n public setOnPointerRemove(callback: (event: AdaptedEvent) => void): void {\n this.onPointerRemove = callback;\n }\n public setOnPointerMove(callback: (event: AdaptedEvent) => void): void {\n this.onPointerMove = callback;\n }\n public setOnPointerOut(callback: (event: AdaptedEvent) => void): void {\n this.onPointerOut = callback;\n }\n public setOnPointerEnter(callback: (event: AdaptedEvent) => void): void {\n this.onPointerEnter = callback;\n }\n public setOnPointerCancel(callback: (event: AdaptedEvent) => void): void {\n this.onPointerCancel = callback;\n }\n public setOnPointerOutOfBounds(\n callback: (event: AdaptedEvent) => void\n ): void {\n this.onPointerOutOfBounds = callback;\n }\n\n protected markAsInBounds(pointerId: number): void {\n if (this.pointersInBounds.indexOf(pointerId) >= 0) {\n return;\n }\n\n this.pointersInBounds.push(pointerId);\n }\n\n protected markAsOutOfBounds(pointerId: number): void {\n const index: number = this.pointersInBounds.indexOf(pointerId);\n\n if (index < 0) {\n return;\n }\n\n this.pointersInBounds.splice(index, 1);\n }\n\n public resetManager(): void {\n // Reseting activePointersCounter is necessary to make gestures such as pinch work properly\n // There are gestures that end when there is still one active pointer (like pinch/rotation)\n // When these gestures end, they are reset, but they still receive events from pointer that is active\n // This causes trouble, since only onPointerDown registers gesture in orchestrator, and while gestures receive\n // Events from active pointer after they finished, next pointerdown event will be registered as additional pointer, not the first one\n // This casues trouble like gestures getting stuck in END state, even though they should have gone to UNDETERMINED\n\n this.activePointersCounter = 0;\n this.pointersInBounds = [];\n }\n}\n","import {\n AdaptedEvent,\n EventTypes,\n MouseButtons,\n PointerType,\n} from '../interfaces';\nimport EventManager from './EventManager';\nimport { isPointerInBounds } from '../utils';\n\nexport default class PointerEventManager extends EventManager {\n public setListeners(): void {\n this.view.addEventListener('pointerdown', (event: PointerEvent): void => {\n if (event.pointerType === PointerType.TOUCH) {\n return;\n }\n if (\n !isPointerInBounds(this.view, { x: event.clientX, y: event.clientY })\n ) {\n return;\n }\n\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.DOWN);\n const target = event.target as HTMLElement;\n\n target.setPointerCapture(adaptedEvent.pointerId);\n this.markAsInBounds(adaptedEvent.pointerId);\n\n if (++this.activePointersCounter > 1) {\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_DOWN;\n this.onPointerAdd(adaptedEvent);\n } else {\n this.onPointerDown(adaptedEvent);\n }\n });\n\n this.view.addEventListener('pointerup', (event: PointerEvent): void => {\n if (event.pointerType === PointerType.TOUCH) {\n return;\n }\n\n // When we call reset on gesture handlers, it also resets their event managers\n // In some handlers (like RotationGestureHandler) reset is called before all pointers leave view\n // This means, that activePointersCounter will be set to 0, while there are still remaining pointers on view\n // Removing them will end in activePointersCounter going below 0, therefore handlers won't behave properly\n if (this.activePointersCounter === 0) {\n return;\n }\n\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.UP);\n const target = event.target as HTMLElement;\n\n target.releasePointerCapture(adaptedEvent.pointerId);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n\n if (--this.activePointersCounter > 0) {\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_UP;\n this.onPointerRemove(adaptedEvent);\n } else {\n this.onPointerUp(adaptedEvent);\n }\n });\n\n this.view.addEventListener('pointermove', (event: PointerEvent): void => {\n if (event.pointerType === PointerType.TOUCH) {\n return;\n }\n\n if (\n event.pointerType === PointerType.MOUSE &&\n event.buttons !== MouseButtons.LEFT\n ) {\n return;\n }\n\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.MOVE);\n\n const inBounds: boolean = isPointerInBounds(this.view, {\n x: adaptedEvent.x,\n y: adaptedEvent.y,\n });\n\n const pointerIndex: number = this.pointersInBounds.indexOf(\n adaptedEvent.pointerId\n );\n\n if (inBounds) {\n if (pointerIndex < 0) {\n adaptedEvent.eventType = EventTypes.ENTER;\n this.onPointerEnter(adaptedEvent);\n this.markAsInBounds(adaptedEvent.pointerId);\n } else {\n this.onPointerMove(adaptedEvent);\n }\n } else {\n if (pointerIndex >= 0) {\n adaptedEvent.eventType = EventTypes.OUT;\n this.onPointerOut(adaptedEvent);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n } else {\n this.onPointerOutOfBounds(adaptedEvent);\n }\n }\n });\n\n this.view.addEventListener('pointercancel', (event: PointerEvent): void => {\n if (event.pointerType === PointerType.TOUCH) {\n return;\n }\n\n const adaptedEvent: AdaptedEvent = this.mapEvent(\n event,\n EventTypes.CANCEL\n );\n\n this.onPointerCancel(adaptedEvent);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n this.activePointersCounter = 0;\n });\n }\n\n protected mapEvent(event: PointerEvent, eventType: EventTypes): AdaptedEvent {\n return {\n x: event.clientX,\n y: event.clientY,\n offsetX: event.offsetX,\n offsetY: event.offsetY,\n pointerId: event.pointerId,\n eventType: eventType,\n pointerType: event.pointerType as PointerType,\n buttons: event.buttons,\n time: event.timeStamp,\n };\n }\n}\n","import {\n AdaptedEvent,\n EventTypes,\n MouseButtons,\n PointerType,\n TouchEventType,\n} from '../interfaces';\nimport EventManager from './EventManager';\nimport { isPointerInBounds } from '../utils';\n\nexport default class TouchEventManager extends EventManager {\n public setListeners(): void {\n this.view.addEventListener('touchstart', (event: TouchEvent) => {\n for (let i = 0; i < event.changedTouches.length; ++i) {\n const adaptedEvent: AdaptedEvent = this.mapEvent(\n event,\n EventTypes.DOWN,\n i,\n TouchEventType.DOWN\n );\n\n // Here we skip stylus, because in case of anything different than touch we want to handle it by using PointerEvents\n // If we leave stylus to send touch events, handlers will receive every action twice\n if (\n !isPointerInBounds(this.view, {\n x: adaptedEvent.x,\n y: adaptedEvent.y,\n }) ||\n //@ts-ignore touchType field does exist\n event.changedTouches[i].touchType === 'stylus'\n ) {\n continue;\n }\n\n this.markAsInBounds(adaptedEvent.pointerId);\n\n if (++this.activePointersCounter > 1) {\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_DOWN;\n this.onPointerAdd(adaptedEvent);\n } else {\n this.onPointerDown(adaptedEvent);\n }\n }\n });\n\n this.view.addEventListener('touchmove', (event: TouchEvent) => {\n for (let i = 0; i < event.changedTouches.length; ++i) {\n const adaptedEvent: AdaptedEvent = this.mapEvent(\n event,\n EventTypes.MOVE,\n i,\n TouchEventType.MOVE\n );\n //@ts-ignore touchType field does exist\n if (event.changedTouches[i].touchType === 'stylus') {\n continue;\n }\n\n const inBounds: boolean = isPointerInBounds(this.view, {\n x: adaptedEvent.x,\n y: adaptedEvent.y,\n });\n\n const pointerIndex: number = this.pointersInBounds.indexOf(\n adaptedEvent.pointerId\n );\n\n if (inBounds) {\n if (pointerIndex < 0) {\n adaptedEvent.eventType = EventTypes.ENTER;\n this.onPointerEnter(adaptedEvent);\n this.markAsInBounds(adaptedEvent.pointerId);\n } else {\n this.onPointerMove(adaptedEvent);\n }\n } else {\n if (pointerIndex >= 0) {\n adaptedEvent.eventType = EventTypes.OUT;\n this.onPointerOut(adaptedEvent);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n } else {\n this.onPointerOutOfBounds(adaptedEvent);\n }\n }\n }\n });\n\n this.view.addEventListener('touchend', (event: TouchEvent) => {\n for (let i = 0; i < event.changedTouches.length; ++i) {\n // When we call reset on gesture handlers, it also resets their event managers\n // In some handlers (like RotationGestureHandler) reset is called before all pointers leave view\n // This means, that activePointersCounter will be set to 0, while there are still remaining pointers on view\n // Removing them will end in activePointersCounter going below 0, therefore handlers won't behave properly\n if (this.activePointersCounter === 0) {\n break;\n }\n\n //@ts-ignore touchType field does exist\n if (event.changedTouches[i].touchType === 'stylus') {\n continue;\n }\n\n const adaptedEvent: AdaptedEvent = this.mapEvent(\n event,\n EventTypes.UP,\n i,\n TouchEventType.UP\n );\n\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n\n if (--this.activePointersCounter > 0) {\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_UP;\n this.onPointerRemove(adaptedEvent);\n } else {\n this.onPointerUp(adaptedEvent);\n }\n }\n });\n\n this.view.addEventListener('touchcancel', (event: TouchEvent) => {\n for (let i = 0; i < event.changedTouches.length; ++i) {\n const adaptedEvent: AdaptedEvent = this.mapEvent(\n event,\n EventTypes.CANCEL,\n i,\n TouchEventType.CANCELLED\n );\n\n //@ts-ignore touchType field does exist\n if (event.changedTouches[i].touchType === 'stylus') {\n continue;\n }\n\n this.onPointerCancel(adaptedEvent);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n this.activePointersCounter = 0;\n }\n });\n }\n\n protected mapEvent(\n event: TouchEvent,\n eventType: EventTypes,\n index: number,\n touchEventType: TouchEventType\n ): AdaptedEvent {\n const rect = this.view.getBoundingClientRect();\n const clientX = event.changedTouches[index].clientX;\n const clientY = event.changedTouches[index].clientY;\n\n return {\n x: clientX,\n y: clientY,\n offsetX: clientX - rect.left,\n offsetY: clientY - rect.top,\n pointerId: event.changedTouches[index].identifier,\n eventType: eventType,\n pointerType: PointerType.TOUCH,\n buttons: MouseButtons.NONE,\n time: event.timeStamp,\n allTouches: event.touches,\n changedTouches: event.changedTouches,\n touchEventType: touchEventType,\n };\n }\n}\n","/* eslint-disable eslint-comments/no-unlimited-disable */\n/* eslint-disable */\nimport Hammer from '@egjs/hammerjs';\nimport { findNodeHandle } from 'react-native';\n\nimport { State } from '../State';\nimport { EventMap } from './constants';\nimport * as NodeManager from './NodeManager';\n\n// TODO(TS) Replace with HammerInput if https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50438/files is merged\nexport type HammerInputExt = Omit;\n\nexport type Config = Partial<{\n enabled: boolean;\n minPointers: number;\n maxPointers: number;\n minDist: number;\n minDistSq: number;\n minVelocity: number;\n minVelocitySq: number;\n maxDist: number;\n maxDistSq: number;\n failOffsetXStart: number;\n failOffsetYStart: number;\n failOffsetXEnd: number;\n failOffsetYEnd: number;\n activeOffsetXStart: number;\n activeOffsetXEnd: number;\n activeOffsetYStart: number;\n activeOffsetYEnd: number;\n waitFor: any[] | null;\n simultaneousHandlers: any[] | null;\n}>;\n\ntype NativeEvent = ReturnType;\n\nlet gestureInstances = 0;\n\nabstract class GestureHandler {\n public handlerTag: any;\n public isGestureRunning = false;\n public view: number | null = null;\n protected hasCustomActivationCriteria: boolean;\n protected hasGestureFailed = false;\n protected hammer: HammerManager | null = null;\n protected initialRotation: number | null = null;\n protected __initialX: any;\n protected __initialY: any;\n protected config: Config = {};\n protected previousState: State = State.UNDETERMINED;\n private pendingGestures: Record = {};\n private oldState: State = State.UNDETERMINED;\n private lastSentState: State | null = null;\n private gestureInstance: number;\n private _stillWaiting: any;\n private propsRef: any;\n private ref: any;\n\n abstract get name(): string;\n\n get id() {\n return `${this.name}${this.gestureInstance}`;\n }\n\n // a simple way to check if GestureHandler is NativeViewGestureHandler, since importing it\n // here to use instanceof would cause import cycle\n get isNative() {\n return false;\n }\n\n get isDiscrete() {\n return false;\n }\n\n get shouldEnableGestureOnSetup(): boolean {\n throw new Error('Must override GestureHandler.shouldEnableGestureOnSetup');\n }\n\n constructor() {\n this.gestureInstance = gestureInstances++;\n this.hasCustomActivationCriteria = false;\n }\n\n getConfig() {\n return this.config;\n }\n\n onWaitingEnded(_gesture: this) {}\n\n removePendingGesture(id: string) {\n delete this.pendingGestures[id];\n }\n\n addPendingGesture(gesture: this) {\n this.pendingGestures[gesture.id] = gesture;\n }\n\n isGestureEnabledForEvent(\n _config: any,\n _recognizer: any,\n _event: any\n ): { failed?: boolean; success?: boolean } {\n return { success: true };\n }\n\n get NativeGestureClass(): RecognizerStatic {\n throw new Error('Must override GestureHandler.NativeGestureClass');\n }\n\n updateHasCustomActivationCriteria(_config: Config) {\n return true;\n }\n\n clearSelfAsPending = () => {\n if (Array.isArray(this.config.waitFor)) {\n for (const gesture of this.config.waitFor) {\n gesture.removePendingGesture(this.id);\n }\n }\n };\n\n updateGestureConfig({ enabled = true, ...props }) {\n this.clearSelfAsPending();\n\n this.config = this.ensureConfig({ enabled, ...props });\n this.hasCustomActivationCriteria = this.updateHasCustomActivationCriteria(\n this.config\n );\n if (Array.isArray(this.config.waitFor)) {\n for (const gesture of this.config.waitFor) {\n gesture.addPendingGesture(this);\n }\n }\n\n if (this.hammer) {\n this.sync();\n }\n return this.config;\n }\n\n destroy = () => {\n this.clearSelfAsPending();\n\n if (this.hammer) {\n this.hammer.stop(false);\n this.hammer.destroy();\n }\n this.hammer = null;\n };\n\n isPointInView = ({ x, y }: { x: number; y: number }) => {\n // @ts-ignore FIXME(TS)\n const rect = this.view!.getBoundingClientRect();\n const pointerInside =\n x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\n return pointerInside;\n };\n\n getState(type: keyof typeof EventMap): State {\n // @ts-ignore TODO(TS) check if this is needed\n if (type == 0) {\n return 0;\n }\n return EventMap[type];\n }\n\n transformEventData(event: HammerInputExt) {\n const { eventType, maxPointers: numberOfPointers } = event;\n // const direction = DirectionMap[ev.direction];\n const changedTouch = event.changedPointers[0];\n const pointerInside = this.isPointInView({\n x: changedTouch.clientX,\n y: changedTouch.clientY,\n });\n\n // TODO(TS) Remove cast after https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50966 is merged.\n const state = this.getState(eventType as 1 | 2 | 4 | 8);\n if (state !== this.previousState) {\n this.oldState = this.previousState;\n this.previousState = state;\n }\n\n return {\n nativeEvent: {\n numberOfPointers,\n state,\n pointerInside,\n ...this.transformNativeEvent(event),\n // onHandlerStateChange only\n handlerTag: this.handlerTag,\n target: this.ref,\n // send oldState only when the state was changed, or is different than ACTIVE\n // GestureDetector relies on the presence of `oldState` to differentiate between\n // update events and state change events\n oldState:\n state !== this.previousState || state != 4\n ? this.oldState\n : undefined,\n },\n timeStamp: Date.now(),\n };\n }\n\n transformNativeEvent(_event: HammerInputExt) {\n return {};\n }\n\n sendEvent = (nativeEvent: HammerInputExt) => {\n const { onGestureHandlerEvent, onGestureHandlerStateChange } =\n this.propsRef.current;\n\n const event = this.transformEventData(nativeEvent);\n\n invokeNullableMethod(onGestureHandlerEvent, event);\n if (this.lastSentState !== event.nativeEvent.state) {\n this.lastSentState = event.nativeEvent.state as State;\n invokeNullableMethod(onGestureHandlerStateChange, event);\n }\n };\n\n cancelPendingGestures(event: HammerInputExt) {\n for (const gesture of Object.values(this.pendingGestures)) {\n if (gesture && gesture.isGestureRunning) {\n gesture.hasGestureFailed = true;\n gesture.cancelEvent(event);\n }\n }\n }\n\n notifyPendingGestures() {\n for (const gesture of Object.values(this.pendingGestures)) {\n if (gesture) {\n gesture.onWaitingEnded(this);\n }\n }\n }\n\n // FIXME event is undefined in runtime when firstly invoked (see Draggable example), check other functions taking event as input\n onGestureEnded(event: HammerInputExt) {\n this.isGestureRunning = false;\n this.cancelPendingGestures(event);\n }\n\n forceInvalidate(event: HammerInputExt) {\n if (this.isGestureRunning) {\n this.hasGestureFailed = true;\n this.cancelEvent(event);\n }\n }\n\n cancelEvent(event: HammerInputExt) {\n this.notifyPendingGestures();\n this.sendEvent({\n ...event,\n eventType: Hammer.INPUT_CANCEL,\n isFinal: true,\n });\n this.onGestureEnded(event);\n }\n\n onRawEvent({ isFirst }: HammerInputExt) {\n if (isFirst) {\n this.hasGestureFailed = false;\n }\n }\n\n shouldUseTouchEvents(config: Config) {\n return (\n config.simultaneousHandlers?.some((handler) => handler.isNative) ?? false\n );\n }\n\n setView(ref: Parameters['0'], propsRef: any) {\n if (ref == null) {\n this.destroy();\n this.view = null;\n return;\n }\n\n // @ts-ignore window doesn't exist on global type as we don't want to use Node types\n const SUPPORTS_TOUCH = 'ontouchstart' in window;\n this.propsRef = propsRef;\n this.ref = ref;\n\n this.view = findNodeHandle(ref);\n\n // When the browser starts handling the gesture (e.g. scrolling), it sends a pointercancel event and stops\n // sending additional pointer events. This is not the case with touch events, so if the gesture is simultaneous\n // with a NativeGestureHandler, we need to check if touch events are supported and use them if possible.\n this.hammer =\n SUPPORTS_TOUCH && this.shouldUseTouchEvents(this.config)\n ? new Hammer.Manager(this.view as any, {\n inputClass: Hammer.TouchInput,\n })\n : new Hammer.Manager(this.view as any);\n\n this.oldState = State.UNDETERMINED;\n this.previousState = State.UNDETERMINED;\n this.lastSentState = null;\n\n const { NativeGestureClass } = this;\n // @ts-ignore TODO(TS)\n const gesture = new NativeGestureClass(this.getHammerConfig());\n this.hammer.add(gesture);\n\n this.hammer.on('hammer.input', (ev: HammerInput) => {\n if (!this.config.enabled) {\n this.hasGestureFailed = false;\n this.isGestureRunning = false;\n return;\n }\n\n this.onRawEvent(ev as unknown as HammerInputExt);\n\n // TODO: Bacon: Check against something other than null\n // The isFirst value is not called when the first rotation is calculated.\n if (this.initialRotation === null && ev.rotation !== 0) {\n this.initialRotation = ev.rotation;\n }\n if (ev.isFinal) {\n // in favor of a willFail otherwise the last frame of the gesture will be captured.\n setTimeout(() => {\n this.initialRotation = null;\n this.hasGestureFailed = false;\n });\n }\n });\n\n this.setupEvents();\n this.sync();\n }\n\n setupEvents() {\n // TODO(TS) Hammer types aren't exactly that what we get in runtime\n if (!this.isDiscrete) {\n this.hammer!.on(`${this.name}start`, (event: HammerInput) =>\n this.onStart(event as unknown as HammerInputExt)\n );\n this.hammer!.on(\n `${this.name}end ${this.name}cancel`,\n (event: HammerInput) => {\n this.onGestureEnded(event as unknown as HammerInputExt);\n }\n );\n }\n this.hammer!.on(this.name, (ev: HammerInput) =>\n this.onGestureActivated(ev as unknown as HammerInputExt)\n ); // TODO(TS) remove cast after https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50438 is merged\n }\n\n onStart({ deltaX, deltaY, rotation }: HammerInputExt) {\n // Reset the state for the next gesture\n this.oldState = State.UNDETERMINED;\n this.previousState = State.UNDETERMINED;\n this.lastSentState = null;\n\n this.isGestureRunning = true;\n this.__initialX = deltaX;\n this.__initialY = deltaY;\n this.initialRotation = rotation;\n }\n\n onGestureActivated(ev: HammerInputExt) {\n this.sendEvent(ev);\n }\n\n onSuccess() {}\n\n _getPendingGestures() {\n if (Array.isArray(this.config.waitFor) && this.config.waitFor.length) {\n // Get the list of gestures that this gesture is still waiting for.\n // Use `=== false` in case a ref that isn't a gesture handler is used.\n const stillWaiting = this.config.waitFor.filter(\n ({ hasGestureFailed }) => hasGestureFailed === false\n );\n return stillWaiting;\n }\n return [];\n }\n\n getHammerConfig() {\n const pointers =\n this.config.minPointers === this.config.maxPointers\n ? this.config.minPointers\n : 0;\n return {\n pointers,\n };\n }\n\n sync = () => {\n const gesture = this.hammer!.get(this.name);\n if (!gesture) return;\n\n const enable = (recognizer: any, inputData: any) => {\n if (!this.config.enabled) {\n this.isGestureRunning = false;\n this.hasGestureFailed = false;\n return false;\n }\n\n // Prevent events before the system is ready.\n if (\n !inputData ||\n !recognizer.options ||\n typeof inputData.maxPointers === 'undefined'\n ) {\n return this.shouldEnableGestureOnSetup;\n }\n\n if (this.hasGestureFailed) {\n return false;\n }\n\n if (!this.isDiscrete) {\n if (this.isGestureRunning) {\n return true;\n }\n // The built-in hammer.js \"waitFor\" doesn't work across multiple views.\n // Only process if there are views to wait for.\n this._stillWaiting = this._getPendingGestures();\n // This gesture should continue waiting.\n if (this._stillWaiting.length) {\n // Check to see if one of the gestures you're waiting for has started.\n // If it has then the gesture should fail.\n for (const gesture of this._stillWaiting) {\n // When the target gesture has started, this gesture must force fail.\n if (!gesture.isDiscrete && gesture.isGestureRunning) {\n this.hasGestureFailed = true;\n this.isGestureRunning = false;\n return false;\n }\n }\n // This gesture shouldn't start until the others have finished.\n return false;\n }\n }\n\n // Use default behaviour\n if (!this.hasCustomActivationCriteria) {\n return true;\n }\n\n const deltaRotation =\n this.initialRotation == null\n ? 0\n : inputData.rotation - this.initialRotation;\n // @ts-ignore FIXME(TS)\n const { success, failed } = this.isGestureEnabledForEvent(\n this.getConfig(),\n recognizer,\n {\n ...inputData,\n deltaRotation,\n }\n );\n\n if (failed) {\n this.simulateCancelEvent(inputData);\n this.hasGestureFailed = true;\n }\n return success;\n };\n\n const params = this.getHammerConfig();\n // @ts-ignore FIXME(TS)\n gesture.set({ ...params, enable });\n };\n\n simulateCancelEvent(_inputData: any) {}\n\n // Validate the props\n ensureConfig(config: Config): Required {\n const props = { ...config };\n\n // TODO(TS) We use ! to assert that if property is present then value is not empty (null, undefined)\n if ('minDist' in config) {\n props.minDist = config.minDist;\n props.minDistSq = props.minDist! * props.minDist!;\n }\n if ('minVelocity' in config) {\n props.minVelocity = config.minVelocity;\n props.minVelocitySq = props.minVelocity! * props.minVelocity!;\n }\n if ('maxDist' in config) {\n props.maxDist = config.maxDist;\n props.maxDistSq = config.maxDist! * config.maxDist!;\n }\n if ('waitFor' in config) {\n props.waitFor = asArray(config.waitFor)\n .map(({ handlerTag }: { handlerTag: number }) =>\n NodeManager.getHandler(handlerTag)\n )\n .filter((v) => v);\n } else {\n props.waitFor = null;\n }\n if ('simultaneousHandlers' in config) {\n const shouldUseTouchEvents = this.shouldUseTouchEvents(this.config);\n props.simultaneousHandlers = asArray(config.simultaneousHandlers)\n .map((handler: number | GestureHandler) => {\n if (typeof handler === 'number') {\n return NodeManager.getHandler(handler);\n } else {\n return NodeManager.getHandler(handler.handlerTag);\n }\n })\n .filter((v) => v);\n\n if (shouldUseTouchEvents !== this.shouldUseTouchEvents(props)) {\n requestAnimationFrame(() => {\n // if the undelying event API needs to be changed, we need to unmount and mount\n // the hammer instance again.\n this.destroy();\n this.setView(this.ref, this.propsRef);\n });\n }\n } else {\n props.simultaneousHandlers = null;\n }\n\n const configProps = [\n 'minPointers',\n 'maxPointers',\n 'minDist',\n 'maxDist',\n 'maxDistSq',\n 'minVelocitySq',\n 'minDistSq',\n 'minVelocity',\n 'failOffsetXStart',\n 'failOffsetYStart',\n 'failOffsetXEnd',\n 'failOffsetYEnd',\n 'activeOffsetXStart',\n 'activeOffsetXEnd',\n 'activeOffsetYStart',\n 'activeOffsetYEnd',\n ] as const;\n configProps.forEach((prop: typeof configProps[number]) => {\n if (typeof props[prop] === 'undefined') {\n props[prop] = Number.NaN;\n }\n });\n return props as Required; // TODO(TS) how to convince TS that props are filled?\n }\n}\n\n// TODO(TS) investigate this method\n// Used for sending data to a callback or AnimatedEvent\nfunction invokeNullableMethod(\n method:\n | ((event: NativeEvent) => void)\n | { __getHandler: () => (event: NativeEvent) => void }\n | { __nodeConfig: { argMapping: any } },\n event: NativeEvent\n) {\n if (method) {\n if (typeof method === 'function') {\n method(event);\n } else {\n // For use with reanimated's AnimatedEvent\n if (\n '__getHandler' in method &&\n typeof method.__getHandler === 'function'\n ) {\n const handler = method.__getHandler();\n invokeNullableMethod(handler, event);\n } else {\n if ('__nodeConfig' in method) {\n const { argMapping } = method.__nodeConfig;\n if (Array.isArray(argMapping)) {\n for (const [index, [key, value]] of argMapping.entries()) {\n if (key in event.nativeEvent) {\n // @ts-ignore fix method type\n const nativeValue = event.nativeEvent[key];\n if (value && value.setValue) {\n // Reanimated API\n value.setValue(nativeValue);\n } else {\n // RN Animated API\n method.__nodeConfig.argMapping[index] = [key, nativeValue];\n }\n }\n }\n }\n }\n }\n }\n }\n}\n\nfunction asArray(value: T | T[]) {\n // TODO(TS) use config.waitFor type\n return value == null ? [] : Array.isArray(value) ? value : [value];\n}\n\nexport default GestureHandler;\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const panGestureHandlerProps = [\n 'activeOffsetY',\n 'activeOffsetX',\n 'failOffsetY',\n 'failOffsetX',\n 'minDist',\n 'minVelocity',\n 'minVelocityX',\n 'minVelocityY',\n 'minPointers',\n 'maxPointers',\n 'avgTouches',\n 'enableTrackpadTwoFingerGesture',\n 'activateAfterLongPress',\n] as const;\n\nexport const panGestureHandlerCustomNativeProps = [\n 'activeOffsetYStart',\n 'activeOffsetYEnd',\n 'activeOffsetXStart',\n 'activeOffsetXEnd',\n 'failOffsetYStart',\n 'failOffsetYEnd',\n 'failOffsetXStart',\n 'failOffsetXEnd',\n] as const;\n\nexport type PanGestureHandlerEventPayload = {\n /**\n * X coordinate of the current position of the pointer (finger or a leading\n * pointer when there are multiple fingers placed) relative to the view\n * attached to the handler. Expressed in point units.\n */\n x: number;\n\n /**\n * Y coordinate of the current position of the pointer (finger or a leading\n * pointer when there are multiple fingers placed) relative to the view\n * attached to the handler. Expressed in point units.\n */\n y: number;\n\n /**\n * X coordinate of the current position of the pointer (finger or a leading\n * pointer when there are multiple fingers placed) relative to the window.\n * The value is expressed in point units. It is recommended to use it instead\n * of `x` in cases when the original view can be transformed as an effect of\n * the gesture.\n */\n absoluteX: number;\n\n /**\n * Y coordinate of the current position of the pointer (finger or a leading\n * pointer when there are multiple fingers placed) relative to the window.\n * The value is expressed in point units. It is recommended to use it instead\n * of `y` in cases when the original view can be transformed as an\n * effect of the gesture.\n */\n absoluteY: number;\n\n /**\n * Translation of the pan gesture along X axis accumulated over the time of\n * the gesture. The value is expressed in the point units.\n */\n translationX: number;\n\n /**\n * Translation of the pan gesture along Y axis accumulated over the time of\n * the gesture. The value is expressed in the point units.\n */\n translationY: number;\n\n /**\n * Velocity of the pan gesture along the X axis in the current moment. The\n * value is expressed in point units per second.\n */\n velocityX: number;\n\n /**\n * Velocity of the pan gesture along the Y axis in the current moment. The\n * value is expressed in point units per second.\n */\n velocityY: number;\n};\n\ninterface CommonPanProperties {\n /**\n * Minimum distance the finger (or multiple finger) need to travel before the\n * handler activates. Expressed in points.\n */\n minDist?: number;\n\n /**\n * Android only.\n */\n avgTouches?: boolean;\n\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * enableTrackpadTwoFingerGesture swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n /**\n * A number of fingers that is required to be placed before handler can\n * activate. Should be a higher or equal to 0 integer.\n */\n minPointers?: number;\n\n /**\n * When the given number of fingers is placed on the screen and handler hasn't\n * yet activated it will fail recognizing the gesture. Should be a higher or\n * equal to 0 integer.\n */\n maxPointers?: number;\n\n minVelocity?: number;\n minVelocityX?: number;\n minVelocityY?: number;\n activateAfterLongPress?: number;\n}\n\nexport interface PanGestureConfig extends CommonPanProperties {\n activeOffsetYStart?: number;\n activeOffsetYEnd?: number;\n activeOffsetXStart?: number;\n activeOffsetXEnd?: number;\n failOffsetYStart?: number;\n failOffsetYEnd?: number;\n failOffsetXStart?: number;\n failOffsetXEnd?: number;\n}\n\nexport interface PanGestureHandlerProps\n extends BaseGestureHandlerProps,\n CommonPanProperties {\n /**\n * Range along X axis (in points) where fingers travels without activation of\n * handler. Moving outside of this range implies activation of handler. Range\n * can be given as an array or a single number. If range is set as an array,\n * first value must be lower or equal to 0, a the second one higher or equal\n * to 0. If only one number `p` is given a range of `(-inf, p)` will be used\n * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.\n */\n activeOffsetY?: number | number[];\n\n /**\n * Range along X axis (in points) where fingers travels without activation of\n * handler. Moving outside of this range implies activation of handler. Range\n * can be given as an array or a single number. If range is set as an array,\n * first value must be lower or equal to 0, a the second one higher or equal\n * to 0. If only one number `p` is given a range of `(-inf, p)` will be used\n * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.\n */\n activeOffsetX?: number | number[];\n\n /**\n * When the finger moves outside this range (in points) along Y axis and\n * handler hasn't yet activated it will fail recognizing the gesture. Range\n * can be given as an array or a single number. If range is set as an array,\n * first value must be lower or equal to 0, a the second one higher or equal\n * to 0. If only one number `p` is given a range of `(-inf, p)` will be used\n * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.\n */\n failOffsetY?: number | number[];\n\n /**\n * When the finger moves outside this range (in points) along X axis and\n * handler hasn't yet activated it will fail recognizing the gesture. Range\n * can be given as an array or a single number. If range is set as an array,\n * first value must be lower or equal to 0, a the second one higher or equal\n * to 0. If only one number `p` is given a range of `(-inf, p)` will be used\n * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.\n */\n failOffsetX?: number | number[];\n}\n\nexport const panHandlerName = 'PanGestureHandler';\n\nexport type PanGestureHandler = typeof PanGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const PanGestureHandler = createHandler<\n PanGestureHandlerProps,\n PanGestureHandlerEventPayload\n>({\n name: panHandlerName,\n allowedProps: [\n ...baseGestureHandlerProps,\n ...panGestureHandlerProps,\n ] as const,\n config: {},\n transformProps: managePanProps,\n customNativeProps: panGestureHandlerCustomNativeProps,\n});\n\nfunction validatePanGestureHandlerProps(props: PanGestureHandlerProps) {\n if (\n Array.isArray(props.activeOffsetX) &&\n (props.activeOffsetX[0] > 0 || props.activeOffsetX[1] < 0)\n ) {\n throw new Error(\n `First element of activeOffsetX should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.activeOffsetY) &&\n (props.activeOffsetY[0] > 0 || props.activeOffsetY[1] < 0)\n ) {\n throw new Error(\n `First element of activeOffsetY should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.failOffsetX) &&\n (props.failOffsetX[0] > 0 || props.failOffsetX[1] < 0)\n ) {\n throw new Error(\n `First element of failOffsetX should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.failOffsetY) &&\n (props.failOffsetY[0] > 0 || props.failOffsetY[1] < 0)\n ) {\n throw new Error(\n `First element of failOffsetY should be negative, a the second one should be positive`\n );\n }\n\n if (props.minDist && (props.failOffsetX || props.failOffsetY)) {\n throw new Error(\n `It is not supported to use minDist with failOffsetX or failOffsetY, use activeOffsetX and activeOffsetY instead`\n );\n }\n\n if (props.minDist && (props.activeOffsetX || props.activeOffsetY)) {\n throw new Error(\n `It is not supported to use minDist with activeOffsetX or activeOffsetY`\n );\n }\n}\n\nfunction transformPanGestureHandlerProps(props: PanGestureHandlerProps) {\n type InternalPanGHKeys =\n | 'activeOffsetXStart'\n | 'activeOffsetXEnd'\n | 'failOffsetXStart'\n | 'failOffsetXEnd'\n | 'activeOffsetYStart'\n | 'activeOffsetYEnd'\n | 'failOffsetYStart'\n | 'failOffsetYEnd';\n type PanGestureHandlerInternalProps = PanGestureHandlerProps &\n Partial>;\n\n const res: PanGestureHandlerInternalProps = { ...props };\n\n if (props.activeOffsetX !== undefined) {\n delete res.activeOffsetX;\n if (Array.isArray(props.activeOffsetX)) {\n res.activeOffsetXStart = props.activeOffsetX[0];\n res.activeOffsetXEnd = props.activeOffsetX[1];\n } else if (props.activeOffsetX < 0) {\n res.activeOffsetXStart = props.activeOffsetX;\n } else {\n res.activeOffsetXEnd = props.activeOffsetX;\n }\n }\n\n if (props.activeOffsetY !== undefined) {\n delete res.activeOffsetY;\n if (Array.isArray(props.activeOffsetY)) {\n res.activeOffsetYStart = props.activeOffsetY[0];\n res.activeOffsetYEnd = props.activeOffsetY[1];\n } else if (props.activeOffsetY < 0) {\n res.activeOffsetYStart = props.activeOffsetY;\n } else {\n res.activeOffsetYEnd = props.activeOffsetY;\n }\n }\n\n if (props.failOffsetX !== undefined) {\n delete res.failOffsetX;\n if (Array.isArray(props.failOffsetX)) {\n res.failOffsetXStart = props.failOffsetX[0];\n res.failOffsetXEnd = props.failOffsetX[1];\n } else if (props.failOffsetX < 0) {\n res.failOffsetXStart = props.failOffsetX;\n } else {\n res.failOffsetXEnd = props.failOffsetX;\n }\n }\n\n if (props.failOffsetY !== undefined) {\n delete res.failOffsetY;\n if (Array.isArray(props.failOffsetY)) {\n res.failOffsetYStart = props.failOffsetY[0];\n res.failOffsetYEnd = props.failOffsetY[1];\n } else if (props.failOffsetY < 0) {\n res.failOffsetYStart = props.failOffsetY;\n } else {\n res.failOffsetYEnd = props.failOffsetY;\n }\n }\n\n return res;\n}\n\nexport function managePanProps(props: PanGestureHandlerProps) {\n if (__DEV__) {\n validatePanGestureHandlerProps(props);\n }\n return transformPanGestureHandlerProps(props);\n}\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const tapGestureHandlerProps = [\n 'maxDurationMs',\n 'maxDelayMs',\n 'numberOfTaps',\n 'maxDeltaX',\n 'maxDeltaY',\n 'maxDist',\n 'minPointers',\n] as const;\n\nexport type TapGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\nexport interface TapGestureConfig {\n /**\n * Minimum number of pointers (fingers) required to be placed before the\n * handler activates. Should be a positive integer.\n * The default value is 1.\n */\n minPointers?: number;\n\n /**\n * Maximum time, expressed in milliseconds, that defines how fast a finger\n * must be released after a touch. The default value is 500.\n */\n maxDurationMs?: number;\n\n /**\n * Maximum time, expressed in milliseconds, that can pass before the next tap\n * if many taps are required. The default value is 500.\n */\n maxDelayMs?: number;\n\n /**\n * Number of tap gestures required to activate the handler. The default value\n * is 1.\n */\n numberOfTaps?: number;\n\n /**\n * Maximum distance, expressed in points, that defines how far the finger is\n * allowed to travel along the X axis during a tap gesture. If the finger\n * travels further than the defined distance along the X axis and the handler\n * hasn't yet activated, it will fail to recognize the gesture.\n */\n maxDeltaX?: number;\n\n /**\n * Maximum distance, expressed in points, that defines how far the finger is\n * allowed to travel along the Y axis during a tap gesture. If the finger\n * travels further than the defined distance along the Y axis and the handler\n * hasn't yet activated, it will fail to recognize the gesture.\n */\n maxDeltaY?: number;\n\n /**\n * Maximum distance, expressed in points, that defines how far the finger is\n * allowed to travel during a tap gesture. If the finger travels further than\n * the defined distance and the handler hasn't yet\n * activated, it will fail to recognize the gesture.\n */\n maxDist?: number;\n}\n\nexport interface TapGestureHandlerProps\n extends BaseGestureHandlerProps,\n TapGestureConfig {}\n\nexport const tapHandlerName = 'TapGestureHandler';\n\nexport type TapGestureHandler = typeof TapGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const TapGestureHandler = createHandler<\n TapGestureHandlerProps,\n TapGestureHandlerEventPayload\n>({\n name: tapHandlerName,\n allowedProps: [\n ...baseGestureHandlerProps,\n ...tapGestureHandlerProps,\n ] as const,\n config: {\n shouldCancelWhenOutside: true,\n },\n});\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const longPressGestureHandlerProps = [\n 'minDurationMs',\n 'maxDist',\n] as const;\n\nexport type LongPressGestureHandlerEventPayload = {\n /**\n * X coordinate, expressed in points, of the current position of the pointer\n * (finger or a leading pointer when there are multiple fingers placed)\n * relative to the view attached to the handler.\n */\n x: number;\n\n /**\n * Y coordinate, expressed in points, of the current position of the pointer\n * (finger or a leading pointer when there are multiple fingers placed)\n * relative to the view attached to the handler.\n */\n y: number;\n\n /**\n * X coordinate, expressed in points, of the current position of the pointer\n * (finger or a leading pointer when there are multiple fingers placed)\n * relative to the window. It is recommended to use `absoluteX` instead of\n * `x` in cases when the view attached to the handler can be transformed as an\n * effect of the gesture.\n */\n absoluteX: number;\n\n /**\n * Y coordinate, expressed in points, of the current position of the pointer\n * (finger or a leading pointer when there are multiple fingers placed)\n * relative to the window. It is recommended to use `absoluteY` instead of\n * `y` in cases when the view attached to the handler can be transformed as an\n * effect of the gesture.\n */\n absoluteY: number;\n\n /**\n * Duration of the long press (time since the start of the event), expressed\n * in milliseconds.\n */\n duration: number;\n};\n\nexport interface LongPressGestureConfig {\n /**\n * Minimum time, expressed in milliseconds, that a finger must remain pressed on\n * the corresponding view. The default value is 500.\n */\n minDurationMs?: number;\n\n /**\n * Maximum distance, expressed in points, that defines how far the finger is\n * allowed to travel during a long press gesture. If the finger travels\n * further than the defined distance and the handler hasn't yet activated, it\n * will fail to recognize the gesture. The default value is 10.\n */\n maxDist?: number;\n}\n\nexport interface LongPressGestureHandlerProps\n extends BaseGestureHandlerProps,\n LongPressGestureConfig {}\n\nexport const longPressHandlerName = 'LongPressGestureHandler';\n\nexport type LongPressGestureHandler = typeof LongPressGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const LongPressGestureHandler = createHandler<\n LongPressGestureHandlerProps,\n LongPressGestureHandlerEventPayload\n>({\n name: longPressHandlerName,\n allowedProps: [\n ...baseGestureHandlerProps,\n ...longPressGestureHandlerProps,\n ] as const,\n config: {\n shouldCancelWhenOutside: true,\n },\n});\n","import { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { AdaptedEvent, EventTypes } from '../interfaces';\n\nimport PointerTracker from '../tools/PointerTracker';\n\nexport interface ScaleGestureListener {\n onScaleBegin: (detector: ScaleGestureDetector) => boolean;\n onScale: (detector: ScaleGestureDetector) => boolean;\n onScaleEnd: (detector: ScaleGestureDetector) => void;\n}\n\nexport default class ScaleGestureDetector implements ScaleGestureListener {\n public onScaleBegin: (detector: ScaleGestureDetector) => boolean;\n public onScale: (detector: ScaleGestureDetector) => boolean;\n public onScaleEnd: (detector: ScaleGestureDetector) => void;\n\n private focusX!: number;\n private focusY!: number;\n\n private currentSpan!: number;\n private prevSpan!: number;\n private initialSpan!: number;\n\n private currentTime!: number;\n private prevTime!: number;\n\n private inProgress = false;\n\n private spanSlop: number;\n private minSpan: number;\n\n public constructor(callbacks: ScaleGestureListener) {\n this.onScaleBegin = callbacks.onScaleBegin;\n this.onScale = callbacks.onScale;\n this.onScaleEnd = callbacks.onScaleEnd;\n\n this.spanSlop = DEFAULT_TOUCH_SLOP * 2;\n this.minSpan = 0;\n }\n\n public onTouchEvent(event: AdaptedEvent, tracker: PointerTracker): boolean {\n this.currentTime = event.time;\n\n const action: EventTypes = event.eventType;\n const numOfPointers = tracker.getTrackedPointersCount();\n\n const streamComplete: boolean =\n action === EventTypes.UP ||\n action === EventTypes.ADDITIONAL_POINTER_UP ||\n action === EventTypes.CANCEL;\n\n if (action === EventTypes.DOWN || streamComplete) {\n if (this.inProgress) {\n this.onScaleEnd(this);\n this.inProgress = false;\n this.initialSpan = 0;\n }\n\n if (streamComplete) {\n return true;\n }\n }\n\n const configChanged: boolean =\n action === EventTypes.DOWN ||\n action === EventTypes.ADDITIONAL_POINTER_UP ||\n action === EventTypes.ADDITIONAL_POINTER_DOWN;\n\n const pointerUp = action === EventTypes.ADDITIONAL_POINTER_UP;\n\n const ignoredPointer: number | undefined = pointerUp\n ? event.pointerId\n : undefined;\n\n //Determine focal point\n\n const div: number = pointerUp ? numOfPointers - 1 : numOfPointers;\n\n const sumX = tracker.getSumX(ignoredPointer);\n const sumY = tracker.getSumY(ignoredPointer);\n\n const focusX = sumX / div;\n const focusY = sumY / div;\n\n //Determine average deviation from focal point\n\n let devSumX = 0;\n let devSumY = 0;\n\n tracker.getData().forEach((value, key) => {\n if (key === ignoredPointer) {\n return;\n }\n\n devSumX += Math.abs(value.lastX - focusX);\n devSumY += Math.abs(value.lastY - focusY);\n });\n\n const devX: number = devSumX / div;\n const devY: number = devSumY / div;\n\n const spanX: number = devX * 2;\n const spanY: number = devY * 2;\n\n const span = Math.hypot(spanX, spanY);\n\n //Begin/end events\n const wasInProgress: boolean = this.inProgress;\n this.focusX = focusX;\n this.focusY = focusY;\n\n if (this.inProgress && (span < this.minSpan || configChanged)) {\n this.onScaleEnd(this);\n this.inProgress = false;\n this.initialSpan = span;\n }\n\n if (configChanged) {\n this.initialSpan = this.prevSpan = this.currentSpan = span;\n }\n\n if (\n !this.inProgress &&\n span >= this.minSpan &&\n (wasInProgress || Math.abs(span - this.initialSpan) > this.spanSlop)\n ) {\n this.prevSpan = this.currentSpan = span;\n this.prevTime = this.currentTime;\n this.inProgress = this.onScaleBegin(this);\n }\n\n //Handle motion\n if (action !== EventTypes.MOVE) {\n return true;\n }\n\n this.currentSpan = span;\n\n if (this.inProgress && !this.onScale(this)) {\n return true;\n }\n\n this.prevSpan = this.currentSpan;\n this.prevTime = this.currentTime;\n\n return true;\n }\n\n public getCurrentSpan(): number {\n return this.currentSpan;\n }\n\n public getFocusX(): number {\n return this.focusX;\n }\n\n public getFocusY(): number {\n return this.focusY;\n }\n\n public getTimeDelta(): number {\n return this.currentTime - this.prevTime;\n }\n\n public getScaleFactor(numOfPointers: number): number {\n if (numOfPointers < 2) {\n return 1;\n }\n\n return this.prevSpan > 0 ? this.currentSpan / this.prevSpan : 1;\n }\n}\n","import { AdaptedEvent, EventTypes } from '../interfaces';\nimport PointerTracker from '../tools/PointerTracker';\n\nexport interface RotationGestureListener {\n onRotationBegin: (detector: RotationGestureDetector) => boolean;\n onRotation: (detector: RotationGestureDetector) => boolean;\n onRotationEnd: (detector: RotationGestureDetector) => void;\n}\n\nexport default class RotationGestureDetector\n implements RotationGestureListener\n{\n onRotationBegin: (detector: RotationGestureDetector) => boolean;\n onRotation: (detector: RotationGestureDetector) => boolean;\n onRotationEnd: (detector: RotationGestureDetector) => void;\n\n private currentTime = 0;\n private previousTime = 0;\n\n private previousAngle = 0;\n private rotation = 0;\n\n private anchorX = 0;\n private anchorY = 0;\n\n private isInProgress = false;\n\n private keyPointers: number[] = [NaN, NaN];\n\n constructor(callbacks: RotationGestureListener) {\n this.onRotationBegin = callbacks.onRotationBegin;\n this.onRotation = callbacks.onRotation;\n this.onRotationEnd = callbacks.onRotationEnd;\n }\n\n private updateCurrent(event: AdaptedEvent, tracker: PointerTracker): void {\n this.previousTime = this.currentTime;\n this.currentTime = event.time;\n\n const [firstPointerID, secondPointerID] = this.keyPointers;\n\n const firstPointerX: number = tracker.getLastX(firstPointerID);\n const firstPointerY: number = tracker.getLastY(firstPointerID);\n const secondPointerX: number = tracker.getLastX(secondPointerID);\n const secondPointerY: number = tracker.getLastY(secondPointerID);\n\n const vectorX: number = secondPointerX - firstPointerX;\n const vectorY: number = secondPointerY - firstPointerY;\n\n this.anchorX = (firstPointerX + secondPointerX) / 2;\n this.anchorY = (firstPointerY + secondPointerY) / 2;\n\n //Angle diff should be positive when rotating in clockwise direction\n const angle: number = -Math.atan2(vectorY, vectorX);\n\n this.rotation = Number.isNaN(this.previousAngle)\n ? 0\n : this.previousAngle - angle;\n\n this.previousAngle = angle;\n\n if (this.rotation > Math.PI) {\n this.rotation -= Math.PI;\n } else if (this.rotation < -Math.PI) {\n this.rotation += Math.PI;\n }\n\n if (this.rotation > Math.PI / 2) {\n this.rotation -= Math.PI;\n } else if (this.rotation < -Math.PI / 2) {\n this.rotation += Math.PI;\n }\n }\n\n private finish(): void {\n if (!this.isInProgress) {\n return;\n }\n\n this.isInProgress = false;\n this.keyPointers = [NaN, NaN];\n this.onRotationEnd(this);\n }\n\n private setKeyPointers(tracker: PointerTracker): void {\n if (this.keyPointers[0] && this.keyPointers[1]) {\n return;\n }\n\n const pointerIDs: IterableIterator = tracker.getData().keys();\n\n this.keyPointers[0] = pointerIDs.next().value as number;\n this.keyPointers[1] = pointerIDs.next().value as number;\n }\n\n public onTouchEvent(event: AdaptedEvent, tracker: PointerTracker): boolean {\n switch (event.eventType) {\n case EventTypes.DOWN:\n this.isInProgress = false;\n break;\n\n case EventTypes.ADDITIONAL_POINTER_DOWN:\n if (this.isInProgress) {\n break;\n }\n this.isInProgress = true;\n\n this.previousTime = event.time;\n this.previousAngle = NaN;\n\n this.setKeyPointers(tracker);\n\n this.updateCurrent(event, tracker);\n this.onRotationBegin(this);\n break;\n\n case EventTypes.MOVE:\n if (!this.isInProgress) {\n break;\n }\n\n this.updateCurrent(event, tracker);\n this.onRotation(this);\n\n break;\n\n case EventTypes.ADDITIONAL_POINTER_UP:\n if (!this.isInProgress) {\n break;\n }\n\n if (this.keyPointers.indexOf(event.pointerId) >= 0) {\n this.finish();\n }\n\n break;\n\n case EventTypes.UP:\n if (this.isInProgress) {\n this.finish();\n }\n break;\n }\n\n return true;\n }\n\n public getTimeDelta(): number {\n return this.currentTime + this.previousTime;\n }\n\n public getAnchorX(): number {\n return this.anchorX;\n }\n\n public getAnchorY(): number {\n return this.anchorY;\n }\n\n public getRotation(): number {\n return this.rotation;\n }\n\n public reset(): void {\n this.keyPointers = [NaN, NaN];\n this.isInProgress = false;\n }\n}\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const flingGestureHandlerProps = [\n 'numberOfPointers',\n 'direction',\n] as const;\n\nexport type FlingGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\nexport interface FlingGestureConfig {\n /**\n * Expressed allowed direction of movement. It's possible to pass one or many\n * directions in one parameter:\n *\n * ```js\n * direction={Directions.RIGHT | Directions.LEFT}\n * ```\n *\n * or\n *\n * ```js\n * direction={Directions.DOWN}\n * ```\n */\n direction?: number;\n\n /**\n * Determine exact number of points required to handle the fling gesture.\n */\n numberOfPointers?: number;\n}\n\nexport interface FlingGestureHandlerProps\n extends BaseGestureHandlerProps,\n FlingGestureConfig {}\n\nexport const flingHandlerName = 'FlingGestureHandler';\n\nexport type FlingGestureHandler = typeof FlingGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const FlingGestureHandler = createHandler<\n FlingGestureHandlerProps,\n FlingGestureHandlerEventPayload\n>({\n name: flingHandlerName,\n allowedProps: [\n ...baseGestureHandlerProps,\n ...flingGestureHandlerProps,\n ] as const,\n config: {},\n});\n","import { AdaptedEvent, Config } from '../interfaces';\nimport GestureHandler from './GestureHandler';\n\nexport default class ManualGestureHandler extends GestureHandler {\n public init(ref: number, propsRef: React.RefObject) {\n super.init(ref, propsRef);\n }\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n }\n\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.begin();\n }\n\n protected onPointerAdd(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.tracker.track(event);\n super.onPointerMove(event);\n }\n\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n this.tracker.track(event);\n super.onPointerOutOfBounds(event);\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n protected onPointerRemove(event: AdaptedEvent): void {\n super.onPointerRemove(event);\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n this.reset();\n }\n}\n","import { ValueOf } from '../../typeUtils';\nimport { Gestures } from '../../RNGestureHandlerModule.web';\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport default abstract class NodeManager {\n private static gestures: Record<\n number,\n InstanceType>\n > = {};\n\n public static getHandler(tag: number) {\n if (tag in this.gestures) {\n return this.gestures[tag];\n }\n\n throw new Error(`No handler for tag ${tag}`);\n }\n\n public static createGestureHandler(\n handlerTag: number,\n handler: InstanceType>\n ): void {\n if (handlerTag in this.gestures) {\n throw new Error(`Handler with tag ${handlerTag} already exists`);\n }\n\n this.gestures[handlerTag] = handler;\n this.gestures[handlerTag].setTag(handlerTag);\n }\n\n public static dropGestureHandler(handlerTag: number): void {\n if (!(handlerTag in this.gestures)) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.gestures[handlerTag];\n }\n\n public static getNodes() {\n return { ...this.gestures };\n }\n}\n","/*! Hammer.JS - v2.0.17-rc - 2019-12-16\n * http://naver.github.io/egjs\n *\n * Forked By Naver egjs\n * Copyright (c) hammerjs\n * Licensed under the MIT license */\nfunction _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}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/**\n * @private\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\n\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\nvar assign$1 = assign;\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = typeof document === \"undefined\" ? {\n style: {}\n} : document.createElement('div');\nvar TYPE_FUNCTION = 'function';\nvar round = Math.round,\n abs = Math.abs;\nvar now = Date.now;\n\n/**\n * @private\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\n\nfunction prefixed(obj, property) {\n var prefix;\n var prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n var i = 0;\n\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = prefix ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n\n i++;\n }\n\n return undefined;\n}\n\n/* eslint-disable no-new-func, no-nested-ternary */\nvar win;\n\nif (typeof window === \"undefined\") {\n // window is undefined in node.js\n win = {};\n} else {\n win = window;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n\n var touchMap = {};\n var cssSupports = win.CSS && win.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function (val) {\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n return touchMap[val] = cssSupports ? win.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\n\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\nvar SUPPORT_TOUCH = 'ontouchstart' in win;\nvar SUPPORT_POINTER_EVENTS = prefixed(win, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\nvar COMPUTE_INTERVAL = 25;\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * @private\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * @private\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\n\nfunction boolOrFn(val, args) {\n if (typeof val === TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n\n return val;\n}\n\n/**\n * @private\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * @private\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\n\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y); // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n } // pan-x OR pan-y\n\n\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n } // manipulation\n\n\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\n/**\n * @private\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\n\nvar TouchAction =\n/*#__PURE__*/\nfunction () {\n function TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n }\n /**\n * @private\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n\n\n var _proto = TouchAction.prototype;\n\n _proto.set = function set(value) {\n // find out the touch-action by the event handlers\n if (value === TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n\n this.actions = value.toLowerCase().trim();\n };\n /**\n * @private\n * just re-set the touchAction value\n */\n\n\n _proto.update = function update() {\n this.set(this.manager.options.touchAction);\n };\n /**\n * @private\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n\n\n _proto.compute = function compute() {\n var actions = [];\n each(this.manager.recognizers, function (recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n };\n /**\n * @private\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n\n\n _proto.preventDefaults = function preventDefaults(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection; // if the touch action did prevented once this session\n\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n // do not prevent defaults if this is a tap gesture\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone || hasPanY && direction & DIRECTION_HORIZONTAL || hasPanX && direction & DIRECTION_VERTICAL) {\n return this.preventSrc(srcEvent);\n }\n };\n /**\n * @private\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n\n\n _proto.preventSrc = function preventSrc(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n };\n\n return TouchAction;\n}();\n\n/**\n * @private\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node === parent) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}\n\n/**\n * @private\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\n\nfunction getCenter(pointers) {\n var pointersLength = pointers.length; // no need to loop when only one touch\n\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0;\n var y = 0;\n var i = 0;\n\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * @private\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\n\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * @private\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\n\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n\n var x = p2[props[0]] - p1[props[0]];\n var y = p2[props[1]] - p1[props[1]];\n return Math.sqrt(x * x + y * y);\n}\n\n/**\n * @private\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\n\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n\n var x = p2[props[0]] - p1[props[0]];\n var y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * @private\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\n\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center; // let { offsetDelta:offset = {}, prevDelta = {}, prevInput = {} } = session;\n // jscs throwing error on defalut destructured values and without defaults tests fail\n\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * @private\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * @private\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\n\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\n/**\n * @private\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\n\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * @private\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\n\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input;\n var deltaTime = input.timeStamp - last.timeStamp;\n var velocity;\n var velocityX;\n var velocityY;\n var direction;\n\n if (input.eventType !== INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = abs(v.x) > abs(v.y) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n* @private\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\n\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length; // store the first input to calculate the distance and direction\n\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n } // to compute scale and rotation we need to store the multiple touches\n\n\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput,\n firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = abs(overallVelocity.x) > abs(overallVelocity.y) ? overallVelocity.x : overallVelocity.y;\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n input.maxPointers = !session.prevInput ? input.pointers.length : input.pointers.length > session.prevInput.maxPointers ? input.pointers.length : session.prevInput.maxPointers;\n computeIntervalInputData(session, input); // find the correct target\n\n var target = manager.element;\n var srcEvent = input.srcEvent;\n var srcEventTarget;\n\n if (srcEvent.composedPath) {\n srcEventTarget = srcEvent.composedPath()[0];\n } else if (srcEvent.path) {\n srcEventTarget = srcEvent.path[0];\n } else {\n srcEventTarget = srcEvent.target;\n }\n\n if (hasParent(srcEventTarget, target)) {\n target = srcEventTarget;\n }\n\n input.target = target;\n}\n\n/**\n * @private\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\n\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = eventType & INPUT_START && pointersLen - changedPointersLen === 0;\n var isFinal = eventType & (INPUT_END | INPUT_CANCEL) && pointersLen - changedPointersLen === 0;\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n } // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n\n\n input.eventType = eventType; // compute scale, rotation etc\n\n computeInputData(manager, input); // emit secret event\n\n manager.emit('hammer.input', input);\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * @private\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * @private\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\n\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function (type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * @private\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\n\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function (type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * @private\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return doc.defaultView || doc.parentWindow || window;\n}\n\n/**\n * @private\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\n\nvar Input =\n/*#__PURE__*/\nfunction () {\n function Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget; // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n\n this.domHandler = function (ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n }\n /**\n * @private\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n\n\n var _proto = Input.prototype;\n\n _proto.handler = function handler() {};\n /**\n * @private\n * bind the events\n */\n\n\n _proto.init = function init() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n };\n /**\n * @private\n * unbind the events\n */\n\n\n _proto.destroy = function destroy() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n };\n\n return Input;\n}();\n\n/**\n * @private\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n\n while (i < src.length) {\n if (findByKey && src[i][findByKey] == find || !findByKey && src[i] === find) {\n // do not use === here, test fails\n return i;\n }\n\n i++;\n }\n\n return -1;\n }\n}\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n}; // in IE10 the pointer types is defined as an enum\n\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n\n};\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel'; // IE10 has prefixed support, and case-sensitive\n\nif (win.MSPointerEvent && !win.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n/**\n * @private\n * Pointer events input\n * @constructor\n * @extends Input\n */\n\n\nvar PointerEventInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(PointerEventInput, _Input);\n\n function PointerEventInput() {\n var _this;\n\n var proto = PointerEventInput.prototype;\n proto.evEl = POINTER_ELEMENT_EVENTS;\n proto.evWin = POINTER_WINDOW_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.store = _this.manager.session.pointerEvents = [];\n return _this;\n }\n /**\n * @private\n * handle mouse events\n * @param {Object} ev\n */\n\n\n var _proto = PointerEventInput.prototype;\n\n _proto.handler = function handler(ev) {\n var store = this.store;\n var removePointer = false;\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n var isTouch = pointerType === INPUT_TYPE_TOUCH; // get index of the event in the store\n\n var storeIndex = inArray(store, ev.pointerId, 'pointerId'); // start and mouse must be down\n\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n } // it not found, so the pointer hasn't been down (so it's probably a hover)\n\n\n if (storeIndex < 0) {\n return;\n } // update the event in the store\n\n\n store[storeIndex] = ev;\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n };\n\n return PointerEventInput;\n}(Input);\n\n/**\n * @private\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * @private\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\n\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function (a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n/**\n * @private\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\n\nvar TouchInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(TouchInput, _Input);\n\n function TouchInput() {\n var _this;\n\n TouchInput.prototype.evTarget = TOUCH_TARGET_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.targetIds = {}; // this.evTarget = TOUCH_TARGET_EVENTS;\n\n return _this;\n }\n\n var _proto = TouchInput.prototype;\n\n _proto.handler = function handler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n };\n\n return TouchInput;\n}(Input);\n\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds; // when there is only one touch, the process can be simplified\n\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i;\n var targetTouches;\n var changedTouches = toArray(ev.changedTouches);\n var changedTargetTouches = [];\n var target = this.target; // get target touches from touches\n\n targetTouches = allTouches.filter(function (touch) {\n return hasParent(touch.target, target);\n }); // collect touches\n\n if (type === INPUT_START) {\n i = 0;\n\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n } // filter changed touches to only contain touches that exist in the collected target ids\n\n\n i = 0;\n\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n } // cleanup removed touches\n\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [// merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true), changedTargetTouches];\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n/**\n * @private\n * Mouse events input\n * @constructor\n * @extends Input\n */\n\nvar MouseInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(MouseInput, _Input);\n\n function MouseInput() {\n var _this;\n\n var proto = MouseInput.prototype;\n proto.evEl = MOUSE_ELEMENT_EVENTS;\n proto.evWin = MOUSE_WINDOW_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.pressed = false; // mousedown state\n\n return _this;\n }\n /**\n * @private\n * handle mouse events\n * @param {Object} ev\n */\n\n\n var _proto = MouseInput.prototype;\n\n _proto.handler = function handler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type]; // on start we want to have the left mouse button down\n\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n } // mouse must be down\n\n\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n };\n\n return MouseInput;\n}(Input);\n\n/**\n * @private\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction setLastTouch(eventData) {\n var _eventData$changedPoi = eventData.changedPointers,\n touch = _eventData$changedPoi[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {\n x: touch.clientX,\n y: touch.clientY\n };\n var lts = this.lastTouches;\n this.lastTouches.push(lastTouch);\n\n var removeLastTouch = function removeLastTouch() {\n var i = lts.indexOf(lastTouch);\n\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX;\n var y = eventData.srcEvent.clientY;\n\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x);\n var dy = Math.abs(y - t.y);\n\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n\n return false;\n}\n\nvar TouchMouseInput =\n/*#__PURE__*/\nfunction () {\n var TouchMouseInput =\n /*#__PURE__*/\n function (_Input) {\n _inheritsLoose(TouchMouseInput, _Input);\n\n function TouchMouseInput(_manager, callback) {\n var _this;\n\n _this = _Input.call(this, _manager, callback) || this;\n\n _this.handler = function (manager, inputEvent, inputData) {\n var isTouch = inputData.pointerType === INPUT_TYPE_TOUCH;\n var isMouse = inputData.pointerType === INPUT_TYPE_MOUSE;\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n } // when we're in a touch event, record touches to de-dupe synthetic mouse event\n\n\n if (isTouch) {\n recordTouches.call(_assertThisInitialized(_assertThisInitialized(_this)), inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(_assertThisInitialized(_assertThisInitialized(_this)), inputData)) {\n return;\n }\n\n _this.callback(manager, inputEvent, inputData);\n };\n\n _this.touch = new TouchInput(_this.manager, _this.handler);\n _this.mouse = new MouseInput(_this.manager, _this.handler);\n _this.primaryTouch = null;\n _this.lastTouches = [];\n return _this;\n }\n /**\n * @private\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n\n\n var _proto = TouchMouseInput.prototype;\n\n /**\n * @private\n * remove the event listeners\n */\n _proto.destroy = function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n };\n\n return TouchMouseInput;\n }(Input);\n\n return TouchMouseInput;\n}();\n\n/**\n * @private\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\n\nfunction createInputInstance(manager) {\n var Type; // let inputClass = manager.options.inputClass;\n\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n\n return new Type(manager, inputHandler);\n}\n\n/**\n * @private\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\n\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n\n return false;\n}\n\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * @private\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * @private\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n\n if (manager) {\n return manager.get(otherRecognizer);\n }\n\n return otherRecognizer;\n}\n\n/**\n * @private\n * get a usable string, used as event postfix\n * @param {constant} state\n * @returns {String} state\n */\n\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n\n return '';\n}\n\n/**\n * @private\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\n\n/**\n * @private\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\n\nvar Recognizer =\n/*#__PURE__*/\nfunction () {\n function Recognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n this.options = _extends({\n enable: true\n }, options);\n this.id = uniqueId();\n this.manager = null; // default is enable true\n\n this.state = STATE_POSSIBLE;\n this.simultaneous = {};\n this.requireFail = [];\n }\n /**\n * @private\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n\n\n var _proto = Recognizer.prototype;\n\n _proto.set = function set(options) {\n assign$1(this.options, options); // also update the touchAction, in case something changed about the directions/enabled state\n\n this.manager && this.manager.touchAction.update();\n return this;\n };\n /**\n * @private\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.recognizeWith = function recognizeWith(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n\n return this;\n };\n /**\n * @private\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.dropRecognizeWith = function dropRecognizeWith(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n };\n /**\n * @private\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.requireFailure = function requireFailure(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n\n return this;\n };\n /**\n * @private\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.dropRequireFailure = function dropRequireFailure(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n\n return this;\n };\n /**\n * @private\n * has require failures boolean\n * @returns {boolean}\n */\n\n\n _proto.hasRequireFailures = function hasRequireFailures() {\n return this.requireFail.length > 0;\n };\n /**\n * @private\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n\n\n _proto.canRecognizeWith = function canRecognizeWith(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n };\n /**\n * @private\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n\n\n _proto.emit = function emit(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n } // 'panstart' and 'panmove'\n\n\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) {\n // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n } // panend and pancancel\n\n\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n };\n /**\n * @private\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n\n\n _proto.tryEmit = function tryEmit(input) {\n if (this.canEmit()) {\n return this.emit(input);\n } // it's failing anyway\n\n\n this.state = STATE_FAILED;\n };\n /**\n * @private\n * can we emit?\n * @returns {boolean}\n */\n\n\n _proto.canEmit = function canEmit() {\n var i = 0;\n\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n\n i++;\n }\n\n return true;\n };\n /**\n * @private\n * update the recognizer\n * @param {Object} inputData\n */\n\n\n _proto.recognize = function recognize(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign$1({}, inputData); // is is enabled and allow recognizing?\n\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n } // reset when we've reached the end\n\n\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone); // the recognizer has recognized a gesture\n // so trigger an event\n\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n };\n /**\n * @private\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {constant} STATE\n */\n\n /* jshint ignore:start */\n\n\n _proto.process = function process(inputData) {};\n /* jshint ignore:end */\n\n /**\n * @private\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n\n\n _proto.getTouchAction = function getTouchAction() {};\n /**\n * @private\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n\n\n _proto.reset = function reset() {};\n\n return Recognizer;\n}();\n\n/**\n * @private\n * A tap is recognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\n\nvar TapRecognizer =\n/*#__PURE__*/\nfunction (_Recognizer) {\n _inheritsLoose(TapRecognizer, _Recognizer);\n\n function TapRecognizer(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _Recognizer.call(this, _extends({\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300,\n // max time between the multi-tap taps\n time: 250,\n // max time of the pointer to be down (like finger on the screen)\n threshold: 9,\n // a minimal movement is ok, but keep it low\n posThreshold: 10\n }, options)) || this; // previous time and center,\n // used for tap counting\n\n _this.pTime = false;\n _this.pCenter = false;\n _this._timer = null;\n _this._input = null;\n _this.count = 0;\n return _this;\n }\n\n var _proto = TapRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_MANIPULATION];\n };\n\n _proto.process = function process(input) {\n var _this2 = this;\n\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n this.reset();\n\n if (input.eventType & INPUT_START && this.count === 0) {\n return this.failTimeout();\n } // we only allow little movement\n // and we've reached an end event, so a tap is possible\n\n\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType !== INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? input.timeStamp - this.pTime < options.interval : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input; // if tap count matches we have recognized it,\n // else it has began recognizing...\n\n var tapCount = this.count % options.taps;\n\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeout(function () {\n _this2.state = STATE_RECOGNIZED;\n\n _this2.tryEmit();\n }, options.interval);\n return STATE_BEGAN;\n }\n }\n }\n\n return STATE_FAILED;\n };\n\n _proto.failTimeout = function failTimeout() {\n var _this3 = this;\n\n this._timer = setTimeout(function () {\n _this3.state = STATE_FAILED;\n }, this.options.interval);\n return STATE_FAILED;\n };\n\n _proto.reset = function reset() {\n clearTimeout(this._timer);\n };\n\n _proto.emit = function emit() {\n if (this.state === STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n };\n\n return TapRecognizer;\n}(Recognizer);\n\n/**\n * @private\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\n\nvar AttrRecognizer =\n/*#__PURE__*/\nfunction (_Recognizer) {\n _inheritsLoose(AttrRecognizer, _Recognizer);\n\n function AttrRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _Recognizer.call(this, _extends({\n pointers: 1\n }, options)) || this;\n }\n /**\n * @private\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n\n\n var _proto = AttrRecognizer.prototype;\n\n _proto.attrTest = function attrTest(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n };\n /**\n * @private\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n\n\n _proto.process = function process(input) {\n var state = this.state;\n var eventType = input.eventType;\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input); // on cancel input and we've recognized before, return STATE_CANCELLED\n\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n\n return state | STATE_CHANGED;\n }\n\n return STATE_FAILED;\n };\n\n return AttrRecognizer;\n}(Recognizer);\n\n/**\n * @private\n * direction cons to string\n * @param {constant} direction\n * @returns {String}\n */\n\nfunction directionStr(direction) {\n if (direction === DIRECTION_DOWN) {\n return 'down';\n } else if (direction === DIRECTION_UP) {\n return 'up';\n } else if (direction === DIRECTION_LEFT) {\n return 'left';\n } else if (direction === DIRECTION_RIGHT) {\n return 'right';\n }\n\n return '';\n}\n\n/**\n * @private\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar PanRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(PanRecognizer, _AttrRecognizer);\n\n function PanRecognizer(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _AttrRecognizer.call(this, _extends({\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n }, options)) || this;\n _this.pX = null;\n _this.pY = null;\n return _this;\n }\n\n var _proto = PanRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n var direction = this.options.direction;\n var actions = [];\n\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n\n return actions;\n };\n\n _proto.directionTest = function directionTest(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY; // lock to axis?\n\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = x === 0 ? DIRECTION_NONE : x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x !== this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = y === 0 ? DIRECTION_NONE : y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y !== this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n };\n\n _proto.attrTest = function attrTest(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) && ( // replace with a super call\n this.state & STATE_BEGAN || !(this.state & STATE_BEGAN) && this.directionTest(input));\n };\n\n _proto.emit = function emit(input) {\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n\n _AttrRecognizer.prototype.emit.call(this, input);\n };\n\n return PanRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar SwipeRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(SwipeRecognizer, _AttrRecognizer);\n\n function SwipeRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _AttrRecognizer.call(this, _extends({\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n }, options)) || this;\n }\n\n var _proto = SwipeRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n };\n\n _proto.attrTest = function attrTest(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return _AttrRecognizer.prototype.attrTest.call(this, input) && direction & input.offsetDirection && input.distance > this.options.threshold && input.maxPointers === this.options.pointers && abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n };\n\n _proto.emit = function emit(input) {\n var direction = directionStr(input.offsetDirection);\n\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n };\n\n return SwipeRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar PinchRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(PinchRecognizer, _AttrRecognizer);\n\n function PinchRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _AttrRecognizer.call(this, _extends({\n event: 'pinch',\n threshold: 0,\n pointers: 2\n }, options)) || this;\n }\n\n var _proto = PinchRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_NONE];\n };\n\n _proto.attrTest = function attrTest(input) {\n return _AttrRecognizer.prototype.attrTest.call(this, input) && (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n };\n\n _proto.emit = function emit(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n\n _AttrRecognizer.prototype.emit.call(this, input);\n };\n\n return PinchRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar RotateRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(RotateRecognizer, _AttrRecognizer);\n\n function RotateRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _AttrRecognizer.call(this, _extends({\n event: 'rotate',\n threshold: 0,\n pointers: 2\n }, options)) || this;\n }\n\n var _proto = RotateRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_NONE];\n };\n\n _proto.attrTest = function attrTest(input) {\n return _AttrRecognizer.prototype.attrTest.call(this, input) && (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n };\n\n return RotateRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\n\nvar PressRecognizer =\n/*#__PURE__*/\nfunction (_Recognizer) {\n _inheritsLoose(PressRecognizer, _Recognizer);\n\n function PressRecognizer(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _Recognizer.call(this, _extends({\n event: 'press',\n pointers: 1,\n time: 251,\n // minimal time of the pointer to be pressed\n threshold: 9\n }, options)) || this;\n _this._timer = null;\n _this._input = null;\n return _this;\n }\n\n var _proto = PressRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_AUTO];\n };\n\n _proto.process = function process(input) {\n var _this2 = this;\n\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n this._input = input; // we only allow little movement\n // and we've reached an end event, so a tap is possible\n\n if (!validMovement || !validPointers || input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeout(function () {\n _this2.state = STATE_RECOGNIZED;\n\n _this2.tryEmit();\n }, options.time);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n\n return STATE_FAILED;\n };\n\n _proto.reset = function reset() {\n clearTimeout(this._timer);\n };\n\n _proto.emit = function emit(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && input.eventType & INPUT_END) {\n this.manager.emit(this.options.event + \"up\", input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n };\n\n return PressRecognizer;\n}(Recognizer);\n\nvar defaults = {\n /**\n * @private\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * @private\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @private\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * @private\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * @private\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * @private\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * @private\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: \"none\",\n\n /**\n * @private\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: \"none\",\n\n /**\n * @private\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: \"none\",\n\n /**\n * @private\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: \"none\",\n\n /**\n * @private\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: \"none\",\n\n /**\n * @private\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: \"rgba(0,0,0,0)\"\n }\n};\n/**\n * @private\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * This is separated with other defaults because of tree-shaking.\n * @type {Array}\n */\n\nvar preset = [[RotateRecognizer, {\n enable: false\n}], [PinchRecognizer, {\n enable: false\n}, ['rotate']], [SwipeRecognizer, {\n direction: DIRECTION_HORIZONTAL\n}], [PanRecognizer, {\n direction: DIRECTION_HORIZONTAL\n}, ['swipe']], [TapRecognizer], [TapRecognizer, {\n event: 'doubletap',\n taps: 2\n}, ['tap']], [PressRecognizer]];\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n/**\n * @private\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\n\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n\n if (!element.style) {\n return;\n }\n\n var prop;\n each(manager.options.cssProps, function (value, name) {\n prop = prefixed(element.style, name);\n\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || \"\";\n }\n });\n\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n/**\n * @private\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\n\n\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent(\"Event\");\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n/**\n* @private\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\n\n\nvar Manager =\n/*#__PURE__*/\nfunction () {\n function Manager(element, options) {\n var _this = this;\n\n this.options = assign$1({}, defaults, options || {});\n this.options.inputTarget = this.options.inputTarget || element;\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n toggleCssProps(this, true);\n each(this.options.recognizers, function (item) {\n var recognizer = _this.add(new item[0](item[1]));\n\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n }\n /**\n * @private\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n\n\n var _proto = Manager.prototype;\n\n _proto.set = function set(options) {\n assign$1(this.options, options); // Options that need a little more setup\n\n if (options.touchAction) {\n this.touchAction.update();\n }\n\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n\n return this;\n };\n /**\n * @private\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n\n\n _proto.stop = function stop(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n };\n /**\n * @private\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n\n\n _proto.recognize = function recognize(inputData) {\n var session = this.session;\n\n if (session.stopped) {\n return;\n } // run the touch-action polyfill\n\n\n this.touchAction.preventDefaults(inputData);\n var recognizer;\n var recognizers = this.recognizers; // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n\n var curRecognizer = session.curRecognizer; // reset when the last recognizer is recognized\n // or when we're in a new session\n\n if (!curRecognizer || curRecognizer && curRecognizer.state & STATE_RECOGNIZED) {\n session.curRecognizer = null;\n curRecognizer = null;\n }\n\n var i = 0;\n\n while (i < recognizers.length) {\n recognizer = recognizers[i]; // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer === curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) {\n // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n } // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n\n\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n session.curRecognizer = recognizer;\n curRecognizer = recognizer;\n }\n\n i++;\n }\n };\n /**\n * @private\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n\n\n _proto.get = function get(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event === recognizer) {\n return recognizers[i];\n }\n }\n\n return null;\n };\n /**\n * @private add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n\n\n _proto.add = function add(recognizer) {\n if (invokeArrayArg(recognizer, \"add\", this)) {\n return this;\n } // remove existing\n\n\n var existing = this.get(recognizer.options.event);\n\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n this.touchAction.update();\n return recognizer;\n };\n /**\n * @private\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n\n\n _proto.remove = function remove(recognizer) {\n if (invokeArrayArg(recognizer, \"remove\", this)) {\n return this;\n }\n\n var targetRecognizer = this.get(recognizer); // let's make sure this recognizer exists\n\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, targetRecognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n };\n /**\n * @private\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n\n\n _proto.on = function on(events, handler) {\n if (events === undefined || handler === undefined) {\n return this;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function (event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n };\n /**\n * @private unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n\n\n _proto.off = function off(events, handler) {\n if (events === undefined) {\n return this;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function (event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n };\n /**\n * @private emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n\n\n _proto.emit = function emit(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n } // no handlers, so skip it all\n\n\n var handlers = this.handlers[event] && this.handlers[event].slice();\n\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n\n data.preventDefault = function () {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n };\n /**\n * @private\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n\n\n _proto.destroy = function destroy() {\n this.element && toggleCssProps(this, false);\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n };\n\n return Manager;\n}();\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n/**\n * @private\n * Touch events input\n * @constructor\n * @extends Input\n */\n\nvar SingleTouchInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(SingleTouchInput, _Input);\n\n function SingleTouchInput() {\n var _this;\n\n var proto = SingleTouchInput.prototype;\n proto.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n proto.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.started = false;\n return _this;\n }\n\n var _proto = SingleTouchInput.prototype;\n\n _proto.handler = function handler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type]; // should we handle the touch events?\n\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type); // when done, reset the started state\n\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n };\n\n return SingleTouchInput;\n}(Input);\n\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\n/**\n * @private\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = \"DEPRECATED METHOD: \" + name + \"\\n\" + message + \" AT \\n\";\n return function () {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '').replace(/^\\s+at\\s+/gm, '').replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n var log = window.console && (window.console.warn || window.console.log);\n\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n\n return method.apply(this, arguments);\n };\n}\n\n/**\n * @private\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\n\nvar extend = deprecate(function (dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n\n while (i < keys.length) {\n if (!merge || merge && dest[keys[i]] === undefined) {\n dest[keys[i]] = src[keys[i]];\n }\n\n i++;\n }\n\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * @private\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\n\nvar merge = deprecate(function (dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * @private\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\n\nfunction inherit(child, base, properties) {\n var baseP = base.prototype;\n var childP;\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign$1(childP, properties);\n }\n}\n\n/**\n * @private\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * @private\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\n\nvar Hammer =\n/*#__PURE__*/\nfunction () {\n var Hammer =\n /**\n * @private\n * @const {string}\n */\n function Hammer(element, options) {\n if (options === void 0) {\n options = {};\n }\n\n return new Manager(element, _extends({\n recognizers: preset.concat()\n }, options));\n };\n\n Hammer.VERSION = \"2.0.17-rc\";\n Hammer.DIRECTION_ALL = DIRECTION_ALL;\n Hammer.DIRECTION_DOWN = DIRECTION_DOWN;\n Hammer.DIRECTION_LEFT = DIRECTION_LEFT;\n Hammer.DIRECTION_RIGHT = DIRECTION_RIGHT;\n Hammer.DIRECTION_UP = DIRECTION_UP;\n Hammer.DIRECTION_HORIZONTAL = DIRECTION_HORIZONTAL;\n Hammer.DIRECTION_VERTICAL = DIRECTION_VERTICAL;\n Hammer.DIRECTION_NONE = DIRECTION_NONE;\n Hammer.DIRECTION_DOWN = DIRECTION_DOWN;\n Hammer.INPUT_START = INPUT_START;\n Hammer.INPUT_MOVE = INPUT_MOVE;\n Hammer.INPUT_END = INPUT_END;\n Hammer.INPUT_CANCEL = INPUT_CANCEL;\n Hammer.STATE_POSSIBLE = STATE_POSSIBLE;\n Hammer.STATE_BEGAN = STATE_BEGAN;\n Hammer.STATE_CHANGED = STATE_CHANGED;\n Hammer.STATE_ENDED = STATE_ENDED;\n Hammer.STATE_RECOGNIZED = STATE_RECOGNIZED;\n Hammer.STATE_CANCELLED = STATE_CANCELLED;\n Hammer.STATE_FAILED = STATE_FAILED;\n Hammer.Manager = Manager;\n Hammer.Input = Input;\n Hammer.TouchAction = TouchAction;\n Hammer.TouchInput = TouchInput;\n Hammer.MouseInput = MouseInput;\n Hammer.PointerEventInput = PointerEventInput;\n Hammer.TouchMouseInput = TouchMouseInput;\n Hammer.SingleTouchInput = SingleTouchInput;\n Hammer.Recognizer = Recognizer;\n Hammer.AttrRecognizer = AttrRecognizer;\n Hammer.Tap = TapRecognizer;\n Hammer.Pan = PanRecognizer;\n Hammer.Swipe = SwipeRecognizer;\n Hammer.Pinch = PinchRecognizer;\n Hammer.Rotate = RotateRecognizer;\n Hammer.Press = PressRecognizer;\n Hammer.on = addEventListeners;\n Hammer.off = removeEventListeners;\n Hammer.each = each;\n Hammer.merge = merge;\n Hammer.extend = extend;\n Hammer.bindFn = bindFn;\n Hammer.assign = assign$1;\n Hammer.inherit = inherit;\n Hammer.bindFn = bindFn;\n Hammer.prefixed = prefixed;\n Hammer.toArray = toArray;\n Hammer.inArray = inArray;\n Hammer.uniqueArray = uniqueArray;\n Hammer.splitStr = splitStr;\n Hammer.boolOrFn = boolOrFn;\n Hammer.hasParent = hasParent;\n Hammer.addEventListeners = addEventListeners;\n Hammer.removeEventListeners = removeEventListeners;\n Hammer.defaults = assign$1({}, defaults, {\n preset: preset\n });\n return Hammer;\n}();\n\n// style loader but by script tag, not by the loader.\n\nvar defaults$1 = Hammer.defaults;\n\nexport default Hammer;\nexport { INPUT_START, INPUT_MOVE, INPUT_END, INPUT_CANCEL, STATE_POSSIBLE, STATE_BEGAN, STATE_CHANGED, STATE_ENDED, STATE_RECOGNIZED, STATE_CANCELLED, STATE_FAILED, DIRECTION_NONE, DIRECTION_LEFT, DIRECTION_RIGHT, DIRECTION_UP, DIRECTION_DOWN, DIRECTION_HORIZONTAL, DIRECTION_VERTICAL, DIRECTION_ALL, Manager, Input, TouchAction, TouchInput, MouseInput, PointerEventInput, TouchMouseInput, SingleTouchInput, Recognizer, AttrRecognizer, TapRecognizer as Tap, PanRecognizer as Pan, SwipeRecognizer as Swipe, PinchRecognizer as Pinch, RotateRecognizer as Rotate, PressRecognizer as Press, addEventListeners as on, removeEventListeners as off, each, merge, extend, assign$1 as assign, inherit, bindFn, prefixed, toArray, inArray, uniqueArray, splitStr, boolOrFn, hasParent, addEventListeners, removeEventListeners, defaults$1 as defaults };\n//# sourceMappingURL=hammer.esm.js.map\n","/* eslint-disable eslint-comments/no-unlimited-disable */\n/* eslint-disable */\nimport GestureHandler from './GestureHandler';\nimport { TEST_MAX_IF_NOT_NAN } from './utils';\n\nabstract class DiscreteGestureHandler extends GestureHandler {\n get isDiscrete() {\n return true;\n }\n\n get shouldEnableGestureOnSetup() {\n return true;\n }\n\n shouldFailUnderCustomCriteria(\n { x, y, deltaX, deltaY }: any,\n { maxDeltaX, maxDeltaY, maxDistSq, shouldCancelWhenOutside }: any\n ) {\n if (shouldCancelWhenOutside) {\n if (!this.isPointInView({ x, y })) {\n return true;\n }\n }\n return (\n TEST_MAX_IF_NOT_NAN(Math.abs(deltaX), maxDeltaX) ||\n TEST_MAX_IF_NOT_NAN(Math.abs(deltaY), maxDeltaY) ||\n TEST_MAX_IF_NOT_NAN(\n Math.abs(deltaY * deltaY + deltaX * deltaX),\n maxDistSq\n )\n );\n }\n\n transformNativeEvent({ center: { x, y } }: any) {\n // @ts-ignore FIXME(TS)\n const rect = this.view!.getBoundingClientRect();\n\n return {\n absoluteX: x,\n absoluteY: y,\n x: x - rect.left,\n y: y - rect.top,\n };\n }\n\n isGestureEnabledForEvent(\n {\n minPointers,\n maxPointers,\n maxDeltaX,\n maxDeltaY,\n maxDistSq,\n shouldCancelWhenOutside,\n }: any,\n _recognizer: any,\n { maxPointers: pointerLength, center, deltaX, deltaY }: any\n ) {\n const validPointerCount =\n pointerLength >= minPointers && pointerLength <= maxPointers;\n\n if (\n this.shouldFailUnderCustomCriteria(\n { ...center, deltaX, deltaY },\n {\n maxDeltaX,\n maxDeltaY,\n maxDistSq,\n shouldCancelWhenOutside,\n }\n ) ||\n // A user probably won't land a multi-pointer tap on the first tick (so we cannot just cancel each time)\n // but if the gesture is running and the user adds or subtracts another pointer then it should fail.\n (!validPointerCount && this.isGestureRunning)\n ) {\n return { failed: true };\n }\n\n return { success: validPointerCount };\n }\n}\n\nexport default DiscreteGestureHandler;\n","import Hammer from '@egjs/hammerjs';\n\nimport { State } from '../State';\nimport {\n CONTENT_TOUCHES_DELAY,\n CONTENT_TOUCHES_QUICK_TAP_END_DELAY,\n HammerInputNames,\n} from './constants';\nimport DiscreteGestureHandler from './DiscreteGestureHandler';\nimport { Config, HammerInputExt } from './GestureHandler';\nimport { fireAfterInterval, isValidNumber, isnan } from './utils';\n\nclass PressGestureHandler extends DiscreteGestureHandler {\n private visualFeedbackTimer: any;\n private initialEvent: HammerInputExt | null = null;\n get name() {\n return 'press';\n }\n\n get minDurationMs() {\n // @ts-ignore FIXME(TS)\n return isnan(this.config.minDurationMs) ? 5 : this.config.minDurationMs;\n }\n\n get maxDist() {\n return isnan(this.config.maxDist) ? 9 : this.config.maxDist;\n }\n\n get NativeGestureClass() {\n return Hammer.Press;\n }\n\n shouldDelayTouches = true;\n\n simulateCancelEvent(inputData: HammerInputExt) {\n // Long press never starts so we can't rely on the running event boolean.\n this.hasGestureFailed = true;\n this.cancelEvent(inputData);\n }\n\n updateHasCustomActivationCriteria({\n shouldCancelWhenOutside,\n maxDistSq,\n }: Config & { shouldCancelWhenOutside: boolean }) {\n return shouldCancelWhenOutside || !isValidNumber(maxDistSq);\n }\n\n getState(type: keyof typeof HammerInputNames): State {\n return {\n [Hammer.INPUT_START]: State.BEGAN,\n [Hammer.INPUT_MOVE]: State.ACTIVE,\n [Hammer.INPUT_END]: State.END,\n [Hammer.INPUT_CANCEL]: State.CANCELLED,\n }[type];\n }\n\n getConfig() {\n if (!this.hasCustomActivationCriteria) {\n // Default config\n // If no params have been defined then this config should emulate the native gesture as closely as possible.\n return {\n shouldCancelWhenOutside: true,\n maxDistSq: 10,\n };\n }\n return this.config;\n }\n\n getHammerConfig() {\n return {\n ...super.getHammerConfig(),\n // threshold: this.maxDist,\n time: this.minDurationMs,\n };\n }\n\n onGestureActivated(ev: HammerInputExt) {\n this.onGestureStart(ev);\n }\n\n shouldDelayTouchForEvent({ pointerType }: HammerInputExt) {\n // Don't disable event for mouse input\n return this.shouldDelayTouches && pointerType === 'touch';\n }\n\n onGestureStart(ev: HammerInputExt) {\n this.isGestureRunning = true;\n clearTimeout(this.visualFeedbackTimer);\n this.initialEvent = ev;\n this.visualFeedbackTimer = fireAfterInterval(() => {\n this.sendGestureStartedEvent(this.initialEvent as HammerInputExt);\n this.initialEvent = null;\n }, this.shouldDelayTouchForEvent(ev) && CONTENT_TOUCHES_DELAY);\n }\n\n sendGestureStartedEvent(ev: HammerInputExt) {\n clearTimeout(this.visualFeedbackTimer);\n this.visualFeedbackTimer = null;\n this.sendEvent({\n ...ev,\n eventType: Hammer.INPUT_MOVE,\n isFirst: true,\n });\n }\n\n forceInvalidate(event: HammerInputExt) {\n super.forceInvalidate(event);\n clearTimeout(this.visualFeedbackTimer);\n this.visualFeedbackTimer = null;\n this.initialEvent = null;\n }\n\n onRawEvent(ev: HammerInputExt) {\n super.onRawEvent(ev);\n if (this.isGestureRunning) {\n if (ev.isFinal) {\n let timeout;\n if (this.visualFeedbackTimer) {\n // Aesthetic timing for a quick tap.\n // We haven't activated the tap right away to emulate iOS `delaysContentTouches`\n // Now we must send the initial activation event and wait a set amount of time before firing the end event.\n timeout = CONTENT_TOUCHES_QUICK_TAP_END_DELAY;\n this.sendGestureStartedEvent(this.initialEvent as HammerInputExt);\n this.initialEvent = null;\n }\n fireAfterInterval(() => {\n this.sendEvent({\n ...ev,\n eventType: Hammer.INPUT_END,\n isFinal: true,\n });\n // @ts-ignore -- this should explicitly support undefined\n this.onGestureEnded();\n }, timeout);\n } else {\n this.sendEvent({\n ...ev,\n eventType: Hammer.INPUT_MOVE,\n isFinal: false,\n });\n }\n }\n }\n\n updateGestureConfig({\n shouldActivateOnStart = false,\n disallowInterruption = false,\n shouldCancelWhenOutside = true,\n minDurationMs = Number.NaN,\n maxDist = Number.NaN,\n minPointers = 1,\n maxPointers = 1,\n ...props\n }) {\n return super.updateGestureConfig({\n shouldActivateOnStart,\n disallowInterruption,\n shouldCancelWhenOutside,\n minDurationMs,\n maxDist,\n minPointers,\n maxPointers,\n ...props,\n });\n }\n}\nexport default PressGestureHandler;\n","/* eslint-disable eslint-comments/no-unlimited-disable */\n/* eslint-disable */\nimport GestureHandler, { HammerInputExt } from './GestureHandler';\nimport { PixelRatio } from 'react-native';\n\nabstract class DraggingGestureHandler extends GestureHandler {\n get shouldEnableGestureOnSetup() {\n return true;\n }\n\n transformNativeEvent({\n deltaX,\n deltaY,\n velocityX,\n velocityY,\n center: { x, y },\n }: HammerInputExt) {\n // @ts-ignore FIXME(TS)\n const rect = this.view!.getBoundingClientRect();\n const ratio = PixelRatio.get();\n return {\n translationX: deltaX - (this.__initialX || 0),\n translationY: deltaY - (this.__initialY || 0),\n absoluteX: x,\n absoluteY: y,\n velocityX: velocityX * ratio,\n velocityY: velocityY * ratio,\n x: x - rect.left,\n y: y - rect.top,\n };\n }\n}\n\nexport default DraggingGestureHandler;\n","import GestureHandler from './GestureHandler';\n\n/**\n * The base class for **Rotation** and **Pinch** gesture handlers.\n */\nabstract class IndiscreteGestureHandler extends GestureHandler {\n get shouldEnableGestureOnSetup() {\n return false;\n }\n\n updateGestureConfig({ minPointers = 2, maxPointers = 2, ...props }) {\n return super.updateGestureConfig({\n minPointers,\n maxPointers,\n ...props,\n });\n }\n\n isGestureEnabledForEvent(\n { minPointers, maxPointers }: any,\n _recognizer: any,\n { maxPointers: pointerLength }: any\n ) {\n if (pointerLength > maxPointers) {\n return { failed: true };\n }\n const validPointerCount = pointerLength >= minPointers;\n return {\n success: validPointerCount,\n };\n }\n}\nexport default IndiscreteGestureHandler;\n","export class GesturePropError extends Error {\n constructor(name: string, value: unknown, expectedType: string) {\n super(\n `Invalid property \\`${name}: ${value}\\` expected \\`${expectedType}\\``\n );\n }\n}\n","import React from 'react';\n\nimport { ActionType } from './ActionType';\nimport { isExperimentalWebImplementationEnabled } from './EnableExperimentalWebImplementation';\n\n//GestureHandlers\nimport InteractionManager from './web/tools/InteractionManager';\nimport NodeManager from './web/tools/NodeManager';\nimport PanGestureHandler from './web/handlers/PanGestureHandler';\nimport TapGestureHandler from './web/handlers/TapGestureHandler';\nimport LongPressGestureHandler from './web/handlers/LongPressGestureHandler';\nimport PinchGestureHandler from './web/handlers/PinchGestureHandler';\nimport RotationGestureHandler from './web/handlers/RotationGestureHandler';\nimport FlingGestureHandler from './web/handlers/FlingGestureHandler';\nimport NativeViewGestureHandler from './web/handlers/NativeViewGestureHandler';\nimport ManualGestureHandler from './web/handlers/ManualGestureHandler';\n\n//Hammer Handlers\nimport * as HammerNodeManager from './web_hammer/NodeManager';\nimport HammerNativeViewGestureHandler from './web_hammer/NativeViewGestureHandler';\nimport HammerPanGestureHandler from './web_hammer/PanGestureHandler';\nimport HammerTapGestureHandler from './web_hammer/TapGestureHandler';\nimport HammerLongPressGestureHandler from './web_hammer/LongPressGestureHandler';\nimport HammerPinchGestureHandler from './web_hammer/PinchGestureHandler';\nimport HammerRotationGestureHandler from './web_hammer/RotationGestureHandler';\nimport HammerFlingGestureHandler from './web_hammer/FlingGestureHandler';\nimport { Config } from './web/interfaces';\n\nexport const Gestures = {\n NativeViewGestureHandler,\n PanGestureHandler,\n TapGestureHandler,\n LongPressGestureHandler,\n PinchGestureHandler,\n RotationGestureHandler,\n FlingGestureHandler,\n ManualGestureHandler,\n};\n\nexport const HammerGestures = {\n NativeViewGestureHandler: HammerNativeViewGestureHandler,\n PanGestureHandler: HammerPanGestureHandler,\n TapGestureHandler: HammerTapGestureHandler,\n LongPressGestureHandler: HammerLongPressGestureHandler,\n PinchGestureHandler: HammerPinchGestureHandler,\n RotationGestureHandler: HammerRotationGestureHandler,\n FlingGestureHandler: HammerFlingGestureHandler,\n};\n\nexport default {\n handleSetJSResponder(tag: number, blockNativeResponder: boolean) {\n console.warn('handleSetJSResponder: ', tag, blockNativeResponder);\n },\n handleClearJSResponder() {\n console.warn('handleClearJSResponder: ');\n },\n createGestureHandler(\n handlerName: keyof typeof Gestures,\n handlerTag: number,\n config: T\n ) {\n if (isExperimentalWebImplementationEnabled()) {\n if (!(handlerName in Gestures)) {\n throw new Error(\n `react-native-gesture-handler: ${handlerName} is not supported on web.`\n );\n }\n\n const GestureClass = Gestures[handlerName];\n NodeManager.createGestureHandler(handlerTag, new GestureClass());\n InteractionManager.getInstance().configureInteractions(\n NodeManager.getHandler(handlerTag),\n config as unknown as Config\n );\n } else {\n if (!(handlerName in HammerGestures)) {\n throw new Error(\n `react-native-gesture-handler: ${handlerName} is not supported on web.`\n );\n }\n\n // @ts-ignore If it doesn't exist, the error is thrown\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const GestureClass = HammerGestures[handlerName];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n HammerNodeManager.createGestureHandler(handlerTag, new GestureClass());\n }\n\n this.updateGestureHandler(handlerTag, config as unknown as Config);\n },\n attachGestureHandler(\n handlerTag: number,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newView: any,\n _actionType: ActionType,\n propsRef: React.RefObject\n ) {\n if (\n !(newView instanceof HTMLElement || newView instanceof React.Component)\n ) {\n return;\n }\n\n if (isExperimentalWebImplementationEnabled()) {\n //@ts-ignore Types should be HTMLElement or React.Component\n NodeManager.getHandler(handlerTag).init(newView, propsRef);\n } else {\n //@ts-ignore Types should be HTMLElement or React.Component\n HammerNodeManager.getHandler(handlerTag).setView(newView, propsRef);\n }\n },\n updateGestureHandler(handlerTag: number, newConfig: Config) {\n if (isExperimentalWebImplementationEnabled()) {\n NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);\n\n InteractionManager.getInstance().configureInteractions(\n NodeManager.getHandler(handlerTag),\n newConfig\n );\n } else {\n HammerNodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);\n }\n },\n getGestureHandlerNode(handlerTag: number) {\n if (isExperimentalWebImplementationEnabled()) {\n return NodeManager.getHandler(handlerTag);\n } else {\n return HammerNodeManager.getHandler(handlerTag);\n }\n },\n dropGestureHandler(handlerTag: number) {\n if (isExperimentalWebImplementationEnabled()) {\n NodeManager.dropGestureHandler(handlerTag);\n } else {\n HammerNodeManager.dropGestureHandler(handlerTag);\n }\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n flushOperations() {},\n};\n","import { Easing } from 'react-native';\n/**\n * Exact values from UINavigationController's animation configuration.\n */\nexport const TransitionIOSSpec = {\n animation: 'spring',\n config: {\n stiffness: 1000,\n damping: 500,\n mass: 3,\n overshootClamping: true,\n restDisplacementThreshold: 10,\n restSpeedThreshold: 10\n }\n};\n\n/**\n * Configuration for activity open animation from Android Nougat.\n * See http://aosp.opersys.com/xref/android-7.1.2_r37/xref/frameworks/base/core/res/res/anim/activity_open_enter.xml\n */\nexport const FadeInFromBottomAndroidSpec = {\n animation: 'timing',\n config: {\n duration: 350,\n easing: Easing.out(Easing.poly(5))\n }\n};\n\n/**\n * Configuration for activity close animation from Android Nougat.\n * See http://aosp.opersys.com/xref/android-7.1.2_r37/xref/frameworks/base/core/res/res/anim/activity_close_exit.xml\n */\nexport const FadeOutToBottomAndroidSpec = {\n animation: 'timing',\n config: {\n duration: 150,\n easing: Easing.in(Easing.linear)\n }\n};\n\n/**\n * Approximate configuration for activity open animation from Android Pie.\n * See http://aosp.opersys.com/xref/android-9.0.0_r47/xref/frameworks/base/core/res/res/anim/activity_open_enter.xml\n */\nexport const RevealFromBottomAndroidSpec = {\n animation: 'timing',\n config: {\n duration: 425,\n // This is super rough approximation of the path used for the curve by android\n // See http://aosp.opersys.com/xref/android-9.0.0_r47/xref/frameworks/base/core/res/res/interpolator/fast_out_extra_slow_in.xml\n easing: Easing.bezier(0.35, 0.45, 0, 1)\n }\n};\n\n/**\n * Approximate configuration for activity open animation from Android Q.\n * See http://aosp.opersys.com/xref/android-10.0.0_r2/xref/frameworks/base/core/res/res/anim/activity_open_enter.xml\n */\nexport const ScaleFromCenterAndroidSpec = {\n animation: 'timing',\n config: {\n duration: 400,\n // This is super rough approximation of the path used for the curve by android\n // See http://aosp.opersys.com/xref/android-10.0.0_r2/xref/frameworks/base/core/res/res/interpolator/fast_out_extra_slow_in.xml\n easing: Easing.bezier(0.35, 0.45, 0, 1)\n }\n};\n\n/**\n * Configuration for bottom sheet slide in animation from Material Design.\n * See https://github.com/material-components/material-components-android/blob/fd3639092e1ffef9dc11bcedf79f32801d85e898/lib/java/com/google/android/material/bottomsheet/res/anim/mtrl_bottom_sheet_slide_in.xml\n */\nexport const BottomSheetSlideInSpec = {\n animation: 'timing',\n config: {\n duration: 250,\n // See https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/animation/AccelerateDecelerateInterpolator.java\n easing: t => Math.cos((t + 1) * Math.PI) / 2.0 + 0.5\n }\n};\n\n/**\n * Configuration for bottom sheet slide out animation from Material Design.\n * See https://github.com/material-components/material-components-android/blob/fd3639092e1ffef9dc11bcedf79f32801d85e898/lib/java/com/google/android/material/bottomsheet/res/anim/mtrl_bottom_sheet_slide_in.xml\n */\nexport const BottomSheetSlideOutSpec = {\n animation: 'timing',\n config: {\n duration: 200,\n // See https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/animation/AccelerateInterpolator.java\n easing: t => t === 1.0 ? 1 : Math.pow(t, 2)\n }\n};\n//# sourceMappingURL=TransitionSpecs.js.map","import { invariant, InvariantError } from \"../globals/index.js\";\nimport { valueToObjectRepresentation } from \"./storeUtils.js\";\nexport function checkDocument(doc) {\n __DEV__ ? invariant(doc && doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\") : invariant(doc && doc.kind === 'Document', 46);\n var operations = doc.definitions\n .filter(function (d) { return d.kind !== 'FragmentDefinition'; })\n .map(function (definition) {\n if (definition.kind !== 'OperationDefinition') {\n throw __DEV__ ? new InvariantError(\"Schema type definitions not allowed in queries. Found: \\\"\" + definition.kind + \"\\\"\") : new InvariantError(47);\n }\n return definition;\n });\n __DEV__ ? invariant(operations.length <= 1, \"Ambiguous GraphQL document: contains \" + operations.length + \" operations\") : invariant(operations.length <= 1, 48);\n return doc;\n}\nexport function getOperationDefinition(doc) {\n checkDocument(doc);\n return doc.definitions.filter(function (definition) { return definition.kind === 'OperationDefinition'; })[0];\n}\nexport function getOperationName(doc) {\n return (doc.definitions\n .filter(function (definition) {\n return definition.kind === 'OperationDefinition' && definition.name;\n })\n .map(function (x) { return x.name.value; })[0] || null);\n}\nexport function getFragmentDefinitions(doc) {\n return doc.definitions.filter(function (definition) { return definition.kind === 'FragmentDefinition'; });\n}\nexport function getQueryDefinition(doc) {\n var queryDef = getOperationDefinition(doc);\n __DEV__ ? invariant(queryDef && queryDef.operation === 'query', 'Must contain a query definition.') : invariant(queryDef && queryDef.operation === 'query', 49);\n return queryDef;\n}\nexport function getFragmentDefinition(doc) {\n __DEV__ ? invariant(doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\") : invariant(doc.kind === 'Document', 50);\n __DEV__ ? invariant(doc.definitions.length <= 1, 'Fragment must have exactly one definition.') : invariant(doc.definitions.length <= 1, 51);\n var fragmentDef = doc.definitions[0];\n __DEV__ ? invariant(fragmentDef.kind === 'FragmentDefinition', 'Must be a fragment definition.') : invariant(fragmentDef.kind === 'FragmentDefinition', 52);\n return fragmentDef;\n}\nexport function getMainDefinition(queryDoc) {\n checkDocument(queryDoc);\n var fragmentDefinition;\n for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n if (definition.kind === 'OperationDefinition') {\n var operation = definition.operation;\n if (operation === 'query' ||\n operation === 'mutation' ||\n operation === 'subscription') {\n return definition;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n fragmentDefinition = definition;\n }\n }\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n throw __DEV__ ? new InvariantError('Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.') : new InvariantError(53);\n}\nexport function getDefaultValues(definition) {\n var defaultValues = Object.create(null);\n var defs = definition && definition.variableDefinitions;\n if (defs && defs.length) {\n defs.forEach(function (def) {\n if (def.defaultValue) {\n valueToObjectRepresentation(defaultValues, def.variable.name, def.defaultValue);\n }\n });\n }\n return defaultValues;\n}\n//# sourceMappingURL=getFromAST.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport mergeRefs from '../mergeRefs';\nexport default function useMergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return React.useMemo(() => mergeRefs(...args), // eslint-disable-next-line\n [...args]);\n}","import inspect from \"../jsutils/inspect.mjs\";\nimport { isNode } from \"./ast.mjs\";\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport var QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: ['name', // Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n 'variableDefinitions', 'typeCondition', 'directives', 'selectionSet'],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: ['description', 'name', 'type', 'defaultValue', 'directives'],\n InterfaceTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields']\n};\nexport var BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to four permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n *\n * 2) Named visitors that trigger upon entering and leaving a node of\n * a specific kind.\n *\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n *\n * 4) Parallel visitors for entering and leaving nodes of a specific kind.\n *\n * visit(ast, {\n * enter: {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * },\n * leave: {\n * Kind(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n */\n\nexport function visit(root, visitor) {\n var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys;\n\n /* eslint-disable no-undef-init */\n var stack = undefined;\n var inArray = Array.isArray(root);\n var keys = [root];\n var index = -1;\n var edits = [];\n var node = undefined;\n var key = undefined;\n var parent = undefined;\n var path = [];\n var ancestors = [];\n var newRoot = root;\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n var isLeaving = index === keys.length;\n var isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n } else {\n var clone = {};\n\n for (var _i2 = 0, _Object$keys2 = Object.keys(node); _i2 < _Object$keys2.length; _i2++) {\n var k = _Object$keys2[_i2];\n clone[k] = node[k];\n }\n\n node = clone;\n }\n\n var editOffset = 0;\n\n for (var ii = 0; ii < edits.length; ii++) {\n var editKey = edits[ii][0];\n var editValue = edits[ii][1];\n\n if (inArray) {\n editKey -= editOffset;\n }\n\n if (inArray && editValue === null) {\n node.splice(editKey, 1);\n editOffset++;\n } else {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else {\n key = parent ? inArray ? index : keys[index] : undefined;\n node = parent ? parent[key] : newRoot;\n\n if (node === null || node === undefined) {\n continue;\n }\n\n if (parent) {\n path.push(key);\n }\n }\n\n var result = void 0;\n\n if (!Array.isArray(node)) {\n if (!isNode(node)) {\n throw new Error(\"Invalid AST Node: \".concat(inspect(node), \".\"));\n }\n\n var visitFn = getVisitFn(visitor, node.kind, isLeaving);\n\n if (visitFn) {\n result = visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _visitorKeys$node$kin;\n\n stack = {\n inArray: inArray,\n index: index,\n keys: keys,\n edits: edits,\n prev: stack\n };\n inArray = Array.isArray(node);\n keys = inArray ? node : (_visitorKeys$node$kin = visitorKeys[node.kind]) !== null && _visitorKeys$node$kin !== void 0 ? _visitorKeys$node$kin : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n newRoot = edits[edits.length - 1][1];\n }\n\n return newRoot;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n var skipping = new Array(visitors.length);\n return {\n enter: function enter(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n false);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n }\n },\n leave: function leave(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n true);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n }\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n var kindVisitor = visitor[kind];\n\n if (kindVisitor) {\n if (!isLeaving && typeof kindVisitor === 'function') {\n // { Kind() {} }\n return kindVisitor;\n }\n\n var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter;\n\n if (typeof kindSpecificVisitor === 'function') {\n // { Kind: { enter() {}, leave() {} } }\n return kindSpecificVisitor;\n }\n } else {\n var specificVisitor = isLeaving ? visitor.leave : visitor.enter;\n\n if (specificVisitor) {\n if (typeof specificVisitor === 'function') {\n // { enter() {}, leave() {} }\n return specificVisitor;\n }\n\n var specificKindVisitor = specificVisitor[kind];\n\n if (typeof specificKindVisitor === 'function') {\n // { enter: { Kind() {} }, leave: { Kind() {} } }\n return specificKindVisitor;\n }\n }\n }\n}\n","export var AuthErrorStrings;\n(function (AuthErrorStrings) {\n AuthErrorStrings[\"DEFAULT_MSG\"] = \"Authentication Error\";\n AuthErrorStrings[\"EMPTY_EMAIL\"] = \"Email cannot be empty\";\n AuthErrorStrings[\"EMPTY_PHONE\"] = \"Phone number cannot be empty\";\n AuthErrorStrings[\"EMPTY_USERNAME\"] = \"Username cannot be empty\";\n AuthErrorStrings[\"INVALID_USERNAME\"] = \"The username should either be a string or one of the sign in types\";\n AuthErrorStrings[\"EMPTY_PASSWORD\"] = \"Password cannot be empty\";\n AuthErrorStrings[\"EMPTY_CODE\"] = \"Confirmation code cannot be empty\";\n AuthErrorStrings[\"SIGN_UP_ERROR\"] = \"Error creating account\";\n AuthErrorStrings[\"NO_MFA\"] = \"No valid MFA method provided\";\n AuthErrorStrings[\"INVALID_MFA\"] = \"Invalid MFA type\";\n AuthErrorStrings[\"EMPTY_CHALLENGE\"] = \"Challenge response cannot be empty\";\n AuthErrorStrings[\"NO_USER_SESSION\"] = \"Failed to get the session because the user is empty\";\n AuthErrorStrings[\"NETWORK_ERROR\"] = \"Network Error\";\n AuthErrorStrings[\"DEVICE_CONFIG\"] = \"Device tracking has not been configured in this User Pool\";\n AuthErrorStrings[\"AUTOSIGNIN_ERROR\"] = \"Please use your credentials to sign in\";\n})(AuthErrorStrings || (AuthErrorStrings = {}));\n//# sourceMappingURL=AuthErrorStrings.js.map","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","import * as React from 'react';\nimport { StyleSheet, Text, Platform, TextProps, ViewProps } from 'react-native';\n\nexport type IconProps = {\n name: string;\n color: string;\n size: number;\n direction: 'rtl' | 'ltr';\n allowFontScaling?: boolean;\n};\n\nlet MaterialCommunityIcons: React.ComponentType<\n TextProps & {\n name: string;\n color: string;\n size: number;\n pointerEvents?: ViewProps['pointerEvents'];\n }\n>;\n\ntry {\n // Optionally require vector-icons\n MaterialCommunityIcons =\n require('react-native-vector-icons/MaterialCommunityIcons').default;\n} catch (e) {\n let isErrorLogged = false;\n\n // Fallback component for icons\n MaterialCommunityIcons = ({ name, color, size, ...rest }) => {\n /* eslint-disable no-console */\n if (!isErrorLogged) {\n if (\n !/(Cannot find module|Module not found|Cannot resolve module)/.test(\n (e as any).message\n )\n ) {\n console.error(e);\n }\n\n console.warn(\n `Tried to use the icon '${name}' in a component from 'react-native-paper', but 'react-native-vector-icons/MaterialCommunityIcons' could not be loaded.`,\n `To remove this warning, try installing 'react-native-vector-icons' or use another method to specify icon: https://callstack.github.io/react-native-paper/icons.html.`\n );\n\n isErrorLogged = true;\n }\n\n return (\n \n □\n \n );\n };\n}\n\nexport const accessibilityProps =\n Platform.OS === 'web'\n ? {\n role: 'img',\n focusable: false,\n }\n : {\n accessibilityElementsHidden: true,\n importantForAccessibility:\n 'no-hide-descendants' as 'no-hide-descendants',\n };\n\nconst defaultIcon = ({\n name,\n color,\n size,\n direction,\n allowFontScaling,\n}: IconProps) => (\n \n);\n\nconst styles = StyleSheet.create({\n icon: {\n backgroundColor: 'transparent',\n },\n});\n\nexport default defaultIcon;\n","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { Auth } from './Auth';\nimport { CognitoHostedUIIdentityProvider, GRAPHQL_AUTH_MODE, } from './types/Auth';\nimport { CognitoUser, CookieStorage, appendToCognitoUserAgent, } from 'amazon-cognito-identity-js';\nimport { AuthErrorStrings } from './common/AuthErrorStrings';\n/**\n * @deprecated use named import\n */\nexport default Auth;\nexport { Auth, CognitoUser, CookieStorage, CognitoHostedUIIdentityProvider, appendToCognitoUserAgent, AuthErrorStrings, GRAPHQL_AUTH_MODE, };\n//# sourceMappingURL=index.js.map","import {\n lessThan,\n multiply,\n sub,\n add,\n divide,\n greaterThan,\n lessOrEq,\n eq,\n} from '../operators';\nimport invariant from 'invariant';\n\nimport AnimatedNode from '../core/AnimatedNode';\nimport { createAnimatedCond as cond } from '../core/AnimatedCond';\nimport { createAnimatedFunction as proc } from '../core/AnimatedFunction';\n\nconst interpolateInternalSingleProc = proc(function (\n value,\n inS,\n inE,\n outS,\n outE\n) {\n const progress = divide(sub(value, inS), sub(inE, inS));\n // logic below was made in order to provide a compatibility witn an Animated API\n const resultForNonZeroRange = add(outS, multiply(progress, sub(outE, outS)));\n const result = cond(\n eq(inS, inE),\n cond(lessOrEq(value, inS), outS, outE),\n resultForNonZeroRange\n );\n return result;\n});\n\nfunction interpolateInternalSingle(value, inputRange, outputRange, offset) {\n const inS = inputRange[offset];\n const inE = inputRange[offset + 1];\n const outS = outputRange[offset];\n const outE = outputRange[offset + 1];\n return interpolateInternalSingleProc(value, inS, inE, outS, outE);\n}\n\nfunction interpolateInternal(value, inputRange, outputRange, offset = 0) {\n if (inputRange.length - offset === 2) {\n return interpolateInternalSingle(value, inputRange, outputRange, offset);\n }\n return cond(\n lessThan(value, inputRange[offset + 1]),\n interpolateInternalSingle(value, inputRange, outputRange, offset),\n interpolateInternal(value, inputRange, outputRange, offset + 1)\n );\n}\n\nexport const Extrapolate = {\n EXTEND: 'extend',\n CLAMP: 'clamp',\n IDENTITY: 'identity',\n};\n\nfunction checkNonDecreasing(name, arr) {\n for (let i = 1; i < arr.length; ++i) {\n // We can't validate animated nodes in JS.\n if (arr[i] instanceof AnimatedNode || arr[i - 1] instanceof AnimatedNode)\n continue;\n invariant(\n arr[i] >= arr[i - 1],\n '%s must be monotonically non-decreasing. (%s)',\n name,\n arr\n );\n }\n}\n\nfunction checkMinElements(name, arr) {\n invariant(\n arr.length >= 2,\n '%s must have at least 2 elements. (%s)',\n name,\n arr\n );\n}\n\nfunction checkValidNumbers(name, arr) {\n for (let i = 0; i < arr.length; i++) {\n // We can't validate animated nodes in JS.\n if (arr[i] instanceof AnimatedNode || typeof arr[i] !== 'number') continue;\n invariant(\n Number.isFinite(arr[i]),\n '%s cannot include %s. (%s)',\n name,\n arr[i],\n arr\n );\n }\n}\n\nfunction convertToRadians(outputRange) {\n for (const [i, value] of outputRange.entries()) {\n if (typeof value === 'string' && value.endsWith('deg')) {\n outputRange[i] = parseFloat(value) * (Math.PI / 180);\n } else if (typeof value === 'string' && value.endsWith('rad')) {\n outputRange[i] = parseFloat(value);\n }\n }\n}\n\nexport default function interpolate(value, config) {\n const {\n inputRange,\n outputRange,\n extrapolate = Extrapolate.EXTEND,\n extrapolateLeft,\n extrapolateRight,\n } = config;\n\n checkMinElements('inputRange', inputRange);\n checkValidNumbers('inputRange', inputRange);\n checkMinElements('outputRange', outputRange);\n checkValidNumbers('outputRange', outputRange);\n checkNonDecreasing('inputRange', inputRange);\n invariant(\n inputRange.length === outputRange.length,\n 'inputRange and outputRange must be the same length.'\n );\n\n convertToRadians(outputRange);\n const left = extrapolateLeft || extrapolate;\n const right = extrapolateRight || extrapolate;\n let output = interpolateInternal(value, inputRange, outputRange);\n\n if (left === Extrapolate.CLAMP) {\n output = cond(lessThan(value, inputRange[0]), outputRange[0], output);\n } else if (left === Extrapolate.IDENTITY) {\n output = cond(lessThan(value, inputRange[0]), value, output);\n }\n\n if (right === Extrapolate.CLAMP) {\n output = cond(\n greaterThan(value, inputRange[inputRange.length - 1]),\n outputRange[outputRange.length - 1],\n output\n );\n } else if (right === Extrapolate.IDENTITY) {\n output = cond(\n greaterThan(value, inputRange[inputRange.length - 1]),\n value,\n output\n );\n }\n\n return output;\n}\n","import { isJestEnv } from '../utils';\nimport { GestureType } from './gestures/gesture';\nimport { GestureEvent, HandlerStateChangeEvent } from './gestureHandlerCommon';\n\nexport const handlerIDToTag: Record = {};\nconst gestures = new Map();\nconst oldHandlers = new Map();\nconst testIDs = new Map();\n\nlet handlerTag = 1;\n\nexport function getNextHandlerTag(): number {\n return handlerTag++;\n}\n\nexport function registerHandler(\n handlerTag: number,\n handler: GestureType,\n testID?: string\n) {\n gestures.set(handlerTag, handler);\n if (isJestEnv() && testID) {\n testIDs.set(testID, handlerTag);\n }\n}\n\nexport function registerOldGestureHandler(\n handlerTag: number,\n handler: GestureHandlerCallbacks\n) {\n oldHandlers.set(handlerTag, handler);\n}\n\nexport function unregisterHandler(handlerTag: number, testID?: string) {\n gestures.delete(handlerTag);\n if (isJestEnv() && testID) {\n testIDs.delete(testID);\n }\n}\n\nexport function findHandler(handlerTag: number) {\n return gestures.get(handlerTag);\n}\n\nexport function findOldGestureHandler(handlerTag: number) {\n return oldHandlers.get(handlerTag);\n}\n\nexport function findHandlerByTestID(testID: string) {\n const handlerTag = testIDs.get(testID);\n if (handlerTag !== undefined) {\n return findHandler(handlerTag) ?? null;\n }\n return null;\n}\n\nexport interface GestureHandlerCallbacks {\n onGestureEvent: (event: GestureEvent) => void;\n onGestureStateChange: (event: HandlerStateChangeEvent) => void;\n}\n","import { defineAnimation } from './util';\nimport { Platform } from 'react-native';\nexport function withDecay(userConfig, callback) {\n 'worklet';\n return defineAnimation(0, () => {\n 'worklet';\n var _a;\n const config = {\n deceleration: 0.998,\n velocityFactor: Platform.OS !== 'web' ? 1 : 1000,\n velocity: 0,\n };\n if (userConfig) {\n Object.keys(userConfig).forEach((key) => (config[key] = userConfig[key]));\n }\n const VELOCITY_EPS = Platform.OS !== 'web' ? 1 : 1 / 20;\n const SLOPE_FACTOR = 0.1;\n function decay(animation, now) {\n const { lastTimestamp, startTimestamp, initialVelocity, current, velocity, } = animation;\n const deltaTime = Math.min(now - lastTimestamp, 64);\n const v = velocity *\n Math.exp(-(1 - config.deceleration) * (now - startTimestamp) * SLOPE_FACTOR);\n animation.current =\n current + (v * config.velocityFactor * deltaTime) / 1000; // /1000 because time is in ms not in s\n animation.velocity = v;\n animation.lastTimestamp = now;\n if (config.clamp) {\n if (initialVelocity < 0 && animation.current <= config.clamp[0]) {\n animation.current = config.clamp[0];\n return true;\n }\n else if (initialVelocity > 0 &&\n animation.current >= config.clamp[1]) {\n animation.current = config.clamp[1];\n return true;\n }\n }\n return Math.abs(v) < VELOCITY_EPS;\n }\n function validateConfig() {\n if (config.clamp) {\n if (!Array.isArray(config.clamp)) {\n throw Error(`config.clamp must be an array but is ${typeof config.clamp}`);\n }\n if (config.clamp.length !== 2) {\n throw Error(`clamp array must contain 2 items but is given ${config.clamp.length}`);\n }\n }\n if (config.velocityFactor <= 0) {\n throw Error(`config.velocityFactor must be greather then 0 but is ${config.velocityFactor}`);\n }\n }\n function onStart(animation, value, now) {\n animation.current = value;\n animation.lastTimestamp = now;\n animation.startTimestamp = now;\n animation.initialVelocity = config.velocity;\n validateConfig();\n }\n return {\n onFrame: decay,\n onStart,\n callback,\n velocity: (_a = config.velocity) !== null && _a !== void 0 ? _a : 0,\n initialVelocity: 0,\n current: 0,\n lastTimestamp: 0,\n startTimestamp: 0,\n };\n });\n}\n","import { defineAnimation } from './util';\nexport function withRepeat(_nextAnimation, numberOfReps = 2, reverse = false, callback) {\n 'worklet';\n return defineAnimation(_nextAnimation, () => {\n 'worklet';\n const nextAnimation = typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;\n function repeat(animation, now) {\n const finished = nextAnimation.onFrame(nextAnimation, now);\n animation.current = nextAnimation.current;\n if (finished) {\n animation.reps += 1;\n // call inner animation's callback on every repetition\n // as the second argument the animation's current value is passed\n if (nextAnimation.callback) {\n nextAnimation.callback(true /* finished */, animation.current);\n }\n if (numberOfReps > 0 && animation.reps >= numberOfReps) {\n return true;\n }\n const startValue = reverse\n ? nextAnimation.current\n : animation.startValue;\n if (reverse) {\n nextAnimation.toValue = animation.startValue;\n animation.startValue = startValue;\n }\n nextAnimation.onStart(nextAnimation, startValue, now, nextAnimation.previousAnimation);\n return false;\n }\n return false;\n }\n const repCallback = (finished) => {\n if (callback) {\n callback(finished);\n }\n // when cancelled call inner animation's callback\n if (!finished && nextAnimation.callback) {\n nextAnimation.callback(false /* finished */);\n }\n };\n function onStart(animation, value, now, previousAnimation) {\n animation.startValue = value;\n animation.reps = 0;\n nextAnimation.onStart(nextAnimation, value, now, previousAnimation);\n }\n return {\n isHigherOrder: true,\n onFrame: repeat,\n onStart,\n reps: 0,\n current: nextAnimation.current,\n callback: repCallback,\n startValue: 0,\n };\n });\n}\n/**\n * @deprecated Kept for backward compatibility. Will be removed soon.\n */\nexport function repeat(_nextAnimation, numberOfReps = 2, reverse = false, callback) {\n 'worklet';\n console.warn('Method `repeat` is deprecated. Please use `withRepeat` instead');\n return withRepeat(_nextAnimation, numberOfReps, reverse, callback);\n}\nexport function loop(nextAnimation, numberOfLoops = 1) {\n 'worklet';\n console.warn('Method `loop` is deprecated. Please use `withRepeat` instead');\n return repeat(nextAnimation, Math.round(numberOfLoops * 2), true);\n}\n","import { defineAnimation } from './util';\nimport { withTiming } from './timing';\nimport { ColorProperties } from '../UpdateProps';\nimport { processColor } from '../Colors';\n// resolves path to value for nested objects\n// if path cannot be resolved returns undefined\nexport function resolvePath(obj, path) {\n 'worklet';\n const keys = Array.isArray(path) ? path : [path];\n return keys.reduce((acc, current) => {\n if (Array.isArray(acc) && typeof current === 'number') {\n return acc[current];\n }\n else if (typeof acc === 'object' && current in acc) {\n return acc[current];\n }\n return undefined;\n }, obj);\n}\nexport function setPath(obj, path, value) {\n 'worklet';\n const keys = Array.isArray(path) ? path : [path];\n let currObj = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n // creates entry if there isn't one\n currObj = currObj;\n if (!(keys[i] in currObj)) {\n // if next key is a number create an array\n if (typeof keys[i + 1] === 'number') {\n currObj[keys[i]] = [];\n }\n else {\n currObj[keys[i]] = {};\n }\n }\n currObj = currObj[keys[i]];\n }\n currObj[keys[keys.length - 1]] =\n value;\n}\nexport function withStyleAnimation(styleAnimations) {\n 'worklet';\n return defineAnimation({}, () => {\n 'worklet';\n const onFrame = (animation, now) => {\n let stillGoing = false;\n const entriesToCheck = [\n { value: animation.styleAnimations, path: [] },\n ];\n while (entriesToCheck.length > 0) {\n const currentEntry = entriesToCheck.pop();\n if (Array.isArray(currentEntry.value)) {\n for (let index = 0; index < currentEntry.value.length; index++) {\n entriesToCheck.push({\n value: currentEntry.value[index],\n path: currentEntry.path.concat(index),\n });\n }\n }\n else if (typeof currentEntry.value === 'object' &&\n currentEntry.value.onFrame === undefined) {\n // nested object\n for (const key of Object.keys(currentEntry.value)) {\n entriesToCheck.push({\n value: currentEntry.value[key],\n path: currentEntry.path.concat(key),\n });\n }\n }\n else {\n const currentStyleAnimation = currentEntry.value;\n if (currentStyleAnimation.finished) {\n continue;\n }\n const finished = currentStyleAnimation.onFrame(currentStyleAnimation, now);\n if (finished) {\n currentStyleAnimation.finished = true;\n if (currentStyleAnimation.callback) {\n currentStyleAnimation.callback(true);\n }\n }\n else {\n stillGoing = true;\n }\n if (ColorProperties.includes(currentEntry.path[0])) {\n currentStyleAnimation.current = processColor(currentStyleAnimation.current);\n }\n setPath(animation.current, currentEntry.path, currentStyleAnimation.current);\n }\n }\n return !stillGoing;\n };\n const onStart = (animation, value, now, previousAnimation) => {\n const entriesToCheck = [{ value: styleAnimations, path: [] }];\n while (entriesToCheck.length > 0) {\n const currentEntry = entriesToCheck.pop();\n if (Array.isArray(currentEntry.value)) {\n for (let index = 0; index < currentEntry.value.length; index++) {\n entriesToCheck.push({\n value: currentEntry.value[index],\n path: currentEntry.path.concat(index),\n });\n }\n }\n else if (typeof currentEntry.value === 'object' &&\n currentEntry.value.onStart === undefined) {\n for (const key of Object.keys(currentEntry.value)) {\n entriesToCheck.push({\n value: currentEntry.value[key],\n path: currentEntry.path.concat(key),\n });\n }\n }\n else {\n const prevAnimation = resolvePath(previousAnimation === null || previousAnimation === void 0 ? void 0 : previousAnimation.styleAnimations, currentEntry.path);\n let prevVal = resolvePath(value, currentEntry.path);\n if (prevAnimation && !prevVal) {\n prevVal = prevAnimation.current;\n }\n if (prevVal === undefined) {\n console.warn(`Initial values for animation are missing for property ${currentEntry.path.join('.')}`);\n }\n setPath(animation.current, currentEntry.path, prevVal);\n let currentAnimation;\n if (typeof currentEntry.value !== 'object' ||\n !currentEntry.value.onStart) {\n currentAnimation = withTiming(currentEntry.value, { duration: 0 });\n setPath(animation.styleAnimations, currentEntry.path, currentAnimation);\n }\n else {\n currentAnimation = currentEntry.value;\n }\n currentAnimation.onStart(currentAnimation, prevVal, now, prevAnimation);\n }\n }\n };\n const callback = (finished) => {\n if (!finished) {\n const animationsToCheck = [\n styleAnimations,\n ];\n while (animationsToCheck.length > 0) {\n const currentAnimation = animationsToCheck.pop();\n if (Array.isArray(currentAnimation)) {\n for (const element of currentAnimation) {\n animationsToCheck.push(element);\n }\n }\n else if (typeof currentAnimation === 'object' &&\n currentAnimation.onStart === undefined) {\n for (const value of Object.values(currentAnimation)) {\n animationsToCheck.push(value);\n }\n }\n else {\n const currentStyleAnimation = currentAnimation;\n if (!currentStyleAnimation.finished &&\n currentStyleAnimation.callback) {\n currentStyleAnimation.callback(false);\n }\n }\n }\n }\n };\n return {\n isHigherOrder: true,\n onFrame,\n onStart,\n current: {},\n styleAnimations,\n callback,\n };\n });\n}\n","import invariant from 'invariant';\nimport { val } from '../val';\nimport AnimatedNode from './AnimatedNode';\nimport InternalAnimatedValue from './InternalAnimatedValue';\n\nclass AnimatedBlock extends AnimatedNode {\n _array;\n\n constructor(array) {\n invariant(\n array.every((el) => el instanceof AnimatedNode),\n `Reanimated: Animated.block node argument should be an array with elements of type AnimatedNode. One or more of them are not AnimatedNodes`\n );\n super({ type: 'block', block: array }, array);\n this._array = array;\n }\n\n toString() {\n return `AnimatedBlock, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n let result;\n this._array.forEach((node) => {\n result = val(node);\n });\n return result;\n }\n}\n\nexport function createAnimatedBlock(items) {\n return adapt(items);\n}\n\nfunction nodify(v) {\n if (typeof v === 'object' && v?.__isProxy) {\n if (!v.__val) {\n v.__val = new InternalAnimatedValue(0);\n }\n return v.__val;\n }\n // TODO: cache some typical static values (e.g. 0, 1, -1)\n return v instanceof AnimatedNode\n ? v\n : InternalAnimatedValue.valueForConstant(v);\n}\n\nexport function adapt(v) {\n return Array.isArray(v)\n ? new AnimatedBlock(v.map((node) => adapt(node)))\n : nodify(v);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * \n */\n'use strict';\n/*\n * @returns {bool} true if different, false if equal\n */\n\nvar deepDiffer = function deepDiffer(one, two, maxDepth) {\n if (maxDepth === void 0) {\n maxDepth = -1;\n }\n\n if (maxDepth === 0) {\n return true;\n }\n\n if (one === two) {\n // Short circuit on identical object references instead of traversing them.\n return false;\n }\n\n if (typeof one === 'function' && typeof two === 'function') {\n // We consider all functions equal\n return false;\n }\n\n if (typeof one !== 'object' || one === null) {\n // Primitives can be directly compared\n return one !== two;\n }\n\n if (typeof two !== 'object' || two === null) {\n // We know they are different because the previous case would have triggered\n // otherwise.\n return true;\n }\n\n if (one.constructor !== two.constructor) {\n return true;\n }\n\n if (Array.isArray(one)) {\n // We know two is also an array because the constructors are equal\n var len = one.length;\n\n if (two.length !== len) {\n return true;\n }\n\n for (var ii = 0; ii < len; ii++) {\n if (deepDiffer(one[ii], two[ii], maxDepth - 1)) {\n return true;\n }\n }\n } else {\n for (var key in one) {\n if (deepDiffer(one[key], two[key], maxDepth - 1)) {\n return true;\n }\n }\n\n for (var twoKey in two) {\n // The only case we haven't checked yet is keys that are in two but aren't\n // in one, which means they are different.\n if (one[twoKey] === undefined && two[twoKey] !== undefined) {\n return true;\n }\n }\n }\n\n return false;\n};\n\nexport default deepDiffer;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nvar _excluded = [\"numColumns\", \"columnWrapperStyle\", \"removeClippedSubviews\"];\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\nimport Platform from '../../../exports/Platform';\nimport deepDiffer from '../deepDiffer';\nimport * as React from 'react';\nimport View from '../../../exports/View';\nimport VirtualizedList from '../VirtualizedList';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport invariant from 'fbjs/lib/invariant';\nimport { keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\n\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n// removeClippedSubviewsOrDefault(this.props.removeClippedSubviews)\nfunction removeClippedSubviewsOrDefault(removeClippedSubviews) {\n return removeClippedSubviews !== null && removeClippedSubviews !== void 0 ? removeClippedSubviews : Platform.OS === 'android';\n} // numColumnsOrDefault(this.props.numColumns)\n\n\nfunction numColumnsOrDefault(numColumns) {\n return numColumns !== null && numColumns !== void 0 ? numColumns : 1;\n}\n\n/**\n * A performant interface for rendering simple, flat lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Optional horizontal mode.\n * - Configurable viewability callbacks.\n * - Header support.\n * - Footer support.\n * - Separator support.\n * - Pull to Refresh.\n * - Scroll loading.\n * - ScrollToIndex support.\n *\n * If you need section support, use [``](docs/sectionlist.html).\n *\n * Minimal Example:\n *\n * {item.key}}\n * />\n *\n * More complex, multi-select example demonstrating `PureComponent` usage for perf optimization and avoiding bugs.\n *\n * - By binding the `onPressItem` handler, the props will remain `===` and `PureComponent` will\n * prevent wasteful re-renders unless the actual `id`, `selected`, or `title` props change, even\n * if the components rendered in `MyListItem` did not have such optimizations.\n * - By passing `extraData={this.state}` to `FlatList` we make sure `FlatList` itself will re-render\n * when the `state.selected` changes. Without setting this prop, `FlatList` would not know it\n * needs to re-render any items because it is also a `PureComponent` and the prop comparison will\n * not show any changes.\n * - `keyExtractor` tells the list to use the `id`s for the react keys instead of the default `key` property.\n *\n *\n * class MyListItem extends React.PureComponent {\n * _onPress = () => {\n * this.props.onPressItem(this.props.id);\n * };\n *\n * render() {\n * const textColor = this.props.selected ? \"red\" : \"black\";\n * return (\n * \n * \n * \n * {this.props.title}\n * \n * \n * \n * );\n * }\n * }\n *\n * class MultiSelectList extends React.PureComponent {\n * state = {selected: (new Map(): Map)};\n *\n * _keyExtractor = (item, index) => item.id;\n *\n * _onPressItem = (id: string) => {\n * // updater functions are preferred for transactional updates\n * this.setState((state) => {\n * // copy the map rather than modifying state.\n * const selected = new Map(state.selected);\n * selected.set(id, !selected.get(id)); // toggle\n * return {selected};\n * });\n * };\n *\n * _renderItem = ({item}) => (\n * \n * );\n *\n * render() {\n * return (\n * \n * );\n * }\n * }\n *\n * This is a convenience wrapper around [``](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n * Also inherits [ScrollView Props](docs/scrollview.html#props), unless it is nested in another FlatList of same orientation.\n */\nclass FlatList extends React.PureComponent {\n /**\n * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n */\n scrollToEnd(params) {\n if (this._listRef) {\n this._listRef.scrollToEnd(params);\n }\n }\n /**\n * Scrolls to the item at the specified index such that it is positioned in the viewable area\n * such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the\n * middle. `viewOffset` is a fixed number of pixels to offset the final target position.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n\n\n scrollToIndex(params) {\n if (this._listRef) {\n this._listRef.scrollToIndex(params);\n }\n }\n /**\n * Requires linear scan through data - use `scrollToIndex` instead if possible.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n\n\n scrollToItem(params) {\n if (this._listRef) {\n this._listRef.scrollToItem(params);\n }\n }\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList\n */\n\n\n scrollToOffset(params) {\n if (this._listRef) {\n this._listRef.scrollToOffset(params);\n }\n }\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n\n\n recordInteraction() {\n if (this._listRef) {\n this._listRef.recordInteraction();\n }\n }\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n\n\n flashScrollIndicators() {\n if (this._listRef) {\n this._listRef.flashScrollIndicators();\n }\n }\n /**\n * Provides a handle to the underlying scroll responder.\n */\n\n\n getScrollResponder() {\n if (this._listRef) {\n return this._listRef.getScrollResponder();\n }\n }\n /**\n * Provides a reference to the underlying host component\n */\n\n\n getNativeScrollRef() {\n if (this._listRef) {\n /* $FlowFixMe[incompatible-return] Suppresses errors found when fixing\n * TextInput typing */\n return this._listRef.getScrollRef();\n }\n }\n\n getScrollableNode() {\n if (this._listRef) {\n return this._listRef.getScrollableNode();\n }\n }\n\n setNativeProps(props) {\n if (this._listRef) {\n this._listRef.setNativeProps(props);\n }\n }\n\n constructor(_props) {\n super(_props);\n this._virtualizedListPairs = [];\n\n this._captureRef = ref => {\n this._listRef = ref;\n };\n\n this._getItem = (data, index) => {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n\n if (numColumns > 1) {\n var ret = [];\n\n for (var kk = 0; kk < numColumns; kk++) {\n var _item = data[index * numColumns + kk];\n\n if (_item != null) {\n ret.push(_item);\n }\n }\n\n return ret;\n } else {\n return data[index];\n }\n };\n\n this._getItemCount = data => {\n if (data) {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;\n } else {\n return 0;\n }\n };\n\n this._keyExtractor = (items, index) => {\n var _this$props$keyExtrac;\n\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var keyExtractor = (_this$props$keyExtrac = this.props.keyExtractor) !== null && _this$props$keyExtrac !== void 0 ? _this$props$keyExtrac : defaultKeyExtractor;\n\n if (numColumns > 1) {\n if (Array.isArray(items)) {\n return items.map((item, kk) => keyExtractor(item, index * numColumns + kk)).join(':');\n } else {\n invariant(Array.isArray(items), 'FlatList: Encountered internal consistency error, expected each item to consist of an ' + 'array with 1-%s columns; instead, received a single item.', numColumns);\n }\n } else {\n // $FlowFixMe[incompatible-call] Can't call keyExtractor with an array\n return keyExtractor(items, index);\n }\n };\n\n this._renderer = () => {\n var _this$props = this.props,\n ListItemComponent = _this$props.ListItemComponent,\n renderItem = _this$props.renderItem,\n columnWrapperStyle = _this$props.columnWrapperStyle;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var virtualizedListRenderKey = ListItemComponent ? 'ListItemComponent' : 'renderItem';\n\n var renderer = props => {\n if (ListItemComponent) {\n // $FlowFixMe[not-a-component] Component isn't valid\n // $FlowFixMe[incompatible-type-arg] Component isn't valid\n // $FlowFixMe[incompatible-return] Component isn't valid\n return /*#__PURE__*/React.createElement(ListItemComponent, props);\n } else if (renderItem) {\n // $FlowFixMe[incompatible-call]\n return renderItem(props);\n } else {\n return null;\n }\n };\n\n return {\n /* $FlowFixMe[invalid-computed-prop] (>=0.111.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.111 was deployed.\n * To see the error, delete this comment and run Flow. */\n [virtualizedListRenderKey]: info => {\n if (numColumns > 1) {\n var _item2 = info.item,\n _index = info.index;\n invariant(Array.isArray(_item2), 'Expected array of items with numColumns > 1');\n return /*#__PURE__*/React.createElement(View, {\n style: StyleSheet.compose(styles.row, columnWrapperStyle)\n }, _item2.map((it, kk) => {\n var element = renderer({\n item: it,\n index: _index * numColumns + kk,\n separators: info.separators\n });\n return element != null ? /*#__PURE__*/React.createElement(React.Fragment, {\n key: kk\n }, element) : null;\n }));\n } else {\n return renderer(info);\n }\n }\n };\n };\n\n this._checkProps(this.props);\n\n if (this.props.viewabilityConfigCallbackPairs) {\n this._virtualizedListPairs = this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityConfig: pair.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(pair.onViewableItemsChanged)\n }));\n } else if (this.props.onViewableItemsChanged) {\n this._virtualizedListPairs.push({\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n viewabilityConfig: this.props.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(this.props.onViewableItemsChanged)\n });\n }\n }\n\n componentDidUpdate(prevProps) {\n invariant(prevProps.numColumns === this.props.numColumns, 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' + 'changing the number of columns to force a fresh render of the component.');\n invariant(prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged, 'Changing onViewableItemsChanged on the fly is not supported');\n invariant(!deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig), 'Changing viewabilityConfig on the fly is not supported');\n invariant(prevProps.viewabilityConfigCallbackPairs === this.props.viewabilityConfigCallbackPairs, 'Changing viewabilityConfigCallbackPairs on the fly is not supported');\n\n this._checkProps(this.props);\n }\n\n _checkProps(props) {\n var getItem = props.getItem,\n getItemCount = props.getItemCount,\n horizontal = props.horizontal,\n columnWrapperStyle = props.columnWrapperStyle,\n onViewableItemsChanged = props.onViewableItemsChanged,\n viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n invariant(!getItem && !getItemCount, 'FlatList does not support custom data formats.');\n\n if (numColumns > 1) {\n invariant(!horizontal, 'numColumns does not support horizontal.');\n } else {\n invariant(!columnWrapperStyle, 'columnWrapperStyle not supported for single column lists');\n }\n\n invariant(!(onViewableItemsChanged && viewabilityConfigCallbackPairs), 'FlatList does not support setting both onViewableItemsChanged and ' + 'viewabilityConfigCallbackPairs.');\n }\n\n _pushMultiColumnViewable(arr, v) {\n var _this$props$keyExtrac2;\n\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var keyExtractor = (_this$props$keyExtrac2 = this.props.keyExtractor) !== null && _this$props$keyExtrac2 !== void 0 ? _this$props$keyExtrac2 : defaultKeyExtractor;\n v.item.forEach((item, ii) => {\n invariant(v.index != null, 'Missing index!');\n var index = v.index * numColumns + ii;\n arr.push(_objectSpread(_objectSpread({}, v), {}, {\n item,\n key: keyExtractor(item, index),\n index\n }));\n });\n }\n\n _createOnViewableItemsChanged(onViewableItemsChanged) {\n return info => {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n\n if (onViewableItemsChanged) {\n if (numColumns > 1) {\n var changed = [];\n var viewableItems = [];\n info.viewableItems.forEach(v => this._pushMultiColumnViewable(viewableItems, v));\n info.changed.forEach(v => this._pushMultiColumnViewable(changed, v));\n onViewableItemsChanged({\n viewableItems,\n changed\n });\n } else {\n onViewableItemsChanged(info);\n }\n }\n };\n }\n\n render() {\n var _this$props2 = this.props,\n numColumns = _this$props2.numColumns,\n columnWrapperStyle = _this$props2.columnWrapperStyle,\n _removeClippedSubviews = _this$props2.removeClippedSubviews,\n restProps = _objectWithoutPropertiesLoose(_this$props2, _excluded);\n\n return /*#__PURE__*/React.createElement(VirtualizedList, _extends({}, restProps, {\n getItem: this._getItem,\n getItemCount: this._getItemCount,\n keyExtractor: this._keyExtractor,\n ref: this._captureRef,\n viewabilityConfigCallbackPairs: this._virtualizedListPairs,\n removeClippedSubviews: removeClippedSubviewsOrDefault(_removeClippedSubviews)\n }, this._renderer()));\n }\n\n}\n\nvar styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n }\n});\nexport default FlatList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport FlatList from '../../vendor/react-native/FlatList';\nexport default FlatList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport Dimensions from '../Dimensions';\n/**\n * PixelRatio gives access to the device pixel density.\n */\n\nexport default class PixelRatio {\n /**\n * Returns the device pixel density.\n */\n static get() {\n return Dimensions.get('window').scale;\n }\n /**\n * No equivalent for Web\n */\n\n\n static getFontScale() {\n return Dimensions.get('window').fontScale || PixelRatio.get();\n }\n /**\n * Converts a layout size (dp) to pixel size (px).\n * Guaranteed to return an integer number.\n */\n\n\n static getPixelSizeForLayoutSize(layoutSize) {\n return Math.round(layoutSize * PixelRatio.get());\n }\n /**\n * Rounds a layout size (dp) to the nearest layout size that corresponds to\n * an integer number of pixels. For example, on a device with a PixelRatio\n * of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to\n * exactly (8.33 * 3) = 25 pixels.\n */\n\n\n static roundToNearestPixel(layoutSize) {\n var ratio = PixelRatio.get();\n return Math.round(layoutSize * ratio) / ratio;\n }\n\n}","import * as React from 'react';\nimport {\n Platform,\n UIManager,\n DeviceEventEmitter,\n EmitterSubscription,\n} from 'react-native';\n// @ts-ignore - it isn't typed by TS & don't have definitelyTyped types\nimport deepEqual from 'lodash/isEqual';\nimport RNGestureHandlerModule from '../RNGestureHandlerModule';\nimport type RNGestureHandlerModuleWeb from '../RNGestureHandlerModule.web';\nimport { State } from '../State';\nimport {\n handlerIDToTag,\n getNextHandlerTag,\n registerOldGestureHandler,\n} from './handlersRegistry';\n\nimport {\n BaseGestureHandlerProps,\n filterConfig,\n GestureEvent,\n HandlerStateChangeEvent,\n findNodeHandle,\n scheduleFlushOperations,\n} from './gestureHandlerCommon';\nimport { ValueOf } from '../typeUtils';\nimport { isFabric, isJestEnv, tagMessage } from '../utils';\nimport { ActionType } from '../ActionType';\nimport { PressabilityDebugView } from './PressabilityDebugView';\n\nconst UIManagerAny = UIManager as any;\n\nconst customGHEventsConfigFabricAndroid = {\n topOnGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n topOnGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\n};\n\nconst customGHEventsConfig = {\n onGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n onGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\n\n // When using React Native Gesture Handler for Animated.event with useNativeDriver: true\n // on Android with Fabric enabled, the native part still sends the native events to JS\n // but prefixed with \"top\". We cannot simply rename the events above so they are prefixed\n // with \"top\" instead of \"on\" because in such case Animated.events would not be registered.\n // That's why we need to register another pair of event names.\n // The incoming events will be queued but never handled.\n // Without this piece of code below, you'll get the following JS error:\n // Unsupported top level event type \"topOnGestureHandlerEvent\" dispatched\n ...(isFabric() &&\n Platform.OS === 'android' &&\n customGHEventsConfigFabricAndroid),\n};\n\n// Add gesture specific events to genericDirectEventTypes object exported from UIManager\n// native module.\n// Once new event types are registered with react it is possible to dispatch these\n// events to all kind of native views.\nUIManagerAny.genericDirectEventTypes = {\n ...UIManagerAny.genericDirectEventTypes,\n ...customGHEventsConfig,\n};\n// In newer versions of RN the `genericDirectEventTypes` is located in the object\n// returned by UIManager.getViewManagerConfig('getConstants') or in older RN UIManager.getConstants(), we need to add it there as well to make\n// it compatible with RN 61+\nconst UIManagerConstants =\n UIManagerAny.getViewManagerConfig?.('getConstants') ??\n UIManagerAny.getConstants?.();\n\nif (UIManagerConstants) {\n UIManagerConstants.genericDirectEventTypes = {\n ...UIManagerConstants.genericDirectEventTypes,\n ...customGHEventsConfig,\n };\n}\n\n// Wrap JS responder calls and notify gesture handler manager\nconst {\n setJSResponder: oldSetJSResponder = () => {\n //no operation\n },\n clearJSResponder: oldClearJSResponder = () => {\n //no operation\n },\n} = UIManagerAny;\nUIManagerAny.setJSResponder = (tag: number, blockNativeResponder: boolean) => {\n RNGestureHandlerModule.handleSetJSResponder(tag, blockNativeResponder);\n oldSetJSResponder(tag, blockNativeResponder);\n};\nUIManagerAny.clearJSResponder = () => {\n RNGestureHandlerModule.handleClearJSResponder();\n oldClearJSResponder();\n};\n\nlet allowTouches = true;\nconst DEV_ON_ANDROID = __DEV__ && Platform.OS === 'android';\n// Toggled inspector blocks touch events in order to allow inspecting on Android\n// This needs to be a global variable in order to set initial state for `allowTouches` property in Handler component\nif (DEV_ON_ANDROID) {\n DeviceEventEmitter.addListener('toggleElementInspector', () => {\n allowTouches = !allowTouches;\n });\n}\n\ntype HandlerProps> = Readonly<\n React.PropsWithChildren>\n>;\nfunction hasUnresolvedRefs>(\n props: HandlerProps\n) {\n // TODO(TS) - add type for extract arg\n const extract = (refs: any | any[]) => {\n if (!Array.isArray(refs)) {\n return refs && refs.current === null;\n }\n return refs.some((r) => r && r.current === null);\n };\n return extract(props['simultaneousHandlers']) || extract(props['waitFor']);\n}\n\nconst stateToPropMappings = {\n [State.UNDETERMINED]: undefined,\n [State.BEGAN]: 'onBegan',\n [State.FAILED]: 'onFailed',\n [State.CANCELLED]: 'onCancelled',\n [State.ACTIVE]: 'onActivated',\n [State.END]: 'onEnded',\n} as const;\n\ntype CreateHandlerArgs> =\n Readonly<{\n name: string;\n allowedProps: Readonly[]>;\n config: Readonly>;\n transformProps?: (props: HandlerPropsT) => HandlerPropsT;\n customNativeProps?: Readonly;\n }>;\n\n// TODO(TS) fix event types\ntype InternalEventHandlers = {\n onGestureHandlerEvent?: (event: any) => void;\n onGestureHandlerStateChange?: (event: any) => void;\n};\n\nconst UNRESOLVED_REFS_RETRY_LIMIT = 1;\n\n// TODO(TS) - make sure that BaseGestureHandlerProps doesn't need other generic parameter to work with custom properties.\nexport default function createHandler<\n T extends BaseGestureHandlerProps,\n U extends Record\n>({\n name,\n allowedProps = [],\n config = {},\n transformProps,\n customNativeProps = [],\n}: CreateHandlerArgs): React.ComponentType> {\n interface HandlerState {\n allowTouches: boolean;\n }\n class Handler extends React.Component<\n T & InternalEventHandlers,\n HandlerState\n > {\n static displayName = name;\n\n private handlerTag: number;\n private config: Record;\n private propsRef: React.MutableRefObject;\n private viewNode: any;\n private viewTag?: number;\n private updateEnqueued: ReturnType | null = null;\n private inspectorToggleListener?: EmitterSubscription;\n\n constructor(props: T & InternalEventHandlers) {\n super(props);\n this.handlerTag = getNextHandlerTag();\n this.config = {};\n this.propsRef = React.createRef();\n this.state = { allowTouches };\n if (props.id) {\n if (handlerIDToTag[props.id] !== undefined) {\n throw new Error(`Handler with ID \"${props.id}\" already registered`);\n }\n handlerIDToTag[props.id] = this.handlerTag;\n }\n }\n\n componentDidMount() {\n const props: HandlerProps = this.props;\n\n if (DEV_ON_ANDROID) {\n this.inspectorToggleListener = DeviceEventEmitter.addListener(\n 'toggleElementInspector',\n () => {\n this.setState((_) => ({ allowTouches }));\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n }\n );\n }\n if (hasUnresolvedRefs(props)) {\n // If there are unresolved refs (e.g. \".current\" has not yet been set)\n // passed as `simultaneousHandlers` or `waitFor`, we enqueue a call to\n // _update method that will try to update native handler props using\n // setImmediate. This makes it so update() function gets called after all\n // react components are mounted and we expect the missing ref object to\n // be resolved by then.\n this.updateEnqueued = setImmediate(() => {\n this.updateEnqueued = null;\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n });\n }\n\n this.createGestureHandler(\n filterConfig(\n transformProps ? transformProps(this.props) : this.props,\n [...allowedProps, ...customNativeProps],\n config\n )\n );\n\n this.attachGestureHandler(findNodeHandle(this.viewNode) as number); // TODO(TS) - check if this can be null\n }\n\n componentDidUpdate() {\n const viewTag = findNodeHandle(this.viewNode);\n if (this.viewTag !== viewTag) {\n this.attachGestureHandler(viewTag as number); // TODO(TS) - check interaction between _viewTag & findNodeHandle\n }\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n }\n\n componentWillUnmount() {\n this.inspectorToggleListener?.remove();\n RNGestureHandlerModule.dropGestureHandler(this.handlerTag);\n scheduleFlushOperations();\n if (this.updateEnqueued) {\n clearImmediate(this.updateEnqueued);\n }\n // We can't use this.props.id directly due to TS generic type narrowing bug, see https://github.com/microsoft/TypeScript/issues/13995 for more context\n const handlerID: string | undefined = this.props.id;\n if (handlerID) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete handlerIDToTag[handlerID];\n }\n }\n\n private onGestureHandlerEvent = (event: GestureEvent) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n if (typeof this.props.onGestureEvent === 'function') {\n this.props.onGestureEvent?.(event);\n }\n } else {\n this.props.onGestureHandlerEvent?.(event);\n }\n };\n\n // TODO(TS) - make sure this is right type for event\n private onGestureHandlerStateChange = (\n event: HandlerStateChangeEvent\n ) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n if (typeof this.props.onHandlerStateChange === 'function') {\n this.props.onHandlerStateChange?.(event);\n }\n\n const state: ValueOf = event.nativeEvent.state;\n const stateEventName = stateToPropMappings[state];\n const eventHandler = stateEventName && this.props[stateEventName];\n if (eventHandler && typeof eventHandler === 'function') {\n eventHandler(event);\n }\n } else {\n this.props.onGestureHandlerStateChange?.(event);\n }\n };\n\n private refHandler = (node: any) => {\n this.viewNode = node;\n\n const child = React.Children.only(this.props.children);\n // TODO(TS) fix ref type\n const { ref }: any = child;\n if (ref !== null) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n };\n\n private createGestureHandler = (\n newConfig: Readonly>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.createGestureHandler(\n name,\n this.handlerTag,\n newConfig\n );\n };\n\n private attachGestureHandler = (newViewTag: number) => {\n this.viewTag = newViewTag;\n\n if (Platform.OS === 'web') {\n // typecast due to dynamic resolution, attachGestureHandler should have web version signature in this branch\n (\n RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler\n )(\n this.handlerTag,\n newViewTag,\n ActionType.JS_FUNCTION_OLD_API, // ignored on web\n this.propsRef\n );\n } else {\n registerOldGestureHandler(this.handlerTag, {\n onGestureEvent: this.onGestureHandlerEvent,\n onGestureStateChange: this.onGestureHandlerStateChange,\n });\n\n const actionType = (() => {\n if (\n this.props?.onGestureEvent &&\n 'current' in this.props.onGestureEvent\n ) {\n // Reanimated worklet\n return ActionType.REANIMATED_WORKLET;\n } else if (\n this.props?.onGestureEvent &&\n '__isNative' in this.props.onGestureEvent\n ) {\n // Animated.event with useNativeDriver: true\n return ActionType.NATIVE_ANIMATED_EVENT;\n } else {\n // JS callback or Animated.event with useNativeDriver: false\n return ActionType.JS_FUNCTION_OLD_API;\n }\n })();\n\n RNGestureHandlerModule.attachGestureHandler(\n this.handlerTag,\n newViewTag,\n actionType\n );\n }\n\n scheduleFlushOperations();\n };\n\n private updateGestureHandler = (\n newConfig: Readonly>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.updateGestureHandler(this.handlerTag, newConfig);\n scheduleFlushOperations();\n };\n\n private update(remainingTries: number) {\n const props: HandlerProps = this.props;\n\n // When ref is set via a function i.e. `ref={(r) => refObject.current = r}` instead of\n // `ref={refObject}` it's possible that it won't be resolved in time. Seems like trying\n // again is easy enough fix.\n if (hasUnresolvedRefs(props) && remainingTries > 0) {\n this.updateEnqueued = setImmediate(() => {\n this.updateEnqueued = null;\n this.update(remainingTries - 1);\n });\n } else {\n const newConfig = filterConfig(\n transformProps ? transformProps(this.props) : this.props,\n [...allowedProps, ...customNativeProps],\n config\n );\n if (!deepEqual(this.config, newConfig)) {\n this.updateGestureHandler(newConfig);\n }\n }\n }\n\n setNativeProps(updates: any) {\n const mergedProps = { ...this.props, ...updates };\n const newConfig = filterConfig(\n transformProps ? transformProps(mergedProps) : mergedProps,\n [...allowedProps, ...customNativeProps],\n config\n );\n this.updateGestureHandler(newConfig);\n }\n\n render() {\n let gestureEventHandler = this.onGestureHandlerEvent;\n // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n type OnGestureEventHandlers = {\n onGestureEvent?: BaseGestureHandlerProps['onGestureEvent'];\n onGestureHandlerEvent?: InternalEventHandlers['onGestureHandlerEvent'];\n };\n const { onGestureEvent, onGestureHandlerEvent }: OnGestureEventHandlers =\n this.props;\n if (onGestureEvent && typeof onGestureEvent !== 'function') {\n // If it's not a method it should be an native Animated.event\n // object. We set it directly as the handler for the view\n // In this case nested handlers are not going to be supported\n if (onGestureHandlerEvent) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n gestureEventHandler = onGestureEvent;\n } else {\n if (\n onGestureHandlerEvent &&\n typeof onGestureHandlerEvent !== 'function'\n ) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n }\n\n let gestureStateEventHandler = this.onGestureHandlerStateChange;\n // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n type OnGestureStateChangeHandlers = {\n onHandlerStateChange?: BaseGestureHandlerProps['onHandlerStateChange'];\n onGestureHandlerStateChange?: InternalEventHandlers['onGestureHandlerStateChange'];\n };\n const {\n onHandlerStateChange,\n onGestureHandlerStateChange,\n }: OnGestureStateChangeHandlers = this.props;\n if (onHandlerStateChange && typeof onHandlerStateChange !== 'function') {\n // If it's not a method it should be an native Animated.event\n // object. We set it directly as the handler for the view\n // In this case nested handlers are not going to be supported\n if (onGestureHandlerStateChange) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n gestureStateEventHandler = onHandlerStateChange;\n } else {\n if (\n onGestureHandlerStateChange &&\n typeof onGestureHandlerStateChange !== 'function'\n ) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n }\n const events = {\n onGestureHandlerEvent: this.state.allowTouches\n ? gestureEventHandler\n : undefined,\n onGestureHandlerStateChange: this.state.allowTouches\n ? gestureStateEventHandler\n : undefined,\n };\n\n this.propsRef.current = events;\n\n let child: any = null;\n try {\n child = React.Children.only(this.props.children);\n } catch (e) {\n throw new Error(\n tagMessage(\n `${name} got more than one view as a child. If you want the gesture to work on multiple views, wrap them with a common parent and attach the gesture to that view.`\n )\n );\n }\n\n let grandChildren = child.props.children;\n if (\n __DEV__ &&\n child.type &&\n (child.type === 'RNGestureHandlerButton' ||\n child.type.name === 'View' ||\n child.type.displayName === 'View')\n ) {\n grandChildren = React.Children.toArray(grandChildren);\n grandChildren.push(\n \n );\n }\n\n return React.cloneElement(\n child,\n {\n ref: this.refHandler,\n collapsable: false,\n ...(isJestEnv()\n ? {\n handlerType: name,\n handlerTag: this.handlerTag,\n }\n : {}),\n testID: this.props.testID ?? child.props.testID,\n ...events,\n },\n grandChildren\n );\n }\n }\n return Handler;\n}\n","import { Animated } from 'react-native';\nconst {\n add,\n multiply\n} = Animated;\n\n/**\n * Use an Animated Node based on a condition. Similar to Reanimated's `cond`.\n *\n * @param condition Animated Node representing the condition, must be 0 or 1, 1 means `true`, 0 means `false`\n * @param main Animated Node to use if the condition is `true`\n * @param fallback Animated Node to use if the condition is `false`\n */\nexport default function conditional(condition, main, fallback) {\n // To implement this behavior, we multiply the main node with the condition.\n // So if condition is 0, result will be 0, and if condition is 1, result will be main node.\n // Then we multiple reverse of the condition (0 if condition is 1) with the fallback.\n // So if condition is 0, result will be fallback node, and if condition is 1, result will be 0,\n // This way, one of them will always be 0, and other one will be the value we need.\n // In the end we add them both together, 0 + value we need = value we need\n return add(multiply(condition, main), multiply(condition.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0]\n }), fallback));\n}\n//# sourceMappingURL=conditional.js.map","import { Animated, Platform } from 'react-native';\nimport conditional from '../utils/conditional';\nconst {\n add,\n multiply\n} = Animated;\n\n/**\n * Standard iOS-style slide in from the right.\n */\nexport function forHorizontalIOS(_ref) {\n let {\n current,\n next,\n inverted,\n layouts: {\n screen\n }\n } = _ref;\n const translateFocused = multiply(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.width, 0],\n extrapolate: 'clamp'\n }), inverted);\n const translateUnfocused = next ? multiply(next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, screen.width * -0.3],\n extrapolate: 'clamp'\n }), inverted) : 0;\n const overlayOpacity = current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 0.07],\n extrapolate: 'clamp'\n });\n const shadowOpacity = current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 0.3],\n extrapolate: 'clamp'\n });\n return {\n cardStyle: {\n transform: [\n // Translation for the animation of the current card\n {\n translateX: translateFocused\n },\n // Translation for the animation of the card on top of this\n {\n translateX: translateUnfocused\n }]\n },\n overlayStyle: {\n opacity: overlayOpacity\n },\n shadowStyle: {\n shadowOpacity\n }\n };\n}\n\n/**\n * Standard iOS-style slide in from the bottom (used for modals).\n */\nexport function forVerticalIOS(_ref2) {\n let {\n current,\n inverted,\n layouts: {\n screen\n }\n } = _ref2;\n const translateY = multiply(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height, 0],\n extrapolate: 'clamp'\n }), inverted);\n return {\n cardStyle: {\n transform: [{\n translateY\n }]\n }\n };\n}\n\n/**\n * Standard iOS-style modal animation in iOS 13.\n */\nexport function forModalPresentationIOS(_ref3) {\n let {\n index,\n current,\n next,\n inverted,\n layouts: {\n screen\n },\n insets\n } = _ref3;\n const hasNotchIos = Platform.OS === 'ios' && !Platform.isPad && !Platform.isTV && insets.top > 20;\n const isLandscape = screen.width > screen.height;\n const topOffset = isLandscape ? 0 : 10;\n const statusBarHeight = insets.top;\n const aspectRatio = screen.height / screen.width;\n const progress = add(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }), next ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }) : 0);\n const isFirst = index === 0;\n const translateY = multiply(progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [screen.height, isFirst ? 0 : topOffset, (isFirst ? statusBarHeight : 0) - topOffset * aspectRatio]\n }), inverted);\n const overlayOpacity = progress.interpolate({\n inputRange: [0, 1, 1.0001, 2],\n outputRange: [0, 0.3, 1, 1]\n });\n const scale = isLandscape ? 1 : progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [1, 1, screen.width ? 1 - topOffset * 2 / screen.width : 1]\n });\n const borderRadius = isLandscape ? 0 : isFirst ? progress.interpolate({\n inputRange: [0, 1, 1.0001, 2],\n outputRange: [0, 0, hasNotchIos ? 38 : 0, 10]\n }) : 10;\n return {\n cardStyle: {\n overflow: 'hidden',\n borderTopLeftRadius: borderRadius,\n borderTopRightRadius: borderRadius,\n // We don't need these for the animation\n // But different border radius for corners improves animation perf\n borderBottomLeftRadius: hasNotchIos ? borderRadius : 0,\n borderBottomRightRadius: hasNotchIos ? borderRadius : 0,\n marginTop: isFirst ? 0 : statusBarHeight,\n marginBottom: isFirst ? 0 : topOffset,\n transform: [{\n translateY\n }, {\n scale\n }]\n },\n overlayStyle: {\n opacity: overlayOpacity\n }\n };\n}\n\n/**\n * Standard Android-style fade in from the bottom for Android Oreo.\n */\nexport function forFadeFromBottomAndroid(_ref4) {\n let {\n current,\n inverted,\n layouts: {\n screen\n },\n closing\n } = _ref4;\n const translateY = multiply(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height * 0.08, 0],\n extrapolate: 'clamp'\n }), inverted);\n const opacity = conditional(closing, current.progress, current.progress.interpolate({\n inputRange: [0, 0.5, 0.9, 1],\n outputRange: [0, 0.25, 0.7, 1],\n extrapolate: 'clamp'\n }));\n return {\n cardStyle: {\n opacity,\n transform: [{\n translateY\n }]\n }\n };\n}\n\n/**\n * Standard Android-style reveal from the bottom for Android Pie.\n */\nexport function forRevealFromBottomAndroid(_ref5) {\n let {\n current,\n next,\n inverted,\n layouts: {\n screen\n }\n } = _ref5;\n const containerTranslateY = multiply(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height, 0],\n extrapolate: 'clamp'\n }), inverted);\n const cardTranslateYFocused = multiply(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height * (95.9 / 100) * -1, 0],\n extrapolate: 'clamp'\n }), inverted);\n const cardTranslateYUnfocused = next ? multiply(next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, screen.height * (2 / 100) * -1],\n extrapolate: 'clamp'\n }), inverted) : 0;\n const overlayOpacity = current.progress.interpolate({\n inputRange: [0, 0.36, 1],\n outputRange: [0, 0.1, 0.1],\n extrapolate: 'clamp'\n });\n return {\n containerStyle: {\n overflow: 'hidden',\n transform: [{\n translateY: containerTranslateY\n }]\n },\n cardStyle: {\n transform: [{\n translateY: cardTranslateYFocused\n }, {\n translateY: cardTranslateYUnfocused\n }]\n },\n overlayStyle: {\n opacity: overlayOpacity\n }\n };\n}\n\n/**\n * Standard Android-style zoom for Android 10.\n */\nexport function forScaleFromCenterAndroid(_ref6) {\n let {\n current,\n next,\n closing\n } = _ref6;\n const progress = add(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }), next ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }) : 0);\n const opacity = progress.interpolate({\n inputRange: [0, 0.75, 0.875, 1, 1.0825, 1.2075, 2],\n outputRange: [0, 0, 1, 1, 1, 1, 0]\n });\n const scale = conditional(closing, current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0.925, 1],\n extrapolate: 'clamp'\n }), progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [0.85, 1, 1.075]\n }));\n return {\n cardStyle: {\n opacity,\n transform: [{\n scale\n }]\n }\n };\n}\n\n/**\n * Standard bottom sheet slide in from the bottom for Android.\n */\nexport function forBottomSheetAndroid(_ref7) {\n let {\n current,\n inverted,\n layouts: {\n screen\n },\n closing\n } = _ref7;\n const translateY = multiply(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height * 0.8, 0],\n extrapolate: 'clamp'\n }), inverted);\n const opacity = conditional(closing, current.progress, current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }));\n const overlayOpacity = current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 0.3],\n extrapolate: 'clamp'\n });\n return {\n cardStyle: {\n opacity,\n transform: [{\n translateY\n }]\n },\n overlayStyle: {\n opacity: overlayOpacity\n }\n };\n}\n\n/**\n * Simple fade animation for dialogs\n */\nexport function forFadeFromCenter(_ref8) {\n let {\n current: {\n progress\n }\n } = _ref8;\n return {\n cardStyle: {\n opacity: progress.interpolate({\n inputRange: [0, 0.5, 0.9, 1],\n outputRange: [0, 0.25, 0.7, 1]\n })\n },\n overlayStyle: {\n opacity: progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 0.5],\n extrapolate: 'clamp'\n })\n }\n };\n}\nexport function forNoAnimation() {\n return {};\n}\n//# sourceMappingURL=CardStyleInterpolators.js.map","import { Animated, I18nManager } from 'react-native';\nconst {\n add\n} = Animated;\n\n/**\n * Standard UIKit style animation for the header where the title fades into the back button label.\n */\nexport function forUIKit(_ref) {\n let {\n current,\n next,\n layouts\n } = _ref;\n const defaultOffset = 100;\n const leftSpacing = 27;\n\n // The title and back button title should cross-fade to each other\n // When screen is fully open, the title should be in center, and back title should be on left\n // When screen is closing, the previous title will animate to back title's position\n // And back title will animate to title's position\n // We achieve this by calculating the offsets needed to translate title to back title's position and vice-versa\n const leftLabelOffset = layouts.leftLabel ? (layouts.screen.width - layouts.leftLabel.width) / 2 - leftSpacing : defaultOffset;\n const titleLeftOffset = layouts.title ? (layouts.screen.width - layouts.title.width) / 2 - leftSpacing : defaultOffset;\n\n // When the current title is animating to right, it is centered in the right half of screen in middle of transition\n // The back title also animates in from this position\n const rightOffset = layouts.screen.width / 4;\n const progress = add(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }), next ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }) : 0);\n return {\n leftButtonStyle: {\n opacity: progress.interpolate({\n inputRange: [0.3, 1, 1.5],\n outputRange: [0, 1, 0]\n })\n },\n leftLabelStyle: {\n transform: [{\n translateX: progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: I18nManager.getConstants().isRTL ? [-rightOffset, 0, leftLabelOffset] : [leftLabelOffset, 0, -rightOffset]\n })\n }]\n },\n rightButtonStyle: {\n opacity: progress.interpolate({\n inputRange: [0.3, 1, 1.5],\n outputRange: [0, 1, 0]\n })\n },\n titleStyle: {\n opacity: progress.interpolate({\n inputRange: [0, 0.4, 1, 1.5],\n outputRange: [0, 0.1, 1, 0]\n }),\n transform: [{\n translateX: progress.interpolate({\n inputRange: [0.5, 1, 2],\n outputRange: I18nManager.getConstants().isRTL ? [-titleLeftOffset, 0, rightOffset] : [rightOffset, 0, -titleLeftOffset]\n })\n }]\n },\n backgroundStyle: {\n transform: [{\n translateX: progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: I18nManager.getConstants().isRTL ? [-layouts.screen.width, 0, layouts.screen.width] : [layouts.screen.width, 0, -layouts.screen.width]\n })\n }]\n }\n };\n}\n\n/**\n * Simple fade animation for the header elements.\n */\nexport function forFade(_ref2) {\n let {\n current,\n next\n } = _ref2;\n const progress = add(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }), next ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }) : 0);\n const opacity = progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [0, 1, 0]\n });\n return {\n leftButtonStyle: {\n opacity\n },\n rightButtonStyle: {\n opacity\n },\n titleStyle: {\n opacity\n },\n backgroundStyle: {\n opacity: progress.interpolate({\n inputRange: [0, 1, 1.9, 2],\n outputRange: [0, 1, 1, 0]\n })\n }\n };\n}\n\n/**\n * Simple translate animation to translate the header to left.\n */\nexport function forSlideLeft(_ref3) {\n let {\n current,\n next,\n layouts: {\n screen\n }\n } = _ref3;\n const progress = add(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }), next ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }) : 0);\n const translateX = progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: I18nManager.getConstants().isRTL ? [-screen.width, 0, screen.width] : [screen.width, 0, -screen.width]\n });\n const transform = [{\n translateX\n }];\n return {\n leftButtonStyle: {\n transform\n },\n rightButtonStyle: {\n transform\n },\n titleStyle: {\n transform\n },\n backgroundStyle: {\n transform\n }\n };\n}\n\n/**\n * Simple translate animation to translate the header to right.\n */\nexport function forSlideRight(_ref4) {\n let {\n current,\n next,\n layouts: {\n screen\n }\n } = _ref4;\n const progress = add(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }), next ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }) : 0);\n const translateX = progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: I18nManager.getConstants().isRTL ? [screen.width, 0, -screen.width] : [-screen.width, 0, screen.width]\n });\n const transform = [{\n translateX\n }];\n return {\n leftButtonStyle: {\n transform\n },\n rightButtonStyle: {\n transform\n },\n titleStyle: {\n transform\n },\n backgroundStyle: {\n transform\n }\n };\n}\n\n/**\n * Simple translate animation to translate the header to slide up.\n */\nexport function forSlideUp(_ref5) {\n let {\n current,\n next,\n layouts: {\n header\n }\n } = _ref5;\n const progress = add(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }), next ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }) : 0);\n const translateY = progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [-header.height, 0, -header.height]\n });\n const transform = [{\n translateY\n }];\n return {\n leftButtonStyle: {\n transform\n },\n rightButtonStyle: {\n transform\n },\n titleStyle: {\n transform\n },\n backgroundStyle: {\n transform\n }\n };\n}\nexport function forNoAnimation() {\n return {};\n}\n//# sourceMappingURL=HeaderStyleInterpolators.js.map","import { processColor } from './Colors';\nimport { makeShareable, isConfigured } from './core';\nimport { _updatePropsJS } from './js-reanimated';\nimport { shouldBeUseWeb } from './PlatformChecker';\n// copied from react-native/Libraries/Components/View/ReactNativeStyleAttributes\nexport const colorProps = [\n 'backgroundColor',\n 'borderBottomColor',\n 'borderColor',\n 'borderLeftColor',\n 'borderRightColor',\n 'borderTopColor',\n 'borderStartColor',\n 'borderEndColor',\n 'color',\n 'shadowColor',\n 'textDecorationColor',\n 'tintColor',\n 'textShadowColor',\n 'overlayColor',\n];\nexport const ColorProperties = !isConfigured() ? [] : makeShareable(colorProps);\nlet updatePropsByPlatform;\nif (shouldBeUseWeb()) {\n updatePropsByPlatform = (_, updates, maybeViewRef) => {\n 'worklet';\n if (maybeViewRef) {\n maybeViewRef.items.forEach((item, _) => {\n _updatePropsJS(updates, item);\n });\n }\n };\n}\nelse {\n updatePropsByPlatform = (viewDescriptors, updates, _) => {\n 'worklet';\n for (const key in updates) {\n if (ColorProperties.indexOf(key) !== -1) {\n updates[key] = processColor(updates[key]);\n }\n }\n viewDescriptors.value.forEach((viewDescriptor) => {\n _updateProps(viewDescriptor.tag, viewDescriptor.name || 'RCTView', updates);\n });\n };\n}\nexport const updateProps = updatePropsByPlatform;\nexport const updatePropsJestWrapper = (viewDescriptors, updates, maybeViewRef, animatedStyle, adapters) => {\n adapters.forEach((adapter) => {\n adapter(updates);\n });\n animatedStyle.current.value = Object.assign(Object.assign({}, animatedStyle.current.value), updates);\n updateProps(viewDescriptors, updates, maybeViewRef);\n};\nexport default updateProps;\n","import AnimatedNode from './AnimatedNode';\nimport { val } from '../val';\n\nimport invariant from 'invariant';\nimport { adapt } from '../core/AnimatedBlock';\n\nfunction reduce(fn) {\n return (input) => input.reduce((a, b) => fn(val(a), val(b)));\n}\n\nfunction reduceFrom(fn, initialValue) {\n return (input) => input.reduce((a, b) => fn(val(a), val(b)), initialValue);\n}\n\nfunction infix(fn) {\n return (input) => fn(val(input[0]), val(input[1]));\n}\n\nfunction single(fn) {\n return (input) => fn(val(input[0]));\n}\n\nconst OPERATIONS = {\n // arithmetic\n add: reduce((a, b) => a + b),\n sub: reduce((a, b) => a - b),\n multiply: reduce((a, b) => a * b),\n divide: reduce((a, b) => a / b),\n pow: reduce((a, b) => Math.pow(a, b)),\n modulo: reduce((a, b) => ((a % b) + b) % b),\n sqrt: single((a) => Math.sqrt(a)),\n log: single((a) => Math.log(a)),\n sin: single((a) => Math.sin(a)),\n cos: single((a) => Math.cos(a)),\n tan: single((a) => Math.tan(a)),\n acos: single((a) => Math.acos(a)),\n asin: single((a) => Math.asin(a)),\n atan: single((a) => Math.atan(a)),\n exp: single((a) => Math.exp(a)),\n round: single((a) => Math.round(a)),\n abs: single((a) => Math.abs(a)),\n ceil: single((a) => Math.ceil(a)),\n floor: single((a) => Math.floor(a)),\n max: reduce((a, b) => Math.max(a, b)),\n min: reduce((a, b) => Math.min(a, b)),\n\n // logical\n and: reduceFrom((a, b) => a && b, true),\n or: reduceFrom((a, b) => a || b, false),\n not: single((a) => !a),\n defined: single((a) => a !== null && a !== undefined && !isNaN(a)),\n\n // comparing\n lessThan: infix((a, b) => a < b),\n /* eslint-disable-next-line eqeqeq */\n eq: infix((a, b) => a == b),\n greaterThan: infix((a, b) => a > b),\n lessOrEq: infix((a, b) => a <= b),\n greaterOrEq: infix((a, b) => a >= b),\n /* eslint-disable-next-line eqeqeq */\n neq: infix((a, b) => a != b),\n};\n\nclass AnimatedOperator extends AnimatedNode {\n _input;\n _op;\n _operation;\n\n constructor(operator, input) {\n invariant(\n typeof operator === 'string',\n `Reanimated: Animated.operator node first argument should be of type String, but got: ${operator}`\n );\n invariant(\n input.every(\n (el) =>\n el instanceof AnimatedNode ||\n typeof el === 'string' ||\n typeof el === 'number'\n ),\n `Reanimated: Animated.operator node second argument should be one or more of type AnimatedNode, String or Number but got ${input}`\n );\n super({ type: 'op', op: operator, input }, input);\n this._op = operator;\n this._input = input;\n }\n\n toString() {\n return `AnimatedOperator, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n if (!this._operation) {\n this._operation = OPERATIONS[this._op];\n invariant(this._operation, `Illegal operator '%s'`, this._op);\n }\n return this._operation(this._input);\n }\n}\n\nexport function createAnimatedOperator(name) {\n return (...args) => new AnimatedOperator(name, args.map(adapt));\n}\n","import { createAnimatedOperator } from './core/AnimatedOperator';\n\nconst operator = createAnimatedOperator;\n\nexport const add = operator('add');\nexport const sub = operator('sub');\nexport const multiply = operator('multiply');\nexport const divide = operator('divide');\nexport const pow = operator('pow');\nexport const modulo = operator('modulo');\nexport const sqrt = operator('sqrt');\nexport const log = operator('log');\nexport const sin = operator('sin');\nexport const cos = operator('cos');\nexport const exp = operator('exp');\nexport const round = operator('round');\nexport const lessThan = operator('lessThan');\nexport const eq = operator('eq');\nexport const greaterThan = operator('greaterThan');\nexport const lessOrEq = operator('lessOrEq');\nexport const greaterOrEq = operator('greaterOrEq');\nexport const neq = operator('neq');\nexport const and = operator('and');\nexport const or = operator('or');\nexport const defined = operator('defined');\nexport const not = operator('not');\nexport const tan = operator('tan');\nexport const acos = operator('acos');\nexport const asin = operator('asin');\nexport const atan = operator('atan');\nexport const abs = operator('abs');\nexport const ceil = operator('ceil');\nexport const floor = operator('floor');\nexport const max = operator('max');\nexport const min = operator('min');\n","export const TouchEventType = {\n UNDETERMINED: 0,\n TOUCHES_DOWN: 1,\n TOUCHES_MOVE: 2,\n TOUCHES_UP: 3,\n TOUCHES_CANCELLED: 4,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\nexport type TouchEventType = typeof TouchEventType[keyof typeof TouchEventType];\n","import invariant from 'invariant';\nimport { NativeModules } from 'react-native';\nimport { val } from '../val';\nimport { adapt, createAnimatedBlock as block } from './AnimatedBlock';\nimport { createAnimatedCall as call } from './AnimatedCall';\nimport AnimatedNode from './AnimatedNode';\n\nclass AnimatedDebug extends AnimatedNode {\n _message;\n _value;\n\n constructor(message, value) {\n invariant(\n typeof message === 'string',\n `Reanimated: Animated.debug node first argument should be of type string but got ${message}`\n );\n invariant(\n value instanceof AnimatedNode,\n `Reanimated: Animated.debug node second argument should be of type AnimatedNode but got ${value}`\n );\n super({ type: 'debug', message, value }, [value]);\n this._message = message;\n this._value = value;\n }\n\n toString() {\n return `AnimatedDebug, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n const value = val(this._value);\n console.log(this._message, value);\n return value;\n }\n}\n\nexport function createAnimatedDebug(message, value) {\n if (__DEV__) {\n // hack to detect if app is running in remote debugger\n // https://stackoverflow.com/questions/39022216\n const runningInRemoteDebugger = typeof atob !== 'undefined';\n\n // read the executionEnvironment off of expo-constants without explicitly\n // depending on the package\n const runningInExpoShell =\n NativeModules.NativeUnimoduleProxy?.modulesConstants?.ExponentConstants\n ?.executionEnvironment === 'storeClient';\n\n if (runningInRemoteDebugger || runningInExpoShell) {\n // When running in expo or remote debugger we use JS console.log to output variables\n // otherwise we output to the native console using native debug node\n return block([\n call([value], ([a]) => console.log(`${message} ${a}`)),\n value,\n ]);\n } else {\n return new AnimatedDebug(message, adapt(value));\n }\n }\n // Debugging is disabled in PROD\n return value;\n}\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));","import { __extends } from \"tslib\";\nimport { InvariantError, invariant } from \"../../utilities/globals/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { validateOperation, createOperation, transformOperation, } from \"../utils/index.js\";\nfunction passthrough(op, forward) {\n return (forward ? forward(op) : Observable.of());\n}\nfunction toLink(handler) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\nfunction isTerminating(link) {\n return link.request.length <= 1;\n}\nvar LinkError = (function (_super) {\n __extends(LinkError, _super);\n function LinkError(message, link) {\n var _this = _super.call(this, message) || this;\n _this.link = link;\n return _this;\n }\n return LinkError;\n}(Error));\nvar ApolloLink = (function () {\n function ApolloLink(request) {\n if (request)\n this.request = request;\n }\n ApolloLink.empty = function () {\n return new ApolloLink(function () { return Observable.of(); });\n };\n ApolloLink.from = function (links) {\n if (links.length === 0)\n return ApolloLink.empty();\n return links.map(toLink).reduce(function (x, y) { return x.concat(y); });\n };\n ApolloLink.split = function (test, left, right) {\n var leftLink = toLink(left);\n var rightLink = toLink(right || new ApolloLink(passthrough));\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(function (operation) {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n };\n ApolloLink.execute = function (link, operation) {\n return (link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of());\n };\n ApolloLink.concat = function (first, second) {\n var firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n __DEV__ && invariant.warn(new LinkError(\"You are calling concat on a terminating link, which will have no effect\", firstLink));\n return firstLink;\n }\n var nextLink = toLink(second);\n if (isTerminating(nextLink)) {\n return new ApolloLink(function (operation) {\n return firstLink.request(operation, function (op) { return nextLink.request(op) || Observable.of(); }) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return (firstLink.request(operation, function (op) {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of());\n });\n }\n };\n ApolloLink.prototype.split = function (test, left, right) {\n return this.concat(ApolloLink.split(test, left, right || new ApolloLink(passthrough)));\n };\n ApolloLink.prototype.concat = function (next) {\n return ApolloLink.concat(this, next);\n };\n ApolloLink.prototype.request = function (operation, forward) {\n throw __DEV__ ? new InvariantError('request is not implemented') : new InvariantError(21);\n };\n ApolloLink.prototype.onError = function (error, observer) {\n if (observer && observer.error) {\n observer.error(error);\n return false;\n }\n throw error;\n };\n ApolloLink.prototype.setOnError = function (fn) {\n this.onError = fn;\n return this;\n };\n return ApolloLink;\n}());\nexport { ApolloLink };\n//# sourceMappingURL=ApolloLink.js.map","import { __assign } from \"tslib\";\nexport function createOperation(starting, operation) {\n var context = __assign({}, starting);\n var setContext = function (next) {\n if (typeof next === 'function') {\n context = __assign(__assign({}, context), next(context));\n }\n else {\n context = __assign(__assign({}, context), next);\n }\n };\n var getContext = function () { return (__assign({}, context)); };\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext,\n });\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext,\n });\n return operation;\n}\n//# sourceMappingURL=createOperation.js.map","import { getOperationName } from \"../../utilities/index.js\";\nexport function transformOperation(operation) {\n var transformedOperation = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== 'string'\n ? getOperationName(transformedOperation.query) || undefined\n : '';\n }\n return transformedOperation;\n}\n//# sourceMappingURL=transformOperation.js.map","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport function validateOperation(operation) {\n var OPERATION_FIELDS = [\n 'query',\n 'operationName',\n 'variables',\n 'extensions',\n 'context',\n ];\n for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) {\n var key = _a[_i];\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw __DEV__ ? new InvariantError(\"illegal argument: \" + key) : new InvariantError(26);\n }\n }\n return operation;\n}\n//# sourceMappingURL=validateOperation.js.map","import { __extends } from \"tslib\";\nimport \"../utilities/globals/index.js\";\nimport { isNonEmptyArray } from \"../utilities/index.js\";\nexport function isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\nvar generateErrorMessage = function (err) {\n var message = '';\n if (isNonEmptyArray(err.graphQLErrors) || isNonEmptyArray(err.clientErrors)) {\n var errors = (err.graphQLErrors || [])\n .concat(err.clientErrors || []);\n errors.forEach(function (error) {\n var errorMessage = error\n ? error.message\n : 'Error message not found.';\n message += errorMessage + \"\\n\";\n });\n }\n if (err.networkError) {\n message += err.networkError.message + \"\\n\";\n }\n message = message.replace(/\\n$/, '');\n return message;\n};\nvar ApolloError = (function (_super) {\n __extends(ApolloError, _super);\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;\n var _this = _super.call(this, errorMessage) || this;\n _this.graphQLErrors = graphQLErrors || [];\n _this.clientErrors = clientErrors || [];\n _this.networkError = networkError || null;\n _this.message = errorMessage || generateErrorMessage(_this);\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n return ApolloError;\n}(Error));\nexport { ApolloError };\n//# sourceMappingURL=index.js.map","import * as React from 'react';\nimport {\n Image,\n I18nManager,\n Platform,\n ImageSourcePropType,\n} from 'react-native';\nimport { Consumer as SettingsConsumer } from '../core/settings';\nimport { accessibilityProps } from './MaterialCommunityIcon';\nimport { withTheme } from '../core/theming';\n\ntype IconSourceBase = string | ImageSourcePropType;\n\nexport type IconSource =\n | IconSourceBase\n | Readonly<{ source: IconSourceBase; direction: 'rtl' | 'ltr' | 'auto' }>\n | ((props: IconProps & { color: string }) => React.ReactNode);\n\ntype IconProps = {\n size: number;\n allowFontScaling?: boolean;\n};\n\ntype Props = IconProps & {\n color?: string;\n source: any;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\nconst isImageSource = (source: any) =>\n // source is an object with uri\n (typeof source === 'object' &&\n source !== null &&\n Object.prototype.hasOwnProperty.call(source, 'uri') &&\n typeof source.uri === 'string') ||\n // source is a module, e.g. - require('image')\n typeof source === 'number' ||\n // image url on web\n (Platform.OS === 'web' &&\n typeof source === 'string' &&\n (source.startsWith('data:image') ||\n /\\.(bmp|jpg|jpeg|png|gif|svg)$/.test(source)));\n\nconst getIconId = (source: any) => {\n if (\n typeof source === 'object' &&\n source !== null &&\n Object.prototype.hasOwnProperty.call(source, 'uri') &&\n typeof source.uri === 'string'\n ) {\n return source.uri;\n }\n\n return source;\n};\n\nexport const isValidIcon = (source: any) =>\n typeof source === 'string' ||\n typeof source === 'function' ||\n isImageSource(source);\n\nexport const isEqualIcon = (a: any, b: any) =>\n a === b || getIconId(a) === getIconId(b);\n\nconst Icon = ({ source, color, size, theme, ...rest }: Props) => {\n const direction =\n typeof source === 'object' && source.direction && source.source\n ? source.direction === 'auto'\n ? I18nManager.isRTL\n ? 'rtl'\n : 'ltr'\n : source.direction\n : null;\n const s =\n typeof source === 'object' && source.direction && source.source\n ? source.source\n : source;\n const iconColor = color || theme.colors.text;\n\n if (isImageSource(s)) {\n return (\n \n );\n } else if (typeof s === 'string') {\n return (\n \n {({ icon }) => {\n return icon({\n name: s,\n color: iconColor,\n size,\n direction,\n });\n }}\n \n );\n } else if (typeof s === 'function') {\n return s({ color: iconColor, size, direction });\n }\n\n return null;\n};\n\nexport default withTheme(Icon);\n","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); }\n\nimport inspect from \"./inspect.mjs\";\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n */\n\n// See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n// See: https://webpack.js.org/guides/production/\nexport default process.env.NODE_ENV === 'production' ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n// eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n return value instanceof constructor;\n} : // eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (_typeof(value) === 'object' && value !== null) {\n var _value$constructor;\n\n var className = constructor.prototype[Symbol.toStringTag];\n var valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value ? value[Symbol.toStringTag] : (_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name;\n\n if (className === valueClassName) {\n var stringifiedValue = inspect(value);\n throw new Error(\"Cannot use \".concat(className, \" \\\"\").concat(stringifiedValue, \"\\\" from another module or realm.\\n\\nEnsure that there is only one instance of \\\"graphql\\\" in the node_modules\\ndirectory. If different versions of \\\"graphql\\\" are the dependencies of other\\nrelied on modules, use \\\"resolutions\\\" to ensure only one version is installed.\\n\\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\\n\\nDuplicate \\\"graphql\\\" modules cannot be used at the same time since different\\nversions may have different capabilities and behavior. The data from one\\nversion used in the function from another could produce confusing and\\nspurious results.\"));\n }\n }\n\n return false;\n};\n","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport canUseDOM from '../../modules/canUseDom';\n\nfunction getQuery() {\n return canUseDOM && window.matchMedia != null ? window.matchMedia('(prefers-color-scheme: dark)') : null;\n}\n\nvar query = getQuery();\nvar listenerMapping = new WeakMap();\nvar Appearance = {\n getColorScheme() {\n return query && query.matches ? 'dark' : 'light';\n },\n\n addChangeListener(listener) {\n var mappedListener = listenerMapping.get(listener);\n\n if (!mappedListener) {\n mappedListener = _ref => {\n var matches = _ref.matches;\n listener({\n colorScheme: matches ? 'dark' : 'light'\n });\n };\n\n listenerMapping.set(listener, mappedListener);\n }\n\n if (query) {\n query.addListener(mappedListener);\n }\n\n function remove() {\n var mappedListener = listenerMapping.get(listener);\n\n if (query && mappedListener) {\n query.removeListener(mappedListener);\n }\n\n listenerMapping.delete(listener);\n }\n\n return {\n remove\n };\n }\n\n};\nexport default Appearance;","import { GraphQLError } from \"./GraphQLError.mjs\";\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(\"Syntax Error: \".concat(description), undefined, source, [position]);\n}\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nfunction emptyFunction() {}\n\nvar BackHandler = {\n exitApp: emptyFunction,\n\n addEventListener() {\n return {\n remove: emptyFunction\n };\n },\n\n removeEventListener: emptyFunction\n};\nexport default BackHandler;","import { Asset } from 'expo-asset';\n\n// @needsAudit\n/**\n * The different types of assets you can provide to the [`loadAsync()`](#loadAsync) function.\n * A font source can be a URI, a module ID, or an Expo Asset.\n */\nexport type FontSource = string | number | Asset | FontResource;\n\n// @needsAudit\n/**\n * An object used to dictate the resource that is loaded into the provided font namespace when used\n * with [`loadAsync`](#loadasync).\n */\nexport type FontResource = {\n uri?: string | number;\n /**\n * Sets the [`font-display`](#fontdisplay) property for a given typeface in the browser.\n * @platform web\n */\n display?: FontDisplay;\n default?: string;\n};\n\n// @needsAudit\n/**\n * Sets the [font-display](https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display)\n * for a given typeface. The default font value on web is `FontDisplay.AUTO`.\n * Even though setting the `fontDisplay` does nothing on native platforms, the default behavior\n * emulates `FontDisplay.SWAP` on flagship devices like iOS, Samsung, Pixel, etc. Default\n * functionality varies on One Plus devices. In the browser this value is set in the generated\n * `@font-face` CSS block and not as a style property meaning you cannot dynamically change this\n * value based on the element it's used in.\n * @platform web\n */\nexport enum FontDisplay {\n /**\n * __(Default)__ The font display strategy is defined by the user agent or platform.\n * This generally defaults to the text being invisible until the font is loaded.\n * Good for buttons or banners that require a specific treatment.\n */\n AUTO = 'auto',\n /**\n * Fallback text is rendered immediately with a default font while the desired font is loaded.\n * This is good for making the content appear to load instantly and is usually preferred.\n */\n SWAP = 'swap',\n /**\n * The text will be invisible until the font has loaded. If the font fails to load then nothing\n * will appear - it's best to turn this off when debugging missing text.\n */\n BLOCK = 'block',\n /**\n * Splits the behavior between `SWAP` and `BLOCK`.\n * There will be a [100ms timeout](https://developers.google.com/web/updates/2016/02/font-display?hl=en)\n * where the text with a custom font is invisible, after that the text will either swap to the\n * styled text or it'll show the unstyled text and continue to load the custom font. This is good\n * for buttons that need a custom font but should also be quickly available to screen-readers.\n */\n FALLBACK = 'fallback',\n /**\n * This works almost identically to `FALLBACK`, the only difference is that the browser will\n * decide to load the font based on slow connection speed or critical resource demand.\n */\n OPTIONAL = 'optional',\n}\n\n// @needsAudit\n/**\n * Object used to query fonts for unloading.\n */\nexport type UnloadFontOptions = Pick;\n","import { CodedError, Platform } from 'expo-modules-core';\nimport FontObserver from 'fontfaceobserver';\n\nimport { UnloadFontOptions } from './Font';\nimport { FontDisplay, FontResource } from './Font.types';\n\nfunction getFontFaceStyleSheet(): CSSStyleSheet | null {\n if (!Platform.isDOMAvailable) {\n return null;\n }\n const styleSheet = getStyleElement();\n return styleSheet.sheet ? (styleSheet.sheet as CSSStyleSheet) : null;\n}\n\ntype RuleItem = { rule: CSSFontFaceRule; index: number };\n\nfunction getFontFaceRules(): RuleItem[] {\n const sheet = getFontFaceStyleSheet();\n if (sheet) {\n // @ts-ignore: rule iterator\n const rules = [...sheet.cssRules];\n\n const items: RuleItem[] = [];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n if (rule instanceof CSSFontFaceRule) {\n items.push({ rule, index: i });\n }\n }\n return items;\n }\n return [];\n}\n\nfunction getFontFaceRulesMatchingResource(\n fontFamilyName: string,\n options?: UnloadFontOptions\n): RuleItem[] {\n const rules = getFontFaceRules();\n return rules.filter(({ rule }) => {\n return (\n rule.style.fontFamily === fontFamilyName &&\n (options && options.display ? options.display === (rule.style as any).fontDisplay : true)\n );\n });\n}\n\nexport default {\n get name(): string {\n return 'ExpoFontLoader';\n },\n\n async unloadAllAsync(): Promise {\n if (!Platform.isDOMAvailable) return;\n\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n document.removeChild(element);\n }\n },\n\n async unloadAsync(fontFamilyName: string, options?: UnloadFontOptions): Promise {\n const sheet = getFontFaceStyleSheet();\n if (!sheet) return;\n const items = getFontFaceRulesMatchingResource(fontFamilyName, options);\n for (const item of items) {\n sheet.deleteRule(item.index);\n }\n },\n\n async loadAsync(fontFamilyName: string, resource: FontResource): Promise {\n if (!Platform.isDOMAvailable) {\n return;\n }\n\n const canInjectStyle = document.head && typeof document.head.appendChild === 'function';\n if (!canInjectStyle) {\n throw new CodedError(\n 'ERR_WEB_ENVIRONMENT',\n `The browser's \\`document.head\\` element doesn't support injecting fonts.`\n );\n }\n\n const style = _createWebStyle(fontFamilyName, resource);\n document.head!.appendChild(style);\n\n if (!isFontLoadingListenerSupported()) {\n return;\n }\n\n return new FontObserver(fontFamilyName, { display: resource.display }).load();\n },\n};\n\nconst ID = 'expo-generated-fonts';\n\nfunction getStyleElement(): HTMLStyleElement {\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n return element;\n }\n const styleElement = document.createElement('style');\n styleElement.id = ID;\n styleElement.type = 'text/css';\n return styleElement;\n}\n\nfunction _createWebStyle(fontFamily: string, resource: FontResource): HTMLStyleElement {\n const fontStyle = `@font-face {\n font-family: ${fontFamily};\n src: url(${resource.uri});\n font-display: ${resource.display || FontDisplay.AUTO};\n }`;\n\n const styleElement = getStyleElement();\n // @ts-ignore: TypeScript does not define HTMLStyleElement::styleSheet. This is just for IE and\n // possibly can be removed if it's unnecessary on IE 11.\n if (styleElement.styleSheet) {\n const styleElementIE = styleElement as any;\n styleElementIE.styleSheet.cssText = styleElementIE.styleSheet.cssText\n ? styleElementIE.styleSheet.cssText + fontStyle\n : fontStyle;\n } else {\n const textNode = document.createTextNode(fontStyle);\n styleElement.appendChild(textNode);\n }\n return styleElement;\n}\n\nfunction isFontLoadingListenerSupported(): boolean {\n const { userAgent } = window.navigator;\n // WebKit is broken https://github.com/bramstein/fontfaceobserver/issues/95\n const isIOS = !!userAgent.match(/iPad|iPhone/i);\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n // Edge is broken https://github.com/bramstein/fontfaceobserver/issues/109#issuecomment-333356795\n const isEdge = userAgent.includes('Edge');\n // Internet Explorer\n const isIE = userAgent.includes('Trident');\n // Firefox\n const isFirefox = userAgent.includes('Firefox');\n return !isSafari && !isIOS && !isEdge && !isIE && !isFirefox;\n}\n","import { Asset } from 'expo-asset';\nimport { CodedError } from 'expo-modules-core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontDisplay } from './Font';\nimport { FontResource, FontSource } from './Font.types';\n\nfunction uriFromFontSource(asset: any): string | null {\n if (typeof asset === 'string') {\n return asset || null;\n } else if (typeof asset === 'object') {\n return asset.uri || asset.localUri || asset.default || null;\n } else if (typeof asset === 'number') {\n return uriFromFontSource(Asset.fromModule(asset));\n }\n return null;\n}\n\nfunction displayFromFontSource(asset: any): FontDisplay | undefined {\n return asset.display || FontDisplay.AUTO;\n}\n\nexport function fontFamilyNeedsScoping(name: string): boolean {\n return false;\n}\n\nexport function getAssetForSource(source: FontSource): Asset | FontResource {\n const uri = uriFromFontSource(source);\n const display = displayFromFontSource(source);\n\n if (!uri || typeof uri !== 'string') {\n throwInvalidSourceError(uri);\n }\n\n return {\n uri: uri!,\n display,\n };\n}\n\nfunction throwInvalidSourceError(source: any): never {\n let type: string = typeof source;\n if (type === 'object') type = JSON.stringify(source, null, 2);\n throw new CodedError(\n `ERR_FONT_SOURCE`,\n `Expected font asset of type \\`string | FontResource | Asset\\` instead got: ${type}`\n );\n}\n\nexport async function loadSingleFontAsync(\n name: string,\n input: Asset | FontResource\n): Promise {\n if (typeof input !== 'object' || typeof input.uri !== 'string' || (input as any).downloadAsync) {\n throwInvalidSourceError(input);\n }\n\n await ExpoFontLoader.loadAsync(name, input);\n}\n\nexport function getNativeFontName(name: string): string {\n return name;\n}\n","import { CodedError, UnavailabilityError } from 'expo-modules-core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontDisplay, FontSource, FontResource, UnloadFontOptions } from './Font.types';\nimport {\n getAssetForSource,\n loadSingleFontAsync,\n fontFamilyNeedsScoping,\n getNativeFontName,\n} from './FontLoader';\n\nconst loaded: { [name: string]: boolean } = {};\nconst loadPromises: { [name: string]: Promise } = {};\n\n// @needsAudit\n// note(brentvatne): at some point we may want to warn if this is called outside of a managed app.\n/**\n * Used to transform font family names to the scoped name. This does not need to\n * be called in standalone or bare apps but it will return unscoped font family\n * names if it is called in those contexts.\n *\n * @param fontFamily Name of font to process.\n * @returns Returns a name processed for use with the [current workflow](https://docs.expo.dev/introduction/managed-vs-bare/).\n */\nexport function processFontFamily(fontFamily: string | null): string | null {\n if (!fontFamily || !fontFamilyNeedsScoping(fontFamily)) {\n return fontFamily;\n }\n\n if (!isLoaded(fontFamily)) {\n if (__DEV__) {\n if (isLoading(fontFamily)) {\n console.error(\n `You started loading the font \"${fontFamily}\", but used it before it finished loading. You need to wait for Font.loadAsync to complete before using the font.`\n );\n } else {\n console.error(\n `fontFamily \"${fontFamily}\" is not a system font and has not been loaded through Font.loadAsync.\\n\n- If you intended to use a system font, make sure you typed the name correctly and that it is supported by your device operating system.\\n\n- If this is a custom font, be sure to load it with Font.loadAsync.`\n );\n }\n }\n\n return 'System';\n }\n\n return `ExpoFont-${getNativeFontName(fontFamily)}`;\n}\n\n// @needsAudit\n/**\n * Synchronously detect if the font for `fontFamily` has finished loading.\n *\n * @param fontFamily The name used to load the `FontResource`.\n * @return Returns `true` if the font has fully loaded.\n */\nexport function isLoaded(fontFamily: string): boolean {\n return fontFamily in loaded;\n}\n\n// @needsAudit\n/**\n * Synchronously detect if the font for `fontFamily` is still being loaded.\n *\n * @param fontFamily The name used to load the `FontResource`.\n * @returns Returns `true` if the font is still loading.\n */\nexport function isLoading(fontFamily: string): boolean {\n return fontFamily in loadPromises;\n}\n\n// @needsAudit\n/**\n * Highly efficient method for loading fonts from static or remote resources which can then be used\n * with the platform's native text elements. In the browser this generates a `@font-face` block in\n * a shared style sheet for fonts. No CSS is needed to use this method.\n *\n * @param fontFamilyOrFontMap string or map of values that can be used as the [`fontFamily`](https://reactnative.dev/docs/text#style)\n * style prop with React Native Text elements.\n * @param source the font asset that should be loaded into the `fontFamily` namespace.\n *\n * @return Returns a promise that fulfils when the font has loaded. Often you may want to wrap the\n * method in a `try/catch/finally` to ensure the app continues if the font fails to load.\n */\nexport async function loadAsync(\n fontFamilyOrFontMap: string | Record,\n source?: FontSource\n): Promise {\n if (typeof fontFamilyOrFontMap === 'object') {\n if (source) {\n throw new CodedError(\n `ERR_FONT_API`,\n `No fontFamily can be used for the provided source: ${source}. The second argument of \\`loadAsync()\\` can only be used with a \\`string\\` value as the first argument.`\n );\n }\n const fontMap = fontFamilyOrFontMap;\n const names = Object.keys(fontMap);\n await Promise.all(names.map((name) => loadFontInNamespaceAsync(name, fontMap[name])));\n return;\n }\n\n return await loadFontInNamespaceAsync(fontFamilyOrFontMap, source);\n}\n\nasync function loadFontInNamespaceAsync(\n fontFamily: string,\n source?: FontSource | null\n): Promise {\n if (!source) {\n throw new CodedError(\n `ERR_FONT_SOURCE`,\n `Cannot load null or undefined font source: { \"${fontFamily}\": ${source} }. Expected asset of type \\`FontSource\\` for fontFamily of name: \"${fontFamily}\"`\n );\n }\n\n if (loaded[fontFamily]) {\n return;\n }\n\n if (loadPromises.hasOwnProperty(fontFamily)) {\n return loadPromises[fontFamily];\n }\n\n // Important: we want all callers that concurrently try to load the same font to await the same\n // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n // promise in the program, we need to create the promise synchronously without yielding the event\n // loop from this point.\n\n const asset = getAssetForSource(source);\n loadPromises[fontFamily] = (async () => {\n try {\n await loadSingleFontAsync(fontFamily, asset);\n loaded[fontFamily] = true;\n } finally {\n delete loadPromises[fontFamily];\n }\n })();\n\n await loadPromises[fontFamily];\n}\n\n// @needsAudit\n/**\n * Unloads all the custom fonts. This is used for testing.\n */\nexport async function unloadAllAsync(): Promise {\n if (!ExpoFontLoader.unloadAllAsync) {\n throw new UnavailabilityError('expo-font', 'unloadAllAsync');\n }\n\n if (Object.keys(loadPromises).length) {\n throw new CodedError(\n `ERR_UNLOAD`,\n `Cannot unload fonts while they're still loading: ${Object.keys(loadPromises).join(', ')}`\n );\n }\n\n for (const fontFamily of Object.keys(loaded)) {\n delete loaded[fontFamily];\n }\n\n await ExpoFontLoader.unloadAllAsync();\n}\n\n// @needsAudit\n/**\n * Unload custom fonts matching the `fontFamily`s and display values provided.\n * Because fonts are automatically unloaded on every platform this is mostly used for testing.\n *\n * @param fontFamilyOrFontMap The name or names of the custom fonts that will be unloaded.\n * @param options When `fontFamilyOrFontMap` is a string, this should be the font source used to load\n * the custom font originally.\n */\nexport async function unloadAsync(\n fontFamilyOrFontMap: string | Record,\n options?: UnloadFontOptions\n): Promise {\n if (!ExpoFontLoader.unloadAsync) {\n throw new UnavailabilityError('expo-font', 'unloadAsync');\n }\n if (typeof fontFamilyOrFontMap === 'object') {\n if (options) {\n throw new CodedError(\n `ERR_FONT_API`,\n `No fontFamily can be used for the provided options: ${options}. The second argument of \\`unloadAsync()\\` can only be used with a \\`string\\` value as the first argument.`\n );\n }\n const fontMap = fontFamilyOrFontMap;\n const names = Object.keys(fontMap);\n await Promise.all(names.map((name) => unloadFontInNamespaceAsync(name, fontMap[name])));\n return;\n }\n\n return await unloadFontInNamespaceAsync(fontFamilyOrFontMap, options);\n}\n\nasync function unloadFontInNamespaceAsync(\n fontFamily: string,\n options?: UnloadFontOptions | null\n): Promise {\n if (!loaded[fontFamily]) {\n return;\n } else {\n delete loaded[fontFamily];\n }\n\n // Important: we want all callers that concurrently try to load the same font to await the same\n // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n // promise in the program, we need to create the promise synchronously without yielding the event\n // loop from this point.\n\n const nativeFontName = getNativeFontName(fontFamily);\n\n if (!nativeFontName) {\n throw new CodedError(`ERR_FONT_FAMILY`, `Cannot unload an empty name`);\n }\n\n await ExpoFontLoader.unloadAsync(nativeFontName, options);\n}\n\nexport { FontDisplay, FontSource, FontResource, UnloadFontOptions };\n","import { Platform, NativeModules } from 'react-native';\n\nconst NativeIconAPI =\n NativeModules.RNVectorIconsManager || NativeModules.RNVectorIconsModule;\n\nexport default function ensureNativeModuleAvailable() {\n if (!NativeIconAPI) {\n if (Platform.OS === 'android') {\n throw new Error(\n 'RNVectorIconsModule not available, did you properly integrate the module? Try running `react-native link react-native-vector-icons` and recompiling.'\n );\n }\n throw new Error(\n 'RNVectorIconsManager not available, did you add the library to your project and link with libRNVectorIcons.a? Try running `react-native link react-native-vector-icons` and recompiling.'\n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport { StyleSheet, Text, TouchableHighlight, View } from 'react-native';\nimport { pick, omit } from './object-utils';\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n alignItems: 'center',\n padding: 8,\n },\n touchable: {\n overflow: 'hidden',\n },\n icon: {\n marginRight: 10,\n },\n text: {\n fontWeight: '600',\n backgroundColor: 'transparent',\n },\n});\n\nconst IOS7_BLUE = '#007AFF';\n\nconst TEXT_PROP_NAMES = [\n 'ellipsizeMode',\n 'numberOfLines',\n 'textBreakStrategy',\n 'selectable',\n 'suppressHighlighting',\n 'allowFontScaling',\n 'adjustsFontSizeToFit',\n 'minimumFontScale',\n];\n\nconst TOUCHABLE_PROP_NAMES = [\n 'accessible',\n 'accessibilityLabel',\n 'accessibilityHint',\n 'accessibilityComponentType',\n 'accessibilityRole',\n 'accessibilityStates',\n 'accessibilityTraits',\n 'onFocus',\n 'onBlur',\n 'disabled',\n 'onPress',\n 'onPressIn',\n 'onPressOut',\n 'onLayout',\n 'onLongPress',\n 'nativeID',\n 'testID',\n 'delayPressIn',\n 'delayPressOut',\n 'delayLongPress',\n 'activeOpacity',\n 'underlayColor',\n 'selectionColor',\n 'onShowUnderlay',\n 'onHideUnderlay',\n 'hasTVPreferredFocus',\n 'tvParallaxProperties',\n];\n\nexport default function createIconButtonComponent(Icon) {\n return class IconButton extends PureComponent {\n static defaultProps = {\n backgroundColor: IOS7_BLUE,\n borderRadius: 5,\n color: 'white',\n size: 20,\n };\n\n render() {\n const { style, iconStyle, children, ...restProps } = this.props;\n\n const iconProps = pick(\n restProps,\n TEXT_PROP_NAMES,\n 'style',\n 'name',\n 'size',\n 'color'\n );\n const touchableProps = pick(restProps, TOUCHABLE_PROP_NAMES);\n const props = omit(\n restProps,\n Object.keys(iconProps),\n Object.keys(touchableProps),\n 'iconStyle',\n 'borderRadius',\n 'backgroundColor'\n );\n iconProps.style = iconStyle ? [styles.icon, iconStyle] : styles.icon;\n\n const colorStyle = pick(this.props, 'color');\n const blockStyle = pick(this.props, 'backgroundColor', 'borderRadius');\n\n return (\n \n \n \n {typeof children === 'string' ? (\n \n {children}\n \n ) : (\n children\n )}\n \n \n );\n }\n };\n}\n","import React, { PureComponent } from 'react';\nimport {\n NativeModules,\n Platform,\n PixelRatio,\n processColor,\n Text,\n} from 'react-native';\n\nimport ensureNativeModuleAvailable from './ensure-native-module-available';\nimport createIconSourceCache from './create-icon-source-cache';\nimport createIconButtonComponent from './icon-button';\n\nexport const NativeIconAPI =\n NativeModules.RNVectorIconsManager || NativeModules.RNVectorIconsModule;\n\nexport const DEFAULT_ICON_SIZE = 12;\nexport const DEFAULT_ICON_COLOR = 'black';\n\nexport default function createIconSet(\n glyphMap,\n fontFamily,\n fontFile,\n fontStyle\n) {\n // Android doesn't care about actual fontFamily name, it will only look in fonts folder.\n const fontBasename = fontFile\n ? fontFile.replace(/\\.(otf|ttf)$/, '')\n : fontFamily;\n\n const fontReference = Platform.select({\n windows: `/Assets/${fontFile}#${fontFamily}`,\n android: fontBasename,\n web: fontBasename,\n default: fontFamily,\n });\n\n class Icon extends PureComponent {\n root = null;\n\n static defaultProps = {\n size: DEFAULT_ICON_SIZE,\n allowFontScaling: false,\n };\n\n setNativeProps(nativeProps) {\n if (this.root) {\n this.root.setNativeProps(nativeProps);\n }\n }\n\n handleRef = ref => {\n this.root = ref;\n };\n\n render() {\n const { name, size, color, style, children, ...props } = this.props;\n\n let glyph = name ? glyphMap[name] || '?' : '';\n if (typeof glyph === 'number') {\n glyph = String.fromCodePoint(glyph);\n }\n\n const styleDefaults = {\n fontSize: size,\n color,\n };\n\n const styleOverrides = {\n fontFamily: fontReference,\n fontWeight: 'normal',\n fontStyle: 'normal',\n };\n\n props.style = [styleDefaults, style, styleOverrides, fontStyle || {}];\n props.ref = this.handleRef;\n\n return (\n \n {glyph}\n {children}\n \n );\n }\n }\n\n const imageSourceCache = createIconSourceCache();\n\n function resolveGlyph(name) {\n const glyph = glyphMap[name] || '?';\n if (typeof glyph === 'number') {\n return String.fromCodePoint(glyph);\n }\n return glyph;\n }\n\n function getImageSourceSync(\n name,\n size = DEFAULT_ICON_SIZE,\n color = DEFAULT_ICON_COLOR\n ) {\n ensureNativeModuleAvailable();\n\n const glyph = resolveGlyph(name);\n const processedColor = processColor(color);\n const cacheKey = `${glyph}:${size}:${processedColor}`;\n\n if (imageSourceCache.has(cacheKey)) {\n return imageSourceCache.get(cacheKey);\n }\n try {\n const imagePath = NativeIconAPI.getImageForFontSync(\n fontReference,\n glyph,\n size,\n processedColor\n );\n const value = { uri: imagePath, scale: PixelRatio.get() };\n imageSourceCache.setValue(cacheKey, value);\n return value;\n } catch (error) {\n imageSourceCache.setError(cacheKey, error);\n throw error;\n }\n }\n\n async function getImageSource(\n name,\n size = DEFAULT_ICON_SIZE,\n color = DEFAULT_ICON_COLOR\n ) {\n ensureNativeModuleAvailable();\n\n const glyph = resolveGlyph(name);\n const processedColor = processColor(color);\n const cacheKey = `${glyph}:${size}:${processedColor}`;\n\n if (imageSourceCache.has(cacheKey)) {\n return imageSourceCache.get(cacheKey);\n }\n try {\n const imagePath = await NativeIconAPI.getImageForFont(\n fontReference,\n glyph,\n size,\n processedColor\n );\n const value = { uri: imagePath, scale: PixelRatio.get() };\n imageSourceCache.setValue(cacheKey, value);\n return value;\n } catch (error) {\n imageSourceCache.setError(cacheKey, error);\n throw error;\n }\n }\n\n async function loadFont(file = fontFile) {\n if (Platform.OS === 'ios') {\n ensureNativeModuleAvailable();\n if (!file) {\n throw new Error('Unable to load font, because no file was specified. ');\n }\n await NativeIconAPI.loadFontWithFileName(...file.split('.'));\n }\n }\n\n function hasIcon(name) {\n return Object.prototype.hasOwnProperty.call(glyphMap, name);\n }\n\n function getRawGlyphMap() {\n return glyphMap;\n }\n\n function getFontFamily() {\n return fontReference;\n }\n\n Icon.Button = createIconButtonComponent(Icon);\n Icon.getImageSource = getImageSource;\n Icon.getImageSourceSync = getImageSourceSync;\n Icon.loadFont = loadFont;\n Icon.hasIcon = hasIcon;\n Icon.getRawGlyphMap = getRawGlyphMap;\n Icon.getFontFamily = getFontFamily;\n\n return Icon;\n}\n","const TYPE_VALUE = 'value';\nconst TYPE_ERROR = 'error';\n\nexport default function createIconSourceCache() {\n const cache = new Map();\n\n const setValue = (key, value) =>\n cache.set(key, { type: TYPE_VALUE, data: value });\n\n const setError = (key, error) =>\n cache.set(key, { type: TYPE_ERROR, data: error });\n\n const has = key => cache.has(key);\n\n const get = key => {\n if (!cache.has(key)) {\n return undefined;\n }\n const { type, data } = cache.get(key);\n if (type === TYPE_ERROR) {\n throw data;\n }\n return data;\n };\n\n return { setValue, setError, has, get };\n}\n","import * as Font from \"expo-font\";\nimport React, { ComponentClass } from \"react\";\nimport {\n Text,\n TextProps,\n TouchableHighlightProps,\n ViewProps,\n OpaqueColorValue,\n TextStyle,\n ViewStyle,\n} from \"react-native\";\n\nimport createIconSet from \"./vendor/react-native-vector-icons/lib/create-icon-set\";\nimport createIconButtonComponent from \"./vendor/react-native-vector-icons/lib/icon-button\";\n\nexport {\n DEFAULT_ICON_COLOR,\n DEFAULT_ICON_SIZE,\n} from \"./vendor/react-native-vector-icons/lib/create-icon-set\";\n\nexport interface IconProps extends TextProps {\n /**\n * Size of the icon, can also be passed as fontSize in the style object.\n *\n * @default 12\n */\n size?: number;\n\n /**\n * Name of the icon to show\n *\n * See Icon Explorer app\n * {@link https://expo.github.io/vector-icons/}\n */\n name: GLYPHS;\n\n /**\n * Color of the icon. Can be a string or OpaqueColorValue (returned from\n * PlatformColor(..))\n *\n */\n color?: string | OpaqueColorValue;\n}\n\nexport interface IconButtonProps\n extends IconProps,\n ViewProps,\n TouchableHighlightProps {\n /**\n * Text and icon color\n * Use iconStyle or nest a Text component if you need different colors.\n * Can be a string or OpaqueColorValue (returned from PlatformColor(..))\n *\n * @default 'white'\n */\n color?: string | OpaqueColorValue;\n\n /**\n * Border radius of the button\n * Set to 0 to disable.\n *\n * @default 5\n */\n borderRadius?: number;\n\n /**\n * Styles applied to the icon only\n * Good for setting margins or a different color.\n *\n * @default {marginRight: 10}\n */\n iconStyle?: TextStyle;\n\n /**\n * Style prop inherited from TextProps and TouchableWithoutFeedbackProperties\n * Only exist here so we can have ViewStyle or TextStyle\n *\n */\n style?: ViewStyle | TextStyle;\n\n /**\n * Background color of the button. Can be a string or OpaqueColorValue (returned from\n * PlatformColor(..))\n *\n * @default '#007AFF'\n */\n backgroundColor?: string | OpaqueColorValue;\n}\n\nexport type GlyphMap = { [K in G]: number | string };\n\nexport interface Icon {\n defaultProps: any;\n Button: ComponentClass>;\n glyphMap: GlyphMap;\n getRawGlyphMap: () => GlyphMap;\n getFontFamily: () => FN;\n loadFont: () => Promise;\n font: { [x: string]: any };\n new (props: IconProps): React.Component>;\n}\n\nexport default function (\n glyphMap: GlyphMap,\n fontName: FN,\n expoAssetId,\n fontStyle?: any\n): Icon {\n const font = { [fontName]: expoAssetId };\n const RNVIconComponent = createIconSet(glyphMap, fontName, null, fontStyle);\n\n return class Icon extends React.Component> {\n static defaultProps = RNVIconComponent.defaultProps;\n static Button = createIconButtonComponent(Icon);\n static glyphMap = glyphMap;\n static getRawGlyphMap = () => glyphMap;\n static getFontFamily = () => fontName;\n static loadFont = () => Font.loadAsync(font);\n static font = font;\n\n _mounted = false;\n _icon?: any;\n\n state = {\n fontIsLoaded: Font.isLoaded(fontName),\n };\n\n async componentDidMount() {\n this._mounted = true;\n if (!this.state.fontIsLoaded) {\n await Font.loadAsync(font);\n this._mounted && this.setState({ fontIsLoaded: true });\n }\n }\n\n componentWillUnmount() {\n this._mounted = false;\n }\n\n setNativeProps(props) {\n if (this._icon) {\n this._icon.setNativeProps(props);\n }\n }\n\n render() {\n if (__DEV__ && this.props.name && !(this.props.name in glyphMap)) {\n console.warn(\n `\"${this.props.name}\" is not a valid icon name for family \"${fontName}\"`\n );\n }\n\n if (!this.state.fontIsLoaded) {\n return ;\n }\n\n return (\n {\n this._icon = view;\n }}\n {...this.props}\n />\n );\n }\n };\n}\n","// @ts-ignore JS file\nimport interpolateNode from '../reanimated1/derived/interpolate';\nexport var Extrapolation;\n(function (Extrapolation) {\n Extrapolation[\"IDENTITY\"] = \"identity\";\n Extrapolation[\"CLAMP\"] = \"clamp\";\n Extrapolation[\"EXTEND\"] = \"extend\";\n})(Extrapolation || (Extrapolation = {}));\nfunction isNode(x) {\n 'worklet';\n return x.__nodeId !== undefined;\n}\nfunction getVal(type, coef, val, leftEdgeOutput, rightEdgeOutput, x) {\n 'worklet';\n switch (type) {\n case Extrapolation.IDENTITY:\n return x;\n case Extrapolation.CLAMP:\n if (coef * val < coef * leftEdgeOutput) {\n return leftEdgeOutput;\n }\n return rightEdgeOutput;\n case Extrapolation.EXTEND:\n default:\n return val;\n }\n}\nfunction isExtrapolate(value) {\n 'worklet';\n return (value === Extrapolation.EXTEND ||\n value === Extrapolation.CLAMP ||\n value === Extrapolation.IDENTITY);\n}\n// validates extrapolations type\n// if type is correct, converts it to ExtrapolationConfig\nfunction validateType(type) {\n 'worklet';\n // initialize extrapolationConfig with default extrapolation\n const extrapolationConfig = {\n extrapolateLeft: Extrapolation.EXTEND,\n extrapolateRight: Extrapolation.EXTEND,\n };\n if (!type) {\n return extrapolationConfig;\n }\n if (typeof type === 'string') {\n if (!isExtrapolate(type)) {\n throw new Error(`Reanimated: not supported value for \"interpolate\" \\nSupported values: [\"extend\", \"clamp\", \"identity\", Extrapolatation.CLAMP, Extrapolatation.EXTEND, Extrapolatation.IDENTITY]\\n Valid example:\n interpolate(value, [inputRange], [outputRange], \"clamp\")`);\n }\n extrapolationConfig.extrapolateLeft = type;\n extrapolationConfig.extrapolateRight = type;\n return extrapolationConfig;\n }\n // otherwise type is extrapolation config object\n if ((type.extrapolateLeft && !isExtrapolate(type.extrapolateLeft)) ||\n (type.extrapolateRight && !isExtrapolate(type.extrapolateRight))) {\n throw new Error(`Reanimated: not supported value for \"interpolate\" \\nSupported values: [\"extend\", \"clamp\", \"identity\", Extrapolatation.CLAMP, Extrapolatation.EXTEND, Extrapolatation.IDENTITY]\\n Valid example:\n interpolate(value, [inputRange], [outputRange], {\n extrapolateLeft: Extrapolation.CLAMP,\n extrapolateRight: Extrapolation.IDENTITY\n }})`);\n }\n Object.assign(extrapolationConfig, type);\n return extrapolationConfig;\n}\nfunction internalInterpolate(x, narrowedInput, extrapolationConfig) {\n 'worklet';\n const { leftEdgeInput, rightEdgeInput, leftEdgeOutput, rightEdgeOutput } = narrowedInput;\n if (rightEdgeInput - leftEdgeInput === 0)\n return leftEdgeOutput;\n const progress = (x - leftEdgeInput) / (rightEdgeInput - leftEdgeInput);\n const val = leftEdgeOutput + progress * (rightEdgeOutput - leftEdgeOutput);\n const coef = rightEdgeOutput >= leftEdgeOutput ? 1 : -1;\n if (coef * val < coef * leftEdgeOutput) {\n return getVal(extrapolationConfig.extrapolateLeft, coef, val, leftEdgeOutput, rightEdgeOutput, x);\n }\n else if (coef * val > coef * rightEdgeOutput) {\n return getVal(extrapolationConfig.extrapolateRight, coef, val, leftEdgeOutput, rightEdgeOutput, x);\n }\n return val;\n}\n// TODO: support default values in worklets:\n// e.g. function interpolate(x, input, output, type = Extrapolatation.CLAMP)\nexport function interpolate(x, input, output, type) {\n 'worklet';\n if (input.length < 2 || output.length < 2) {\n throw Error('Interpolation input and output should contain at least two values.');\n }\n const extrapolationConfig = validateType(type);\n if (isNode(x)) {\n console.warn(`interpolate() was renamed to interpolateNode() in Reanimated 2. Please use interpolateNode() instead`);\n return interpolateNode(x, {\n inputRange: input,\n outputRange: output,\n extrapolateLeft: extrapolationConfig.extrapolateLeft,\n extrapolateRight: extrapolationConfig.extrapolateRight,\n });\n }\n const length = input.length;\n const narrowedInput = {\n leftEdgeInput: input[0],\n rightEdgeInput: input[1],\n leftEdgeOutput: output[0],\n rightEdgeOutput: output[1],\n };\n if (length > 2) {\n if (x > input[length - 1]) {\n narrowedInput.leftEdgeInput = input[length - 2];\n narrowedInput.rightEdgeInput = input[length - 1];\n narrowedInput.leftEdgeOutput = output[length - 2];\n narrowedInput.rightEdgeOutput = output[length - 1];\n }\n else {\n for (let i = 1; i < length; ++i) {\n if (x <= input[i]) {\n narrowedInput.leftEdgeInput = input[i - 1];\n narrowedInput.rightEdgeInput = input[i];\n narrowedInput.leftEdgeOutput = output[i - 1];\n narrowedInput.rightEdgeOutput = output[i];\n break;\n }\n }\n }\n }\n return internalInterpolate(x, narrowedInput, extrapolationConfig);\n}\n","import invariant from \"./invariant.mjs\";\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\n/**\n * The `defineInspect()` function defines `inspect()` prototype method as alias of `toJSON`\n */\n\nexport default function defineInspect(classObject) {\n var fn = classObject.prototype.toJSON;\n typeof fn === 'function' || invariant(0);\n classObject.prototype.inspect = fn; // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n if (nodejsCustomInspectSymbol) {\n classObject.prototype[nodejsCustomInspectSymbol] = fn;\n }\n}\n","import RCTDeviceEventEmitter from '../../vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter';\nexport default RCTDeviceEventEmitter;","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar MIME_MAP = [\n { type: 'text/plain', ext: 'txt' },\n { type: 'text/html', ext: 'html' },\n { type: 'text/javascript', ext: 'js' },\n { type: 'text/css', ext: 'css' },\n { type: 'text/csv', ext: 'csv' },\n { type: 'text/yaml', ext: 'yml' },\n { type: 'text/yaml', ext: 'yaml' },\n { type: 'text/calendar', ext: 'ics' },\n { type: 'text/calendar', ext: 'ical' },\n { type: 'image/apng', ext: 'apng' },\n { type: 'image/bmp', ext: 'bmp' },\n { type: 'image/gif', ext: 'gif' },\n { type: 'image/x-icon', ext: 'ico' },\n { type: 'image/x-icon', ext: 'cur' },\n { type: 'image/jpeg', ext: 'jpg' },\n { type: 'image/jpeg', ext: 'jpeg' },\n { type: 'image/jpeg', ext: 'jfif' },\n { type: 'image/jpeg', ext: 'pjp' },\n { type: 'image/jpeg', ext: 'pjpeg' },\n { type: 'image/png', ext: 'png' },\n { type: 'image/svg+xml', ext: 'svg' },\n { type: 'image/tiff', ext: 'tif' },\n { type: 'image/tiff', ext: 'tiff' },\n { type: 'image/webp', ext: 'webp' },\n { type: 'application/json', ext: 'json' },\n { type: 'application/xml', ext: 'xml' },\n { type: 'application/x-sh', ext: 'sh' },\n { type: 'application/zip', ext: 'zip' },\n { type: 'application/x-rar-compressed', ext: 'rar' },\n { type: 'application/x-tar', ext: 'tar' },\n { type: 'application/x-bzip', ext: 'bz' },\n { type: 'application/x-bzip2', ext: 'bz2' },\n { type: 'application/pdf', ext: 'pdf' },\n { type: 'application/java-archive', ext: 'jar' },\n { type: 'application/msword', ext: 'doc' },\n { type: 'application/vnd.ms-excel', ext: 'xls' },\n { type: 'application/vnd.ms-excel', ext: 'xlsx' },\n { type: 'message/rfc822', ext: 'eml' },\n];\nexport var isEmpty = function (obj) {\n if (obj === void 0) { obj = {}; }\n return Object.keys(obj).length === 0;\n};\nexport var sortByField = function (list, field, dir) {\n if (!list || !list.sort) {\n return false;\n }\n var dirX = dir && dir === 'desc' ? -1 : 1;\n list.sort(function (a, b) {\n var a_val = a[field];\n var b_val = b[field];\n if (typeof b_val === 'undefined') {\n return typeof a_val === 'undefined' ? 0 : 1 * dirX;\n }\n if (typeof a_val === 'undefined') {\n return -1 * dirX;\n }\n if (a_val < b_val) {\n return -1 * dirX;\n }\n if (a_val > b_val) {\n return 1 * dirX;\n }\n return 0;\n });\n return true;\n};\nexport var objectLessAttributes = function (obj, less) {\n var ret = Object.assign({}, obj);\n if (less) {\n if (typeof less === 'string') {\n delete ret[less];\n }\n else {\n less.forEach(function (attr) {\n delete ret[attr];\n });\n }\n }\n return ret;\n};\nexport var filenameToContentType = function (filename, defVal) {\n if (defVal === void 0) { defVal = 'application/octet-stream'; }\n var name = filename.toLowerCase();\n var filtered = MIME_MAP.filter(function (mime) { return name.endsWith('.' + mime.ext); });\n return filtered.length > 0 ? filtered[0].type : defVal;\n};\nexport var isTextFile = function (contentType) {\n var type = contentType.toLowerCase();\n if (type.startsWith('text/')) {\n return true;\n }\n return ('application/json' === type ||\n 'application/xml' === type ||\n 'application/sh' === type);\n};\nexport var generateRandomString = function () {\n var result = '';\n var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n for (var i = 32; i > 0; i -= 1) {\n result += chars[Math.floor(Math.random() * chars.length)];\n }\n return result;\n};\nexport var makeQuerablePromise = function (promise) {\n if (promise.isResolved)\n return promise;\n var isPending = true;\n var isRejected = false;\n var isFullfilled = false;\n var result = promise.then(function (data) {\n isFullfilled = true;\n isPending = false;\n return data;\n }, function (e) {\n isRejected = true;\n isPending = false;\n throw e;\n });\n result.isFullfilled = function () { return isFullfilled; };\n result.isPending = function () { return isPending; };\n result.isRejected = function () { return isRejected; };\n return result;\n};\nexport var isWebWorker = function () {\n if (typeof self === 'undefined') {\n return false;\n }\n var selfContext = self;\n return typeof selfContext.WorkerGlobalScope !== 'undefined' &&\n self instanceof selfContext.WorkerGlobalScope;\n};\nexport var browserOrNode = function () {\n var isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var isNode = typeof process !== 'undefined' &&\n process.versions != null &&\n process.versions.node != null;\n return {\n isBrowser: isBrowser,\n isNode: isNode,\n };\n};\n/**\n * transfer the first letter of the keys to lowercase\n * @param {Object} obj - the object need to be transferred\n * @param {Array} whiteListForItself - whitelist itself from being transferred\n * @param {Array} whiteListForChildren - whitelist its children keys from being transferred\n */\nexport var transferKeyToLowerCase = function (obj, whiteListForItself, whiteListForChildren) {\n if (whiteListForItself === void 0) { whiteListForItself = []; }\n if (whiteListForChildren === void 0) { whiteListForChildren = []; }\n if (!isStrictObject(obj))\n return obj;\n var ret = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n var transferedKey = whiteListForItself.includes(key)\n ? key\n : key[0].toLowerCase() + key.slice(1);\n ret[transferedKey] = whiteListForChildren.includes(key)\n ? obj[key]\n : transferKeyToLowerCase(obj[key], whiteListForItself, whiteListForChildren);\n }\n }\n return ret;\n};\n/**\n * transfer the first letter of the keys to lowercase\n * @param {Object} obj - the object need to be transferred\n * @param {Array} whiteListForItself - whitelist itself from being transferred\n * @param {Array} whiteListForChildren - whitelist its children keys from being transferred\n */\nexport var transferKeyToUpperCase = function (obj, whiteListForItself, whiteListForChildren) {\n if (whiteListForItself === void 0) { whiteListForItself = []; }\n if (whiteListForChildren === void 0) { whiteListForChildren = []; }\n if (!isStrictObject(obj))\n return obj;\n var ret = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n var transferredKey = whiteListForItself.includes(key)\n ? key\n : key[0].toUpperCase() + key.slice(1);\n ret[transferredKey] = whiteListForChildren.includes(key)\n ? obj[key]\n : transferKeyToUpperCase(obj[key], whiteListForItself, whiteListForChildren);\n }\n }\n return ret;\n};\n/**\n * Return true if the object is a strict object\n * which means it's not Array, Function, Number, String, Boolean or Null\n * @param obj the Object\n */\nexport var isStrictObject = function (obj) {\n return (obj instanceof Object &&\n !(obj instanceof Array) &&\n !(obj instanceof Function) &&\n !(obj instanceof Number) &&\n !(obj instanceof String) &&\n !(obj instanceof Boolean));\n};\n/**\n * @deprecated use per-function imports\n */\nvar JS = /** @class */ (function () {\n function JS() {\n }\n JS.isEmpty = isEmpty;\n JS.sortByField = sortByField;\n JS.objectLessAttributes = objectLessAttributes;\n JS.filenameToContentType = filenameToContentType;\n JS.isTextFile = isTextFile;\n JS.generateRandomString = generateRandomString;\n JS.makeQuerablePromise = makeQuerablePromise;\n JS.isWebWorker = isWebWorker;\n JS.browserOrNode = browserOrNode;\n JS.transferKeyToLowerCase = transferKeyToLowerCase;\n JS.transferKeyToUpperCase = transferKeyToUpperCase;\n JS.isStrictObject = isStrictObject;\n return JS;\n}());\nexport { JS };\n/**\n * @deprecated use per-function imports\n */\nexport default JS;\n//# sourceMappingURL=JS.js.map","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport canUseDOM from '../canUseDom';\n\nvar _requestIdleCallback = function _requestIdleCallback(cb, options) {\n return setTimeout(() => {\n var start = Date.now();\n cb({\n didTimeout: false,\n\n timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n\n });\n }, 1);\n};\n\nvar _cancelIdleCallback = function _cancelIdleCallback(id) {\n clearTimeout(id);\n};\n\nvar isSupported = canUseDOM && typeof window.requestIdleCallback !== 'undefined';\nvar requestIdleCallback = isSupported ? window.requestIdleCallback : _requestIdleCallback;\nvar cancelIdleCallback = isSupported ? window.cancelIdleCallback : _cancelIdleCallback;\nexport default requestIdleCallback;\nexport { cancelIdleCallback };","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport invariant from 'fbjs/lib/invariant';\nimport requestIdleCallback, { cancelIdleCallback } from '../../modules/requestIdleCallback';\nvar InteractionManager = {\n Events: {\n interactionStart: 'interactionStart',\n interactionComplete: 'interactionComplete'\n },\n\n /**\n * Schedule a function to run after all interactions have completed.\n */\n runAfterInteractions(task) {\n var handle;\n var promise = new Promise(resolve => {\n handle = requestIdleCallback(() => {\n if (task) {\n resolve(task());\n } else {\n resolve();\n }\n });\n });\n return {\n then: promise.then.bind(promise),\n done: promise.then.bind(promise),\n cancel: () => {\n cancelIdleCallback(handle);\n }\n };\n },\n\n /**\n * Notify manager that an interaction has started.\n */\n createInteractionHandle() {\n return 1;\n },\n\n /**\n * Notify manager that an interaction has completed.\n */\n clearInteractionHandle(handle) {\n invariant(!!handle, 'Must provide a handle to clear.');\n },\n\n addListener: () => {}\n};\nexport default InteractionManager;","/*\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n'use strict';\n\nvar punycode = require('punycode');\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n/*\n * define these here so at least they only have to be\n * compiled once on the first module load.\n */\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/,\n\n /*\n * RFC 2396: characters reserved for delimiting URLs.\n * We actually just auto-escape these.\n */\n delims = [\n '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'\n ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = [\n '{', '}', '|', '\\\\', '^', '`'\n ].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n /*\n * Characters that are never ever allowed in a hostname.\n * Note that any invalid chars are also handled, but these\n * are the ones that are *expected* to be seen, so we fast-path\n * them.\n */\n nonHostChars = [\n '%', '/', '?', ';', '#'\n ].concat(autoEscape),\n hostEndingChars = [\n '/', '?', '#'\n ],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n http: true,\n https: true,\n ftp: true,\n gopher: true,\n file: true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('qs');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && typeof url === 'object' && url instanceof Url) { return url; }\n\n var u = new Url();\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n if (typeof url !== 'string') {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n /*\n * Copy chrome, IE, opera backslash-handling behavior.\n * Back slashes before the query string get converted to forward slashes\n * See: https://code.google.com/p/chromium/issues/detail?id=25916\n */\n var queryIndex = url.indexOf('?'),\n splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n /*\n * trim before proceeding.\n * This is to support parse stuff like \" http://foo.com \\n\"\n */\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n /*\n * figure out if it's got a host\n * user@server is *always* interpreted as a hostname, and url\n * resolution will treat //foo/bar as host=foo,path=bar because that's\n * how the browser resolves relative URLs.\n */\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@/]+@[^@/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) {\n\n /*\n * there's a hostname.\n * the first instance of /, ?, ;, or # ends the host.\n *\n * If there is an @ in the hostname, then non-host chars *are* allowed\n * to the left of the last @ sign, unless some host-ending character\n * comes *before* the @-sign.\n * URLs are obnoxious.\n *\n * ex:\n * http://a@b@c/ => user:a@b host:c\n * http://a@b?@c => user:a host:c path:/?@c\n */\n\n /*\n * v0.12 TODO(isaacs): This is not quite how Chrome does things.\n * Review our test case against browsers more comprehensively.\n */\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n\n /*\n * at this point, either we have an explicit point where the\n * auth portion cannot go past, or the last @ char is the decider.\n */\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n /*\n * atSign must be in auth portion.\n * http://a@b/c@d => host:b auth:a path:/c@d\n */\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n /*\n * Now we have a portion which is definitely the auth.\n * Pull that off.\n */\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) { hostEnd = rest.length; }\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n /*\n * we've indicated that there is a hostname,\n * so even if it's empty, it has to be present.\n */\n this.hostname = this.hostname || '';\n\n /*\n * if hostname begins with [ and ends with ]\n * assume that it's an IPv6 address.\n */\n var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n /*\n * we replace non-ASCII char with a temporary placeholder\n * we need this to make sure size of hostname is not\n * broken by replacing non-ASCII by nothing\n */\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n /*\n * IDNA Support: Returns a punycoded representation of \"domain\".\n * It only converts parts of the domain name that\n * have non-ASCII characters, i.e. it doesn't matter if\n * you call it with a domain that already is ASCII-only.\n */\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n /*\n * strip [ and ] from the hostname\n * the host field still retains them, though\n */\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n /*\n * now rest is set to the post-host stuff.\n * chop off any delim chars.\n */\n if (!unsafeProtocol[lowerProto]) {\n\n /*\n * First, make 100% sure that any \"autoEscape\" chars get\n * escaped, even if encodeURIComponent doesn't think they\n * need to be.\n */\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1) { continue; }\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n // to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n /*\n * ensure it's an object, and not a string url.\n * If it's an obj, this is a no-op.\n * this way, you can call url_format() on strings\n * to clean up potentially wonky urls.\n */\n if (typeof obj === 'string') { obj = urlParse(obj); }\n if (!(obj instanceof Url)) { return Url.prototype.format.call(obj); }\n return obj.format();\n}\n\nUrl.prototype.format = function () {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query && typeof this.query === 'object' && Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') { protocol += ':'; }\n\n /*\n * only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n * unless they had them to begin with.\n */\n if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') { pathname = '/' + pathname; }\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') { hash = '#' + hash; }\n if (search && search.charAt(0) !== '?') { search = '?' + search; }\n\n pathname = pathname.replace(/[?#]/g, function (match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) { return relative; }\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n if (typeof relative === 'string') {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n /*\n * hash is always overridden, no matter what.\n * even href=\"\" will remove it.\n */\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol') { result[rkey] = relative[rkey]; }\n }\n\n // urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n result.pathname = '/';\n result.path = result.pathname;\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n /*\n * if it's a known url protocol, then changing\n * the protocol does weird things\n * first, if it's not file:, then we MUST have a host,\n * and if there was a path\n * to begin with, then we MUST have a path.\n * if it is file:, then the host is dropped,\n * because that's known to be hostless.\n * anything else is assumed to be absolute.\n */\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift())) { }\n if (!relative.host) { relative.host = ''; }\n if (!relative.hostname) { relative.hostname = ''; }\n if (relPath[0] !== '') { relPath.unshift(''); }\n if (relPath.length < 2) { relPath.unshift(''); }\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n /*\n * if the url is a non-slashed url, then relative\n * links like ../.. should be able\n * to crawl up to the hostname, as well. This is strange.\n * result.protocol has already been set by now.\n * Later on, put the first path part into the host field.\n */\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') { srcPath[0] = result.host; } else { srcPath.unshift(result.host); }\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') { relPath[0] = relative.host; } else { relPath.unshift(relative.host); }\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = relative.host || relative.host === '' ? relative.host : result.host;\n result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n /*\n * it's relative\n * throw away the existing file, and take the new path instead.\n */\n if (!srcPath) { srcPath = []; }\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (relative.search != null) {\n /*\n * just pull out the search.\n * like href='?foo'.\n * Put this after the other two cases because it simplifies the booleans\n */\n if (psychotic) {\n result.host = srcPath.shift();\n result.hostname = result.host;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n // to support http.request\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n /*\n * no path at all. easy.\n * we've already handled the other stuff above.\n */\n result.pathname = null;\n // to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n /*\n * if a url ENDs in . or .., then it must get a trailing slash.\n * however, if it ends in anything else non-slashy,\n * then it must NOT get a trailing slash.\n */\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === '';\n\n /*\n * strip single dots, resolve double dots to parent dir\n * if the path tries to go above the root, `up` ends up > 0\n */\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = isAbsolute ? '' : srcPath.length ? srcPath.shift() : '';\n result.host = result.hostname;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (srcPath.length > 0) {\n result.pathname = srcPath.join('/');\n } else {\n result.pathname = null;\n result.path = null;\n }\n\n // to support request.http\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function () {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar rtlScripts = new Set(['Arab', 'Syrc', 'Samr', 'Mand', 'Thaa', 'Mend', 'Nkoo', 'Adlm', 'Rohg', 'Hebr']);\nvar rtlLangs = new Set(['ae', // Avestan\n'ar', // Arabic\n'arc', // Aramaic\n'bcc', // Southern Balochi\n'bqi', // Bakthiari\n'ckb', // Sorani\n'dv', // Dhivehi\n'fa', 'far', // Persian\n'glk', // Gilaki\n'he', 'iw', // Hebrew\n'khw', // Khowar\n'ks', // Kashmiri\n'ku', // Kurdish\n'mzn', // Mazanderani\n'nqo', // N'Ko\n'pnb', // Western Punjabi\n'ps', // Pashto\n'sd', // Sindhi\n'ug', // Uyghur\n'ur', // Urdu\n'yi' // Yiddish\n]);\nvar cache = new Map();\n/**\n * Determine the writing direction of a locale\n */\n\nexport function isLocaleRTL(locale) {\n var cachedRTL = cache.get(locale);\n\n if (cachedRTL) {\n return cachedRTL;\n }\n\n var isRTL = false; // $FlowFixMe\n\n if (Intl.Locale) {\n // $FlowFixMe\n var script = new Intl.Locale(locale).maximize().script;\n isRTL = rtlScripts.has(script);\n } else {\n // Fallback to inferring from language\n var lang = locale.split('-')[0];\n isRTL = rtlLangs.has(lang);\n }\n\n cache.set(locale, isRTL);\n return isRTL;\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport React, { createContext, useContext } from 'react';\nimport { isLocaleRTL } from './isLocaleRTL';\nvar defaultLocale = {\n direction: 'ltr',\n locale: 'en-US'\n};\nvar LocaleContext = /*#__PURE__*/createContext(defaultLocale);\nexport function getLocaleDirection(locale) {\n return isLocaleRTL(locale) ? 'rtl' : 'ltr';\n}\nexport function LocaleProvider(props) {\n var direction = props.direction,\n locale = props.locale,\n children = props.children;\n var needsContext = direction || locale;\n return needsContext ? /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n children: children,\n value: {\n direction: locale ? getLocaleDirection(locale) : direction,\n locale\n }\n }) : children;\n}\nexport function useLocaleContext() {\n return useContext(LocaleContext);\n}","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nvar unitlessNumbers = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\n\nvar prefixKey = (prefix, key) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nObject.keys(unitlessNumbers).forEach(prop => {\n prefixes.forEach(prefix => {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport unitlessNumbers from './unitlessNumbers';\nimport normalizeColor from './normalizeColor';\nvar colorProps = {\n backgroundColor: true,\n borderColor: true,\n borderTopColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderLeftColor: true,\n color: true,\n shadowColor: true,\n textDecorationColor: true,\n textShadowColor: true\n};\nexport default function normalizeValueWithProperty(value, property) {\n var returnValue = value;\n\n if ((property == null || !unitlessNumbers[property]) && typeof value === 'number') {\n returnValue = value + \"px\";\n } else if (property != null && colorProps[property]) {\n returnValue = normalizeColor(value);\n }\n\n return returnValue;\n}","import { useEffect, useRef } from 'react';\nimport { cancelAnimation } from '../animation';\nimport { makeMutable } from '../core';\nexport function useSharedValue(init) {\n const ref = useRef(makeMutable(init));\n if (ref.current === null) {\n ref.current = makeMutable(init);\n }\n useEffect(() => {\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n cancelAnimation(ref.current);\n };\n }, []);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return ref.current;\n}\n","import React from 'react';\nimport { findNodeHandle, Platform, StyleSheet } from 'react-native';\nimport ReanimatedEventEmitter from './ReanimatedEventEmitter';\n// @ts-ignore JS file\nimport AnimatedEvent from './reanimated1/core/AnimatedEvent';\n// @ts-ignore JS file\nimport AnimatedNode from './reanimated1/core/AnimatedNode';\n// @ts-ignore JS file\nimport AnimatedValue from './reanimated1/core/AnimatedValue';\n// @ts-ignore JS file\nimport { createOrReusePropsNode } from './reanimated1/core/AnimatedProps';\nimport WorkletEventHandler from './reanimated2/WorkletEventHandler';\nimport setAndForwardRef from './setAndForwardRef';\nimport './reanimated2/layoutReanimation/LayoutAnimationRepository';\nimport invariant from 'invariant';\nimport { adaptViewConfig } from './ConfigHelper';\nimport { RNRenderer } from './reanimated2/platform-specific/RNRenderer';\nimport { makeMutable, runOnUI, enableLayoutAnimations, } from './reanimated2/core';\nimport { DefaultEntering, DefaultExiting, DefaultLayout, } from './reanimated2/layoutReanimation/defaultAnimations/Default';\nimport { isJest, isChromeDebugger, shouldBeUseWeb, } from './reanimated2/PlatformChecker';\nimport { initialUpdaterRun } from './reanimated2/animation';\nconst NODE_MAPPING = new Map();\nfunction listener(data) {\n const component = NODE_MAPPING.get(data.viewTag);\n component && component._updateFromNative(data.props);\n}\nfunction dummyListener() {\n // empty listener we use to assign to listener properties for which animated\n // event is used.\n}\nfunction hasAnimatedNodes(value) {\n if (value instanceof AnimatedNode) {\n return true;\n }\n if (Array.isArray(value)) {\n return value.some((item) => hasAnimatedNodes(item));\n }\n if (value && typeof value === 'object') {\n return Object.keys(value).some((key) => hasAnimatedNodes(value[key]));\n }\n return false;\n}\nfunction flattenArray(array) {\n if (!Array.isArray(array)) {\n return [array];\n }\n const resultArr = [];\n const _flattenArray = (arr) => {\n arr.forEach((item) => {\n if (Array.isArray(item)) {\n _flattenArray(item);\n }\n else {\n resultArr.push(item);\n }\n });\n };\n _flattenArray(array);\n return resultArr;\n}\nfunction onlyAnimatedStyles(styles) {\n return styles.filter((style) => style === null || style === void 0 ? void 0 : style.viewDescriptors);\n}\nfunction isSameAnimatedStyle(style1, style2) {\n // We cannot use equality check to compare useAnimatedStyle outputs directly.\n // Instead, we can compare its viewsRefs.\n return (style1 === null || style1 === void 0 ? void 0 : style1.viewsRef) === (style2 === null || style2 === void 0 ? void 0 : style2.viewsRef);\n}\nconst isSameAnimatedProps = isSameAnimatedStyle;\nconst has = (key, x) => {\n if (typeof x === 'function' || typeof x === 'object') {\n if (x === null || x === undefined) {\n return false;\n }\n else {\n return key in x;\n }\n }\n return false;\n};\nexport default function createAnimatedComponent(Component, options) {\n invariant(typeof Component !== 'function' ||\n (Component.prototype && Component.prototype.isReactComponent), '`createAnimatedComponent` does not support stateless functional components; ' +\n 'use a class component instead.');\n class AnimatedComponent extends React.Component {\n constructor(props) {\n super(props);\n this._invokeAnimatedPropsCallbackOnMount = false;\n this._styles = null;\n this._viewTag = -1;\n this._isFirstRender = true;\n this.animatedStyle = { value: {} };\n this.initialStyle = {};\n this._component = null;\n // The system is best designed when setNativeProps is implemented. It is\n // able to avoid re-rendering and directly set the attributes that changed.\n // However, setNativeProps can only be implemented on native components\n // If you want to animate a composite component, you need to re-render it.\n // In this case, we have a fallback that uses forceUpdate.\n this._animatedPropsCallback = () => {\n if (this._component == null) {\n // AnimatedProps is created in will-mount because it's used in render.\n // But this callback may be invoked before mount in async mode,\n // In which case we should defer the setNativeProps() call.\n // React may throw away uncommitted work in async mode,\n // So a deferred call won't always be invoked.\n this._invokeAnimatedPropsCallbackOnMount = true;\n }\n else if (typeof this._component.setNativeProps !== 'function') {\n this.forceUpdate();\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._component.setNativeProps(this._propsAnimated.__getValue());\n }\n };\n this._setComponentRef = setAndForwardRef({\n getForwardedRef: () => this.props.forwardedRef,\n setLocalRef: (ref) => {\n // TODO update config\n const tag = findNodeHandle(ref);\n if (!shouldBeUseWeb() &&\n (this.props.layout || this.props.entering || this.props.exiting) &&\n tag != null) {\n enableLayoutAnimations(true, false);\n let layout = this.props.layout ? this.props.layout : DefaultLayout;\n let entering = this.props.entering\n ? this.props.entering\n : DefaultEntering;\n let exiting = this.props.exiting\n ? this.props.exiting\n : DefaultExiting;\n if (has('build', layout)) {\n layout = layout.build();\n }\n if (has('build', entering)) {\n entering = entering.build();\n }\n if (has('build', exiting)) {\n exiting = exiting.build();\n }\n const config = {\n layout,\n entering,\n exiting,\n sv: this.sv,\n };\n runOnUI(() => {\n 'worklet';\n global.LayoutAnimationRepository.registerConfig(tag, config);\n })();\n }\n if (ref !== this._component) {\n this._component = ref;\n }\n },\n });\n this._attachProps(this.props);\n if (isJest()) {\n this.animatedStyle = { value: {} };\n }\n this.sv = makeMutable({});\n }\n componentWillUnmount() {\n this._detachPropUpdater();\n this._propsAnimated && this._propsAnimated.__detach();\n this._detachNativeEvents();\n this._detachStyles();\n this.sv = null;\n }\n componentDidMount() {\n if (this._invokeAnimatedPropsCallbackOnMount) {\n this._invokeAnimatedPropsCallbackOnMount = false;\n this._animatedPropsCallback();\n }\n this._propsAnimated &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._propsAnimated.setNativeView(this._component);\n this._attachNativeEvents();\n this._attachPropUpdater();\n this._attachAnimatedStyles();\n }\n _getEventViewRef() {\n var _a;\n // Make sure to get the scrollable node for components that implement\n // `ScrollResponder.Mixin`.\n return ((_a = this._component) === null || _a === void 0 ? void 0 : _a.getScrollableNode) ? this._component.getScrollableNode()\n : this._component;\n }\n _attachNativeEvents() {\n const node = this._getEventViewRef();\n let viewTag = findNodeHandle((options === null || options === void 0 ? void 0 : options.setNativeProps) ? this : node);\n const componentName = Component.displayName || Component.name;\n if ((componentName === null || componentName === void 0 ? void 0 : componentName.endsWith('FlashList')) && this._component) {\n // @ts-ignore it's FlashList specific: https://github.com/Shopify/flash-list/blob/218f314e63806b4fe926741ef73f8b9cd6ebc7eb/src/FlashList.tsx#L815\n viewTag = findNodeHandle(this._component.getScrollableNode());\n }\n for (const key in this.props) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent) {\n prop.attachEvent(node, key);\n }\n else if (has('current', prop) &&\n prop.current instanceof WorkletEventHandler) {\n prop.current.registerForEvents(viewTag, key);\n }\n }\n }\n _detachNativeEvents() {\n const node = this._getEventViewRef();\n for (const key in this.props) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent) {\n prop.detachEvent(node, key);\n }\n else if (has('current', prop) &&\n prop.current instanceof WorkletEventHandler) {\n prop.current.unregisterFromEvents();\n }\n }\n }\n _detachStyles() {\n var _a;\n if (Platform.OS === 'web' && this._styles !== null) {\n for (const style of this._styles) {\n if (style === null || style === void 0 ? void 0 : style.viewsRef) {\n style.viewsRef.remove(this);\n }\n }\n }\n else if (this._viewTag !== -1 && this._styles !== null) {\n for (const style of this._styles) {\n style.viewDescriptors.remove(this._viewTag);\n }\n if ((_a = this.props.animatedProps) === null || _a === void 0 ? void 0 : _a.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.remove(this._viewTag);\n }\n }\n }\n _reattachNativeEvents(prevProps) {\n const node = this._getEventViewRef();\n const attached = new Set();\n const nextEvts = new Set();\n let viewTag;\n for (const key in this.props) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent) {\n nextEvts.add(prop.__nodeID);\n }\n else if (has('current', prop) &&\n prop.current instanceof WorkletEventHandler) {\n if (viewTag === undefined) {\n viewTag = prop.current.viewTag;\n }\n }\n }\n for (const key in prevProps) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent) {\n if (!nextEvts.has(prop.__nodeID)) {\n // event was in prev props but not in current props, we detach\n prop.detachEvent(node, key);\n }\n else {\n // event was in prev and is still in current props\n attached.add(prop.__nodeID);\n }\n }\n else if (has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded) {\n prop.current.unregisterFromEvents();\n }\n }\n for (const key in this.props) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent &&\n !attached.has(prop.__nodeID)) {\n // not yet attached\n prop.attachEvent(node, key);\n }\n else if (has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prop.current.registerForEvents(viewTag, key);\n prop.current.reattachNeeded = false;\n }\n }\n }\n _attachProps(nextProps) {\n const oldPropsAnimated = this._propsAnimated;\n this._propsAnimated = createOrReusePropsNode(nextProps, this._animatedPropsCallback, oldPropsAnimated);\n // If prop node has been reused we don't need to call into \"__detach\"\n if (oldPropsAnimated !== this._propsAnimated) {\n // When you call detach, it removes the element from the parent list\n // of children. If it goes to 0, then the parent also detaches itself\n // and so on.\n // An optimization is to attach the new elements and THEN detach the old\n // ones instead of detaching and THEN attaching.\n // This way the intermediate state isn't to go to 0 and trigger\n // this expensive recursive detaching to then re-attach everything on\n // the very next operation.\n oldPropsAnimated && oldPropsAnimated.__detach();\n }\n }\n _updateFromNative(props) {\n var _a, _b;\n if (options === null || options === void 0 ? void 0 : options.setNativeProps) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n options.setNativeProps(this._component, props);\n }\n else {\n // eslint-disable-next-line no-unused-expressions\n (_b = (_a = this._component) === null || _a === void 0 ? void 0 : _a.setNativeProps) === null || _b === void 0 ? void 0 : _b.call(_a, props);\n }\n }\n _attachPropUpdater() {\n const viewTag = findNodeHandle(this);\n NODE_MAPPING.set(viewTag, this);\n if (NODE_MAPPING.size === 1) {\n ReanimatedEventEmitter.addListener('onReanimatedPropsChange', listener);\n }\n }\n _attachAnimatedStyles() {\n var _a, _b, _c;\n const styles = this.props.style\n ? onlyAnimatedStyles(flattenArray(this.props.style))\n : [];\n const prevStyles = this._styles;\n this._styles = styles;\n const prevAnimatedProps = this._animatedProps;\n this._animatedProps = this.props.animatedProps;\n let viewTag;\n let viewName;\n if (Platform.OS === 'web') {\n viewTag = findNodeHandle(this);\n viewName = null;\n }\n else {\n // hostInstance can be null for a component that doesn't render anything (render function returns null). Example: svg Stop: https://github.com/react-native-svg/react-native-svg/blob/develop/src/elements/Stop.tsx\n const hostInstance = RNRenderer.findHostInstance_DEPRECATED(this);\n if (!hostInstance) {\n throw new Error('Cannot find host instance for this component. Maybe it renders nothing?');\n }\n // we can access view tag in the same way it's accessed here https://github.com/facebook/react/blob/e3f4eb7272d4ca0ee49f27577156b57eeb07cf73/packages/react-native-renderer/src/ReactFabric.js#L146\n viewTag = hostInstance === null || hostInstance === void 0 ? void 0 : hostInstance._nativeTag;\n /**\n * RN uses viewConfig for components for storing different properties of the component(example: https://github.com/facebook/react-native/blob/master/Libraries/Components/ScrollView/ScrollViewViewConfig.js#L16).\n * The name we're looking for is in the field named uiViewClassName.\n */\n viewName = (_a = hostInstance === null || hostInstance === void 0 ? void 0 : hostInstance.viewConfig) === null || _a === void 0 ? void 0 : _a.uiViewClassName;\n // update UI props whitelist for this view\n const hasReanimated2Props = ((_b = this.props.animatedProps) === null || _b === void 0 ? void 0 : _b.viewDescriptors) || styles.length;\n if (hasReanimated2Props && (hostInstance === null || hostInstance === void 0 ? void 0 : hostInstance.viewConfig)) {\n adaptViewConfig(hostInstance.viewConfig);\n }\n }\n this._viewTag = viewTag;\n // remove old styles\n if (prevStyles) {\n // in most of the cases, views have only a single animated style and it remains unchanged\n const hasOneSameStyle = styles.length === 1 &&\n prevStyles.length === 1 &&\n isSameAnimatedStyle(styles[0], prevStyles[0]);\n if (!hasOneSameStyle) {\n // otherwise, remove each style that is not present in new styles\n for (const prevStyle of prevStyles) {\n const isPresent = styles.some((style) => isSameAnimatedStyle(style, prevStyle));\n if (!isPresent) {\n prevStyle.viewDescriptors.remove(viewTag);\n }\n }\n }\n }\n styles.forEach((style) => {\n style.viewDescriptors.add({ tag: viewTag, name: viewName });\n if (isJest()) {\n /**\n * We need to connect Jest's TestObject instance whose contains just props object\n * with the updateProps() function where we update the properties of the component.\n * We can't update props object directly because TestObject contains a copy of props - look at render function:\n * const props = this._filterNonAnimatedProps(this.props);\n */\n this.animatedStyle.value = Object.assign(Object.assign({}, this.animatedStyle.value), style.initial.value);\n style.animatedStyle.current = this.animatedStyle;\n }\n });\n // detach old animatedProps\n if (prevAnimatedProps &&\n !isSameAnimatedProps(prevAnimatedProps, this.props.animatedProps)) {\n prevAnimatedProps.viewDescriptors.remove(viewTag);\n }\n // attach animatedProps property\n if ((_c = this.props.animatedProps) === null || _c === void 0 ? void 0 : _c.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.add({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n tag: viewTag,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n name: viewName,\n });\n }\n }\n _detachPropUpdater() {\n const viewTag = findNodeHandle(this);\n NODE_MAPPING.delete(viewTag);\n if (NODE_MAPPING.size === 0) {\n ReanimatedEventEmitter.removeAllListeners('onReanimatedPropsChange');\n }\n }\n componentDidUpdate(prevProps) {\n this._attachProps(this.props);\n this._reattachNativeEvents(prevProps);\n this._propsAnimated &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._propsAnimated.setNativeView(this._component);\n this._attachAnimatedStyles();\n }\n _filterNonAnimatedStyle(inputStyle) {\n const style = {};\n for (const key in inputStyle) {\n const value = inputStyle[key];\n if (!hasAnimatedNodes(value)) {\n style[key] = value;\n }\n else if (value instanceof AnimatedValue) {\n // if any style in animated component is set directly to the `Value` we set those styles to the first value of `Value` node in order\n // to avoid flash of default styles when `Value` is being asynchrounously sent via bridge and initialized in the native side.\n style[key] = value._startingValue;\n }\n }\n return style;\n }\n _filterNonAnimatedProps(inputProps) {\n const props = {};\n for (const key in inputProps) {\n const value = inputProps[key];\n if (key === 'style') {\n const styleProp = inputProps.style;\n const styles = flattenArray(styleProp !== null && styleProp !== void 0 ? styleProp : []);\n const processedStyle = styles.map((style) => {\n if (style && style.viewDescriptors) {\n // this is how we recognize styles returned by useAnimatedStyle\n style.viewsRef.add(this);\n if (this._isFirstRender) {\n this.initialStyle = Object.assign(Object.assign({}, style.initial.value), initialUpdaterRun(style.initial.updater));\n }\n return this.initialStyle;\n }\n else {\n return style;\n }\n });\n props[key] = this._filterNonAnimatedStyle(StyleSheet.flatten(processedStyle));\n }\n else if (key === 'animatedProps') {\n const animatedProp = inputProps.animatedProps;\n if (animatedProp.initial !== undefined) {\n Object.keys(animatedProp.initial.value).forEach((key) => {\n var _a, _b;\n props[key] = (_a = animatedProp.initial) === null || _a === void 0 ? void 0 : _a.value[key];\n (_b = animatedProp.viewsRef) === null || _b === void 0 ? void 0 : _b.add(this);\n });\n }\n }\n else if (value instanceof AnimatedEvent) {\n // we cannot filter out event listeners completely as some components\n // rely on having a callback registered in order to generate events\n // alltogether. Therefore we provide a dummy callback here to allow\n // native event dispatcher to hijack events.\n props[key] = dummyListener;\n }\n else if (has('current', value) &&\n value.current instanceof WorkletEventHandler) {\n if (value.current.eventNames.length > 0) {\n value.current.eventNames.forEach((eventName) => {\n props[eventName] = has('listeners', value.current)\n ? value.current.listeners[eventName]\n : dummyListener;\n });\n }\n else {\n props[key] = dummyListener;\n }\n }\n else if (!(value instanceof AnimatedNode)) {\n if (key !== 'onGestureHandlerStateChange' || !isChromeDebugger()) {\n props[key] = value;\n }\n }\n else if (value instanceof AnimatedValue) {\n // if any prop in animated component is set directly to the `Value` we set those props to the first value of `Value` node in order\n // to avoid default values for a short moment when `Value` is being asynchrounously sent via bridge and initialized in the native side.\n props[key] = value._startingValue;\n }\n }\n return props;\n }\n render() {\n const props = this._filterNonAnimatedProps(this.props);\n if (isJest()) {\n props.animatedStyle = this.animatedStyle;\n }\n if (this._isFirstRender) {\n this._isFirstRender = false;\n }\n const platformProps = Platform.select({\n web: {},\n default: { collapsable: false },\n });\n return ();\n }\n }\n AnimatedComponent.displayName = `AnimatedComponent(${Component.displayName || Component.name || 'Component'})`;\n return React.forwardRef((props, ref) => {\n return ();\n });\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport Appearance from '../Appearance';\nexport default function useColorScheme() {\n var _React$useState = React.useState(Appearance.getColorScheme()),\n colorScheme = _React$useState[0],\n setColorScheme = _React$useState[1];\n\n React.useEffect(() => {\n function listener(appearance) {\n setColorScheme(appearance.colorScheme);\n }\n\n var _Appearance$addChange = Appearance.addChangeListener(listener),\n remove = _Appearance$addChange.remove;\n\n return remove;\n });\n return colorScheme;\n}","import * as React from 'react';\nimport { Animated, StyleSheet, View, StyleProp, ViewStyle } from 'react-native';\nimport shadow from '../styles/shadow';\nimport { withTheme } from '../core/theming';\nimport overlay from '../styles/overlay';\n\nexport type Props = React.ComponentPropsWithRef & {\n /**\n * Content of the `Surface`.\n */\n children: React.ReactNode;\n style?: Animated.WithAnimatedValue>;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\n/**\n * Surface is a basic container that can give depth to an element with elevation shadow.\n * On dark theme with `adaptive` mode, surface is constructed by also placing a semi-transparent white overlay over a component surface.\n * See [Dark Theme](https://callstack.github.io/react-native-paper/theming.html#dark-theme) for more information.\n * Overlay and shadow can be applied by specifying the `elevation` property both on Android and iOS.\n *\n *
\n * \n * \n * \n *
\n *\n *
\n * \n * \n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Surface, Text } from 'react-native-paper';\n * import { StyleSheet } from 'react-native';\n *\n * const MyComponent = () => (\n * \n * Surface\n * \n * );\n *\n * export default MyComponent;\n *\n * const styles = StyleSheet.create({\n * surface: {\n * padding: 8,\n * height: 80,\n * width: 80,\n * alignItems: 'center',\n * justifyContent: 'center',\n * elevation: 4,\n * },\n * });\n * ```\n */\nconst Surface = ({ style, theme, ...rest }: Props) => {\n const { elevation = 4 } = (StyleSheet.flatten(style) || {}) as ViewStyle;\n const { dark: isDarkTheme, mode, colors } = theme;\n return (\n \n );\n};\n\nexport default withTheme(Surface);\n","import InternalAnimatedValue from './InternalAnimatedValue';\nimport AnimatedNode from './AnimatedNode';\nimport { val } from '../val';\n\nclass AnimatedMainClock extends InternalAnimatedValue {\n _frameCallback;\n\n constructor() {\n super({ type: 'MAIN_CLOCK' });\n }\n\n __onEvaluate() {\n return +new Date();\n }\n\n _runFrame = () => {\n this._updateValue(0);\n if (this.__children.length > 0) {\n this._frameCallback = requestAnimationFrame(this._runFrame);\n }\n };\n\n __attach() {\n super.__attach();\n if (!this._frameCallback) {\n this._frameCallback = requestAnimationFrame(this._runFrame);\n }\n }\n\n __detach() {\n if (this._frameCallback) {\n cancelAnimationFrame(this._frameCallback);\n this._frameCallback = null;\n }\n super.__detach();\n }\n}\n\nconst mainClock = new AnimatedMainClock();\n\nexport default class AnimatedClock extends AnimatedNode {\n _started;\n _attached;\n\n constructor() {\n super({ type: 'clock' });\n }\n\n toString() {\n return `AnimatedClock, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n return val(mainClock);\n }\n\n __attach() {\n super.__attach();\n if (this._started && !this._attached) {\n mainClock.__addChild(this);\n }\n this._attached = true;\n }\n\n __detach() {\n if (this._started && this._attached) {\n mainClock.__removeChild(this);\n }\n this._attached = false;\n super.__detach();\n }\n\n start() {\n if (!this._started && this._attached) {\n mainClock.__addChild(this);\n }\n this._started = true;\n }\n\n stop() {\n if (this._started && this._attached) {\n mainClock.__removeChild(this);\n }\n this._started = false;\n }\n\n isStarted() {\n return this._started;\n }\n}\n","function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n}\nmodule.exports = _objectDestructuringEmpty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","var _maskService=require('./lib/mask-service');var _maskService2=_interopRequireDefault(_maskService);var _textInputMask=require('./lib/text-input-mask');var _textInputMask2=_interopRequireDefault(_textInputMask);var _textMask=require('./lib/text-mask');var _textMask2=_interopRequireDefault(_textMask);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}module.exports.MaskService=_maskService2.default;module.exports.TextInputMask=_textInputMask2.default;module.exports.TextMask=_textMask2.default;","import invariant from 'invariant';\nimport { adapt } from '../core/AnimatedBlock';\nimport { val } from '../val';\nimport AnimatedNode from './AnimatedNode';\n\nclass AnimatedCond extends AnimatedNode {\n _condition;\n _ifBlock;\n _elseBlock;\n\n constructor(condition, ifBlock, elseBlock) {\n invariant(\n condition instanceof AnimatedNode,\n `Reanimated: Animated.cond node first argument should be of type AnimatedNode but got ${condition}`\n );\n invariant(\n ifBlock instanceof AnimatedNode,\n `Reanimated: Animated.cond node second argument should be of type AnimatedNode but got ${ifBlock}`\n );\n invariant(\n elseBlock instanceof AnimatedNode || elseBlock === undefined,\n `Reanimated: Animated.cond node third argument should be of type AnimatedNode or should be undefined but got ${elseBlock}`\n );\n super(\n {\n type: 'cond',\n cond: condition,\n ifBlock,\n elseBlock,\n },\n [condition, ifBlock, elseBlock]\n );\n this._condition = condition;\n this._ifBlock = ifBlock;\n this._elseBlock = elseBlock;\n }\n\n toString() {\n return `AnimatedCond, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n if (val(this._condition)) {\n return val(this._ifBlock);\n } else {\n return this._elseBlock !== undefined ? val(this._elseBlock) : undefined;\n }\n }\n}\n\nexport function createAnimatedCond(cond, ifBlock, elseBlock) {\n return new AnimatedCond(\n adapt(cond),\n adapt(ifBlock),\n elseBlock === undefined ? undefined : adapt(elseBlock)\n );\n}\n","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _createForOfIteratorHelperLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { __assign } from \"tslib\";\nimport \"../../utilities/globals/index.js\";\nimport { Trie } from \"@wry/trie\";\nimport { canUseWeakMap, canUseWeakSet, isNonNullObject as isObjectOrArray, } from \"../../utilities/index.js\";\nfunction shallowCopy(value) {\n if (isObjectOrArray(value)) {\n return Array.isArray(value)\n ? value.slice(0)\n : __assign({ __proto__: Object.getPrototypeOf(value) }, value);\n }\n return value;\n}\nvar ObjectCanon = (function () {\n function ObjectCanon() {\n this.known = new (canUseWeakSet ? WeakSet : Set)();\n this.pool = new Trie(canUseWeakMap);\n this.passes = new WeakMap();\n this.keysByJSON = new Map();\n this.empty = this.admit({});\n }\n ObjectCanon.prototype.isKnown = function (value) {\n return isObjectOrArray(value) && this.known.has(value);\n };\n ObjectCanon.prototype.pass = function (value) {\n if (isObjectOrArray(value)) {\n var copy = shallowCopy(value);\n this.passes.set(copy, value);\n return copy;\n }\n return value;\n };\n ObjectCanon.prototype.admit = function (value) {\n var _this = this;\n if (isObjectOrArray(value)) {\n var original = this.passes.get(value);\n if (original)\n return original;\n var proto = Object.getPrototypeOf(value);\n switch (proto) {\n case Array.prototype: {\n if (this.known.has(value))\n return value;\n var array = value.map(this.admit, this);\n var node = this.pool.lookupArray(array);\n if (!node.array) {\n this.known.add(node.array = array);\n if (__DEV__) {\n Object.freeze(array);\n }\n }\n return node.array;\n }\n case null:\n case Object.prototype: {\n if (this.known.has(value))\n return value;\n var proto_1 = Object.getPrototypeOf(value);\n var array_1 = [proto_1];\n var keys = this.sortedKeys(value);\n array_1.push(keys.json);\n var firstValueIndex_1 = array_1.length;\n keys.sorted.forEach(function (key) {\n array_1.push(_this.admit(value[key]));\n });\n var node = this.pool.lookupArray(array_1);\n if (!node.object) {\n var obj_1 = node.object = Object.create(proto_1);\n this.known.add(obj_1);\n keys.sorted.forEach(function (key, i) {\n obj_1[key] = array_1[firstValueIndex_1 + i];\n });\n if (__DEV__) {\n Object.freeze(obj_1);\n }\n }\n return node.object;\n }\n }\n }\n return value;\n };\n ObjectCanon.prototype.sortedKeys = function (obj) {\n var keys = Object.keys(obj);\n var node = this.pool.lookupArray(keys);\n if (!node.keys) {\n keys.sort();\n var json = JSON.stringify(keys);\n if (!(node.keys = this.keysByJSON.get(json))) {\n this.keysByJSON.set(json, node.keys = { sorted: keys, json: json });\n }\n }\n return node.keys;\n };\n return ObjectCanon;\n}());\nexport { ObjectCanon };\nexport var canonicalStringify = Object.assign(function (value) {\n if (isObjectOrArray(value)) {\n if (stringifyCanon === void 0) {\n resetCanonicalStringify();\n }\n var canonical = stringifyCanon.admit(value);\n var json = stringifyCache.get(canonical);\n if (json === void 0) {\n stringifyCache.set(canonical, json = JSON.stringify(canonical));\n }\n return json;\n }\n return JSON.stringify(value);\n}, {\n reset: resetCanonicalStringify,\n});\nvar stringifyCanon;\nvar stringifyCache;\nfunction resetCanonicalStringify() {\n stringifyCanon = new ObjectCanon;\n stringifyCache = new (canUseWeakMap ? WeakMap : Map)();\n}\n//# sourceMappingURL=object-canon.js.map","import { Platform, findNodeHandle } from 'react-native';\nimport ReanimatedModule from '../../ReanimatedModule';\n\nimport AnimatedNode from './AnimatedNode';\nimport InternalAnimatedValue from './AnimatedValue';\nimport { createAnimatedAlways } from './AnimatedAlways';\n\nimport invariant from 'invariant';\nimport createEventObjectProxyPolyfill from './createEventObjectProxyPolyfill';\n\nfunction sanitizeArgMapping(argMapping) {\n // Find animated values in `argMapping` and create an array representing their\n // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n const eventMappings = [];\n const alwaysNodes = [];\n\n const getNode = (node) => {\n if (\n Platform.OS === 'web' ||\n Platform.OS === 'windows' ||\n Platform.OS === 'macos'\n ) {\n return node;\n }\n return node.__nodeID;\n };\n\n const traverse = (value, path) => {\n if (value instanceof InternalAnimatedValue) {\n eventMappings.push(path.concat(getNode(value)));\n } else if (typeof value === 'object' && value.__val) {\n eventMappings.push(path.concat(getNode(value.__val)));\n } else if (typeof value === 'function') {\n const node = new InternalAnimatedValue(0);\n alwaysNodes.push(createAnimatedAlways(value(node)));\n eventMappings.push(path.concat(getNode(node)));\n } else if (typeof value === 'object') {\n for (const key in value) {\n traverse(value[key], path.concat(key));\n }\n }\n };\n\n invariant(\n argMapping[0] && argMapping[0].nativeEvent,\n 'Native driven events only support animated values contained inside `nativeEvent`.'\n );\n\n // Assume that the event containing `nativeEvent` is always the first argument.\n const ev = argMapping[0].nativeEvent;\n if (typeof ev === 'object') {\n traverse(ev, []);\n } else if (typeof ev === 'function') {\n const proxyHandler = {\n get: function (target, name) {\n if (name === '__isProxy') {\n return true;\n }\n if (!target[name] && name !== '__val') {\n target[name] = new Proxy({}, proxyHandler);\n }\n return target[name];\n },\n set: function (target, prop, value) {\n if (prop === '__val') {\n target[prop] = value;\n return true;\n }\n return false;\n },\n };\n\n const proxy =\n typeof Proxy === 'function'\n ? new Proxy({}, proxyHandler)\n : createEventObjectProxyPolyfill();\n alwaysNodes.push(createAnimatedAlways(ev(proxy)));\n traverse(proxy, []);\n }\n\n return { eventMappings, alwaysNodes };\n}\n\nexport default class AnimatedEvent extends AnimatedNode {\n constructor(argMapping, _config = {}) {\n const { eventMappings, alwaysNodes } = sanitizeArgMapping(argMapping);\n super({ type: 'event', argMapping: eventMappings });\n this._alwaysNodes = alwaysNodes;\n }\n\n toString() {\n return `AnimatedEvent, id: ${this.__nodeID}`;\n }\n\n // The below field is a temporary workaround to make AnimatedEvent object be recognized\n // as Animated.event event callback and therefore filtered out from being send over the\n // bridge which was causing the object to be frozen in JS.\n __isNative = true;\n\n attachEvent(viewRef, eventName) {\n for (let i = 0; i < this._alwaysNodes.length; i++) {\n this._alwaysNodes[i].__attach();\n }\n this.__attach();\n const viewTag = findNodeHandle(viewRef);\n ReanimatedModule.attachEvent(viewTag, eventName, this.__nodeID);\n }\n\n __onEvaluate() {\n return 0;\n }\n\n detachEvent(viewRef, eventName) {\n for (let i = 0; i < this._alwaysNodes.length; i++) {\n this._alwaysNodes[i].isNativelyInitialized() &&\n this._alwaysNodes[i].__detach();\n }\n const viewTag = findNodeHandle(viewRef);\n ReanimatedModule.detachEvent(viewTag, eventName, this.__nodeID);\n this.__detach();\n }\n}\n\nexport function createAnimatedEvent(argMapping, config) {\n return new AnimatedEvent(argMapping, config);\n}\n","// JSC on Android and iOS 8 & 9 does not support proxies.\n// The below workaround provides a proxy-like functionality for event data by\n// creating an object which contains predefined fields for the most commonly\n// used event attributes. If your app uses even attribute which is not listed\n// here please submit a PR to add that and we will merge it right away\nexport default function createEventObjectProxyPolyfill() {\n const nodesMap = {\n // Gesture handlers-related event\n translationX: {},\n translationY: {},\n state: {},\n oldState: {},\n absoluteX: {},\n absoluteY: {},\n x: {},\n y: {},\n velocityX: {},\n velocityY: {},\n scale: {},\n focalX: {},\n focalY: {},\n rotation: {},\n anchorX: {},\n anchorY: {},\n velocity: {},\n numberOfPointers: {},\n // onLayour-related event\n layout: { x: {}, y: {}, width: {}, height: {} },\n // ScrollView event\n contentOffset: { y: {}, x: {} },\n layoutMeasurement: { width: {}, height: {} },\n contentSize: { width: {}, height: {} },\n zoomScale: {},\n contentInset: { right: {}, top: {}, left: {}, bottom: {} },\n };\n const traverse = (obj) => {\n for (const key in obj) {\n traverse(obj[key]);\n Object.assign(obj[key], { __isProxy: true });\n }\n };\n traverse(nodesMap);\n return nodesMap;\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport UIManager from '../../exports/UIManager';\n/**\n * This class is responsible for coordinating the \"focused\"\n * state for TextInputs. All calls relating to the keyboard\n * should be funneled through here\n */\n\nvar TextInputState = {\n /**\n * Internal state\n */\n _currentlyFocusedNode: null,\n\n /**\n * Returns the ID of the currently focused text field, if one exists\n * If no text field is focused it returns null\n */\n currentlyFocusedField() {\n if (document.activeElement !== this._currentlyFocusedNode) {\n this._currentlyFocusedNode = null;\n }\n\n return this._currentlyFocusedNode;\n },\n\n /**\n * @param {Object} TextInputID id of the text field to focus\n * Focuses the specified text field\n * noop if the text field was already focused\n */\n focusTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = textFieldNode;\n\n if (document.activeElement !== textFieldNode) {\n UIManager.focus(textFieldNode);\n }\n }\n },\n\n /**\n * @param {Object} textFieldNode id of the text field to focus\n * Unfocuses the specified text field\n * noop if it wasn't focused\n */\n blurTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = null;\n\n if (document.activeElement === textFieldNode) {\n UIManager.blur(textFieldNode);\n }\n }\n }\n\n};\nexport default TextInputState;","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { ConsoleLogger as LoggerClass } from './Logger';\nvar logger = new LoggerClass('Amplify');\nvar AmplifyClass = /** @class */ (function () {\n function AmplifyClass() {\n // Everything that is `register`ed is tracked here\n this._components = [];\n this._config = {};\n // All modules (with `getModuleName()`) are stored here for dependency injection\n this._modules = {};\n // for backward compatibility to avoid breaking change\n // if someone is using like Amplify.Auth\n this.Auth = null;\n this.Analytics = null;\n this.API = null;\n this.Credentials = null;\n this.Storage = null;\n this.I18n = null;\n this.Cache = null;\n this.PubSub = null;\n this.Interactions = null;\n this.Pushnotification = null;\n this.UI = null;\n this.XR = null;\n this.Predictions = null;\n this.DataStore = null;\n this.Geo = null;\n this.Logger = LoggerClass;\n this.ServiceWorker = null;\n }\n AmplifyClass.prototype.register = function (comp) {\n logger.debug('component registered in amplify', comp);\n this._components.push(comp);\n if (typeof comp.getModuleName === 'function') {\n this._modules[comp.getModuleName()] = comp;\n this[comp.getModuleName()] = comp;\n }\n else {\n logger.debug('no getModuleName method for component', comp);\n }\n // Finally configure this new component(category) loaded\n // With the new modularization changes in Amplify V3, all the Amplify\n // component are not loaded/registered right away but when they are\n // imported (and hence instantiated) in the client's app. This ensures\n // that all new components imported get correctly configured with the\n // configuration that Amplify.configure() was called with.\n comp.configure(this._config);\n };\n AmplifyClass.prototype.configure = function (config) {\n var _this = this;\n if (!config)\n return this._config;\n this._config = Object.assign(this._config, config);\n logger.debug('amplify config', this._config);\n // Dependency Injection via property-setting.\n // This avoids introducing a public method/interface/setter that's difficult to remove later.\n // Plus, it reduces `if` statements within the `constructor` and `configure` of each module\n Object.entries(this._modules).forEach(function (_a) {\n var _b = __read(_a, 2), Name = _b[0], comp = _b[1];\n // e.g. Auth.*\n Object.keys(comp).forEach(function (property) {\n // e.g. Auth[\"Credentials\"] = this._modules[\"Credentials\"] when set\n if (_this._modules[property]) {\n comp[property] = _this._modules[property];\n }\n });\n });\n this._components.map(function (comp) {\n comp.configure(_this._config);\n });\n return this._config;\n };\n AmplifyClass.prototype.addPluggable = function (pluggable) {\n if (pluggable &&\n pluggable['getCategory'] &&\n typeof pluggable['getCategory'] === 'function') {\n this._components.map(function (comp) {\n if (comp['addPluggable'] &&\n typeof comp['addPluggable'] === 'function') {\n comp.addPluggable(pluggable);\n }\n });\n }\n };\n return AmplifyClass;\n}());\nexport { AmplifyClass };\nexport var Amplify = new AmplifyClass();\n/**\n * @deprecated use named import\n */\nexport default Amplify;\n//# sourceMappingURL=Amplify.js.map","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport normalizeColor from 'normalize-css-color';\n\nvar processColor = color => {\n if (color === undefined || color === null) {\n return color;\n } // convert number and hex\n\n\n var int32Color = normalizeColor(color);\n\n if (int32Color === undefined || int32Color === null) {\n return undefined;\n }\n\n int32Color = (int32Color << 24 | int32Color >>> 8) >>> 0;\n return int32Color;\n};\n\nexport default processColor;","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\r\n// object keys weakly, yet can also hold non-object keys, unlike the\r\n// native `WeakMap`.\r\n// If no makeData function is supplied, the looked-up data will be an empty,\r\n// null-prototype Object.\r\nvar defaultMakeData = function () { return Object.create(null); };\r\n// Useful for processing arguments objects as well as arrays.\r\nvar _a = Array.prototype, forEach = _a.forEach, slice = _a.slice;\r\nvar Trie = /** @class */ (function () {\r\n function Trie(weakness, makeData) {\r\n if (weakness === void 0) { weakness = true; }\r\n if (makeData === void 0) { makeData = defaultMakeData; }\r\n this.weakness = weakness;\r\n this.makeData = makeData;\r\n }\r\n Trie.prototype.lookup = function () {\r\n var array = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n array[_i] = arguments[_i];\r\n }\r\n return this.lookupArray(array);\r\n };\r\n Trie.prototype.lookupArray = function (array) {\r\n var node = this;\r\n forEach.call(array, function (key) { return node = node.getChildTrie(key); });\r\n return node.data || (node.data = this.makeData(slice.call(array)));\r\n };\r\n Trie.prototype.getChildTrie = function (key) {\r\n var map = this.weakness && isObjRef(key)\r\n ? this.weak || (this.weak = new WeakMap())\r\n : this.strong || (this.strong = new Map());\r\n var child = map.get(key);\r\n if (!child)\r\n map.set(key, child = new Trie(this.weakness, this.makeData));\r\n return child;\r\n };\r\n return Trie;\r\n}());\r\nfunction isObjRef(value) {\r\n switch (typeof value) {\r\n case \"object\":\r\n if (value === null)\r\n break;\r\n // Fall through to return true...\r\n case \"function\":\r\n return true;\r\n }\r\n return false;\r\n}\n\nexport { Trie };\n//# sourceMappingURL=trie.esm.js.map\n","/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\nexport function dedentBlockStringValue(rawString) {\n // Expand a block string's raw value into independent lines.\n var lines = rawString.split(/\\r\\n|[\\n\\r]/g); // Remove common indentation from all lines but first.\n\n var commonIndent = getBlockStringIndentation(rawString);\n\n if (commonIndent !== 0) {\n for (var i = 1; i < lines.length; i++) {\n lines[i] = lines[i].slice(commonIndent);\n }\n } // Remove leading and trailing blank lines.\n\n\n var startLine = 0;\n\n while (startLine < lines.length && isBlank(lines[startLine])) {\n ++startLine;\n }\n\n var endLine = lines.length;\n\n while (endLine > startLine && isBlank(lines[endLine - 1])) {\n --endLine;\n } // Return a string of the lines joined with U+000A.\n\n\n return lines.slice(startLine, endLine).join('\\n');\n}\n\nfunction isBlank(str) {\n for (var i = 0; i < str.length; ++i) {\n if (str[i] !== ' ' && str[i] !== '\\t') {\n return false;\n }\n }\n\n return true;\n}\n/**\n * @internal\n */\n\n\nexport function getBlockStringIndentation(value) {\n var _commonIndent;\n\n var isFirstLine = true;\n var isEmptyLine = true;\n var indent = 0;\n var commonIndent = null;\n\n for (var i = 0; i < value.length; ++i) {\n switch (value.charCodeAt(i)) {\n case 13:\n // \\r\n if (value.charCodeAt(i + 1) === 10) {\n ++i; // skip \\r\\n as one symbol\n }\n\n // falls through\n\n case 10:\n // \\n\n isFirstLine = false;\n isEmptyLine = true;\n indent = 0;\n break;\n\n case 9: // \\t\n\n case 32:\n // \n ++indent;\n break;\n\n default:\n if (isEmptyLine && !isFirstLine && (commonIndent === null || indent < commonIndent)) {\n commonIndent = indent;\n }\n\n isEmptyLine = false;\n }\n }\n\n return (_commonIndent = commonIndent) !== null && _commonIndent !== void 0 ? _commonIndent : 0;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value) {\n var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var preferMultipleLines = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isSingleLine = value.indexOf('\\n') === -1;\n var hasLeadingSpace = value[0] === ' ' || value[0] === '\\t';\n var hasTrailingQuote = value[value.length - 1] === '\"';\n var hasTrailingSlash = value[value.length - 1] === '\\\\';\n var printAsMultipleLines = !isSingleLine || hasTrailingQuote || hasTrailingSlash || preferMultipleLines;\n var result = ''; // Format a multi-line block quote to account for leading space.\n\n if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {\n result += '\\n' + indentation;\n }\n\n result += indentation ? value.replace(/\\n/g, '\\n' + indentation) : value;\n\n if (printAsMultipleLines) {\n result += '\\n';\n }\n\n return '\"\"\"' + result.replace(/\"\"\"/g, '\\\\\"\"\"') + '\"\"\"';\n}\n","import { Platform } from 'expo-modules-core';\nimport invariant from 'invariant';\n\nimport { NativeURLListener, URLListener } from './Linking.types';\n\nconst EventTypes = ['url'];\n\nconst listeners: { listener: URLListener; nativeListener: NativeURLListener }[] = [];\n\nexport default {\n addEventListener(type: 'url', listener: URLListener): { remove(): void } {\n // Do nothing in Node.js environments\n if (!Platform.isDOMAvailable) {\n return { remove() {} };\n }\n\n invariant(\n EventTypes.indexOf(type) !== -1,\n `Linking.addEventListener(): ${type} is not a valid event`\n );\n const nativeListener: NativeURLListener = (nativeEvent) =>\n listener({ url: window.location.href, nativeEvent });\n listeners.push({ listener, nativeListener });\n window.addEventListener('message', nativeListener, false);\n return {\n remove: () => {\n this.removeEventListener(type, listener);\n },\n };\n },\n\n removeEventListener(type: 'url', listener: URLListener): void {\n // Do nothing in Node.js environments\n if (!Platform.isDOMAvailable) {\n return;\n }\n invariant(\n EventTypes.indexOf(type) !== -1,\n `Linking.removeEventListener(): ${type} is not a valid event.`\n );\n const listenerIndex = listeners.findIndex((pair) => pair.listener === listener);\n invariant(\n listenerIndex !== -1,\n 'Linking.removeEventListener(): cannot remove an unregistered event listener.'\n );\n const nativeListener = listeners[listenerIndex].nativeListener;\n window.removeEventListener('message', nativeListener, false);\n listeners.splice(listenerIndex, 1);\n },\n\n async canOpenURL(url: string): Promise {\n // In reality this should be able to return false for links like `chrome://` on chrome.\n return true;\n },\n\n async getInitialURL(): Promise {\n if (!Platform.isDOMAvailable) return '';\n return window.location.href;\n },\n\n async openURL(url: string): Promise {\n if (Platform.isDOMAvailable) {\n // @ts-ignore\n window.location = new URL(url, window.location).toString();\n }\n },\n};\n","import Constants, { ExecutionEnvironment } from 'expo-constants';\nimport { Platform } from 'expo-modules-core';\n\nconst LINKING_GUIDE_URL = `https://docs.expo.dev/guides/linking/`;\n\n// @docsMissing\nexport function hasCustomScheme(): boolean {\n if (Constants.executionEnvironment === ExecutionEnvironment.Bare) {\n // Bare always uses a custom scheme.\n return true;\n } else if (Constants.executionEnvironment === ExecutionEnvironment.Standalone) {\n // Standalone uses a custom scheme when one is defined.\n const manifestSchemes = collectManifestSchemes();\n return !!manifestSchemes.length;\n }\n // Store client uses the default scheme.\n return false;\n}\n\ntype SchemeConfig = {\n scheme?: string | string[];\n};\n\nfunction getSchemes(config: SchemeConfig | null | undefined): string[] {\n if (config) {\n if (Array.isArray(config.scheme)) {\n const validate = (value: any): value is string => {\n return typeof value === 'string';\n };\n return config.scheme.filter(validate);\n } else if (typeof config.scheme === 'string') {\n return [config.scheme];\n }\n }\n return [];\n}\n\n// Valid schemes for the Expo client.\nconst EXPO_CLIENT_SCHEMES = Platform.select({\n // Results from `npx uri-scheme list --info-path ios/Exponent/Supporting/Info.plist`\n ios: [\n 'exp',\n 'exps',\n 'fb1696089354000816',\n 'host.exp.exponent',\n 'com.googleusercontent.apps.603386649315-vp4revvrcgrcjme51ebuhbkbspl048l9',\n ],\n // Collected manually\n android: ['exp', 'exps'],\n});\n\n/**\n * Collect a list of platform schemes from the manifest.\n *\n * This method is based on the `Scheme` modules from `@expo/config-plugins`\n * which are used for collecting the schemes before prebuilding a native app.\n *\n * - iOS: scheme -> ios.scheme -> ios.bundleIdentifier\n * - Android: scheme -> android.scheme -> android.package\n */\nexport function collectManifestSchemes(): string[] {\n // ios.scheme, android.scheme, and scheme as an array are not yet added to the\n // Expo config spec, but there's no harm in adding them early.\n // They'll be added when we drop support for `expo build` or decide\n // to have them only work with `eas build`.\n const platformManifest =\n (Platform.select({\n ios: Constants.expoConfig?.ios,\n android: Constants.expoConfig?.android,\n web: {},\n }) as SchemeConfig) ?? {};\n\n const schemes = getSchemes(Constants.expoConfig);\n\n // Add the detached scheme after the manifest scheme for legacy ExpoKit support.\n if (Constants.expoConfig?.detach?.scheme) {\n schemes.push(Constants.expoConfig.detach.scheme);\n }\n\n // Add the unimplemented platform schemes last.\n schemes.push(...getSchemes(platformManifest));\n\n return schemes;\n}\n\nfunction getNativeAppIdScheme(): string | null {\n // Add the native application identifier to the list of schemes for parity with `expo build`.\n // The native app id has been added to builds for a long time to support Google Sign-In.\n return (\n Platform.select({\n ios: Constants.expoConfig?.ios?.bundleIdentifier,\n // TODO: This may change to android.applicationId in the future.\n android: Constants.expoConfig?.android?.package,\n }) ?? null\n );\n}\n\n// @needsAudit\n/**\n * Ensure the user has linked the expo-constants manifest in bare workflow.\n */\nexport function hasConstantsManifest(): boolean {\n return (\n !!Object.keys(Constants.manifest ?? {}).length ||\n !!Object.keys(Constants.manifest2 ?? {}).length\n );\n}\n\n// @docsMissing\nexport function resolveScheme(options: { scheme?: string; isSilent?: boolean }): string {\n if (\n Constants.executionEnvironment !== ExecutionEnvironment.StoreClient &&\n !hasConstantsManifest()\n ) {\n throw new Error(\n `expo-linking needs access to the expo-constants manifest (app.json or app.config.js) to determine what URI scheme to use. Setup the manifest and rebuild: https://github.com/expo/expo/blob/main/packages/expo-constants/README.md`\n );\n }\n\n const manifestSchemes = collectManifestSchemes();\n const nativeAppId = getNativeAppIdScheme();\n\n if (!manifestSchemes.length) {\n if (__DEV__ && !options.isSilent) {\n // Assert a config warning if no scheme is setup yet. `isSilent` is used for warnings, but we'll ignore it for exceptions.\n console.warn(\n `Linking requires a build-time setting \\`scheme\\` in the project's Expo config (app.config.js or app.json) for production apps, if it's left blank, your app may crash. The scheme does not apply to development in the Expo client but you should add it as soon as you start working with Linking to avoid creating a broken build. Learn more: ${LINKING_GUIDE_URL}`\n );\n } else if (!__DEV__ || Constants.executionEnvironment !== ExecutionEnvironment.StoreClient) {\n // Throw in production or when not in store client. Use the __DEV__ flag so users can test this functionality with `expo start --no-dev`,\n throw new Error(\n 'Cannot make a deep link into a standalone app with no custom scheme defined'\n );\n }\n }\n\n // In the Expo client...\n if (Constants.executionEnvironment === ExecutionEnvironment.StoreClient) {\n if (options.scheme) {\n // This enables users to use the fb or google redirects on iOS in the Expo client.\n if (EXPO_CLIENT_SCHEMES.includes(options.scheme)) {\n return options.scheme;\n }\n // Silently ignore to make bare workflow development easier.\n }\n // Fallback to the default client scheme.\n return 'exp';\n }\n\n const schemes = [...manifestSchemes, nativeAppId].filter(Boolean);\n\n if (options.scheme) {\n if (__DEV__) {\n // Bare workflow development assertion about the provided scheme matching the Expo config.\n if (!schemes.includes(options.scheme) && !options.isSilent) {\n // TODO: Will this cause issues for things like Facebook or Google that use `reversed-client-id://` or `fb:/`?\n // Traditionally these APIs don't use the Linking API directly.\n console.warn(\n `The provided Linking scheme '${\n options.scheme\n }' does not appear in the list of possible URI schemes in your Expo config. Expected one of: ${schemes\n .map((scheme) => `'${scheme}'`)\n .join(', ')}`\n );\n }\n }\n // Return the user provided value.\n return options.scheme;\n }\n // If no scheme is provided, we'll guess what the scheme is based on the manifest.\n // This is to attempt to keep managed apps working across expo build and EAS build.\n // EAS build ejects the app before building it so we can assume that the user will\n // be using one of defined schemes.\n\n // If the native app id is the only scheme,\n if (!!nativeAppId && !manifestSchemes.length && !options.isSilent) {\n // Assert a config warning if no scheme is setup yet.\n // This warning only applies to managed workflow EAS apps, as bare workflow\n console.warn(\n `Linking requires a build-time setting \\`scheme\\` in the project's Expo config (app.config.js or app.json) for bare or production apps. Manually providing a \\`scheme\\` property can circumvent this warning. Using native app identifier as the scheme '${nativeAppId}'. Learn more: ${LINKING_GUIDE_URL}`\n );\n return nativeAppId;\n }\n // When the native app id is defined, it'll be added to the list of schemes, for most\n // users this will be unexpected behavior and cause all apps to warn when the Linking API\n // is used without a predefined scheme. For now, if the native app id is defined, require\n // at least one more scheme to be added before throwing a warning.\n // i.e. `scheme: ['foo', 'bar']` (unimplemented functionality).\n const [scheme, ...extraSchemes] = manifestSchemes;\n\n if (!scheme) {\n const errorMessage = `Linking requires a build-time setting \\`scheme\\` in the project's Expo config (app.config.js or app.json) for bare or production apps. Manually providing a \\`scheme\\` property can circumvent this error. Learn more: ${LINKING_GUIDE_URL}`;\n // Throw in production, use the __DEV__ flag so users can test this functionality with `expo start --no-dev`\n throw new Error(errorMessage);\n }\n if (extraSchemes.length && !options.isSilent) {\n console.warn(\n `Linking found multiple possible URI schemes in your Expo config.\\nUsing '${scheme}'. Ignoring: ${[\n ...extraSchemes,\n nativeAppId,\n ]\n .filter(Boolean)\n .join(', ')}.\\nPlease supply the preferred URI scheme to the Linking API.`\n );\n }\n return scheme;\n}\n","import Constants from 'expo-constants';\nimport { Platform, UnavailabilityError } from 'expo-modules-core';\nimport invariant from 'invariant';\nimport qs from 'qs';\nimport { useEffect, useState } from 'react';\nimport { EmitterSubscription } from 'react-native';\nimport URL from 'url-parse';\n\nimport NativeLinking from './ExpoLinking';\nimport {\n CreateURLOptions,\n ParsedURL,\n QueryParams,\n SendIntentExtras,\n URLListener,\n} from './Linking.types';\nimport { hasCustomScheme, resolveScheme } from './Schemes';\n\nfunction validateURL(url: string): void {\n invariant(typeof url === 'string', 'Invalid URL: should be a string. Was: ' + url);\n invariant(url, 'Invalid URL: cannot be empty');\n}\n\nfunction getHostUri(): string | null {\n if (Constants.manifest?.hostUri) {\n return Constants.manifest.hostUri;\n } else if (Constants.manifest2?.extra?.expoClient?.hostUri) {\n return Constants.manifest2.extra.expoClient.hostUri;\n } else if (!hasCustomScheme()) {\n // we're probably not using up-to-date xdl, so just fake it for now\n // we have to remove the /--/ on the end since this will be inserted again later\n return removeScheme(Constants.linkingUri).replace(/\\/--($|\\/.*$)/, '');\n } else {\n return null;\n }\n}\n\nfunction isExpoHosted(): boolean {\n const hostUri = getHostUri();\n return !!(\n hostUri &&\n (/^(.*\\.)?(expo\\.io|exp\\.host|exp\\.direct|expo\\.test|expo\\.dev)(:.*)?(\\/.*)?$/.test(hostUri) ||\n Constants.manifest?.developer ||\n Constants.manifest2?.extra?.expoGo?.developer)\n );\n}\n\nfunction removeScheme(url: string): string {\n return url.replace(/^[a-zA-Z0-9+.-]+:\\/\\//, '');\n}\n\nfunction removePort(url: string): string {\n return url.replace(/(?=([a-zA-Z0-9+.-]+:\\/\\/)?[^/]):\\d+/, '');\n}\n\nfunction removeLeadingSlash(url: string): string {\n return url.replace(/^\\//, '');\n}\n\nfunction removeTrailingSlashAndQueryString(url: string): string {\n return url.replace(/\\/?\\?.*$/, '');\n}\n\nfunction ensureTrailingSlash(input: string, shouldAppend: boolean): string {\n const hasSlash = input.endsWith('/');\n if (hasSlash && !shouldAppend) {\n return input.substring(0, input.length - 1);\n } else if (!hasSlash && shouldAppend) {\n return `${input}/`;\n }\n return input;\n}\n\nfunction ensureLeadingSlash(input: string, shouldAppend: boolean): string {\n const hasSlash = input.startsWith('/');\n if (hasSlash && !shouldAppend) {\n return input.substring(1);\n } else if (!hasSlash && shouldAppend) {\n return `/${input}`;\n }\n return input;\n}\n\n// @needsAudit\n/**\n * Create a URL that works for the environment the app is currently running in.\n * The scheme in bare and standalone must be defined in the app.json under `expo.scheme`.\n *\n * # Examples\n * - Bare: empty string\n * - Standalone, Custom: `yourscheme:///path`\n * - Web (dev): `https://localhost:19006/path`\n * - Web (prod): `https://myapp.com/path`\n * - Expo Client (dev): `exp://128.0.0.1:19000/--/path`\n * - Expo Client (prod): `exp://exp.host/@yourname/your-app/--/path`\n *\n * @param path addition path components to append to the base URL.\n * @param queryParams An object with a set of query parameters. These will be merged with any\n * Expo-specific parameters that are needed (e.g. release channel) and then appended to the URL\n * as a query string.\n * @param scheme Optional URI protocol to use in the URL `:///`, when `undefined` the scheme\n * will be chosen from the Expo config (`app.config.js` or `app.json`).\n * @return A URL string which points to your app with the given deep link information.\n * @deprecated An alias for [`createURL()`](#linkingcreateurlpath-namedparameters). This method is\n * deprecated and will be removed in a future SDK version.\n */\nexport function makeUrl(path: string = '', queryParams?: QueryParams, scheme?: string): string {\n return createURL(path, { queryParams, scheme, isTripleSlashed: true });\n}\n\n// @needsAudit\n/**\n * Helper method for constructing a deep link into your app, given an optional path and set of query\n * parameters. Creates a URI scheme with two slashes by default.\n *\n * The scheme in bare and standalone must be defined in the Expo config (`app.config.js` or `app.json`)\n * under `expo.scheme`.\n *\n * # Examples\n * - Bare: `://path` - uses provided scheme or scheme from Expo config `scheme`.\n * - Standalone, Custom: `yourscheme://path`\n * - Web (dev): `https://localhost:19006/path`\n * - Web (prod): `https://myapp.com/path`\n * - Expo Client (dev): `exp://128.0.0.1:19000/--/path`\n * - Expo Client (prod): `exp://exp.host/@yourname/your-app/--/path`\n *\n * @param path Addition path components to append to the base URL.\n * @param namedParameters Additional options object.\n * @return A URL string which points to your app with the given deep link information.\n */\nexport function createURL(\n path: string,\n { scheme, queryParams = {}, isTripleSlashed = false }: CreateURLOptions = {}\n): string {\n if (Platform.OS === 'web') {\n if (!Platform.isDOMAvailable) return '';\n\n const origin = ensureTrailingSlash(window.location.origin, false);\n let queryString = qs.stringify(queryParams);\n if (queryString) {\n queryString = `?${queryString}`;\n }\n\n let outputPath = path;\n if (outputPath) outputPath = ensureLeadingSlash(path, true);\n\n return encodeURI(`${origin}${outputPath}${queryString}`);\n }\n\n const resolvedScheme = resolveScheme({ scheme });\n\n let hostUri = getHostUri() || '';\n\n if (hasCustomScheme() && isExpoHosted()) {\n hostUri = '';\n }\n\n if (path) {\n if (isExpoHosted() && hostUri) {\n path = `/--/${removeLeadingSlash(path)}`;\n }\n if (isTripleSlashed && !path.startsWith('/')) {\n path = `/${path}`;\n }\n } else {\n path = '';\n }\n\n // merge user-provided query params with any that were already in the hostUri\n // e.g. release-channel\n let queryString = '';\n const queryStringMatchResult = hostUri.match(/(.*)\\?(.+)/);\n if (queryStringMatchResult) {\n hostUri = queryStringMatchResult[1];\n queryString = queryStringMatchResult[2];\n let paramsFromHostUri = {};\n try {\n const parsedParams = qs.parse(queryString);\n if (typeof parsedParams === 'object') {\n paramsFromHostUri = parsedParams;\n }\n } catch {}\n queryParams = {\n ...queryParams,\n ...paramsFromHostUri,\n };\n }\n queryString = qs.stringify(queryParams);\n if (queryString) {\n queryString = `?${queryString}`;\n }\n\n hostUri = ensureLeadingSlash(hostUri, !isTripleSlashed);\n\n return encodeURI(\n `${resolvedScheme}:${isTripleSlashed ? '/' : ''}/${hostUri}${path}${queryString}`\n );\n}\n\n// @needsAudit\n/**\n * Helper method for parsing out deep link information from a URL.\n * @param url A URL that points to the currently running experience (e.g. an output of `Linking.createURL()`).\n * @return A `ParsedURL` object.\n */\nexport function parse(url: string): ParsedURL {\n validateURL(url);\n\n const parsed = URL(url, /* parseQueryString */ true);\n\n for (const param in parsed.query) {\n parsed.query[param] = decodeURIComponent(parsed.query[param]!);\n }\n const queryParams = parsed.query;\n\n const hostUri = getHostUri() || '';\n const hostUriStripped = removePort(removeTrailingSlashAndQueryString(hostUri));\n\n let path = parsed.pathname || null;\n let hostname = parsed.hostname || null;\n let scheme = parsed.protocol || null;\n\n if (scheme) {\n // Remove colon at end\n scheme = scheme.substring(0, scheme.length - 1);\n }\n\n if (path) {\n path = removeLeadingSlash(path);\n\n let expoPrefix: string | null = null;\n if (hostUriStripped) {\n const parts = hostUriStripped.split('/');\n expoPrefix = parts.slice(1).concat(['--/']).join('/');\n }\n\n if (isExpoHosted() && !hasCustomScheme() && expoPrefix && path.startsWith(expoPrefix)) {\n path = path.substring(expoPrefix.length);\n hostname = null;\n } else if (path.indexOf('+') > -1) {\n path = path.substring(path.indexOf('+') + 1);\n }\n }\n\n return {\n hostname,\n path,\n queryParams,\n scheme,\n };\n}\n\n// @needsAudit\n/**\n * Add a handler to `Linking` changes by listening to the `url` event type and providing the handler.\n * It is recommended to use the [`useURL()`](#useurl) hook instead.\n * @param type The only valid type is `'url'`.\n * @param handler An [`URLListener`](#urllistener) function that takes an `event` object of the type\n * [`EventType`](#eventype).\n * @return An EmitterSubscription that has the remove method from EventSubscription\n * @see [React Native Docs Linking page](https://reactnative.dev/docs/linking#addeventlistener).\n */\nexport function addEventListener(type: 'url', handler: URLListener): EmitterSubscription {\n return NativeLinking.addEventListener(type, handler);\n}\n\n// @needsAudit\n/**\n * Helper method which wraps React Native's `Linking.getInitialURL()` in `Linking.parse()`.\n * Parses the deep link information out of the URL used to open the experience initially.\n * If no link opened the app, all the fields will be `null`.\n * > On the web it parses the current window URL.\n * @return A promise that resolves with `ParsedURL` object.\n */\nexport async function parseInitialURLAsync(): Promise {\n const initialUrl = await NativeLinking.getInitialURL();\n if (!initialUrl) {\n return {\n scheme: null,\n hostname: null,\n path: null,\n queryParams: null,\n };\n }\n\n return parse(initialUrl);\n}\n\n// @needsAudit\n/**\n * Launch an Android intent with extras.\n * > Use [IntentLauncher](./intent-launcher) instead, `sendIntent` is only included in\n * > `Linking` for API compatibility with React Native's Linking API.\n * @platform android\n */\nexport async function sendIntent(action: string, extras?: SendIntentExtras[]): Promise {\n if (Platform.OS === 'android') {\n return await NativeLinking.sendIntent(action, extras);\n }\n throw new UnavailabilityError('Linking', 'sendIntent');\n}\n\n// @needsAudit\n/**\n * Open the operating system settings app and displays the app’s custom settings, if it has any.\n */\nexport async function openSettings(): Promise {\n if (Platform.OS === 'web') {\n throw new UnavailabilityError('Linking', 'openSettings');\n }\n if (NativeLinking.openSettings) {\n return await NativeLinking.openSettings();\n }\n await openURL('app-settings:');\n}\n\n// @needsAudit\n/**\n * Get the URL that was used to launch the app if it was launched by a link.\n * @return The URL string that launched your app, or `null`.\n */\nexport async function getInitialURL(): Promise {\n return (await NativeLinking.getInitialURL()) ?? null;\n}\n\n// @needsAudit\n/**\n * Attempt to open the given URL with an installed app. See the [Linking guide](/guides/linking)\n * for more information.\n * @param url A URL for the operating system to open, eg: `tel:5555555`, `exp://`.\n * @return A `Promise` that is fulfilled with `true` if the link is opened operating system\n * automatically or the user confirms the prompt to open the link. The `Promise` rejects if there\n * are no applications registered for the URL or the user cancels the dialog.\n */\nexport async function openURL(url: string): Promise {\n validateURL(url);\n return await NativeLinking.openURL(url);\n}\n\n// @needsAudit\n/**\n * Determine whether or not an installed app can handle a given URL.\n * On web this always returns `true` because there is no API for detecting what URLs can be opened.\n * @param url The URL that you want to test can be opened.\n * @return A `Promise` object that is fulfilled with `true` if the URL can be handled, otherwise it\n * `false` if not.\n *\n * The `Promise` will reject on Android if it was impossible to check if the URL can be opened, and\n * on iOS if you didn't [add the specific scheme in the `LSApplicationQueriesSchemes` key inside **Info.plist**](/guides/linking#linking-from-your-app).\n */\nexport async function canOpenURL(url: string): Promise {\n validateURL(url);\n return await NativeLinking.canOpenURL(url);\n}\n\n// @needsAudit\n/**\n * Returns the initial URL followed by any subsequent changes to the URL.\n * @return Returns the initial URL or `null`.\n */\nexport function useURL(): string | null {\n const [url, setLink] = useState(null);\n\n function onChange(event: { url: string }) {\n setLink(event.url);\n }\n\n useEffect(() => {\n getInitialURL().then((url) => setLink(url));\n const subscription = addEventListener('url', onChange);\n return () => subscription.remove();\n }, []);\n\n return url;\n}\n\nexport * from './Linking.types';\nexport * from './Schemes';\n","import { Slot } from \"./slot.js\";\nexport { Slot };\nexport const { bind, noContext } = Slot;\n// Like global.setTimeout, except the callback runs with captured context.\nexport { setTimeoutWithContext as setTimeout };\nfunction setTimeoutWithContext(callback, delay) {\n return setTimeout(bind(callback), delay);\n}\n// Turn any generator function into an async function (using yield instead\n// of await), with context automatically preserved across yields.\nexport function asyncFromGen(genFn) {\n return function () {\n const gen = genFn.apply(this, arguments);\n const boundNext = bind(gen.next);\n const boundThrow = bind(gen.throw);\n return new Promise((resolve, reject) => {\n function invoke(method, argument) {\n try {\n var result = method.call(gen, argument);\n }\n catch (error) {\n return reject(error);\n }\n const next = result.done ? resolve : invokeNext;\n if (isPromiseLike(result.value)) {\n result.value.then(next, result.done ? reject : invokeThrow);\n }\n else {\n next(result.value);\n }\n }\n const invokeNext = (value) => invoke(boundNext, value);\n const invokeThrow = (error) => invoke(boundThrow, error);\n invokeNext();\n });\n };\n}\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n}\n// If you use the fibers npm package to implement coroutines in Node.js,\n// you should call this function at least once to ensure context management\n// remains coherent across any yields.\nconst wrappedFibers = [];\nexport function wrapYieldingFiberMethods(Fiber) {\n // There can be only one implementation of Fiber per process, so this array\n // should never grow longer than one element.\n if (wrappedFibers.indexOf(Fiber) < 0) {\n const wrap = (obj, method) => {\n const fn = obj[method];\n obj[method] = function () {\n return noContext(fn, arguments, this);\n };\n };\n // These methods can yield, according to\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\n wrap(Fiber, \"yield\");\n wrap(Fiber.prototype, \"run\");\n wrap(Fiber.prototype, \"throwInto\");\n wrappedFibers.push(Fiber);\n }\n return Fiber;\n}\n//# sourceMappingURL=index.js.map","import { Trie } from '@wry/trie';\nexport { Trie as KeyTrie } from '@wry/trie';\nimport { Slot } from '@wry/context';\nexport { asyncFromGen, bind as bindContext, noContext, setTimeout } from '@wry/context';\n\nfunction defaultDispose() { }\r\nvar Cache = /** @class */ (function () {\r\n function Cache(max, dispose) {\r\n if (max === void 0) { max = Infinity; }\r\n if (dispose === void 0) { dispose = defaultDispose; }\r\n this.max = max;\r\n this.dispose = dispose;\r\n this.map = new Map();\r\n this.newest = null;\r\n this.oldest = null;\r\n }\r\n Cache.prototype.has = function (key) {\r\n return this.map.has(key);\r\n };\r\n Cache.prototype.get = function (key) {\r\n var node = this.getNode(key);\r\n return node && node.value;\r\n };\r\n Cache.prototype.getNode = function (key) {\r\n var node = this.map.get(key);\r\n if (node && node !== this.newest) {\r\n var older = node.older, newer = node.newer;\r\n if (newer) {\r\n newer.older = older;\r\n }\r\n if (older) {\r\n older.newer = newer;\r\n }\r\n node.older = this.newest;\r\n node.older.newer = node;\r\n node.newer = null;\r\n this.newest = node;\r\n if (node === this.oldest) {\r\n this.oldest = newer;\r\n }\r\n }\r\n return node;\r\n };\r\n Cache.prototype.set = function (key, value) {\r\n var node = this.getNode(key);\r\n if (node) {\r\n return node.value = value;\r\n }\r\n node = {\r\n key: key,\r\n value: value,\r\n newer: null,\r\n older: this.newest\r\n };\r\n if (this.newest) {\r\n this.newest.newer = node;\r\n }\r\n this.newest = node;\r\n this.oldest = this.oldest || node;\r\n this.map.set(key, node);\r\n return node.value;\r\n };\r\n Cache.prototype.clean = function () {\r\n while (this.oldest && this.map.size > this.max) {\r\n this.delete(this.oldest.key);\r\n }\r\n };\r\n Cache.prototype.delete = function (key) {\r\n var node = this.map.get(key);\r\n if (node) {\r\n if (node === this.newest) {\r\n this.newest = node.older;\r\n }\r\n if (node === this.oldest) {\r\n this.oldest = node.newer;\r\n }\r\n if (node.newer) {\r\n node.newer.older = node.older;\r\n }\r\n if (node.older) {\r\n node.older.newer = node.newer;\r\n }\r\n this.map.delete(key);\r\n this.dispose(node.value, key);\r\n return true;\r\n }\r\n return false;\r\n };\r\n return Cache;\r\n}());\n\nvar parentEntrySlot = new Slot();\n\nvar _a;\r\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\r\nvar \r\n// This Array.from polyfill is restricted to working with Set for now,\r\n// but we can improve the polyfill and add other input types, as needed. Note\r\n// that this fallback implementation will only be used if the host environment\r\n// does not support a native Array.from function. In most modern JS runtimes,\r\n// the toArray function exported here will be === Array.from.\r\ntoArray = (_a = Array.from, _a === void 0 ? function (collection) {\r\n var array = [];\r\n collection.forEach(function (item) { return array.push(item); });\r\n return array;\r\n} : _a);\r\nfunction maybeUnsubscribe(entryOrDep) {\r\n var unsubscribe = entryOrDep.unsubscribe;\r\n if (typeof unsubscribe === \"function\") {\r\n entryOrDep.unsubscribe = void 0;\r\n unsubscribe();\r\n }\r\n}\n\nvar emptySetPool = [];\r\nvar POOL_TARGET_SIZE = 100;\r\n// Since this package might be used browsers, we should avoid using the\r\n// Node built-in assert module.\r\nfunction assert(condition, optionalMessage) {\r\n if (!condition) {\r\n throw new Error(optionalMessage || \"assertion failure\");\r\n }\r\n}\r\nfunction valueIs(a, b) {\r\n var len = a.length;\r\n return (\r\n // Unknown values are not equal to each other.\r\n len > 0 &&\r\n // Both values must be ordinary (or both exceptional) to be equal.\r\n len === b.length &&\r\n // The underlying value or exception must be the same.\r\n a[len - 1] === b[len - 1]);\r\n}\r\nfunction valueGet(value) {\r\n switch (value.length) {\r\n case 0: throw new Error(\"unknown value\");\r\n case 1: return value[0];\r\n case 2: throw value[1];\r\n }\r\n}\r\nfunction valueCopy(value) {\r\n return value.slice(0);\r\n}\r\nvar Entry = /** @class */ (function () {\r\n function Entry(fn) {\r\n this.fn = fn;\r\n this.parents = new Set();\r\n this.childValues = new Map();\r\n // When this Entry has children that are dirty, this property becomes\r\n // a Set containing other Entry objects, borrowed from emptySetPool.\r\n // When the set becomes empty, it gets recycled back to emptySetPool.\r\n this.dirtyChildren = null;\r\n this.dirty = true;\r\n this.recomputing = false;\r\n this.value = [];\r\n this.deps = null;\r\n ++Entry.count;\r\n }\r\n Entry.prototype.peek = function () {\r\n if (this.value.length === 1 && !mightBeDirty(this)) {\r\n rememberParent(this);\r\n return this.value[0];\r\n }\r\n };\r\n // This is the most important method of the Entry API, because it\r\n // determines whether the cached this.value can be returned immediately,\r\n // or must be recomputed. The overall performance of the caching system\r\n // depends on the truth of the following observations: (1) this.dirty is\r\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\r\n // (3) valueGet(this.value) is usually returned without recomputation.\r\n Entry.prototype.recompute = function (args) {\r\n assert(!this.recomputing, \"already recomputing\");\r\n rememberParent(this);\r\n return mightBeDirty(this)\r\n ? reallyRecompute(this, args)\r\n : valueGet(this.value);\r\n };\r\n Entry.prototype.setDirty = function () {\r\n if (this.dirty)\r\n return;\r\n this.dirty = true;\r\n this.value.length = 0;\r\n reportDirty(this);\r\n // We can go ahead and unsubscribe here, since any further dirty\r\n // notifications we receive will be redundant, and unsubscribing may\r\n // free up some resources, e.g. file watchers.\r\n maybeUnsubscribe(this);\r\n };\r\n Entry.prototype.dispose = function () {\r\n var _this = this;\r\n this.setDirty();\r\n // Sever any dependency relationships with our own children, so those\r\n // children don't retain this parent Entry in their child.parents sets,\r\n // thereby preventing it from being fully garbage collected.\r\n forgetChildren(this);\r\n // Because this entry has been kicked out of the cache (in index.js),\r\n // we've lost the ability to find out if/when this entry becomes dirty,\r\n // whether that happens through a subscription, because of a direct call\r\n // to entry.setDirty(), or because one of its children becomes dirty.\r\n // Because of this loss of future information, we have to assume the\r\n // worst (that this entry might have become dirty very soon), so we must\r\n // immediately mark this entry's parents as dirty. Normally we could\r\n // just call entry.setDirty() rather than calling parent.setDirty() for\r\n // each parent, but that would leave this entry in parent.childValues\r\n // and parent.dirtyChildren, which would prevent the child from being\r\n // truly forgotten.\r\n eachParent(this, function (parent, child) {\r\n parent.setDirty();\r\n forgetChild(parent, _this);\r\n });\r\n };\r\n Entry.prototype.forget = function () {\r\n // The code that creates Entry objects in index.ts will replace this method\r\n // with one that actually removes the Entry from the cache, which will also\r\n // trigger the entry.dispose method.\r\n this.dispose();\r\n };\r\n Entry.prototype.dependOn = function (dep) {\r\n dep.add(this);\r\n if (!this.deps) {\r\n this.deps = emptySetPool.pop() || new Set();\r\n }\r\n this.deps.add(dep);\r\n };\r\n Entry.prototype.forgetDeps = function () {\r\n var _this = this;\r\n if (this.deps) {\r\n toArray(this.deps).forEach(function (dep) { return dep.delete(_this); });\r\n this.deps.clear();\r\n emptySetPool.push(this.deps);\r\n this.deps = null;\r\n }\r\n };\r\n Entry.count = 0;\r\n return Entry;\r\n}());\r\nfunction rememberParent(child) {\r\n var parent = parentEntrySlot.getValue();\r\n if (parent) {\r\n child.parents.add(parent);\r\n if (!parent.childValues.has(child)) {\r\n parent.childValues.set(child, []);\r\n }\r\n if (mightBeDirty(child)) {\r\n reportDirtyChild(parent, child);\r\n }\r\n else {\r\n reportCleanChild(parent, child);\r\n }\r\n return parent;\r\n }\r\n}\r\nfunction reallyRecompute(entry, args) {\r\n forgetChildren(entry);\r\n // Set entry as the parent entry while calling recomputeNewValue(entry).\r\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry, args]);\r\n if (maybeSubscribe(entry, args)) {\r\n // If we successfully recomputed entry.value and did not fail to\r\n // (re)subscribe, then this Entry is no longer explicitly dirty.\r\n setClean(entry);\r\n }\r\n return valueGet(entry.value);\r\n}\r\nfunction recomputeNewValue(entry, args) {\r\n entry.recomputing = true;\r\n // Set entry.value as unknown.\r\n entry.value.length = 0;\r\n try {\r\n // If entry.fn succeeds, entry.value will become a normal Value.\r\n entry.value[0] = entry.fn.apply(null, args);\r\n }\r\n catch (e) {\r\n // If entry.fn throws, entry.value will become exceptional.\r\n entry.value[1] = e;\r\n }\r\n // Either way, this line is always reached.\r\n entry.recomputing = false;\r\n}\r\nfunction mightBeDirty(entry) {\r\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\r\n}\r\nfunction setClean(entry) {\r\n entry.dirty = false;\r\n if (mightBeDirty(entry)) {\r\n // This Entry may still have dirty children, in which case we can't\r\n // let our parents know we're clean just yet.\r\n return;\r\n }\r\n reportClean(entry);\r\n}\r\nfunction reportDirty(child) {\r\n eachParent(child, reportDirtyChild);\r\n}\r\nfunction reportClean(child) {\r\n eachParent(child, reportCleanChild);\r\n}\r\nfunction eachParent(child, callback) {\r\n var parentCount = child.parents.size;\r\n if (parentCount) {\r\n var parents = toArray(child.parents);\r\n for (var i = 0; i < parentCount; ++i) {\r\n callback(parents[i], child);\r\n }\r\n }\r\n}\r\n// Let a parent Entry know that one of its children may be dirty.\r\nfunction reportDirtyChild(parent, child) {\r\n // Must have called rememberParent(child) before calling\r\n // reportDirtyChild(parent, child).\r\n assert(parent.childValues.has(child));\r\n assert(mightBeDirty(child));\r\n var parentWasClean = !mightBeDirty(parent);\r\n if (!parent.dirtyChildren) {\r\n parent.dirtyChildren = emptySetPool.pop() || new Set;\r\n }\r\n else if (parent.dirtyChildren.has(child)) {\r\n // If we already know this child is dirty, then we must have already\r\n // informed our own parents that we are dirty, so we can terminate\r\n // the recursion early.\r\n return;\r\n }\r\n parent.dirtyChildren.add(child);\r\n // If parent was clean before, it just became (possibly) dirty (according to\r\n // mightBeDirty), since we just added child to parent.dirtyChildren.\r\n if (parentWasClean) {\r\n reportDirty(parent);\r\n }\r\n}\r\n// Let a parent Entry know that one of its children is no longer dirty.\r\nfunction reportCleanChild(parent, child) {\r\n // Must have called rememberChild(child) before calling\r\n // reportCleanChild(parent, child).\r\n assert(parent.childValues.has(child));\r\n assert(!mightBeDirty(child));\r\n var childValue = parent.childValues.get(child);\r\n if (childValue.length === 0) {\r\n parent.childValues.set(child, valueCopy(child.value));\r\n }\r\n else if (!valueIs(childValue, child.value)) {\r\n parent.setDirty();\r\n }\r\n removeDirtyChild(parent, child);\r\n if (mightBeDirty(parent)) {\r\n return;\r\n }\r\n reportClean(parent);\r\n}\r\nfunction removeDirtyChild(parent, child) {\r\n var dc = parent.dirtyChildren;\r\n if (dc) {\r\n dc.delete(child);\r\n if (dc.size === 0) {\r\n if (emptySetPool.length < POOL_TARGET_SIZE) {\r\n emptySetPool.push(dc);\r\n }\r\n parent.dirtyChildren = null;\r\n }\r\n }\r\n}\r\n// Removes all children from this entry and returns an array of the\r\n// removed children.\r\nfunction forgetChildren(parent) {\r\n if (parent.childValues.size > 0) {\r\n parent.childValues.forEach(function (_value, child) {\r\n forgetChild(parent, child);\r\n });\r\n }\r\n // Remove this parent Entry from any sets to which it was added by the\r\n // addToSet method.\r\n parent.forgetDeps();\r\n // After we forget all our children, this.dirtyChildren must be empty\r\n // and therefore must have been reset to null.\r\n assert(parent.dirtyChildren === null);\r\n}\r\nfunction forgetChild(parent, child) {\r\n child.parents.delete(parent);\r\n parent.childValues.delete(child);\r\n removeDirtyChild(parent, child);\r\n}\r\nfunction maybeSubscribe(entry, args) {\r\n if (typeof entry.subscribe === \"function\") {\r\n try {\r\n maybeUnsubscribe(entry); // Prevent double subscriptions.\r\n entry.unsubscribe = entry.subscribe.apply(null, args);\r\n }\r\n catch (e) {\r\n // If this Entry has a subscribe function and it threw an exception\r\n // (or an unsubscribe function it previously returned now throws),\r\n // return false to indicate that we were not able to subscribe (or\r\n // unsubscribe), and this Entry should remain dirty.\r\n entry.setDirty();\r\n return false;\r\n }\r\n }\r\n // Returning true indicates either that there was no entry.subscribe\r\n // function or that it succeeded.\r\n return true;\r\n}\n\nvar EntryMethods = {\r\n setDirty: true,\r\n dispose: true,\r\n forget: true, // Fully remove parent Entry from LRU cache and computation graph\r\n};\r\nfunction dep(options) {\r\n var depsByKey = new Map();\r\n var subscribe = options && options.subscribe;\r\n function depend(key) {\r\n var parent = parentEntrySlot.getValue();\r\n if (parent) {\r\n var dep_1 = depsByKey.get(key);\r\n if (!dep_1) {\r\n depsByKey.set(key, dep_1 = new Set);\r\n }\r\n parent.dependOn(dep_1);\r\n if (typeof subscribe === \"function\") {\r\n maybeUnsubscribe(dep_1);\r\n dep_1.unsubscribe = subscribe(key);\r\n }\r\n }\r\n }\r\n depend.dirty = function dirty(key, entryMethodName) {\r\n var dep = depsByKey.get(key);\r\n if (dep) {\r\n var m_1 = (entryMethodName &&\r\n hasOwnProperty.call(EntryMethods, entryMethodName)) ? entryMethodName : \"setDirty\";\r\n // We have to use toArray(dep).forEach instead of dep.forEach, because\r\n // modifying a Set while iterating over it can cause elements in the Set\r\n // to be removed from the Set before they've been iterated over.\r\n toArray(dep).forEach(function (entry) { return entry[m_1](); });\r\n depsByKey.delete(key);\r\n maybeUnsubscribe(dep);\r\n }\r\n };\r\n return depend;\r\n}\n\nfunction makeDefaultMakeCacheKeyFunction() {\r\n var keyTrie = new Trie(typeof WeakMap === \"function\");\r\n return function () {\r\n return keyTrie.lookupArray(arguments);\r\n };\r\n}\r\n// The defaultMakeCacheKey function is remarkably powerful, because it gives\r\n// a unique object for any shallow-identical list of arguments. If you need\r\n// to implement a custom makeCacheKey function, you may find it helpful to\r\n// delegate the final work to defaultMakeCacheKey, which is why we export it\r\n// here. However, you may want to avoid defaultMakeCacheKey if your runtime\r\n// does not support WeakMap, or you have the ability to return a string key.\r\n// In those cases, just write your own custom makeCacheKey functions.\r\nvar defaultMakeCacheKey = makeDefaultMakeCacheKeyFunction();\r\nvar caches = new Set();\r\nfunction wrap(originalFunction, options) {\r\n if (options === void 0) { options = Object.create(null); }\r\n var cache = new Cache(options.max || Math.pow(2, 16), function (entry) { return entry.dispose(); });\r\n var keyArgs = options.keyArgs;\r\n var makeCacheKey = options.makeCacheKey ||\r\n makeDefaultMakeCacheKeyFunction();\r\n var optimistic = function () {\r\n var key = makeCacheKey.apply(null, keyArgs ? keyArgs.apply(null, arguments) : arguments);\r\n if (key === void 0) {\r\n return originalFunction.apply(null, arguments);\r\n }\r\n var entry = cache.get(key);\r\n if (!entry) {\r\n cache.set(key, entry = new Entry(originalFunction));\r\n entry.subscribe = options.subscribe;\r\n // Give the Entry the ability to trigger cache.delete(key), even though\r\n // the Entry itself does not know about key or cache.\r\n entry.forget = function () { return cache.delete(key); };\r\n }\r\n var value = entry.recompute(Array.prototype.slice.call(arguments));\r\n // Move this entry to the front of the least-recently used queue,\r\n // since we just finished computing its value.\r\n cache.set(key, entry);\r\n caches.add(cache);\r\n // Clean up any excess entries in the cache, but only if there is no\r\n // active parent entry, meaning we're not in the middle of a larger\r\n // computation that might be flummoxed by the cleaning.\r\n if (!parentEntrySlot.hasValue()) {\r\n caches.forEach(function (cache) { return cache.clean(); });\r\n caches.clear();\r\n }\r\n return value;\r\n };\r\n Object.defineProperty(optimistic, \"size\", {\r\n get: function () {\r\n return cache[\"map\"].size;\r\n },\r\n configurable: false,\r\n enumerable: false,\r\n });\r\n function dirtyKey(key) {\r\n var entry = cache.get(key);\r\n if (entry) {\r\n entry.setDirty();\r\n }\r\n }\r\n optimistic.dirtyKey = dirtyKey;\r\n optimistic.dirty = function dirty() {\r\n dirtyKey(makeCacheKey.apply(null, arguments));\r\n };\r\n function peekKey(key) {\r\n var entry = cache.get(key);\r\n if (entry) {\r\n return entry.peek();\r\n }\r\n }\r\n optimistic.peekKey = peekKey;\r\n optimistic.peek = function peek() {\r\n return peekKey(makeCacheKey.apply(null, arguments));\r\n };\r\n function forgetKey(key) {\r\n return cache.delete(key);\r\n }\r\n optimistic.forgetKey = forgetKey;\r\n optimistic.forget = function forget() {\r\n return forgetKey(makeCacheKey.apply(null, arguments));\r\n };\r\n optimistic.makeCacheKey = makeCacheKey;\r\n optimistic.getKey = keyArgs ? function getKey() {\r\n return makeCacheKey.apply(null, keyArgs.apply(null, arguments));\r\n } : makeCacheKey;\r\n return Object.freeze(optimistic);\r\n}\n\nexport { defaultMakeCacheKey, dep, wrap };\n//# sourceMappingURL=bundle.esm.js.map\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar creditCardType = __importStar(require(\"credit-card-type\"));\nvar cardholder_name_1 = require(\"./cardholder-name\");\nvar card_number_1 = require(\"./card-number\");\nvar expiration_date_1 = require(\"./expiration-date\");\nvar expiration_month_1 = require(\"./expiration-month\");\nvar expiration_year_1 = require(\"./expiration-year\");\nvar cvv_1 = require(\"./cvv\");\nvar postal_code_1 = require(\"./postal-code\");\nvar cardValidator = {\n creditCardType: creditCardType,\n cardholderName: cardholder_name_1.cardholderName,\n number: card_number_1.cardNumber,\n expirationDate: expiration_date_1.expirationDate,\n expirationMonth: expiration_month_1.expirationMonth,\n expirationYear: expiration_year_1.expirationYear,\n cvv: cvv_1.cvv,\n postalCode: postal_code_1.postalCode,\n};\nmodule.exports = cardValidator;\n","module.exports = require('./lib/axios');","export const IS_MANAGED_ENV = false;\nexport const IS_ENV_WITH_UPDATES_ENABLED = false;\nexport const IS_ENV_WITHOUT_UPDATES_ENABLED = false;\n\n// Compute manifest base URL if available\nexport const manifestBaseUrl = null;\n\nexport async function downloadAsync(uri, hash, type, name): Promise {\n return uri;\n}\n\nexport function getManifest() {\n return {};\n}\n\nexport function getManifest2() {\n return {};\n}\n","import { PermissionResponse } from 'expo-modules-core';\n\n// @needsAudit\n/**\n * Enum with available location accuracies.\n */\nexport enum LocationAccuracy {\n /**\n * Accurate to the nearest three kilometers.\n */\n Lowest = 1,\n /**\n * Accurate to the nearest kilometer.\n */\n Low = 2,\n /**\n * Accurate to within one hundred meters.\n */\n Balanced = 3,\n /**\n * Accurate to within ten meters of the desired target.\n */\n High = 4,\n /**\n * The best level of accuracy available.\n */\n Highest = 5,\n /**\n * The highest possible accuracy that uses additional sensor data to facilitate navigation apps.\n */\n BestForNavigation = 6,\n}\n\n// @needsAudit\n/**\n * Enum with available activity types of background location tracking.\n */\nexport enum LocationActivityType {\n /**\n * Default activity type. Use it if there is no other type that matches the activity you track.\n */\n Other = 1,\n /**\n * Location updates are being used specifically during vehicular navigation to track location\n * changes to the automobile.\n */\n AutomotiveNavigation = 2,\n /**\n * Use this activity type if you track fitness activities such as walking, running, cycling,\n * and so on.\n */\n Fitness = 3,\n /**\n * Activity type for movements for other types of vehicular navigation that are not automobile\n * related.\n */\n OtherNavigation = 4,\n /**\n * Intended for airborne activities. Fall backs to `ActivityType.Other` if\n * unsupported.\n * @platform ios 12+\n */\n Airborne = 5,\n}\n\n// @needsAudit\n/**\n * A type of the event that geofencing task can receive.\n */\nexport enum LocationGeofencingEventType {\n /**\n * Emitted when the device entered observed region.\n */\n Enter = 1,\n /**\n * Occurs as soon as the device left observed region\n */\n Exit = 2,\n}\n\n// @needsAudit\n/**\n * State of the geofencing region that you receive through the geofencing task.\n */\nexport enum LocationGeofencingRegionState {\n /**\n * Indicates that the device position related to the region is unknown.\n */\n Unknown = 0,\n /**\n * Indicates that the device is inside the region.\n */\n Inside = 1,\n /**\n * Inverse of inside state.\n */\n Outside = 2,\n}\n\n// @needsAudit\n/**\n * Type representing options argument in `getCurrentPositionAsync`.\n */\nexport type LocationOptions = {\n /**\n * Location manager accuracy. Pass one of `LocationAccuracy` enum values.\n * For low-accuracies the implementation can avoid geolocation providers\n * that consume a significant amount of power (such as GPS).\n */\n accuracy?: LocationAccuracy;\n /**\n * Specifies whether to ask the user to turn on improved accuracy location mode\n * which uses Wi-Fi, cell networks and GPS sensor.\n * @default true\n * @platform android\n */\n mayShowUserSettingsDialog?: boolean;\n /**\n * Minimum time to wait between each update in milliseconds.\n * Default value may depend on `accuracy` option.\n * @platform android\n */\n timeInterval?: number;\n /**\n * Receive updates only when the location has changed by at least this distance in meters.\n * Default value may depend on `accuracy` option.\n */\n distanceInterval?: number;\n};\n\n// @needsAudit\n/**\n * Type representing options object that can be passed to `getLastKnownPositionAsync`.\n */\nexport type LocationLastKnownOptions = {\n /**\n * A number of milliseconds after which the last known location starts to be invalid and thus\n * `null` is returned.\n */\n maxAge?: number;\n /**\n * The maximum radius of uncertainty for the location, measured in meters. If the last known\n * location's accuracy radius is bigger (less accurate) then `null` is returned.\n */\n requiredAccuracy?: number;\n};\n\n// @needsAudit\n/**\n * Type representing background location task options.\n */\nexport type LocationTaskOptions = LocationOptions & {\n /**\n * A boolean indicating whether the status bar changes its appearance when\n * location services are used in the background.\n * @default false\n * @platform ios 11+\n */\n showsBackgroundLocationIndicator?: boolean;\n /**\n * The distance in meters that must occur between last reported location and the current location\n * before deferred locations are reported.\n * @default 0\n */\n deferredUpdatesDistance?: number;\n // @docsMissing\n deferredUpdatesTimeout?: number;\n /**\n * Minimum time interval in milliseconds that must pass since last reported location before all\n * later locations are reported in a batched update\n * @default 0\n */\n deferredUpdatesInterval?: number;\n /**\n * The type of user activity associated with the location updates.\n * @see See [Apple docs](https://developer.apple.com/documentation/corelocation/cllocationmanager/1620567-activitytype) for more details.\n * @default LocationActivityType.Other\n * @platform ios\n */\n activityType?: LocationActivityType;\n /**\n * A boolean value indicating whether the location manager can pause location\n * updates to improve battery life without sacrificing location data. When this option is set to\n * `true`, the location manager pauses updates (and powers down the appropriate hardware) at times\n * when the location data is unlikely to change. You can help the determination of when to pause\n * location updates by assigning a value to the `activityType` property.\n * @default false\n * @platform ios\n */\n pausesUpdatesAutomatically?: boolean;\n foregroundService?: LocationTaskServiceOptions;\n};\n\n// @needsAudit\nexport type LocationTaskServiceOptions = {\n /**\n * Title of the foreground service notification.\n */\n notificationTitle: string;\n /**\n * Subtitle of the foreground service notification.\n */\n notificationBody: string;\n /**\n * Color of the foreground service notification. Accepts `#RRGGBB` and `#AARRGGBB` hex formats.\n */\n notificationColor?: string;\n /**\n * Boolean value whether to destroy the foreground service if the app is killed.\n */\n killServiceOnDestroy?: boolean;\n};\n\n// @needsAudit\n/**\n * Type representing geofencing region object.\n */\nexport type LocationRegion = {\n /**\n * The identifier of the region object. Defaults to auto-generated UUID hash.\n */\n identifier?: string;\n /**\n * The latitude in degrees of region's center point.\n */\n latitude: number;\n /**\n * The longitude in degrees of region's center point.\n */\n longitude: number;\n /**\n * The radius measured in meters that defines the region's outer boundary.\n */\n radius: number;\n /**\n * Boolean value whether to call the task if the device enters the region.\n * @default true\n */\n notifyOnEnter?: boolean;\n /**\n * Boolean value whether to call the task if the device exits the region.\n * @default true\n */\n notifyOnExit?: boolean;\n /**\n * One of [GeofencingRegionState](#geofencingregionstate) region state. Determines whether the\n * device is inside or outside a region.\n */\n state?: LocationGeofencingRegionState;\n};\n\n// @needsAudit\n/**\n * Type representing the location object.\n */\nexport type LocationObject = {\n /**\n * The coordinates of the position.\n */\n coords: LocationObjectCoords;\n /**\n * The time at which this position information was obtained, in milliseconds since epoch.\n */\n timestamp: number;\n /**\n * Whether the location coordinates is mocked or not.\n * @platform android\n */\n mocked?: boolean;\n};\n\n// @needsAudit\n/**\n * Type representing the location GPS related data.\n */\nexport type LocationObjectCoords = {\n /**\n * The latitude in degrees.\n */\n latitude: number;\n /**\n * The longitude in degrees.\n */\n longitude: number;\n /**\n * The altitude in meters above the WGS 84 reference ellipsoid. Can be `null` on Web if it's not available.\n */\n altitude: number | null;\n /**\n * The radius of uncertainty for the location, measured in meters. Can be `null` on Web if it's not available.\n */\n accuracy: number | null;\n /**\n * The accuracy of the altitude value, in meters. Can be `null` on Web if it's not available.\n */\n altitudeAccuracy: number | null;\n /**\n * Horizontal direction of travel of this device, measured in degrees starting at due north and\n * continuing clockwise around the compass. Thus, north is 0 degrees, east is 90 degrees, south is\n * 180 degrees, and so on. Can be `null` on Web if it's not available.\n */\n heading: number | null;\n /**\n * The instantaneous speed of the device in meters per second. Can be `null` on Web if it's not available.\n */\n speed: number | null;\n};\n\n// @needsAudit\n/**\n * Represents `watchPositionAsync` callback.\n */\nexport type LocationCallback = (location: LocationObject) => any;\n\n// @needsAudit\n/**\n * Represents the object containing details about location provider.\n */\nexport type LocationProviderStatus = {\n /**\n * Whether location services are enabled. See [Location.hasServicesEnabledAsync](#locationhasservicesenabledasync)\n * for a more convenient solution to get this value.\n */\n locationServicesEnabled: boolean;\n // @docsMissing\n backgroundModeEnabled: boolean;\n /**\n * Whether the GPS provider is available. If `true` the location data will come\n * from GPS, especially for requests with high accuracy.\n * @platform android\n */\n gpsAvailable?: boolean;\n /**\n * Whether the network provider is available. If `true` the location data will\n * come from cellular network, especially for requests with low accuracy.\n * @platform android\n */\n networkAvailable?: boolean;\n /**\n * Whether the passive provider is available. If `true` the location data will\n * be determined passively.\n * @platform android\n */\n passiveAvailable?: boolean;\n};\n\n// @needsAudit\n/**\n * Type of the object containing heading details and provided by `watchHeadingAsync` callback.\n */\nexport type LocationHeadingObject = {\n /**\n * Measure of true north in degrees (needs location permissions, will return `-1` if not given).\n */\n trueHeading: number;\n /**\n * Measure of magnetic north in degrees.\n */\n magHeading: number;\n /**\n * Level of calibration of compass.\n * - `3`: high accuracy, `2`: medium accuracy, `1`: low accuracy, `0`: none\n * Reference for iOS:\n * - `3`: < 20 degrees uncertainty, `2`: < 35 degrees, `1`: < 50 degrees, `0`: > 50 degrees\n */\n accuracy: number;\n};\n\n// @needsAudit\n/**\n * Represents `watchHeadingAsync` callback.\n */\nexport type LocationHeadingCallback = (location: LocationHeadingObject) => any;\n\n// @needsAudit\n/**\n * An object of options for forward and reverse geocoding.\n */\nexport type LocationGeocodingOptions = {\n /**\n * Whether to force using Google Maps API instead of the native implementation.\n * Used by default only on Web platform. Requires providing an API key by `setGoogleApiKey`.\n */\n useGoogleMaps?: boolean;\n};\n\n// @needsAudit\n/**\n * Type representing a result of `geocodeAsync`.\n */\nexport type LocationGeocodedLocation = {\n /**\n * The latitude in degrees.\n */\n latitude: number;\n /**\n * The longitude in degrees.\n */\n longitude: number;\n /**\n * The altitude in meters above the WGS 84 reference ellipsoid.\n */\n altitude?: number;\n /**\n * The radius of uncertainty for the location, measured in meters.\n */\n accuracy?: number;\n};\n\n// @needsAudit\n/**\n * Type representing a result of `reverseGeocodeAsync`.\n */\nexport type LocationGeocodedAddress = {\n /**\n * City name of the address.\n */\n city: string | null;\n /**\n * Additional city-level information like district name.\n */\n district: string | null;\n /**\n * Street number of the address.\n */\n streetNumber: string | null;\n /**\n * Street name of the address.\n */\n street: string | null;\n /**\n * The state or province associated with the address.\n */\n region: string | null;\n /**\n * Additional information about administrative area.\n */\n subregion: string | null;\n /**\n * Localized country name of the address.\n */\n country: string | null;\n /**\n * Postal code of the address.\n */\n postalCode: string | null;\n /**\n * The name of the placemark, for example, \"Tower Bridge\".\n */\n name: string | null;\n /**\n * Localized (ISO) country code of the address, if available.\n */\n isoCountryCode: string | null;\n /**\n * The timezone identifier associated with the address.\n * @platform ios\n */\n timezone: string | null;\n};\n\n// @needsAudit\n/**\n * Represents subscription object returned by methods watching for new locations or headings.\n */\nexport type LocationSubscription = {\n /**\n * Call this function with no arguments to remove this subscription. The callback will no longer\n * be called for location updates.\n */\n remove: () => void;\n};\n\n// @needsAudit\nexport type PermissionDetailsLocationIOS = {\n /**\n * The scope of granted permission. Indicates when it's possible to use location.\n */\n scope: 'whenInUse' | 'always' | 'none';\n};\n\n// @needsAudit\nexport type PermissionDetailsLocationAndroid = {\n /**\n * @deprecated Use `accuracy` field instead.\n */\n scope: 'fine' | 'coarse' | 'none';\n /**\n * Indicates the type of location provider.\n */\n accuracy: 'fine' | 'coarse' | 'none';\n};\n\n// @needsAudit\n/**\n * `LocationPermissionResponse` extends [PermissionResponse](#permissionresponse)\n * type exported by `expo-modules-core` and contains additional platform-specific fields.\n */\nexport type LocationPermissionResponse = PermissionResponse & {\n ios?: PermissionDetailsLocationIOS;\n android?: PermissionDetailsLocationAndroid;\n};\n\nexport type { PermissionResponse };\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import { createAnimatedSet as set } from '../core/AnimatedSet';\nimport interpolate from '../derived/interpolate';\nimport InternalAnimatedValue from './InternalAnimatedValue';\nimport { Platform } from 'react-native';\nimport { evaluateOnce } from '../derived/evaluateOnce';\nimport ReanimatedModule from '../../ReanimatedModule';\nimport { val } from '../val';\n\n// Animated value wrapped with extra methods for omit cycle of dependencies\nexport default class AnimatedValue extends InternalAnimatedValue {\n setValue(value) {\n this.__detachAnimation(this._animation);\n if (\n Platform.OS === 'web' ||\n Platform.OS === 'windows' ||\n Platform.OS === 'macos'\n ) {\n this._updateValue(val(value));\n } else {\n if (ReanimatedModule.setValue && typeof value === 'number') {\n // FIXME Remove it after some time\n // For OTA-safety\n // FIXME handle setting value with a node\n ReanimatedModule.setValue(this.__nodeID, value);\n } else {\n evaluateOnce(set(this, value), this);\n }\n }\n }\n\n toString() {\n return `AnimatedValue, id: ${this.__nodeID}`;\n }\n\n interpolate(config) {\n return interpolate(this, config);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport View from '../../exports/View';\nimport React from 'react';\n/**\n * Common implementation for a simple stubbed view.\n */\n\nclass UnimplementedView extends React.Component {\n setNativeProps() {// Do nothing.\n }\n\n render() {\n return /*#__PURE__*/React.createElement(View, {\n style: [unimplementedViewStyles, this.props.style]\n }, this.props.children);\n }\n\n}\n\nvar unimplementedViewStyles = process.env.NODE_ENV !== 'production' ? {\n alignSelf: 'flex-start',\n borderColor: 'red',\n borderWidth: 1\n} : {};\nexport default UnimplementedView;","import color from 'color';\nimport * as React from 'react';\nimport { I18nManager, StyleProp, TextStyle, StyleSheet } from 'react-native';\n\nimport Text from './Text';\nimport { withTheme } from '../../core/theming';\n\ntype Props = React.ComponentProps & {\n alpha: number;\n family: 'regular' | 'medium' | 'light' | 'thin';\n style?: StyleProp;\n theme: ReactNativePaper.Theme;\n};\n\nconst StyledText = ({ theme, alpha, family, style, ...rest }: Props) => {\n const textColor = color(theme.colors.text).alpha(alpha).rgb().string();\n const font = theme.fonts[family];\n const writingDirection = I18nManager.isRTL ? 'rtl' : 'ltr';\n\n return (\n \n );\n};\n\nconst styles = StyleSheet.create({\n text: {\n textAlign: 'left',\n },\n});\n\nexport default withTheme(StyledText);\n","/**\n * @flow\n */\n\n'use strict';\n\nimport * as React from 'react';\n\nimport {\n Image,\n StyleSheet,\n Text,\n TouchableOpacity,\n View,\n useColorScheme,\n} from 'react-native';\n\nimport type {FontStyle, ViewStyle} from './types';\n\ntype Props = $ReadOnly<{|\n value: string | number | Object,\n tintColor?: ?string,\n onSelect: () => void,\n selected: boolean,\n enabled: boolean,\n fontStyle?: FontStyle,\n activeFontStyle?: FontStyle,\n tabStyle?: ViewStyle,\n appearance?: 'dark' | 'light' | null,\n|}>;\n\nfunction isBase64(str) {\n const regex = /^data:image\\/(?:gif|png|jpeg|bmp|webp)(?:;charset=utf-8)?;base64,(?:[A-Za-z0-9]|[+/])+={0,2}/;\n return str && regex.test(str);\n}\n\nexport const SegmentedControlTab = ({\n onSelect,\n value,\n enabled,\n selected,\n tintColor,\n fontStyle = {},\n activeFontStyle = {},\n appearance,\n tabStyle,\n}: Props): React.Node => {\n const colorSchemeHook = useColorScheme();\n const colorScheme = appearance || colorSchemeHook;\n const {color: textColor, fontSize, fontFamily, fontWeight} = fontStyle;\n\n const {\n color: activeColor,\n fontSize: activeFontSize,\n fontFamily: activeFontFamily,\n fontWeight: activeFontWeight,\n } = activeFontStyle;\n\n const getColor = () => {\n if (textColor) {\n return textColor;\n }\n if (tintColor) {\n return 'white';\n }\n return colorScheme === 'dark' ? '#FFF' : '#000';\n };\n const color = getColor();\n\n const activeStyle = {\n ...styles.activeText,\n fontFamily: activeFontFamily || fontFamily,\n fontSize: activeFontSize || fontSize,\n color: activeColor || color,\n fontWeight: activeFontWeight || fontWeight || styles.activeText.fontWeight,\n };\n\n const idleStyle = {\n color,\n fontSize: fontSize,\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n };\n\n return (\n \n \n {typeof value === 'number' || typeof value === 'object' ? (\n \n ) : isBase64(value) ? (\n \n ) : (\n {value}\n )}\n \n \n );\n};\n\nconst styles = StyleSheet.create({\n container: {flex: 1, borderRadius: 5},\n default: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n margin: 2,\n borderRadius: 5,\n },\n activeText: {\n fontWeight: '700',\n },\n segmentImage: {\n width: 17,\n height: 17,\n resizeMode: 'contain',\n },\n});\n","/**\n * @flow\n */\n\n'use strict';\n\nimport * as React from 'react';\n\nimport {StyleSheet, View, useColorScheme} from 'react-native';\n\ntype Props = $ReadOnly<{|\n values: number,\n selectedIndex: ?number,\n|}>;\n\nexport const SegmentsSeparators = ({\n values,\n selectedIndex,\n}: Props): React.Node => {\n const colorScheme = useColorScheme();\n const hide = (val) => {\n return selectedIndex === val || selectedIndex === val + 1;\n };\n\n return (\n \n {[...Array(values - 1).keys()].map((val) => {\n return (\n \n );\n })}\n \n );\n};\n\nconst styles = StyleSheet.create({\n separatorsContainer: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-evenly',\n },\n separator: {\n width: 1,\n height: '50%',\n backgroundColor: '#D1D1D4',\n },\n darkSeparator: {\n backgroundColor: '#3F3F42',\n },\n hide: {\n backgroundColor: 'transparent',\n },\n});\n","/**\n * @flow\n */\n\n'use strict';\n\nimport * as React from 'react';\n\nimport {\n Animated,\n Easing,\n I18nManager,\n StyleSheet,\n View,\n useColorScheme,\n} from 'react-native';\n\nimport type {SegmentedControlProps} from './types';\nimport {SegmentedControlTab} from './SegmentedControlTab';\nimport {SegmentsSeparators} from './SegmentsSeparators';\n\n/**\n * SegmentedControl\n * iOS 13 Style UISegmentedControl Component for Android and Web\n */\nconst SegmentedControl = ({\n style,\n onChange,\n onValueChange,\n enabled = true,\n selectedIndex,\n values,\n tintColor,\n backgroundColor,\n tabStyle,\n fontStyle,\n activeFontStyle,\n appearance,\n}: SegmentedControlProps): React.Node => {\n const colorSchemeHook = useColorScheme();\n const colorScheme = appearance || colorSchemeHook;\n const [segmentWidth, setSegmentWidth] = React.useState(0);\n const animation = React.useRef(new Animated.Value(0)).current;\n\n const handleChange = (index: number) => {\n // mocks iOS's nativeEvent\n const event: any = {\n nativeEvent: {\n value: values[index],\n selectedSegmentIndex: index,\n },\n };\n onChange && onChange(event);\n onValueChange && onValueChange(values[index]);\n };\n\n React.useEffect(() => {\n if (animation && segmentWidth) {\n let isRTL = I18nManager.isRTL ? -segmentWidth : segmentWidth;\n Animated.timing(animation, {\n toValue: isRTL * (selectedIndex || 0),\n duration: 300,\n easing: Easing.out(Easing.quad),\n useNativeDriver: true,\n }).start();\n }\n }, [animation, segmentWidth, selectedIndex]);\n\n return (\n {\n const newSegmentWidth = values.length ? width / values.length : 0;\n if (newSegmentWidth !== segmentWidth) {\n animation.setValue(newSegmentWidth * (selectedIndex || 0));\n setSegmentWidth(newSegmentWidth);\n }\n }}>\n {!backgroundColor && !tintColor && (\n \n )}\n \n {values &&\n values.map((value, index) => {\n return (\n {\n handleChange(index);\n }}\n />\n );\n })}\n \n {selectedIndex != null && segmentWidth ? (\n \n ) : null}\n \n );\n};\n\nconst styles = StyleSheet.create({\n default: {\n overflow: 'hidden',\n position: 'relative',\n height: 32,\n backgroundColor: '#EEEEF0',\n borderRadius: 9,\n },\n darkControl: {\n backgroundColor: '#1C1C1F',\n },\n disabled: {\n opacity: 0.4,\n },\n slider: {\n position: 'absolute',\n borderRadius: 7,\n top: 2,\n bottom: 2,\n right: 2,\n left: 2,\n borderWidth: 0.5,\n borderColor: 'rgba(0,0,0,0.04)',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.22,\n shadowRadius: 2.22,\n elevation: 3,\n },\n segmentsContainer: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'space-evenly',\n alignItems: 'center',\n elevation: 5,\n backgroundColor: 'transparent',\n zIndex: 99,\n },\n});\n\nexport default SegmentedControl;\n","import { Platform } from 'react-native';\n\nlet EXPERIMENTAL_WEB_IMPLEMENTATION = false;\nlet getWasCalled = false;\n\nexport function enableExperimentalWebImplementation(shouldEnable = true): void {\n if (\n Platform.OS !== 'web' ||\n EXPERIMENTAL_WEB_IMPLEMENTATION === shouldEnable\n ) {\n return;\n }\n\n if (getWasCalled) {\n console.error(\n 'Some parts of this application have already started using old gesture handler implementation. No changes will be applied. You can try enabling new implementation earlier.'\n );\n return;\n }\n\n EXPERIMENTAL_WEB_IMPLEMENTATION = shouldEnable;\n}\n\nexport function isExperimentalWebImplementationEnabled(): boolean {\n getWasCalled = true;\n return EXPERIMENTAL_WEB_IMPLEMENTATION;\n}\n","export function maybe(thunk) {\n try {\n return thunk();\n }\n catch (_a) { }\n}\n//# sourceMappingURL=maybe.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./types/external\"), exports);\n__exportStar(require(\"./api\"), exports);\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __awaiter, __generator, __read, __spread } from \"tslib\";\nexport var retryMiddleware = function (options) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n if ((_a = options === null || options === void 0 ? void 0 : options.retryStrategy) === null || _a === void 0 ? void 0 : _a.mode)\n context.userAgent = __spread((context.userAgent || []), [[\"cfg/retry-mode\", options.retryStrategy.mode]]);\n return [2 /*return*/, options.retryStrategy.retry(next, args)];\n });\n}); }; }; };\nexport var retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nexport var getRetryPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnlNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JldHJ5TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBYUEsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLFVBQUMsT0FBNEIsSUFBSyxPQUFBLFVBQy9ELElBQWtDLEVBQ2xDLE9BQWdDLElBQ0MsT0FBQSxVQUNqQyxJQUFtQzs7O1FBRW5DLFVBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGFBQWEsMENBQUUsSUFBSTtZQUM5QixPQUFPLENBQUMsU0FBUyxZQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsR0FBRSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQztRQUNyRyxzQkFBTyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUM7O0tBQ2hELEVBTmtDLENBTWxDLEVBVGdFLENBU2hFLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBcUQ7SUFDdEYsSUFBSSxFQUFFLGlCQUFpQjtJQUN2QixJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUM7SUFDZixJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxVQUFDLE9BQTRCLElBQTBCLE9BQUEsQ0FBQztJQUNwRixZQUFZLEVBQUUsVUFBQyxXQUFXO1FBQ3hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLHNCQUFzQixDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNGLENBQUMsRUFKbUYsQ0FJbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFic29sdXRlTG9jYXRpb24sXG4gIEZpbmFsaXplSGFuZGxlcixcbiAgRmluYWxpemVIYW5kbGVyQXJndW1lbnRzLFxuICBGaW5hbGl6ZUhhbmRsZXJPdXRwdXQsXG4gIEZpbmFsaXplUmVxdWVzdEhhbmRsZXJPcHRpb25zLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmltcG9ydCB7IFJldHJ5UmVzb2x2ZWRDb25maWcgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uc1wiO1xuXG5leHBvcnQgY29uc3QgcmV0cnlNaWRkbGV3YXJlID0gKG9wdGlvbnM6IFJldHJ5UmVzb2x2ZWRDb25maWcpID0+IDxPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlciA9IE1ldGFkYXRhQmVhcmVyPihcbiAgbmV4dDogRmluYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IEZpbmFsaXplSGFuZGxlcjxhbnksIE91dHB1dD4gPT4gYXN5bmMgKFxuICBhcmdzOiBGaW5hbGl6ZUhhbmRsZXJBcmd1bWVudHM8YW55PlxuKTogUHJvbWlzZTxGaW5hbGl6ZUhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICBpZiAob3B0aW9ucz8ucmV0cnlTdHJhdGVneT8ubW9kZSlcbiAgICBjb250ZXh0LnVzZXJBZ2VudCA9IFsuLi4oY29udGV4dC51c2VyQWdlbnQgfHwgW10pLCBbXCJjZmcvcmV0cnktbW9kZVwiLCBvcHRpb25zLnJldHJ5U3RyYXRlZ3kubW9kZV1dO1xuICByZXR1cm4gb3B0aW9ucy5yZXRyeVN0cmF0ZWd5LnJldHJ5KG5leHQsIGFyZ3MpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJldHJ5TWlkZGxld2FyZU9wdGlvbnM6IEZpbmFsaXplUmVxdWVzdEhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvbiA9IHtcbiAgbmFtZTogXCJyZXRyeU1pZGRsZXdhcmVcIixcbiAgdGFnczogW1wiUkVUUllcIl0sXG4gIHN0ZXA6IFwiZmluYWxpemVSZXF1ZXN0XCIsXG4gIHByaW9yaXR5OiBcImhpZ2hcIixcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmV0cnlQbHVnaW4gPSAob3B0aW9uczogUmV0cnlSZXNvbHZlZENvbmZpZyk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQocmV0cnlNaWRkbGV3YXJlKG9wdGlvbnMpLCByZXRyeU1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19","/**\n * Errors encountered when the client clock and server clock cannot agree on the\n * current time.\n *\n * These errors are retryable, assuming the SDK has enabled clock skew\n * correction.\n */\nexport var CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\n/**\n * Errors that indicate the SDK is being throttled.\n *\n * These errors are always retryable.\n */\nexport var THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\n/**\n * Error codes that indicate transient issues\n */\nexport var TRANSIENT_ERROR_CODES = [\"AbortError\", \"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\n/**\n * Error codes that indicate transient issues\n */\nexport var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRztJQUNwQyxhQUFhO0lBQ2IsMkJBQTJCO0lBQzNCLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLHVCQUF1QjtDQUN4QixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHO0lBQ3BDLHdCQUF3QjtJQUN4Qix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6Qix3Q0FBd0M7SUFDeEMsc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQiwyQkFBMkI7SUFDM0IsVUFBVTtJQUNWLG9CQUFvQjtJQUNwQixZQUFZO0lBQ1oscUJBQXFCO0lBQ3JCLDBCQUEwQjtJQUMxQixnQ0FBZ0M7Q0FDakMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0scUJBQXFCLEdBQUcsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDLENBQUM7QUFFakg7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSw0QkFBNEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFcnJvcnMgZW5jb3VudGVyZWQgd2hlbiB0aGUgY2xpZW50IGNsb2NrIGFuZCBzZXJ2ZXIgY2xvY2sgY2Fubm90IGFncmVlIG9uIHRoZVxuICogY3VycmVudCB0aW1lLlxuICpcbiAqIFRoZXNlIGVycm9ycyBhcmUgcmV0cnlhYmxlLCBhc3N1bWluZyB0aGUgU0RLIGhhcyBlbmFibGVkIGNsb2NrIHNrZXdcbiAqIGNvcnJlY3Rpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBDTE9DS19TS0VXX0VSUk9SX0NPREVTID0gW1xuICBcIkF1dGhGYWlsdXJlXCIsXG4gIFwiSW52YWxpZFNpZ25hdHVyZUV4Y2VwdGlvblwiLFxuICBcIlJlcXVlc3RFeHBpcmVkXCIsXG4gIFwiUmVxdWVzdEluVGhlRnV0dXJlXCIsXG4gIFwiUmVxdWVzdFRpbWVUb29Ta2V3ZWRcIixcbiAgXCJTaWduYXR1cmVEb2VzTm90TWF0Y2hcIixcbl07XG5cbi8qKlxuICogRXJyb3JzIHRoYXQgaW5kaWNhdGUgdGhlIFNESyBpcyBiZWluZyB0aHJvdHRsZWQuXG4gKlxuICogVGhlc2UgZXJyb3JzIGFyZSBhbHdheXMgcmV0cnlhYmxlLlxuICovXG5leHBvcnQgY29uc3QgVEhST1RUTElOR19FUlJPUl9DT0RFUyA9IFtcbiAgXCJCYW5kd2lkdGhMaW1pdEV4Y2VlZGVkXCIsXG4gIFwiRUMyVGhyb3R0bGVkRXhjZXB0aW9uXCIsXG4gIFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiLFxuICBcIlByaW9yUmVxdWVzdE5vdENvbXBsZXRlXCIsXG4gIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb25cIixcbiAgXCJSZXF1ZXN0TGltaXRFeGNlZWRlZFwiLFxuICBcIlJlcXVlc3RUaHJvdHRsZWRcIixcbiAgXCJSZXF1ZXN0VGhyb3R0bGVkRXhjZXB0aW9uXCIsXG4gIFwiU2xvd0Rvd25cIixcbiAgXCJUaHJvdHRsZWRFeGNlcHRpb25cIixcbiAgXCJUaHJvdHRsaW5nXCIsXG4gIFwiVGhyb3R0bGluZ0V4Y2VwdGlvblwiLFxuICBcIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvblwiLFxuICBcIlRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvblwiLCAvLyBEeW5hbW9EQlxuXTtcblxuLyoqXG4gKiBFcnJvciBjb2RlcyB0aGF0IGluZGljYXRlIHRyYW5zaWVudCBpc3N1ZXNcbiAqL1xuZXhwb3J0IGNvbnN0IFRSQU5TSUVOVF9FUlJPUl9DT0RFUyA9IFtcIkFib3J0RXJyb3JcIiwgXCJUaW1lb3V0RXJyb3JcIiwgXCJSZXF1ZXN0VGltZW91dFwiLCBcIlJlcXVlc3RUaW1lb3V0RXhjZXB0aW9uXCJdO1xuXG4vKipcbiAqIEVycm9yIGNvZGVzIHRoYXQgaW5kaWNhdGUgdHJhbnNpZW50IGlzc3Vlc1xuICovXG5leHBvcnQgY29uc3QgVFJBTlNJRU5UX0VSUk9SX1NUQVRVU19DT0RFUyA9IFs1MDAsIDUwMiwgNTAzLCA1MDRdO1xuIl19","import { CLOCK_SKEW_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, } from \"./constants\";\nexport var isRetryableByTrait = function (error) { return error.$retryable !== undefined; };\nexport var isClockSkewError = function (error) { return CLOCK_SKEW_ERROR_CODES.includes(error.name); };\nexport var isThrottlingError = function (error) {\n var _a, _b;\n return ((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n ((_b = error.$retryable) === null || _b === void 0 ? void 0 : _b.throttling) == true;\n};\nexport var isTransientError = function (error) {\n var _a;\n return TRANSIENT_ERROR_CODES.includes(error.name) ||\n TRANSIENT_ERROR_STATUS_CODES.includes(((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) || 0);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLDRCQUE0QixHQUM3QixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxVQUFDLEtBQWUsSUFBSyxPQUFBLEtBQUssQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUE5QixDQUE4QixDQUFDO0FBRXRGLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLFVBQUMsS0FBZSxJQUFLLE9BQUEsc0JBQXNCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBM0MsQ0FBMkMsQ0FBQztBQUVqRyxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLEtBQWU7O0lBQy9DLE9BQUEsT0FBQSxLQUFLLENBQUMsU0FBUywwQ0FBRSxjQUFjLE1BQUssR0FBRztRQUN2QyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUMzQyxPQUFBLEtBQUssQ0FBQyxVQUFVLDBDQUFFLFVBQVUsS0FBSSxJQUFJLENBQUE7Q0FBQSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLFVBQUMsS0FBZTs7SUFDOUMsT0FBQSxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUMxQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsT0FBQSxLQUFLLENBQUMsU0FBUywwQ0FBRSxjQUFjLEtBQUksQ0FBQyxDQUFDLENBQUE7Q0FBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2RrRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvc21pdGh5LWNsaWVudFwiO1xuXG5pbXBvcnQge1xuICBDTE9DS19TS0VXX0VSUk9SX0NPREVTLFxuICBUSFJPVFRMSU5HX0VSUk9SX0NPREVTLFxuICBUUkFOU0lFTlRfRVJST1JfQ09ERVMsXG4gIFRSQU5TSUVOVF9FUlJPUl9TVEFUVVNfQ09ERVMsXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgY29uc3QgaXNSZXRyeWFibGVCeVRyYWl0ID0gKGVycm9yOiBTZGtFcnJvcikgPT4gZXJyb3IuJHJldHJ5YWJsZSAhPT0gdW5kZWZpbmVkO1xuXG5leHBvcnQgY29uc3QgaXNDbG9ja1NrZXdFcnJvciA9IChlcnJvcjogU2RrRXJyb3IpID0+IENMT0NLX1NLRVdfRVJST1JfQ09ERVMuaW5jbHVkZXMoZXJyb3IubmFtZSk7XG5cbmV4cG9ydCBjb25zdCBpc1Rocm90dGxpbmdFcnJvciA9IChlcnJvcjogU2RrRXJyb3IpID0+XG4gIGVycm9yLiRtZXRhZGF0YT8uaHR0cFN0YXR1c0NvZGUgPT09IDQyOSB8fFxuICBUSFJPVFRMSU5HX0VSUk9SX0NPREVTLmluY2x1ZGVzKGVycm9yLm5hbWUpIHx8XG4gIGVycm9yLiRyZXRyeWFibGU/LnRocm90dGxpbmcgPT0gdHJ1ZTtcblxuZXhwb3J0IGNvbnN0IGlzVHJhbnNpZW50RXJyb3IgPSAoZXJyb3I6IFNka0Vycm9yKSA9PlxuICBUUkFOU0lFTlRfRVJST1JfQ09ERVMuaW5jbHVkZXMoZXJyb3IubmFtZSkgfHxcbiAgVFJBTlNJRU5UX0VSUk9SX1NUQVRVU19DT0RFUy5pbmNsdWRlcyhlcnJvci4kbWV0YWRhdGE/Lmh0dHBTdGF0dXNDb2RlIHx8IDApO1xuIl19","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\n/**\n * Calculate a capped, fully-jittered exponential backoff time.\n */\nexport var defaultDelayDecider = function (delayBase, attempts) {\n return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * Math.pow(2, attempts) * delayBase));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsYXlEZWNpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlbGF5RGVjaWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxVQUFDLFNBQWlCLEVBQUUsUUFBZ0I7SUFDckUsT0FBQSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFNBQUEsQ0FBQyxFQUFJLFFBQVEsQ0FBQSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0FBQXBGLENBQW9GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNQVhJTVVNX1JFVFJZX0RFTEFZIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQ2FsY3VsYXRlIGEgY2FwcGVkLCBmdWxseS1qaXR0ZXJlZCBleHBvbmVudGlhbCBiYWNrb2ZmIHRpbWUuXG4gKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0RGVsYXlEZWNpZGVyID0gKGRlbGF5QmFzZTogbnVtYmVyLCBhdHRlbXB0czogbnVtYmVyKSA9PlxuICBNYXRoLmZsb29yKE1hdGgubWluKE1BWElNVU1fUkVUUllfREVMQVksIE1hdGgucmFuZG9tKCkgKiAyICoqIGF0dGVtcHRzICogZGVsYXlCYXNlKSk7XG4iXX0=","/**\n * The base number of milliseconds to use in calculating a suitable cool-down\n * time when a retryable error is encountered.\n */\nexport var DEFAULT_RETRY_DELAY_BASE = 100;\n/**\n * The maximum amount of time (in milliseconds) that will be used as a delay\n * between retry attempts.\n */\nexport var MAXIMUM_RETRY_DELAY = 20 * 1000;\n/**\n * The retry delay base (in milliseconds) to use when a throttling error is\n * encountered.\n */\nexport var THROTTLING_RETRY_DELAY_BASE = 500;\n/**\n * Initial number of retry tokens in Retry Quota\n */\nexport var INITIAL_RETRY_TOKENS = 500;\n/**\n * The total amount of retry tokens to be decremented from retry token balance.\n */\nexport var RETRY_COST = 5;\n/**\n * The total amount of retry tokens to be decremented from retry token balance\n * when a throttling error is encountered.\n */\nexport var TIMEOUT_RETRY_COST = 10;\n/**\n * The total amount of retry token to be incremented from retry token balance\n * if an SDK operation invocation succeeds without requiring a retry request.\n */\nexport var NO_RETRY_INCREMENT = 1;\n/**\n * Header name for SDK invocation ID\n */\nexport var INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\n/**\n * Header name for request retry information.\n */\nexport var REQUEST_HEADER = \"amz-sdk-request\";\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFFNUM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUU3Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSwyQkFBMkIsR0FBRyxHQUFHLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFFeEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBRTVCOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztBQUVyQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyx1QkFBdUIsQ0FBQztBQUU1RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGJhc2UgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB1c2UgaW4gY2FsY3VsYXRpbmcgYSBzdWl0YWJsZSBjb29sLWRvd25cbiAqIHRpbWUgd2hlbiBhIHJldHJ5YWJsZSBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVUUllfREVMQVlfQkFTRSA9IDEwMDtcblxuLyoqXG4gKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZSAoaW4gbWlsbGlzZWNvbmRzKSB0aGF0IHdpbGwgYmUgdXNlZCBhcyBhIGRlbGF5XG4gKiBiZXR3ZWVuIHJldHJ5IGF0dGVtcHRzLlxuICovXG5leHBvcnQgY29uc3QgTUFYSU1VTV9SRVRSWV9ERUxBWSA9IDIwICogMTAwMDtcblxuLyoqXG4gKiBUaGUgcmV0cnkgZGVsYXkgYmFzZSAoaW4gbWlsbGlzZWNvbmRzKSB0byB1c2Ugd2hlbiBhIHRocm90dGxpbmcgZXJyb3IgaXNcbiAqIGVuY291bnRlcmVkLlxuICovXG5leHBvcnQgY29uc3QgVEhST1RUTElOR19SRVRSWV9ERUxBWV9CQVNFID0gNTAwO1xuXG4vKipcbiAqIEluaXRpYWwgbnVtYmVyIG9mIHJldHJ5IHRva2VucyBpbiBSZXRyeSBRdW90YVxuICovXG5leHBvcnQgY29uc3QgSU5JVElBTF9SRVRSWV9UT0tFTlMgPSA1MDA7XG5cbi8qKlxuICogVGhlIHRvdGFsIGFtb3VudCBvZiByZXRyeSB0b2tlbnMgdG8gYmUgZGVjcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlLlxuICovXG5leHBvcnQgY29uc3QgUkVUUllfQ09TVCA9IDU7XG5cbi8qKlxuICogVGhlIHRvdGFsIGFtb3VudCBvZiByZXRyeSB0b2tlbnMgdG8gYmUgZGVjcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlXG4gKiB3aGVuIGEgdGhyb3R0bGluZyBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFRJTUVPVVRfUkVUUllfQ09TVCA9IDEwO1xuXG4vKipcbiAqIFRoZSB0b3RhbCBhbW91bnQgb2YgcmV0cnkgdG9rZW4gdG8gYmUgaW5jcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlXG4gKiBpZiBhbiBTREsgb3BlcmF0aW9uIGludm9jYXRpb24gc3VjY2VlZHMgd2l0aG91dCByZXF1aXJpbmcgYSByZXRyeSByZXF1ZXN0LlxuICovXG5leHBvcnQgY29uc3QgTk9fUkVUUllfSU5DUkVNRU5UID0gMTtcblxuLyoqXG4gKiBIZWFkZXIgbmFtZSBmb3IgU0RLIGludm9jYXRpb24gSURcbiAqL1xuZXhwb3J0IGNvbnN0IElOVk9DQVRJT05fSURfSEVBREVSID0gXCJhbXotc2RrLWludm9jYXRpb24taWRcIjtcblxuLyoqXG4gKiBIZWFkZXIgbmFtZSBmb3IgcmVxdWVzdCByZXRyeSBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVFU1RfSEVBREVSID0gXCJhbXotc2RrLXJlcXVlc3RcIjtcbiJdfQ==","import { isClockSkewError, isRetryableByTrait, isThrottlingError, isTransientError, } from \"@aws-sdk/service-error-classification\";\nexport var defaultRetryDecider = function (error) {\n if (!error) {\n return false;\n }\n return isRetryableByTrait(error) || isClockSkewError(error) || isThrottlingError(error) || isTransientError(error);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnlEZWNpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JldHJ5RGVjaWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ2pCLE1BQU0sdUNBQXVDLENBQUM7QUFHL0MsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsVUFBQyxLQUFlO0lBQ2pELElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNySCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBpc0Nsb2NrU2tld0Vycm9yLFxuICBpc1JldHJ5YWJsZUJ5VHJhaXQsXG4gIGlzVGhyb3R0bGluZ0Vycm9yLFxuICBpc1RyYW5zaWVudEVycm9yLFxufSBmcm9tIFwiQGF3cy1zZGsvc2VydmljZS1lcnJvci1jbGFzc2lmaWNhdGlvblwiO1xuaW1wb3J0IHsgU2RrRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvc21pdGh5LWNsaWVudFwiO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdFJldHJ5RGVjaWRlciA9IChlcnJvcjogU2RrRXJyb3IpID0+IHtcbiAgaWYgKCFlcnJvcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBpc1JldHJ5YWJsZUJ5VHJhaXQoZXJyb3IpIHx8IGlzQ2xvY2tTa2V3RXJyb3IoZXJyb3IpIHx8IGlzVGhyb3R0bGluZ0Vycm9yKGVycm9yKSB8fCBpc1RyYW5zaWVudEVycm9yKGVycm9yKTtcbn07XG4iXX0=","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { isThrottlingError } from \"@aws-sdk/service-error-classification\";\nimport { v4 } from \"uuid\";\nimport { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, INVOCATION_ID_HEADER, REQUEST_HEADER, THROTTLING_RETRY_DELAY_BASE, } from \"./constants\";\nimport { getDefaultRetryQuota } from \"./defaultRetryQuota\";\nimport { defaultDelayDecider } from \"./delayDecider\";\nimport { defaultRetryDecider } from \"./retryDecider\";\n/**\n * The default value for how many HTTP requests an SDK should make for a\n * single SDK operation invocation before giving up\n */\nexport var DEFAULT_MAX_ATTEMPTS = 3;\n/**\n * The default retry algorithm to use.\n */\nexport var DEFAULT_RETRY_MODE = \"standard\";\nvar StandardRetryStrategy = /** @class */ (function () {\n function StandardRetryStrategy(maxAttemptsProvider, options) {\n var _a, _b, _c;\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = DEFAULT_RETRY_MODE;\n this.retryDecider = (_a = options === null || options === void 0 ? void 0 : options.retryDecider) !== null && _a !== void 0 ? _a : defaultRetryDecider;\n this.delayDecider = (_b = options === null || options === void 0 ? void 0 : options.delayDecider) !== null && _b !== void 0 ? _b : defaultDelayDecider;\n this.retryQuota = (_c = options === null || options === void 0 ? void 0 : options.retryQuota) !== null && _c !== void 0 ? _c : getDefaultRetryQuota(INITIAL_RETRY_TOKENS);\n }\n StandardRetryStrategy.prototype.shouldRetry = function (error, attempts, maxAttempts) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n };\n StandardRetryStrategy.prototype.getMaxAttempts = function () {\n return __awaiter(this, void 0, void 0, function () {\n var maxAttempts, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.maxAttemptsProvider()];\n case 1:\n maxAttempts = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_1 = _a.sent();\n maxAttempts = DEFAULT_MAX_ATTEMPTS;\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/, maxAttempts];\n }\n });\n });\n };\n StandardRetryStrategy.prototype.retry = function (next, args) {\n return __awaiter(this, void 0, void 0, function () {\n var retryTokenAmount, attempts, totalDelay, maxAttempts, request, _loop_1, this_1, state_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n attempts = 0;\n totalDelay = 0;\n return [4 /*yield*/, this.getMaxAttempts()];\n case 1:\n maxAttempts = _a.sent();\n request = args.request;\n if (HttpRequest.isInstance(request)) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n _loop_1 = function () {\n var _a, response, output, err_1, delay_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 5]);\n if (HttpRequest.isInstance(request)) {\n request.headers[REQUEST_HEADER] = \"attempt=\" + (attempts + 1) + \"; max=\" + maxAttempts;\n }\n return [4 /*yield*/, next(args)];\n case 1:\n _a = _b.sent(), response = _a.response, output = _a.output;\n this_1.retryQuota.releaseRetryTokens(retryTokenAmount);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalDelay;\n return [2 /*return*/, { value: { response: response, output: output } }];\n case 2:\n err_1 = _b.sent();\n attempts++;\n if (!this_1.shouldRetry(err_1, attempts, maxAttempts)) return [3 /*break*/, 4];\n retryTokenAmount = this_1.retryQuota.retrieveRetryTokens(err_1);\n delay_1 = this_1.delayDecider(isThrottlingError(err_1) ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE, attempts);\n totalDelay += delay_1;\n return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, delay_1); })];\n case 3:\n _b.sent();\n return [2 /*return*/, \"continue\"];\n case 4:\n if (!err_1.$metadata) {\n err_1.$metadata = {};\n }\n err_1.$metadata.attempts = attempts;\n err_1.$metadata.totalRetryDelay = totalDelay;\n throw err_1;\n case 5: return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _a.label = 2;\n case 2:\n if (!true) return [3 /*break*/, 4];\n return [5 /*yield**/, _loop_1()];\n case 3:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\")\n return [2 /*return*/, state_1.value];\n return [3 /*break*/, 2];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n return StandardRetryStrategy;\n}());\nexport { StandardRetryStrategy };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlZmF1bHRTdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCwyQkFBMkIsR0FDNUIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBRXRDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBb0Q3QztJQU1FLCtCQUE2QixtQkFBcUMsRUFBRSxPQUFzQzs7UUFBN0Usd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFrQjtRQUZsRCxTQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFHeEMsSUFBSSxDQUFDLFlBQVksU0FBRyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsWUFBWSxtQ0FBSSxtQkFBbUIsQ0FBQztRQUNqRSxJQUFJLENBQUMsWUFBWSxTQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxZQUFZLG1DQUFJLG1CQUFtQixDQUFDO1FBQ2pFLElBQUksQ0FBQyxVQUFVLFNBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxD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IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGlzVGhyb3R0bGluZ0Vycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3NlcnZpY2UtZXJyb3ItY2xhc3NpZmljYXRpb25cIjtcbmltcG9ydCB7IFNka0Vycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IEZpbmFsaXplSGFuZGxlciwgRmluYWxpemVIYW5kbGVyQXJndW1lbnRzLCBNZXRhZGF0YUJlYXJlciwgUHJvdmlkZXIsIFJldHJ5U3RyYXRlZ3kgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHY0IH0gZnJvbSBcInV1aWRcIjtcblxuaW1wb3J0IHtcbiAgREVGQVVMVF9SRVRSWV9ERUxBWV9CQVNFLFxuICBJTklUSUFMX1JFVFJZX1RPS0VOUyxcbiAgSU5WT0NBVElPTl9JRF9IRUFERVIsXG4gIFJFUVVFU1RfSEVBREVSLFxuICBUSFJPVFRMSU5HX1JFVFJZX0RFTEFZX0JBU0UsXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdFJldHJ5UXVvdGEgfSBmcm9tIFwiLi9kZWZhdWx0UmV0cnlRdW90YVwiO1xuaW1wb3J0IHsgZGVmYXVsdERlbGF5RGVjaWRlciB9IGZyb20gXCIuL2RlbGF5RGVjaWRlclwiO1xuaW1wb3J0IHsgZGVmYXVsdFJldHJ5RGVjaWRlciB9IGZyb20gXCIuL3JldHJ5RGVjaWRlclwiO1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IHZhbHVlIGZvciBob3cgbWFueSBIVFRQIHJlcXVlc3RzIGFuIFNESyBzaG91bGQgbWFrZSBmb3IgYVxuICogc2luZ2xlIFNESyBvcGVyYXRpb24gaW52b2NhdGlvbiBiZWZvcmUgZ2l2aW5nIHVwXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9BVFRFTVBUUyA9IDM7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgcmV0cnkgYWxnb3JpdGhtIHRvIHVzZS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVUUllfTU9ERSA9IFwic3RhbmRhcmRcIjtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYW4gZXJyb3IgaXMgcmV0cnlhYmxlIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgcmV0cmllc1xuICogYWxyZWFkeSBhdHRlbXB0ZWQsIHRoZSBIVFRQIHN0YXR1cyBjb2RlLCBhbmQgdGhlIGVycm9yIHJlY2VpdmVkIChpZiBhbnkpLlxuICpcbiAqIEBwYXJhbSBlcnJvciAgICAgICAgIFRoZSBlcnJvciBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRyeURlY2lkZXIge1xuICAoZXJyb3I6IFNka0Vycm9yKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHdhaXQgYmVmb3JlIHJldHJ5aW5nIGFuIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gZGVsYXlCYXNlIFRoZSBiYXNlIGRlbGF5IChpbiBtaWxsaXNlY29uZHMpLlxuICogQHBhcmFtIGF0dGVtcHRzICBUaGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBhY3Rpb24gaGFzIGFscmVhZHkgYmVlbiB0cmllZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWxheURlY2lkZXIge1xuICAoZGVsYXlCYXNlOiBudW1iZXIsIGF0dGVtcHRzOiBudW1iZXIpOiBudW1iZXI7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHRoYXQgc3BlY2lmaWVzIHRoZSByZXRyeSBxdW90YSBiZWhhdmlvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRyeVF1b3RhIHtcbiAgLyoqXG4gICAqIHJldHVybnMgdHJ1ZSBpZiByZXRyeSB0b2tlbnMgYXJlIGF2YWlsYWJsZSBmcm9tIHRoZSByZXRyeSBxdW90YSBidWNrZXQuXG4gICAqL1xuICBoYXNSZXRyeVRva2VuczogKGVycm9yOiBTZGtFcnJvcikgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogcmV0dXJucyB0b2tlbiBhbW91bnQgZnJvbSB0aGUgcmV0cnkgcXVvdGEgYnVja2V0LlxuICAgKiB0aHJvd3MgZXJyb3IgaXMgcmV0cnkgdG9rZW5zIGFyZSBub3QgYXZhaWxhYmxlLlxuICAgKi9cbiAgcmV0cmlldmVSZXRyeVRva2VuczogKGVycm9yOiBTZGtFcnJvcikgPT4gbnVtYmVyO1xuXG4gIC8qKlxuICAgKiByZWxlYXNlcyB0b2tlbnMgYmFjayB0byB0aGUgcmV0cnkgcXVvdGEuXG4gICAqL1xuICByZWxlYXNlUmV0cnlUb2tlbnM6IChyZWxlYXNlQ2FwYWNpdHlBbW91bnQ/OiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogU3RyYXRlZ3kgb3B0aW9ucyB0byBiZSBwYXNzZWQgdG8gU3RhbmRhcmRSZXRyeVN0cmF0ZWd5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRSZXRyeVN0cmF0ZWd5T3B0aW9ucyB7XG4gIHJldHJ5RGVjaWRlcj86IFJldHJ5RGVjaWRlcjtcbiAgZGVsYXlEZWNpZGVyPzogRGVsYXlEZWNpZGVyO1xuICByZXRyeVF1b3RhPzogUmV0cnlRdW90YTtcbn1cblxuZXhwb3J0IGNsYXNzIFN0YW5kYXJkUmV0cnlTdHJhdGVneSBpbXBsZW1lbnRzIFJldHJ5U3RyYXRlZ3kge1xuICBwcml2YXRlIHJldHJ5RGVjaWRlcjogUmV0cnlEZWNpZGVyO1xuICBwcml2YXRlIGRlbGF5RGVjaWRlcjogRGVsYXlEZWNpZGVyO1xuICBwcml2YXRlIHJldHJ5UXVvdGE6IFJldHJ5UXVvdGE7XG4gIHB1YmxpYyByZWFkb25seSBtb2RlID0gREVGQVVMVF9SRVRSWV9NT0RFO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWF4QXR0ZW1wdHNQcm92aWRlcjogUHJvdmlkZXI8bnVtYmVyPiwgb3B0aW9ucz86IFN0YW5kYXJkUmV0cnlTdHJhdGVneU9wdGlvbnMpIHtcbiAgICB0aGlzLnJldHJ5RGVjaWRlciA9IG9wdGlvbnM/LnJldHJ5RGVjaWRlciA/PyBkZWZhdWx0UmV0cnlEZWNpZGVyO1xuICAgIHRoaXMuZGVsYXlEZWNpZGVyID0gb3B0aW9ucz8uZGVsYXlEZWNpZGVyID8/IGRlZmF1bHREZWxheURlY2lkZXI7XG4gICAgdGhpcy5yZXRyeVF1b3RhID0gb3B0aW9ucz8ucmV0cnlRdW90YSA/PyBnZXREZWZhdWx0UmV0cnlRdW90YShJTklUSUFMX1JFVFJZX1RPS0VOUyk7XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFJldHJ5KGVycm9yOiBTZGtFcnJvciwgYXR0ZW1wdHM6IG51bWJlciwgbWF4QXR0ZW1wdHM6IG51bWJlcikge1xuICAgIHJldHVybiBhdHRlbXB0cyA8IG1heEF0dGVtcHRzICYmIHRoaXMucmV0cnlEZWNpZGVyKGVycm9yKSAmJiB0aGlzLnJldHJ5UXVvdGEuaGFzUmV0cnlUb2tlbnMoZXJyb3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRNYXhBdHRlbXB0cygpIHtcbiAgICBsZXQgbWF4QXR0ZW1wdHM6IG51bWJlcjtcbiAgICB0cnkge1xuICAgICAgbWF4QXR0ZW1wdHMgPSBhd2FpdCB0aGlzLm1heEF0dGVtcHRzUHJvdmlkZXIoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbWF4QXR0ZW1wdHMgPSBERUZBVUxUX01BWF9BVFRFTVBUUztcbiAgICB9XG4gICAgcmV0dXJuIG1heEF0dGVtcHRzO1xuICB9XG5cbiAgYXN5bmMgcmV0cnk8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KFxuICAgIG5leHQ6IEZpbmFsaXplSGFuZGxlcjxJbnB1dCwgT3VwdXQ+LFxuICAgIGFyZ3M6IEZpbmFsaXplSGFuZGxlckFyZ3VtZW50czxJbnB1dD5cbiAgKSB7XG4gICAgbGV0IHJldHJ5VG9rZW5BbW91bnQ7XG4gICAgbGV0IGF0dGVtcHRzID0gMDtcbiAgICBsZXQgdG90YWxEZWxheSA9IDA7XG5cbiAgICBjb25zdCBtYXhBdHRlbXB0cyA9IGF3YWl0IHRoaXMuZ2V0TWF4QXR0ZW1wdHMoKTtcblxuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW0lOVk9DQVRJT05fSURfSEVBREVSXSA9IHY0KCk7XG4gICAgfVxuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChIdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1JFUVVFU1RfSEVBREVSXSA9IGBhdHRlbXB0PSR7YXR0ZW1wdHMgKyAxfTsgbWF4PSR7bWF4QXR0ZW1wdHN9YDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHJlc3BvbnNlLCBvdXRwdXQgfSA9IGF3YWl0IG5leHQoYXJncyk7XG5cbiAgICAgICAgdGhpcy5yZXRyeVF1b3RhLnJlbGVhc2VSZXRyeVRva2VucyhyZXRyeVRva2VuQW1vdW50KTtcbiAgICAgICAgb3V0cHV0LiRtZXRhZGF0YS5hdHRlbXB0cyA9IGF0dGVtcHRzICsgMTtcbiAgICAgICAgb3V0cHV0LiRtZXRhZGF0YS50b3RhbFJldHJ5RGVsYXkgPSB0b3RhbERlbGF5O1xuXG4gICAgICAgIHJldHVybiB7IHJlc3BvbnNlLCBvdXRwdXQgfTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhdHRlbXB0cysrO1xuICAgICAgICBpZiAodGhpcy5zaG91bGRSZXRyeShlcnIgYXMgU2RrRXJyb3IsIGF0dGVtcHRzLCBtYXhBdHRlbXB0cykpIHtcbiAgICAgICAgICByZXRyeVRva2VuQW1vdW50ID0gdGhpcy5yZXRyeVF1b3RhLnJldHJpZXZlUmV0cnlUb2tlbnMoZXJyKTtcbiAgICAgICAgICBjb25zdCBkZWxheSA9IHRoaXMuZGVsYXlEZWNpZGVyKFxuICAgICAgICAgICAgaXNUaHJvdHRsaW5nRXJyb3IoZXJyKSA/IFRIUk9UVExJTkdfUkVUUllfREVMQVlfQkFTRSA6IERFRkFVTFRfUkVUUllfREVMQVlfQkFTRSxcbiAgICAgICAgICAgIGF0dGVtcHRzXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0b3RhbERlbGF5ICs9IGRlbGF5O1xuXG4gICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXkpKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZXJyLiRtZXRhZGF0YSkge1xuICAgICAgICAgIGVyci4kbWV0YWRhdGEgPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVyci4kbWV0YWRhdGEuYXR0ZW1wdHMgPSBhdHRlbXB0cztcbiAgICAgICAgZXJyLiRtZXRhZGF0YS50b3RhbFJldHJ5RGVsYXkgPSB0b3RhbERlbGF5O1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=","import { NO_RETRY_INCREMENT, RETRY_COST, TIMEOUT_RETRY_COST } from \"./constants\";\nexport var getDefaultRetryQuota = function (initialRetryTokens) {\n var MAX_CAPACITY = initialRetryTokens;\n var availableCapacity = initialRetryTokens;\n var getCapacityAmount = function (error) { return (error.name === \"TimeoutError\" ? TIMEOUT_RETRY_COST : RETRY_COST); };\n var hasRetryTokens = function (error) { return getCapacityAmount(error) <= availableCapacity; };\n var retrieveRetryTokens = function (error) {\n if (!hasRetryTokens(error)) {\n // retryStrategy should stop retrying, and return last error\n throw new Error(\"No retry token available\");\n }\n var capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n var releaseRetryTokens = function (capacityReleaseAmount) {\n availableCapacity += capacityReleaseAmount !== null && capacityReleaseAmount !== void 0 ? capacityReleaseAmount : NO_RETRY_INCREMENT;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n return Object.freeze({\n hasRetryTokens: hasRetryTokens,\n retrieveRetryTokens: retrieveRetryTokens,\n releaseRetryTokens: releaseRetryTokens,\n });\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFJldHJ5UXVvdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVmYXVsdFJldHJ5UXVvdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdqRixNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxVQUFDLGtCQUEwQjtJQUM3RCxJQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztJQUN4QyxJQUFJLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0lBRTNDLElBQU0saUJBQWlCLEdBQUcsVUFBQyxLQUFlLElBQUssT0FBQSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQWpFLENBQWlFLENBQUM7SUFFakgsSUFBTSxjQUFjLEdBQUcsVUFBQyxLQUFlLElBQUssT0FBQSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBaUIsRUFBN0MsQ0FBNkMsQ0FBQztJQUUxRixJQUFNLG1CQUFtQixHQUFHLFVBQUMsS0FBZTtRQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFCLDREQUE0RDtZQUM1RCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7UUFDRCxJQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxpQkFBaUIsSUFBSSxjQUFjLENBQUM7UUFDcEMsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBRUYsSUFBTSxrQkFBa0IsR0FBRyxVQUFDLHFCQUE4QjtRQUN4RCxpQkFBaUIsSUFBSSxxQkFBcUIsYUFBckIscUJBQXFCLGNBQXJCLHFCQUFxQixHQUFJLGtCQUFrQixDQUFDO1FBQ2pFLGlCQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ25CLGNBQWMsZ0JBQUE7UUFDZCxtQkFBbUIscUJBQUE7UUFDbkIsa0JBQWtCLG9CQUFBO0tBQ25CLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNka0Vycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3NtaXRoeS1jbGllbnRcIjtcblxuaW1wb3J0IHsgTk9fUkVUUllfSU5DUkVNRU5ULCBSRVRSWV9DT1NULCBUSU1FT1VUX1JFVFJZX0NPU1QgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFJldHJ5UXVvdGEgfSBmcm9tIFwiLi9kZWZhdWx0U3RyYXRlZ3lcIjtcblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRSZXRyeVF1b3RhID0gKGluaXRpYWxSZXRyeVRva2VuczogbnVtYmVyKTogUmV0cnlRdW90YSA9PiB7XG4gIGNvbnN0IE1BWF9DQVBBQ0lUWSA9IGluaXRpYWxSZXRyeVRva2VucztcbiAgbGV0IGF2YWlsYWJsZUNhcGFjaXR5ID0gaW5pdGlhbFJldHJ5VG9rZW5zO1xuXG4gIGNvbnN0IGdldENhcGFjaXR5QW1vdW50ID0gKGVycm9yOiBTZGtFcnJvcikgPT4gKGVycm9yLm5hbWUgPT09IFwiVGltZW91dEVycm9yXCIgPyBUSU1FT1VUX1JFVFJZX0NPU1QgOiBSRVRSWV9DT1NUKTtcblxuICBjb25zdCBoYXNSZXRyeVRva2VucyA9IChlcnJvcjogU2RrRXJyb3IpID0+IGdldENhcGFjaXR5QW1vdW50KGVycm9yKSA8PSBhdmFpbGFibGVDYXBhY2l0eTtcblxuICBjb25zdCByZXRyaWV2ZVJldHJ5VG9rZW5zID0gKGVycm9yOiBTZGtFcnJvcikgPT4ge1xuICAgIGlmICghaGFzUmV0cnlUb2tlbnMoZXJyb3IpKSB7XG4gICAgICAvLyByZXRyeVN0cmF0ZWd5IHNob3VsZCBzdG9wIHJldHJ5aW5nLCBhbmQgcmV0dXJuIGxhc3QgZXJyb3JcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIHJldHJ5IHRva2VuIGF2YWlsYWJsZVwiKTtcbiAgICB9XG4gICAgY29uc3QgY2FwYWNpdHlBbW91bnQgPSBnZXRDYXBhY2l0eUFtb3VudChlcnJvcik7XG4gICAgYXZhaWxhYmxlQ2FwYWNpdHkgLT0gY2FwYWNpdHlBbW91bnQ7XG4gICAgcmV0dXJuIGNhcGFjaXR5QW1vdW50O1xuICB9O1xuXG4gIGNvbnN0IHJlbGVhc2VSZXRyeVRva2VucyA9IChjYXBhY2l0eVJlbGVhc2VBbW91bnQ/OiBudW1iZXIpID0+IHtcbiAgICBhdmFpbGFibGVDYXBhY2l0eSArPSBjYXBhY2l0eVJlbGVhc2VBbW91bnQgPz8gTk9fUkVUUllfSU5DUkVNRU5UO1xuICAgIGF2YWlsYWJsZUNhcGFjaXR5ID0gTWF0aC5taW4oYXZhaWxhYmxlQ2FwYWNpdHksIE1BWF9DQVBBQ0lUWSk7XG4gIH07XG5cbiAgcmV0dXJuIE9iamVjdC5mcmVlemUoe1xuICAgIGhhc1JldHJ5VG9rZW5zLFxuICAgIHJldHJpZXZlUmV0cnlUb2tlbnMsXG4gICAgcmVsZWFzZVJldHJ5VG9rZW5zLFxuICB9KTtcbn07XG4iXX0=","import { __assign } from \"tslib\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, StandardRetryStrategy } from \"./defaultStrategy\";\nexport var ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport var CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexport var NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) {\n var value = env[ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n var maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Environment variable \" + ENV_MAX_ATTEMPTS + \" mast be a number, got \\\"\" + value + \"\\\"\");\n }\n return maxAttempt;\n },\n configFileSelector: function (profile) {\n var value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n var maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Shared config file entry \" + CONFIG_MAX_ATTEMPTS + \" mast be a number, got \\\"\" + value + \"\\\"\");\n }\n return maxAttempt;\n },\n default: DEFAULT_MAX_ATTEMPTS,\n};\nexport var resolveRetryConfig = function (input) {\n var maxAttempts = normalizeMaxAttempts(input.maxAttempts);\n return __assign(__assign({}, input), { maxAttempts: maxAttempts, retryStrategy: input.retryStrategy || new StandardRetryStrategy(maxAttempts) });\n};\nvar normalizeMaxAttempts = function (maxAttempts) {\n if (maxAttempts === void 0) { maxAttempts = DEFAULT_MAX_ATTEMPTS; }\n if (typeof maxAttempts === \"number\") {\n var promisified_1 = Promise.resolve(maxAttempts);\n return function () { return promisified_1; };\n }\n return maxAttempts;\n};\nexport var ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport var CONFIG_RETRY_MODE = \"retry_mode\";\nexport var NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) { return env[ENV_RETRY_MODE]; },\n configFileSelector: function (profile) { return profile[CONFIG_RETRY_MODE]; },\n default: DEFAULT_RETRY_MODE,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUdBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBHLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBQ25ELE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUVsRCxNQUFNLENBQUMsSUFBTSwrQkFBK0IsR0FBa0M7SUFDNUUsMkJBQTJCLEVBQUUsVUFBQyxHQUFHO1FBQy9CLElBQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDN0IsSUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUF3QixnQkFBZ0IsaUNBQTJCLEtBQUssT0FBRyxDQUFDLENBQUM7U0FDOUY7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBQ0Qsa0JBQWtCLEVBQUUsVUFBQyxPQUFPO1FBQzFCLElBQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDN0IsSUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE0QixtQkFBbUIsaUNBQTJCLEtBQUssT0FBRyxDQUFDLENBQUM7U0FDckc7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsT0FBTyxFQUFFLG9CQUFvQjtDQUM5QixDQUFDO0FBbUJGLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLFVBQUksS0FBZ0Q7SUFDcEYsSUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVELDZCQUNLLEtBQUssS0FDUixXQUFXLGFBQUEsRUFDWCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSxJQUFJLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxJQUM1RTtBQUNKLENBQUMsQ0FBQztBQUVGLElBQU0sb0JBQW9CLEdBQUcsVUFBQyxXQUE2RDtJQUE3RCw0QkFBQSxFQUFBLGtDQUE2RDtJQUN6RixJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTtRQUNuQyxJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUM7QUFDL0MsTUFBTSxDQUFDLElBQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxJQUFNLDhCQUE4QixHQUFrQztJQUMzRSwyQkFBMkIsRUFBRSxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBbkIsQ0FBbUI7SUFDekQsa0JBQWtCLEVBQUUsVUFBQyxPQUFPLElBQUssT0FBQSxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBMUIsQ0FBMEI7SUFDM0QsT0FBTyxFQUFFLGtCQUFrQjtDQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9hZGVkQ29uZmlnU2VsZWN0b3JzIH0gZnJvbSBcIkBhd3Mtc2RrL25vZGUtY29uZmlnLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBQcm92aWRlciwgUmV0cnlTdHJhdGVneSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBERUZBVUxUX01BWF9BVFRFTVBUUywgREVGQVVMVF9SRVRSWV9NT0RFLCBTdGFuZGFyZFJldHJ5U3RyYXRlZ3kgfSBmcm9tIFwiLi9kZWZhdWx0U3RyYXRlZ3lcIjtcblxuZXhwb3J0IGNvbnN0IEVOVl9NQVhfQVRURU1QVFMgPSBcIkFXU19NQVhfQVRURU1QVFNcIjtcbmV4cG9ydCBjb25zdCBDT05GSUdfTUFYX0FUVEVNUFRTID0gXCJtYXhfYXR0ZW1wdHNcIjtcblxuZXhwb3J0IGNvbnN0IE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlM6IExvYWRlZENvbmZpZ1NlbGVjdG9yczxudW1iZXI+ID0ge1xuICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGVudltFTlZfTUFYX0FUVEVNUFRTXTtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG1heEF0dGVtcHQgPSBwYXJzZUludCh2YWx1ZSk7XG4gICAgaWYgKE51bWJlci5pc05hTihtYXhBdHRlbXB0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbnZpcm9ubWVudCB2YXJpYWJsZSAke0VOVl9NQVhfQVRURU1QVFN9IG1hc3QgYmUgYSBudW1iZXIsIGdvdCBcIiR7dmFsdWV9XCJgKTtcbiAgICB9XG4gICAgcmV0dXJuIG1heEF0dGVtcHQ7XG4gIH0sXG4gIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHByb2ZpbGVbQ09ORklHX01BWF9BVFRFTVBUU107XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBtYXhBdHRlbXB0ID0gcGFyc2VJbnQodmFsdWUpO1xuICAgIGlmIChOdW1iZXIuaXNOYU4obWF4QXR0ZW1wdCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2hhcmVkIGNvbmZpZyBmaWxlIGVudHJ5ICR7Q09ORklHX01BWF9BVFRFTVBUU30gbWFzdCBiZSBhIG51bWJlciwgZ290IFwiJHt2YWx1ZX1cImApO1xuICAgIH1cbiAgICByZXR1cm4gbWF4QXR0ZW1wdDtcbiAgfSxcbiAgZGVmYXVsdDogREVGQVVMVF9NQVhfQVRURU1QVFMsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJldHJ5SW5wdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzIHJlcXVlc3RzIHRoYXQgZW5jb3VudGVyIHJldHJ5YWJsZSBmYWlsdXJlcyBzaG91bGQgYmUgYXR0ZW1wdGVkLlxuICAgKi9cbiAgbWF4QXR0ZW1wdHM/OiBudW1iZXIgfCBQcm92aWRlcjxudW1iZXI+O1xuICAvKipcbiAgICogVGhlIHN0cmF0ZWd5IHRvIHJldHJ5IHRoZSByZXF1ZXN0LiBVc2luZyBidWlsdC1pbiBleHBvbmVudGlhbCBiYWNrb2ZmIHN0cmF0ZWd5IGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZXRyeVN0cmF0ZWd5PzogUmV0cnlTdHJhdGVneTtcbn1cblxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7fVxuZXhwb3J0IGludGVyZmFjZSBSZXRyeVJlc29sdmVkQ29uZmlnIHtcbiAgbWF4QXR0ZW1wdHM6IFByb3ZpZGVyPG51bWJlcj47XG4gIHJldHJ5U3RyYXRlZ3k6IFJldHJ5U3RyYXRlZ3k7XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlUmV0cnlDb25maWcgPSA8VD4oaW5wdXQ6IFQgJiBQcmV2aW91c2x5UmVzb2x2ZWQgJiBSZXRyeUlucHV0Q29uZmlnKTogVCAmIFJldHJ5UmVzb2x2ZWRDb25maWcgPT4ge1xuICBjb25zdCBtYXhBdHRlbXB0cyA9IG5vcm1hbGl6ZU1heEF0dGVtcHRzKGlucHV0Lm1heEF0dGVtcHRzKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBtYXhBdHRlbXB0cyxcbiAgICByZXRyeVN0cmF0ZWd5OiBpbnB1dC5yZXRyeVN0cmF0ZWd5IHx8IG5ldyBTdGFuZGFyZFJldHJ5U3RyYXRlZ3kobWF4QXR0ZW1wdHMpLFxuICB9O1xufTtcblxuY29uc3Qgbm9ybWFsaXplTWF4QXR0ZW1wdHMgPSAobWF4QXR0ZW1wdHM6IG51bWJlciB8IFByb3ZpZGVyPG51bWJlcj4gPSBERUZBVUxUX01BWF9BVFRFTVBUUyk6IFByb3ZpZGVyPG51bWJlcj4gPT4ge1xuICBpZiAodHlwZW9mIG1heEF0dGVtcHRzID09PSBcIm51bWJlclwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUobWF4QXR0ZW1wdHMpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfVxuICByZXR1cm4gbWF4QXR0ZW1wdHM7XG59O1xuXG5leHBvcnQgY29uc3QgRU5WX1JFVFJZX01PREUgPSBcIkFXU19SRVRSWV9NT0RFXCI7XG5leHBvcnQgY29uc3QgQ09ORklHX1JFVFJZX01PREUgPSBcInJldHJ5X21vZGVcIjtcblxuZXhwb3J0IGNvbnN0IE5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUzogTG9hZGVkQ29uZmlnU2VsZWN0b3JzPHN0cmluZz4gPSB7XG4gIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudikgPT4gZW52W0VOVl9SRVRSWV9NT0RFXSxcbiAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4gcHJvZmlsZVtDT05GSUdfUkVUUllfTU9ERV0sXG4gIGRlZmF1bHQ6IERFRkFVTFRfUkVUUllfTU9ERSxcbn07XG4iXX0=","'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n , CRHTLF = /[\\n\\r\\t]/g\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , port = /:\\d+$/\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n * characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d*)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4]\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n extracted.protocol === 'file:' && (\n extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n index = parse === '@'\n ? address.lastIndexOf(parse)\n : address.indexOf(parse);\n\n if (~index) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n\n if (url.auth) {\n index = url.auth.indexOf(':');\n\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password))\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (port.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n case 'username':\n case 'password':\n url[part] = encodeURIComponent(value);\n break;\n\n case 'auth':\n var index = value.indexOf(':');\n\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , host = url.host\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result =\n protocol +\n ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n } else if (url.password) {\n result += ':'+ url.password;\n result += '@';\n } else if (\n url.protocol !== 'file:' &&\n isSpecial(url.protocol) &&\n !host &&\n url.pathname !== '/'\n ) {\n //\n // Add back the empty userinfo, otherwise the original invalid URL\n // might be transformed into a valid one with `url.pathname` as host.\n //\n result += '@';\n }\n\n //\n // Trailing colon is removed from `url.host` when it is parsed. If it still\n // ends with a colon, then add back the trailing colon that was removed. This\n // prevents an invalid URL from being transformed into a valid one.\n //\n if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n host += ':';\n }\n\n result += host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n};\n\nconst isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n if (a) {\n const keys = Object.keys(a); // will return an array of own properties\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [ a[keys[i]] ];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nexports.buildOptions = function(options, defaultOptions, props) {\n let newOptions = {};\n if (!options) {\n return defaultOptions; //if there are not options\n }\n\n for (let i = 0; i < props.length; i++) {\n if (options[props[i]] !== undefined) {\n newOptions[props[i]] = options[props[i]];\n } else {\n newOptions[props[i]] = defaultOptions[props[i]];\n }\n }\n return newOptions;\n};\n\n/**\n * Check if a tag name should be treated as array\n *\n * @param tagName the node tagname\n * @param arrayMode the array mode option\n * @param parentTagName the parent tag name\n * @returns {boolean} true if node should be parsed as array\n */\nexports.isTagNameInArrayMode = function (tagName, arrayMode, parentTagName) {\n if (arrayMode === false) {\n return false;\n } else if (arrayMode instanceof RegExp) {\n return arrayMode.test(tagName);\n } else if (typeof arrayMode === 'function') {\n return !!arrayMode(tagName, parentTagName);\n }\n\n return arrayMode === \"strict\";\n}\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n","Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i Promise;\n [key: string]: any;\n}\n\nexport interface Constants extends NativeConstants {\n /**\n * @deprecated `Constants.deviceId` is deprecated in favor of generating your own ID and storing it.\n * This API will be removed in SDK 44.\n */\n deviceId?: string;\n /**\n * @deprecated `Constants.linkingUrl` has been renamed to `Constants.linkingUri`. Consider using the\n * Linking API directly. `Constants.linkingUrl` will be removed in SDK 44.\n */\n linkingUrl?: string;\n /**\n * @hidden\n * @warning do not use this property. Use `manifest` by default.\n *\n * In certain cases accessing manifest via this property\n * suppresses important warning about missing manifest.\n */\n __unsafeNoWarnManifest?: AppManifest;\n /**\n * @hidden\n * @warning do not use this property. Use `manifest2` by default.\n *\n * In certain cases accessing manifest via this property\n * suppresses important warning about missing manifest.\n */\n __unsafeNoWarnManifest2?: Manifest;\n}\n","import color from 'color';\nimport { black, white, pinkA400 } from './colors';\nimport configureFonts from './fonts';\nimport type { Theme } from '../types';\n\nconst DefaultTheme: Theme = {\n dark: false,\n roundness: 4,\n colors: {\n primary: '#6200ee',\n accent: '#03dac4',\n background: '#f6f6f6',\n surface: white,\n error: '#B00020',\n text: black,\n onSurface: '#000000',\n disabled: color(black).alpha(0.26).rgb().string(),\n placeholder: color(black).alpha(0.54).rgb().string(),\n backdrop: color(black).alpha(0.5).rgb().string(),\n notification: pinkA400,\n },\n fonts: configureFonts(),\n animation: {\n scale: 1.0,\n },\n};\n\nexport default DefaultTheme;\n","import { __assign } from \"tslib\";\nimport { SENSITIVE_STRING } from \"@aws-sdk/smithy-client\";\nexport var AbortIncompleteMultipartUpload;\n(function (AbortIncompleteMultipartUpload) {\n AbortIncompleteMultipartUpload.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AbortIncompleteMultipartUpload || (AbortIncompleteMultipartUpload = {}));\nexport var AbortMultipartUploadOutput;\n(function (AbortMultipartUploadOutput) {\n AbortMultipartUploadOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AbortMultipartUploadOutput || (AbortMultipartUploadOutput = {}));\nexport var AbortMultipartUploadRequest;\n(function (AbortMultipartUploadRequest) {\n AbortMultipartUploadRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AbortMultipartUploadRequest || (AbortMultipartUploadRequest = {}));\nexport var NoSuchUpload;\n(function (NoSuchUpload) {\n NoSuchUpload.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoSuchUpload || (NoSuchUpload = {}));\nexport var AccelerateConfiguration;\n(function (AccelerateConfiguration) {\n AccelerateConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AccelerateConfiguration || (AccelerateConfiguration = {}));\nexport var Grantee;\n(function (Grantee) {\n Grantee.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Grantee || (Grantee = {}));\nexport var Grant;\n(function (Grant) {\n Grant.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Grant || (Grant = {}));\nexport var Owner;\n(function (Owner) {\n Owner.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Owner || (Owner = {}));\nexport var AccessControlPolicy;\n(function (AccessControlPolicy) {\n AccessControlPolicy.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AccessControlPolicy || (AccessControlPolicy = {}));\nexport var AccessControlTranslation;\n(function (AccessControlTranslation) {\n AccessControlTranslation.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AccessControlTranslation || (AccessControlTranslation = {}));\nexport var CompleteMultipartUploadOutput;\n(function (CompleteMultipartUploadOutput) {\n CompleteMultipartUploadOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(CompleteMultipartUploadOutput || (CompleteMultipartUploadOutput = {}));\nexport var CompletedPart;\n(function (CompletedPart) {\n CompletedPart.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CompletedPart || (CompletedPart = {}));\nexport var CompletedMultipartUpload;\n(function (CompletedMultipartUpload) {\n CompletedMultipartUpload.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CompletedMultipartUpload || (CompletedMultipartUpload = {}));\nexport var CompleteMultipartUploadRequest;\n(function (CompleteMultipartUploadRequest) {\n CompleteMultipartUploadRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CompleteMultipartUploadRequest || (CompleteMultipartUploadRequest = {}));\nexport var CopyObjectResult;\n(function (CopyObjectResult) {\n CopyObjectResult.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CopyObjectResult || (CopyObjectResult = {}));\nexport var CopyObjectOutput;\n(function (CopyObjectOutput) {\n CopyObjectOutput.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(CopyObjectOutput || (CopyObjectOutput = {}));\nexport var CopyObjectRequest;\n(function (CopyObjectRequest) {\n CopyObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING })), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING })), (obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: SENSITIVE_STRING }))); };\n})(CopyObjectRequest || (CopyObjectRequest = {}));\nexport var ObjectNotInActiveTierError;\n(function (ObjectNotInActiveTierError) {\n ObjectNotInActiveTierError.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectNotInActiveTierError || (ObjectNotInActiveTierError = {}));\nexport var BucketAlreadyExists;\n(function (BucketAlreadyExists) {\n BucketAlreadyExists.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(BucketAlreadyExists || (BucketAlreadyExists = {}));\nexport var BucketAlreadyOwnedByYou;\n(function (BucketAlreadyOwnedByYou) {\n BucketAlreadyOwnedByYou.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(BucketAlreadyOwnedByYou || (BucketAlreadyOwnedByYou = {}));\nexport var CreateBucketOutput;\n(function (CreateBucketOutput) {\n CreateBucketOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateBucketOutput || (CreateBucketOutput = {}));\nexport var CreateBucketConfiguration;\n(function (CreateBucketConfiguration) {\n CreateBucketConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateBucketConfiguration || (CreateBucketConfiguration = {}));\nexport var CreateBucketRequest;\n(function (CreateBucketRequest) {\n CreateBucketRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateBucketRequest || (CreateBucketRequest = {}));\nexport var CreateMultipartUploadOutput;\n(function (CreateMultipartUploadOutput) {\n CreateMultipartUploadOutput.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(CreateMultipartUploadOutput || (CreateMultipartUploadOutput = {}));\nexport var CreateMultipartUploadRequest;\n(function (CreateMultipartUploadRequest) {\n CreateMultipartUploadRequest.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING })), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(CreateMultipartUploadRequest || (CreateMultipartUploadRequest = {}));\nexport var DeleteBucketRequest;\n(function (DeleteBucketRequest) {\n DeleteBucketRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketRequest || (DeleteBucketRequest = {}));\nexport var DeleteBucketAnalyticsConfigurationRequest;\n(function (DeleteBucketAnalyticsConfigurationRequest) {\n DeleteBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketAnalyticsConfigurationRequest || (DeleteBucketAnalyticsConfigurationRequest = {}));\nexport var DeleteBucketCorsRequest;\n(function (DeleteBucketCorsRequest) {\n DeleteBucketCorsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketCorsRequest || (DeleteBucketCorsRequest = {}));\nexport var DeleteBucketEncryptionRequest;\n(function (DeleteBucketEncryptionRequest) {\n DeleteBucketEncryptionRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketEncryptionRequest || (DeleteBucketEncryptionRequest = {}));\nexport var DeleteBucketIntelligentTieringConfigurationRequest;\n(function (DeleteBucketIntelligentTieringConfigurationRequest) {\n DeleteBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketIntelligentTieringConfigurationRequest || (DeleteBucketIntelligentTieringConfigurationRequest = {}));\nexport var DeleteBucketInventoryConfigurationRequest;\n(function (DeleteBucketInventoryConfigurationRequest) {\n DeleteBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketInventoryConfigurationRequest || (DeleteBucketInventoryConfigurationRequest = {}));\nexport var DeleteBucketLifecycleRequest;\n(function (DeleteBucketLifecycleRequest) {\n DeleteBucketLifecycleRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketLifecycleRequest || (DeleteBucketLifecycleRequest = {}));\nexport var DeleteBucketMetricsConfigurationRequest;\n(function (DeleteBucketMetricsConfigurationRequest) {\n DeleteBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketMetricsConfigurationRequest || (DeleteBucketMetricsConfigurationRequest = {}));\nexport var DeleteBucketOwnershipControlsRequest;\n(function (DeleteBucketOwnershipControlsRequest) {\n DeleteBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketOwnershipControlsRequest || (DeleteBucketOwnershipControlsRequest = {}));\nexport var DeleteBucketPolicyRequest;\n(function (DeleteBucketPolicyRequest) {\n DeleteBucketPolicyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketPolicyRequest || (DeleteBucketPolicyRequest = {}));\nexport var DeleteBucketReplicationRequest;\n(function (DeleteBucketReplicationRequest) {\n DeleteBucketReplicationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketReplicationRequest || (DeleteBucketReplicationRequest = {}));\nexport var DeleteBucketTaggingRequest;\n(function (DeleteBucketTaggingRequest) {\n DeleteBucketTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketTaggingRequest || (DeleteBucketTaggingRequest = {}));\nexport var DeleteBucketWebsiteRequest;\n(function (DeleteBucketWebsiteRequest) {\n DeleteBucketWebsiteRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketWebsiteRequest || (DeleteBucketWebsiteRequest = {}));\nexport var DeleteObjectOutput;\n(function (DeleteObjectOutput) {\n DeleteObjectOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectOutput || (DeleteObjectOutput = {}));\nexport var DeleteObjectRequest;\n(function (DeleteObjectRequest) {\n DeleteObjectRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectRequest || (DeleteObjectRequest = {}));\nexport var DeletedObject;\n(function (DeletedObject) {\n DeletedObject.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeletedObject || (DeletedObject = {}));\nexport var _Error;\n(function (_Error) {\n _Error.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(_Error || (_Error = {}));\nexport var DeleteObjectsOutput;\n(function (DeleteObjectsOutput) {\n DeleteObjectsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectsOutput || (DeleteObjectsOutput = {}));\nexport var ObjectIdentifier;\n(function (ObjectIdentifier) {\n ObjectIdentifier.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectIdentifier || (ObjectIdentifier = {}));\nexport var Delete;\n(function (Delete) {\n Delete.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Delete || (Delete = {}));\nexport var DeleteObjectsRequest;\n(function (DeleteObjectsRequest) {\n DeleteObjectsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectsRequest || (DeleteObjectsRequest = {}));\nexport var DeleteObjectTaggingOutput;\n(function (DeleteObjectTaggingOutput) {\n DeleteObjectTaggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectTaggingOutput || (DeleteObjectTaggingOutput = {}));\nexport var DeleteObjectTaggingRequest;\n(function (DeleteObjectTaggingRequest) {\n DeleteObjectTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectTaggingRequest || (DeleteObjectTaggingRequest = {}));\nexport var DeletePublicAccessBlockRequest;\n(function (DeletePublicAccessBlockRequest) {\n DeletePublicAccessBlockRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeletePublicAccessBlockRequest || (DeletePublicAccessBlockRequest = {}));\nexport var GetBucketAccelerateConfigurationOutput;\n(function (GetBucketAccelerateConfigurationOutput) {\n GetBucketAccelerateConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAccelerateConfigurationOutput || (GetBucketAccelerateConfigurationOutput = {}));\nexport var GetBucketAccelerateConfigurationRequest;\n(function (GetBucketAccelerateConfigurationRequest) {\n GetBucketAccelerateConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAccelerateConfigurationRequest || (GetBucketAccelerateConfigurationRequest = {}));\nexport var GetBucketAclOutput;\n(function (GetBucketAclOutput) {\n GetBucketAclOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAclOutput || (GetBucketAclOutput = {}));\nexport var GetBucketAclRequest;\n(function (GetBucketAclRequest) {\n GetBucketAclRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAclRequest || (GetBucketAclRequest = {}));\nexport var Tag;\n(function (Tag) {\n Tag.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Tag || (Tag = {}));\nexport var AnalyticsAndOperator;\n(function (AnalyticsAndOperator) {\n AnalyticsAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AnalyticsAndOperator || (AnalyticsAndOperator = {}));\nexport var AnalyticsFilter;\n(function (AnalyticsFilter) {\n AnalyticsFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n AnalyticsFilter.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: Tag.filterSensitiveLog(obj.Tag) };\n if (obj.And !== undefined)\n return { And: AnalyticsAndOperator.filterSensitiveLog(obj.And) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(AnalyticsFilter || (AnalyticsFilter = {}));\nexport var AnalyticsS3BucketDestination;\n(function (AnalyticsS3BucketDestination) {\n AnalyticsS3BucketDestination.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AnalyticsS3BucketDestination || (AnalyticsS3BucketDestination = {}));\nexport var AnalyticsExportDestination;\n(function (AnalyticsExportDestination) {\n AnalyticsExportDestination.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AnalyticsExportDestination || (AnalyticsExportDestination = {}));\nexport var StorageClassAnalysisDataExport;\n(function (StorageClassAnalysisDataExport) {\n StorageClassAnalysisDataExport.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StorageClassAnalysisDataExport || (StorageClassAnalysisDataExport = {}));\nexport var StorageClassAnalysis;\n(function (StorageClassAnalysis) {\n StorageClassAnalysis.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StorageClassAnalysis || (StorageClassAnalysis = {}));\nexport var AnalyticsConfiguration;\n(function (AnalyticsConfiguration) {\n AnalyticsConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Filter && { Filter: AnalyticsFilter.filterSensitiveLog(obj.Filter) }))); };\n})(AnalyticsConfiguration || (AnalyticsConfiguration = {}));\nexport var GetBucketAnalyticsConfigurationOutput;\n(function (GetBucketAnalyticsConfigurationOutput) {\n GetBucketAnalyticsConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.AnalyticsConfiguration && {\n AnalyticsConfiguration: AnalyticsConfiguration.filterSensitiveLog(obj.AnalyticsConfiguration),\n }))); };\n})(GetBucketAnalyticsConfigurationOutput || (GetBucketAnalyticsConfigurationOutput = {}));\nexport var GetBucketAnalyticsConfigurationRequest;\n(function (GetBucketAnalyticsConfigurationRequest) {\n GetBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAnalyticsConfigurationRequest || (GetBucketAnalyticsConfigurationRequest = {}));\nexport var CORSRule;\n(function (CORSRule) {\n CORSRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CORSRule || (CORSRule = {}));\nexport var GetBucketCorsOutput;\n(function (GetBucketCorsOutput) {\n GetBucketCorsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketCorsOutput || (GetBucketCorsOutput = {}));\nexport var GetBucketCorsRequest;\n(function (GetBucketCorsRequest) {\n GetBucketCorsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketCorsRequest || (GetBucketCorsRequest = {}));\nexport var ServerSideEncryptionByDefault;\n(function (ServerSideEncryptionByDefault) {\n ServerSideEncryptionByDefault.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.KMSMasterKeyID && { KMSMasterKeyID: SENSITIVE_STRING }))); };\n})(ServerSideEncryptionByDefault || (ServerSideEncryptionByDefault = {}));\nexport var ServerSideEncryptionRule;\n(function (ServerSideEncryptionRule) {\n ServerSideEncryptionRule.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ApplyServerSideEncryptionByDefault && {\n ApplyServerSideEncryptionByDefault: ServerSideEncryptionByDefault.filterSensitiveLog(obj.ApplyServerSideEncryptionByDefault),\n }))); };\n})(ServerSideEncryptionRule || (ServerSideEncryptionRule = {}));\nexport var ServerSideEncryptionConfiguration;\n(function (ServerSideEncryptionConfiguration) {\n ServerSideEncryptionConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Rules && { Rules: obj.Rules.map(function (item) { return ServerSideEncryptionRule.filterSensitiveLog(item); }) }))); };\n})(ServerSideEncryptionConfiguration || (ServerSideEncryptionConfiguration = {}));\nexport var GetBucketEncryptionOutput;\n(function (GetBucketEncryptionOutput) {\n GetBucketEncryptionOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration.filterSensitiveLog(obj.ServerSideEncryptionConfiguration),\n }))); };\n})(GetBucketEncryptionOutput || (GetBucketEncryptionOutput = {}));\nexport var GetBucketEncryptionRequest;\n(function (GetBucketEncryptionRequest) {\n GetBucketEncryptionRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketEncryptionRequest || (GetBucketEncryptionRequest = {}));\nexport var IntelligentTieringAndOperator;\n(function (IntelligentTieringAndOperator) {\n IntelligentTieringAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IntelligentTieringAndOperator || (IntelligentTieringAndOperator = {}));\nexport var IntelligentTieringFilter;\n(function (IntelligentTieringFilter) {\n IntelligentTieringFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IntelligentTieringFilter || (IntelligentTieringFilter = {}));\nexport var Tiering;\n(function (Tiering) {\n Tiering.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Tiering || (Tiering = {}));\nexport var IntelligentTieringConfiguration;\n(function (IntelligentTieringConfiguration) {\n IntelligentTieringConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IntelligentTieringConfiguration || (IntelligentTieringConfiguration = {}));\nexport var GetBucketIntelligentTieringConfigurationOutput;\n(function (GetBucketIntelligentTieringConfigurationOutput) {\n GetBucketIntelligentTieringConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketIntelligentTieringConfigurationOutput || (GetBucketIntelligentTieringConfigurationOutput = {}));\nexport var GetBucketIntelligentTieringConfigurationRequest;\n(function (GetBucketIntelligentTieringConfigurationRequest) {\n GetBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketIntelligentTieringConfigurationRequest || (GetBucketIntelligentTieringConfigurationRequest = {}));\nexport var SSEKMS;\n(function (SSEKMS) {\n SSEKMS.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.KeyId && { KeyId: SENSITIVE_STRING }))); };\n})(SSEKMS || (SSEKMS = {}));\nexport var SSES3;\n(function (SSES3) {\n SSES3.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SSES3 || (SSES3 = {}));\nexport var InventoryEncryption;\n(function (InventoryEncryption) {\n InventoryEncryption.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMS && { SSEKMS: SSEKMS.filterSensitiveLog(obj.SSEKMS) }))); };\n})(InventoryEncryption || (InventoryEncryption = {}));\nexport var InventoryS3BucketDestination;\n(function (InventoryS3BucketDestination) {\n InventoryS3BucketDestination.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Encryption && { Encryption: InventoryEncryption.filterSensitiveLog(obj.Encryption) }))); };\n})(InventoryS3BucketDestination || (InventoryS3BucketDestination = {}));\nexport var InventoryDestination;\n(function (InventoryDestination) {\n InventoryDestination.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.S3BucketDestination && {\n S3BucketDestination: InventoryS3BucketDestination.filterSensitiveLog(obj.S3BucketDestination),\n }))); };\n})(InventoryDestination || (InventoryDestination = {}));\nexport var InventoryFilter;\n(function (InventoryFilter) {\n InventoryFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InventoryFilter || (InventoryFilter = {}));\nexport var InventorySchedule;\n(function (InventorySchedule) {\n InventorySchedule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InventorySchedule || (InventorySchedule = {}));\nexport var InventoryConfiguration;\n(function (InventoryConfiguration) {\n InventoryConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Destination && { Destination: InventoryDestination.filterSensitiveLog(obj.Destination) }))); };\n})(InventoryConfiguration || (InventoryConfiguration = {}));\nexport var GetBucketInventoryConfigurationOutput;\n(function (GetBucketInventoryConfigurationOutput) {\n GetBucketInventoryConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfiguration.filterSensitiveLog(obj.InventoryConfiguration),\n }))); };\n})(GetBucketInventoryConfigurationOutput || (GetBucketInventoryConfigurationOutput = {}));\nexport var GetBucketInventoryConfigurationRequest;\n(function (GetBucketInventoryConfigurationRequest) {\n GetBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketInventoryConfigurationRequest || (GetBucketInventoryConfigurationRequest = {}));\nexport var LifecycleExpiration;\n(function (LifecycleExpiration) {\n LifecycleExpiration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LifecycleExpiration || (LifecycleExpiration = {}));\nexport var LifecycleRuleAndOperator;\n(function (LifecycleRuleAndOperator) {\n LifecycleRuleAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LifecycleRuleAndOperator || (LifecycleRuleAndOperator = {}));\nexport var LifecycleRuleFilter;\n(function (LifecycleRuleFilter) {\n LifecycleRuleFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n LifecycleRuleFilter.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: Tag.filterSensitiveLog(obj.Tag) };\n if (obj.And !== undefined)\n return { And: LifecycleRuleAndOperator.filterSensitiveLog(obj.And) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(LifecycleRuleFilter || (LifecycleRuleFilter = {}));\nexport var NoncurrentVersionExpiration;\n(function (NoncurrentVersionExpiration) {\n NoncurrentVersionExpiration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoncurrentVersionExpiration || (NoncurrentVersionExpiration = {}));\nexport var NoncurrentVersionTransition;\n(function (NoncurrentVersionTransition) {\n NoncurrentVersionTransition.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoncurrentVersionTransition || (NoncurrentVersionTransition = {}));\nexport var Transition;\n(function (Transition) {\n Transition.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Transition || (Transition = {}));\nexport var LifecycleRule;\n(function (LifecycleRule) {\n LifecycleRule.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Filter && { Filter: LifecycleRuleFilter.filterSensitiveLog(obj.Filter) }))); };\n})(LifecycleRule || (LifecycleRule = {}));\nexport var GetBucketLifecycleConfigurationOutput;\n(function (GetBucketLifecycleConfigurationOutput) {\n GetBucketLifecycleConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Rules && { Rules: obj.Rules.map(function (item) { return LifecycleRule.filterSensitiveLog(item); }) }))); };\n})(GetBucketLifecycleConfigurationOutput || (GetBucketLifecycleConfigurationOutput = {}));\nexport var GetBucketLifecycleConfigurationRequest;\n(function (GetBucketLifecycleConfigurationRequest) {\n GetBucketLifecycleConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLifecycleConfigurationRequest || (GetBucketLifecycleConfigurationRequest = {}));\nexport var GetBucketLocationOutput;\n(function (GetBucketLocationOutput) {\n GetBucketLocationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLocationOutput || (GetBucketLocationOutput = {}));\nexport var GetBucketLocationRequest;\n(function (GetBucketLocationRequest) {\n GetBucketLocationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLocationRequest || (GetBucketLocationRequest = {}));\nexport var TargetGrant;\n(function (TargetGrant) {\n TargetGrant.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TargetGrant || (TargetGrant = {}));\nexport var LoggingEnabled;\n(function (LoggingEnabled) {\n LoggingEnabled.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LoggingEnabled || (LoggingEnabled = {}));\nexport var GetBucketLoggingOutput;\n(function (GetBucketLoggingOutput) {\n GetBucketLoggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLoggingOutput || (GetBucketLoggingOutput = {}));\nexport var GetBucketLoggingRequest;\n(function (GetBucketLoggingRequest) {\n GetBucketLoggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLoggingRequest || (GetBucketLoggingRequest = {}));\nexport var MetricsAndOperator;\n(function (MetricsAndOperator) {\n MetricsAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MetricsAndOperator || (MetricsAndOperator = {}));\nexport var MetricsFilter;\n(function (MetricsFilter) {\n MetricsFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n MetricsFilter.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: Tag.filterSensitiveLog(obj.Tag) };\n if (obj.And !== undefined)\n return { And: MetricsAndOperator.filterSensitiveLog(obj.And) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(MetricsFilter || (MetricsFilter = {}));\nexport var MetricsConfiguration;\n(function (MetricsConfiguration) {\n MetricsConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Filter && { Filter: MetricsFilter.filterSensitiveLog(obj.Filter) }))); };\n})(MetricsConfiguration || (MetricsConfiguration = {}));\nexport var GetBucketMetricsConfigurationOutput;\n(function (GetBucketMetricsConfigurationOutput) {\n GetBucketMetricsConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.MetricsConfiguration && {\n MetricsConfiguration: MetricsConfiguration.filterSensitiveLog(obj.MetricsConfiguration),\n }))); };\n})(GetBucketMetricsConfigurationOutput || (GetBucketMetricsConfigurationOutput = {}));\nexport var GetBucketMetricsConfigurationRequest;\n(function (GetBucketMetricsConfigurationRequest) {\n GetBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketMetricsConfigurationRequest || (GetBucketMetricsConfigurationRequest = {}));\nexport var GetBucketNotificationConfigurationRequest;\n(function (GetBucketNotificationConfigurationRequest) {\n GetBucketNotificationConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketNotificationConfigurationRequest || (GetBucketNotificationConfigurationRequest = {}));\nexport var FilterRule;\n(function (FilterRule) {\n FilterRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(FilterRule || (FilterRule = {}));\nexport var S3KeyFilter;\n(function (S3KeyFilter) {\n S3KeyFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(S3KeyFilter || (S3KeyFilter = {}));\nexport var NotificationConfigurationFilter;\n(function (NotificationConfigurationFilter) {\n NotificationConfigurationFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NotificationConfigurationFilter || (NotificationConfigurationFilter = {}));\nexport var LambdaFunctionConfiguration;\n(function (LambdaFunctionConfiguration) {\n LambdaFunctionConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LambdaFunctionConfiguration || (LambdaFunctionConfiguration = {}));\nexport var QueueConfiguration;\n(function (QueueConfiguration) {\n QueueConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(QueueConfiguration || (QueueConfiguration = {}));\nexport var TopicConfiguration;\n(function (TopicConfiguration) {\n TopicConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TopicConfiguration || (TopicConfiguration = {}));\nexport var NotificationConfiguration;\n(function (NotificationConfiguration) {\n NotificationConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NotificationConfiguration || (NotificationConfiguration = {}));\nexport var OwnershipControlsRule;\n(function (OwnershipControlsRule) {\n OwnershipControlsRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(OwnershipControlsRule || (OwnershipControlsRule = {}));\nexport var OwnershipControls;\n(function (OwnershipControls) {\n OwnershipControls.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(OwnershipControls || (OwnershipControls = {}));\nexport var GetBucketOwnershipControlsOutput;\n(function (GetBucketOwnershipControlsOutput) {\n GetBucketOwnershipControlsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketOwnershipControlsOutput || (GetBucketOwnershipControlsOutput = {}));\nexport var GetBucketOwnershipControlsRequest;\n(function (GetBucketOwnershipControlsRequest) {\n GetBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketOwnershipControlsRequest || (GetBucketOwnershipControlsRequest = {}));\nexport var GetBucketPolicyOutput;\n(function (GetBucketPolicyOutput) {\n GetBucketPolicyOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketPolicyOutput || (GetBucketPolicyOutput = {}));\nexport var GetBucketPolicyRequest;\n(function (GetBucketPolicyRequest) {\n GetBucketPolicyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketPolicyRequest || (GetBucketPolicyRequest = {}));\nexport var PolicyStatus;\n(function (PolicyStatus) {\n PolicyStatus.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PolicyStatus || (PolicyStatus = {}));\nexport var GetBucketPolicyStatusOutput;\n(function (GetBucketPolicyStatusOutput) {\n GetBucketPolicyStatusOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketPolicyStatusOutput || (GetBucketPolicyStatusOutput = {}));\nexport var GetBucketPolicyStatusRequest;\n(function (GetBucketPolicyStatusRequest) {\n GetBucketPolicyStatusRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketPolicyStatusRequest || (GetBucketPolicyStatusRequest = {}));\nexport var DeleteMarkerReplication;\n(function (DeleteMarkerReplication) {\n DeleteMarkerReplication.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteMarkerReplication || (DeleteMarkerReplication = {}));\nexport var EncryptionConfiguration;\n(function (EncryptionConfiguration) {\n EncryptionConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(EncryptionConfiguration || (EncryptionConfiguration = {}));\nexport var ReplicationTimeValue;\n(function (ReplicationTimeValue) {\n ReplicationTimeValue.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ReplicationTimeValue || (ReplicationTimeValue = {}));\nexport var Metrics;\n(function (Metrics) {\n Metrics.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Metrics || (Metrics = {}));\nexport var ReplicationTime;\n(function (ReplicationTime) {\n ReplicationTime.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ReplicationTime || (ReplicationTime = {}));\nexport var Destination;\n(function (Destination) {\n Destination.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Destination || (Destination = {}));\nexport var ExistingObjectReplication;\n(function (ExistingObjectReplication) {\n ExistingObjectReplication.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExistingObjectReplication || (ExistingObjectReplication = {}));\nexport var ReplicationRuleAndOperator;\n(function (ReplicationRuleAndOperator) {\n ReplicationRuleAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ReplicationRuleAndOperator || (ReplicationRuleAndOperator = {}));\nexport var ReplicationRuleFilter;\n(function (ReplicationRuleFilter) {\n ReplicationRuleFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n ReplicationRuleFilter.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: Tag.filterSensitiveLog(obj.Tag) };\n if (obj.And !== undefined)\n return { And: ReplicationRuleAndOperator.filterSensitiveLog(obj.And) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(ReplicationRuleFilter || (ReplicationRuleFilter = {}));\nexport var ReplicaModifications;\n(function (ReplicaModifications) {\n ReplicaModifications.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ReplicaModifications || (ReplicaModifications = {}));\nexport var SseKmsEncryptedObjects;\n(function (SseKmsEncryptedObjects) {\n SseKmsEncryptedObjects.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SseKmsEncryptedObjects || (SseKmsEncryptedObjects = {}));\nexport var SourceSelectionCriteria;\n(function (SourceSelectionCriteria) {\n SourceSelectionCriteria.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SourceSelectionCriteria || (SourceSelectionCriteria = {}));\nexport var ReplicationRule;\n(function (ReplicationRule) {\n ReplicationRule.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Filter && { Filter: ReplicationRuleFilter.filterSensitiveLog(obj.Filter) }))); };\n})(ReplicationRule || (ReplicationRule = {}));\nexport var ReplicationConfiguration;\n(function (ReplicationConfiguration) {\n ReplicationConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Rules && { Rules: obj.Rules.map(function (item) { return ReplicationRule.filterSensitiveLog(item); }) }))); };\n})(ReplicationConfiguration || (ReplicationConfiguration = {}));\nexport var GetBucketReplicationOutput;\n(function (GetBucketReplicationOutput) {\n GetBucketReplicationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ReplicationConfiguration && {\n ReplicationConfiguration: ReplicationConfiguration.filterSensitiveLog(obj.ReplicationConfiguration),\n }))); };\n})(GetBucketReplicationOutput || (GetBucketReplicationOutput = {}));\nexport var GetBucketReplicationRequest;\n(function (GetBucketReplicationRequest) {\n GetBucketReplicationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketReplicationRequest || (GetBucketReplicationRequest = {}));\nexport var GetBucketRequestPaymentOutput;\n(function (GetBucketRequestPaymentOutput) {\n GetBucketRequestPaymentOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketRequestPaymentOutput || (GetBucketRequestPaymentOutput = {}));\nexport var GetBucketRequestPaymentRequest;\n(function (GetBucketRequestPaymentRequest) {\n GetBucketRequestPaymentRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketRequestPaymentRequest || (GetBucketRequestPaymentRequest = {}));\nexport var GetBucketTaggingOutput;\n(function (GetBucketTaggingOutput) {\n GetBucketTaggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketTaggingOutput || (GetBucketTaggingOutput = {}));\nexport var GetBucketTaggingRequest;\n(function (GetBucketTaggingRequest) {\n GetBucketTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketTaggingRequest || (GetBucketTaggingRequest = {}));\nexport var GetBucketVersioningOutput;\n(function (GetBucketVersioningOutput) {\n GetBucketVersioningOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketVersioningOutput || (GetBucketVersioningOutput = {}));\nexport var GetBucketVersioningRequest;\n(function (GetBucketVersioningRequest) {\n GetBucketVersioningRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketVersioningRequest || (GetBucketVersioningRequest = {}));\nexport var ErrorDocument;\n(function (ErrorDocument) {\n ErrorDocument.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ErrorDocument || (ErrorDocument = {}));\nexport var IndexDocument;\n(function (IndexDocument) {\n IndexDocument.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IndexDocument || (IndexDocument = {}));\nexport var RedirectAllRequestsTo;\n(function (RedirectAllRequestsTo) {\n RedirectAllRequestsTo.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RedirectAllRequestsTo || (RedirectAllRequestsTo = {}));\nexport var Condition;\n(function (Condition) {\n Condition.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Condition || (Condition = {}));\nexport var Redirect;\n(function (Redirect) {\n Redirect.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Redirect || (Redirect = {}));\nexport var RoutingRule;\n(function (RoutingRule) {\n RoutingRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RoutingRule || (RoutingRule = {}));\nexport var GetBucketWebsiteOutput;\n(function (GetBucketWebsiteOutput) {\n GetBucketWebsiteOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketWebsiteOutput || (GetBucketWebsiteOutput = {}));\nexport var GetBucketWebsiteRequest;\n(function (GetBucketWebsiteRequest) {\n GetBucketWebsiteRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketWebsiteRequest || (GetBucketWebsiteRequest = {}));\nexport var GetObjectOutput;\n(function (GetObjectOutput) {\n GetObjectOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(GetObjectOutput || (GetObjectOutput = {}));\nexport var GetObjectRequest;\n(function (GetObjectRequest) {\n GetObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }))); };\n})(GetObjectRequest || (GetObjectRequest = {}));\nexport var InvalidObjectState;\n(function (InvalidObjectState) {\n InvalidObjectState.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidObjectState || (InvalidObjectState = {}));\nexport var NoSuchKey;\n(function (NoSuchKey) {\n NoSuchKey.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoSuchKey || (NoSuchKey = {}));\nexport var GetObjectAclOutput;\n(function (GetObjectAclOutput) {\n GetObjectAclOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectAclOutput || (GetObjectAclOutput = {}));\nexport var GetObjectAclRequest;\n(function (GetObjectAclRequest) {\n GetObjectAclRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectAclRequest || (GetObjectAclRequest = {}));\nexport var ObjectLockLegalHold;\n(function (ObjectLockLegalHold) {\n ObjectLockLegalHold.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectLockLegalHold || (ObjectLockLegalHold = {}));\nexport var GetObjectLegalHoldOutput;\n(function (GetObjectLegalHoldOutput) {\n GetObjectLegalHoldOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectLegalHoldOutput || (GetObjectLegalHoldOutput = {}));\nexport var GetObjectLegalHoldRequest;\n(function (GetObjectLegalHoldRequest) {\n GetObjectLegalHoldRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectLegalHoldRequest || (GetObjectLegalHoldRequest = {}));\nexport var DefaultRetention;\n(function (DefaultRetention) {\n DefaultRetention.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DefaultRetention || (DefaultRetention = {}));\nexport var ObjectLockRule;\n(function (ObjectLockRule) {\n ObjectLockRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectLockRule || (ObjectLockRule = {}));\nexport var ObjectLockConfiguration;\n(function (ObjectLockConfiguration) {\n ObjectLockConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectLockConfiguration || (ObjectLockConfiguration = {}));\nexport var GetObjectLockConfigurationOutput;\n(function (GetObjectLockConfigurationOutput) {\n GetObjectLockConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectLockConfigurationOutput || (GetObjectLockConfigurationOutput = {}));\nexport var GetObjectLockConfigurationRequest;\n(function (GetObjectLockConfigurationRequest) {\n GetObjectLockConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectLockConfigurationRequest || (GetObjectLockConfigurationRequest = {}));\nexport var ObjectLockRetention;\n(function (ObjectLockRetention) {\n ObjectLockRetention.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectLockRetention || (ObjectLockRetention = {}));\nexport var GetObjectRetentionOutput;\n(function (GetObjectRetentionOutput) {\n GetObjectRetentionOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectRetentionOutput || (GetObjectRetentionOutput = {}));\nexport var GetObjectRetentionRequest;\n(function (GetObjectRetentionRequest) {\n GetObjectRetentionRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectRetentionRequest || (GetObjectRetentionRequest = {}));\nexport var GetObjectTaggingOutput;\n(function (GetObjectTaggingOutput) {\n GetObjectTaggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectTaggingOutput || (GetObjectTaggingOutput = {}));\nexport var GetObjectTaggingRequest;\n(function (GetObjectTaggingRequest) {\n GetObjectTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectTaggingRequest || (GetObjectTaggingRequest = {}));\nexport var GetObjectTorrentOutput;\n(function (GetObjectTorrentOutput) {\n GetObjectTorrentOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectTorrentOutput || (GetObjectTorrentOutput = {}));\nexport var GetObjectTorrentRequest;\n(function (GetObjectTorrentRequest) {\n GetObjectTorrentRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectTorrentRequest || (GetObjectTorrentRequest = {}));\nexport var PublicAccessBlockConfiguration;\n(function (PublicAccessBlockConfiguration) {\n PublicAccessBlockConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PublicAccessBlockConfiguration || (PublicAccessBlockConfiguration = {}));\nexport var GetPublicAccessBlockOutput;\n(function (GetPublicAccessBlockOutput) {\n GetPublicAccessBlockOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetPublicAccessBlockOutput || (GetPublicAccessBlockOutput = {}));\nexport var GetPublicAccessBlockRequest;\n(function (GetPublicAccessBlockRequest) {\n GetPublicAccessBlockRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetPublicAccessBlockRequest || (GetPublicAccessBlockRequest = {}));\nexport var HeadBucketRequest;\n(function (HeadBucketRequest) {\n HeadBucketRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(HeadBucketRequest || (HeadBucketRequest = {}));\nexport var NoSuchBucket;\n(function (NoSuchBucket) {\n NoSuchBucket.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoSuchBucket || (NoSuchBucket = {}));\nexport var HeadObjectOutput;\n(function (HeadObjectOutput) {\n HeadObjectOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(HeadObjectOutput || (HeadObjectOutput = {}));\nexport var HeadObjectRequest;\n(function (HeadObjectRequest) {\n HeadObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }))); };\n})(HeadObjectRequest || (HeadObjectRequest = {}));\nexport var ListBucketAnalyticsConfigurationsOutput;\n(function (ListBucketAnalyticsConfigurationsOutput) {\n ListBucketAnalyticsConfigurationsOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.AnalyticsConfigurationList && {\n AnalyticsConfigurationList: obj.AnalyticsConfigurationList.map(function (item) {\n return AnalyticsConfiguration.filterSensitiveLog(item);\n }),\n }))); };\n})(ListBucketAnalyticsConfigurationsOutput || (ListBucketAnalyticsConfigurationsOutput = {}));\nexport var ListBucketAnalyticsConfigurationsRequest;\n(function (ListBucketAnalyticsConfigurationsRequest) {\n ListBucketAnalyticsConfigurationsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketAnalyticsConfigurationsRequest || (ListBucketAnalyticsConfigurationsRequest = {}));\nexport var ListBucketIntelligentTieringConfigurationsOutput;\n(function (ListBucketIntelligentTieringConfigurationsOutput) {\n ListBucketIntelligentTieringConfigurationsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketIntelligentTieringConfigurationsOutput || (ListBucketIntelligentTieringConfigurationsOutput = {}));\nexport var ListBucketIntelligentTieringConfigurationsRequest;\n(function (ListBucketIntelligentTieringConfigurationsRequest) {\n ListBucketIntelligentTieringConfigurationsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketIntelligentTieringConfigurationsRequest || (ListBucketIntelligentTieringConfigurationsRequest = {}));\nexport var ListBucketInventoryConfigurationsOutput;\n(function (ListBucketInventoryConfigurationsOutput) {\n ListBucketInventoryConfigurationsOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.InventoryConfigurationList && {\n InventoryConfigurationList: obj.InventoryConfigurationList.map(function (item) {\n return InventoryConfiguration.filterSensitiveLog(item);\n }),\n }))); };\n})(ListBucketInventoryConfigurationsOutput || (ListBucketInventoryConfigurationsOutput = {}));\nexport var ListBucketInventoryConfigurationsRequest;\n(function (ListBucketInventoryConfigurationsRequest) {\n ListBucketInventoryConfigurationsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketInventoryConfigurationsRequest || (ListBucketInventoryConfigurationsRequest = {}));\nexport var ListBucketMetricsConfigurationsOutput;\n(function (ListBucketMetricsConfigurationsOutput) {\n ListBucketMetricsConfigurationsOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.MetricsConfigurationList && {\n MetricsConfigurationList: obj.MetricsConfigurationList.map(function (item) {\n return MetricsConfiguration.filterSensitiveLog(item);\n }),\n }))); };\n})(ListBucketMetricsConfigurationsOutput || (ListBucketMetricsConfigurationsOutput = {}));\nexport var ListBucketMetricsConfigurationsRequest;\n(function (ListBucketMetricsConfigurationsRequest) {\n ListBucketMetricsConfigurationsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketMetricsConfigurationsRequest || (ListBucketMetricsConfigurationsRequest = {}));\nexport var Bucket;\n(function (Bucket) {\n Bucket.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Bucket || (Bucket = {}));\nexport var ListBucketsOutput;\n(function (ListBucketsOutput) {\n ListBucketsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketsOutput || (ListBucketsOutput = {}));\nexport var CommonPrefix;\n(function (CommonPrefix) {\n CommonPrefix.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CommonPrefix || (CommonPrefix = {}));\nexport var Initiator;\n(function (Initiator) {\n Initiator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Initiator || (Initiator = {}));\nexport var MultipartUpload;\n(function (MultipartUpload) {\n MultipartUpload.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MultipartUpload || (MultipartUpload = {}));\nexport var ListMultipartUploadsOutput;\n(function (ListMultipartUploadsOutput) {\n ListMultipartUploadsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListMultipartUploadsOutput || (ListMultipartUploadsOutput = {}));\nexport var ListMultipartUploadsRequest;\n(function (ListMultipartUploadsRequest) {\n ListMultipartUploadsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListMultipartUploadsRequest || (ListMultipartUploadsRequest = {}));\nexport var _Object;\n(function (_Object) {\n _Object.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(_Object || (_Object = {}));\nexport var ListObjectsOutput;\n(function (ListObjectsOutput) {\n ListObjectsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectsOutput || (ListObjectsOutput = {}));\nexport var ListObjectsRequest;\n(function (ListObjectsRequest) {\n ListObjectsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectsRequest || (ListObjectsRequest = {}));\nexport var ListObjectsV2Output;\n(function (ListObjectsV2Output) {\n ListObjectsV2Output.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectsV2Output || (ListObjectsV2Output = {}));\nexport var ListObjectsV2Request;\n(function (ListObjectsV2Request) {\n ListObjectsV2Request.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectsV2Request || (ListObjectsV2Request = {}));\nexport var DeleteMarkerEntry;\n(function (DeleteMarkerEntry) {\n DeleteMarkerEntry.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteMarkerEntry || (DeleteMarkerEntry = {}));\nexport var ObjectVersion;\n(function (ObjectVersion) {\n ObjectVersion.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectVersion || (ObjectVersion = {}));\nexport var ListObjectVersionsOutput;\n(function (ListObjectVersionsOutput) {\n ListObjectVersionsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectVersionsOutput || (ListObjectVersionsOutput = {}));\nexport var ListObjectVersionsRequest;\n(function (ListObjectVersionsRequest) {\n ListObjectVersionsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectVersionsRequest || (ListObjectVersionsRequest = {}));\nexport var Part;\n(function (Part) {\n Part.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Part || (Part = {}));\nexport var ListPartsOutput;\n(function (ListPartsOutput) {\n ListPartsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListPartsOutput || (ListPartsOutput = {}));\nexport var ListPartsRequest;\n(function (ListPartsRequest) {\n ListPartsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListPartsRequest || (ListPartsRequest = {}));\nexport var PutBucketAccelerateConfigurationRequest;\n(function (PutBucketAccelerateConfigurationRequest) {\n PutBucketAccelerateConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketAccelerateConfigurationRequest || (PutBucketAccelerateConfigurationRequest = {}));\nexport var PutBucketAclRequest;\n(function (PutBucketAclRequest) {\n PutBucketAclRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketAclRequest || (PutBucketAclRequest = {}));\nexport var PutBucketAnalyticsConfigurationRequest;\n(function (PutBucketAnalyticsConfigurationRequest) {\n PutBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.AnalyticsConfiguration && {\n AnalyticsConfiguration: AnalyticsConfiguration.filterSensitiveLog(obj.AnalyticsConfiguration),\n }))); };\n})(PutBucketAnalyticsConfigurationRequest || (PutBucketAnalyticsConfigurationRequest = {}));\nexport var CORSConfiguration;\n(function (CORSConfiguration) {\n CORSConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CORSConfiguration || (CORSConfiguration = {}));\nexport var PutBucketCorsRequest;\n(function (PutBucketCorsRequest) {\n PutBucketCorsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketCorsRequest || (PutBucketCorsRequest = {}));\nexport var PutBucketEncryptionRequest;\n(function (PutBucketEncryptionRequest) {\n PutBucketEncryptionRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration.filterSensitiveLog(obj.ServerSideEncryptionConfiguration),\n }))); };\n})(PutBucketEncryptionRequest || (PutBucketEncryptionRequest = {}));\nexport var PutBucketIntelligentTieringConfigurationRequest;\n(function (PutBucketIntelligentTieringConfigurationRequest) {\n PutBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketIntelligentTieringConfigurationRequest || (PutBucketIntelligentTieringConfigurationRequest = {}));\nexport var PutBucketInventoryConfigurationRequest;\n(function (PutBucketInventoryConfigurationRequest) {\n PutBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfiguration.filterSensitiveLog(obj.InventoryConfiguration),\n }))); };\n})(PutBucketInventoryConfigurationRequest || (PutBucketInventoryConfigurationRequest = {}));\nexport var BucketLifecycleConfiguration;\n(function (BucketLifecycleConfiguration) {\n BucketLifecycleConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Rules && { Rules: obj.Rules.map(function (item) { return LifecycleRule.filterSensitiveLog(item); }) }))); };\n})(BucketLifecycleConfiguration || (BucketLifecycleConfiguration = {}));\nexport var PutBucketLifecycleConfigurationRequest;\n(function (PutBucketLifecycleConfigurationRequest) {\n PutBucketLifecycleConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.LifecycleConfiguration && {\n LifecycleConfiguration: BucketLifecycleConfiguration.filterSensitiveLog(obj.LifecycleConfiguration),\n }))); };\n})(PutBucketLifecycleConfigurationRequest || (PutBucketLifecycleConfigurationRequest = {}));\nexport var BucketLoggingStatus;\n(function (BucketLoggingStatus) {\n BucketLoggingStatus.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(BucketLoggingStatus || (BucketLoggingStatus = {}));\nexport var PutBucketLoggingRequest;\n(function (PutBucketLoggingRequest) {\n PutBucketLoggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketLoggingRequest || (PutBucketLoggingRequest = {}));\nexport var PutBucketMetricsConfigurationRequest;\n(function (PutBucketMetricsConfigurationRequest) {\n PutBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.MetricsConfiguration && {\n MetricsConfiguration: MetricsConfiguration.filterSensitiveLog(obj.MetricsConfiguration),\n }))); };\n})(PutBucketMetricsConfigurationRequest || (PutBucketMetricsConfigurationRequest = {}));\nexport var PutBucketNotificationConfigurationRequest;\n(function (PutBucketNotificationConfigurationRequest) {\n PutBucketNotificationConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketNotificationConfigurationRequest || (PutBucketNotificationConfigurationRequest = {}));\nexport var PutBucketOwnershipControlsRequest;\n(function (PutBucketOwnershipControlsRequest) {\n PutBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketOwnershipControlsRequest || (PutBucketOwnershipControlsRequest = {}));\nexport var PutBucketPolicyRequest;\n(function (PutBucketPolicyRequest) {\n PutBucketPolicyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketPolicyRequest || (PutBucketPolicyRequest = {}));\nexport var PutBucketReplicationRequest;\n(function (PutBucketReplicationRequest) {\n PutBucketReplicationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ReplicationConfiguration && {\n ReplicationConfiguration: ReplicationConfiguration.filterSensitiveLog(obj.ReplicationConfiguration),\n }))); };\n})(PutBucketReplicationRequest || (PutBucketReplicationRequest = {}));\nexport var RequestPaymentConfiguration;\n(function (RequestPaymentConfiguration) {\n RequestPaymentConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RequestPaymentConfiguration || (RequestPaymentConfiguration = {}));\nexport var PutBucketRequestPaymentRequest;\n(function (PutBucketRequestPaymentRequest) {\n PutBucketRequestPaymentRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketRequestPaymentRequest || (PutBucketRequestPaymentRequest = {}));\nexport var Tagging;\n(function (Tagging) {\n Tagging.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Tagging || (Tagging = {}));\nexport var PutBucketTaggingRequest;\n(function (PutBucketTaggingRequest) {\n PutBucketTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketTaggingRequest || (PutBucketTaggingRequest = {}));\nexport var VersioningConfiguration;\n(function (VersioningConfiguration) {\n VersioningConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(VersioningConfiguration || (VersioningConfiguration = {}));\nexport var PutBucketVersioningRequest;\n(function (PutBucketVersioningRequest) {\n PutBucketVersioningRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketVersioningRequest || (PutBucketVersioningRequest = {}));\nexport var WebsiteConfiguration;\n(function (WebsiteConfiguration) {\n WebsiteConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(WebsiteConfiguration || (WebsiteConfiguration = {}));\nexport var PutBucketWebsiteRequest;\n(function (PutBucketWebsiteRequest) {\n PutBucketWebsiteRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketWebsiteRequest || (PutBucketWebsiteRequest = {}));\nexport var PutObjectOutput;\n(function (PutObjectOutput) {\n PutObjectOutput.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(PutObjectOutput || (PutObjectOutput = {}));\nexport var PutObjectRequest;\n(function (PutObjectRequest) {\n PutObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING })), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(PutObjectRequest || (PutObjectRequest = {}));\nexport var PutObjectAclOutput;\n(function (PutObjectAclOutput) {\n PutObjectAclOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectAclOutput || (PutObjectAclOutput = {}));\nexport var PutObjectAclRequest;\n(function (PutObjectAclRequest) {\n PutObjectAclRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectAclRequest || (PutObjectAclRequest = {}));\nexport var PutObjectLegalHoldOutput;\n(function (PutObjectLegalHoldOutput) {\n PutObjectLegalHoldOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectLegalHoldOutput || (PutObjectLegalHoldOutput = {}));\nexport var PutObjectLegalHoldRequest;\n(function (PutObjectLegalHoldRequest) {\n PutObjectLegalHoldRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectLegalHoldRequest || (PutObjectLegalHoldRequest = {}));\nexport var PutObjectLockConfigurationOutput;\n(function (PutObjectLockConfigurationOutput) {\n PutObjectLockConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectLockConfigurationOutput || (PutObjectLockConfigurationOutput = {}));\nexport var PutObjectLockConfigurationRequest;\n(function (PutObjectLockConfigurationRequest) {\n PutObjectLockConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectLockConfigurationRequest || (PutObjectLockConfigurationRequest = {}));\nexport var PutObjectRetentionOutput;\n(function (PutObjectRetentionOutput) {\n PutObjectRetentionOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectRetentionOutput || (PutObjectRetentionOutput = {}));\nexport var PutObjectRetentionRequest;\n(function (PutObjectRetentionRequest) {\n PutObjectRetentionRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectRetentionRequest || (PutObjectRetentionRequest = {}));\nexport var PutObjectTaggingOutput;\n(function (PutObjectTaggingOutput) {\n PutObjectTaggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectTaggingOutput || (PutObjectTaggingOutput = {}));\nexport var PutObjectTaggingRequest;\n(function (PutObjectTaggingRequest) {\n PutObjectTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectTaggingRequest || (PutObjectTaggingRequest = {}));\nexport var PutPublicAccessBlockRequest;\n(function (PutPublicAccessBlockRequest) {\n PutPublicAccessBlockRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutPublicAccessBlockRequest || (PutPublicAccessBlockRequest = {}));\nexport var ObjectAlreadyInActiveTierError;\n(function (ObjectAlreadyInActiveTierError) {\n ObjectAlreadyInActiveTierError.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectAlreadyInActiveTierError || (ObjectAlreadyInActiveTierError = {}));\nexport var RestoreObjectOutput;\n(function (RestoreObjectOutput) {\n RestoreObjectOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RestoreObjectOutput || (RestoreObjectOutput = {}));\nexport var GlacierJobParameters;\n(function (GlacierJobParameters) {\n GlacierJobParameters.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GlacierJobParameters || (GlacierJobParameters = {}));\nexport var Encryption;\n(function (Encryption) {\n Encryption.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.KMSKeyId && { KMSKeyId: SENSITIVE_STRING }))); };\n})(Encryption || (Encryption = {}));\n//# sourceMappingURL=models_0.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __values } from \"tslib\";\nimport { escapeAttribute } from \"./escape-attribute\";\n/**\n * Represents an XML node.\n */\nvar XmlNode = /** @class */ (function () {\n function XmlNode(name, children) {\n if (children === void 0) { children = []; }\n this.name = name;\n this.children = children;\n this.attributes = {};\n }\n XmlNode.prototype.withName = function (name) {\n this.name = name;\n return this;\n };\n XmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n };\n XmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n };\n XmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n };\n XmlNode.prototype.toString = function () {\n var e_1, _a;\n var hasChildren = Boolean(this.children.length);\n var xmlText = \"<\" + this.name;\n // add attributes\n var attributes = this.attributes;\n try {\n for (var _b = __values(Object.keys(attributes)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var attributeName = _c.value;\n var attribute = attributes[attributeName];\n if (typeof attribute !== \"undefined\" && attribute !== null) {\n xmlText += \" \" + attributeName + \"=\\\"\" + escapeAttribute(\"\" + attribute) + \"\\\"\";\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return (xmlText += !hasChildren ? \"/>\" : \">\" + this.children.map(function (c) { return c.toString(); }).join(\"\") + \"\");\n };\n return XmlNode;\n}());\nexport { XmlNode };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWG1sTm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9YbWxOb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHckQ7O0dBRUc7QUFDSDtJQUdFLGlCQUFvQixJQUFZLEVBQWtCLFFBQTJCO1FBQTNCLHlCQUFBLEVBQUEsYUFBMkI7UUFBekQsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFrQixhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUZyRSxlQUFVLEdBQTRCLEVBQUUsQ0FBQztJQUUrQixDQUFDO0lBRWpGLDBCQUFRLEdBQVIsVUFBUyxJQUFZO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELDhCQUFZLEdBQVosVUFBYSxJQUFZLEVBQUUsS0FBVTtRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCw4QkFBWSxHQUFaLFVBQWEsS0FBaUI7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsaUNBQWUsR0FBZixVQUFnQixJQUFZO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCwwQkFBUSxHQUFSOztRQUNFLElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELElBQUksT0FBTyxHQUFHLE1BQUksSUFBSSxDQUFDLElBQU0sQ0FBQztRQUM5QixpQkFBaUI7UUFDakIsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQzs7WUFDbkMsS0FBNEIsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBaEQsSUFBTSxhQUFhLFdBQUE7Z0JBQ3RCLElBQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxLQUFLLElBQUksRUFBRTtvQkFDMUQsT0FBTyxJQUFJLE1BQUksYUFBYSxXQUFLLGVBQWUsQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLE9BQUcsQ0FBQztpQkFDckU7YUFDRjs7Ozs7Ozs7O1FBRUQsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFaLENBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBSyxJQUFJLENBQUMsSUFBSSxNQUFHLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBQ0gsY0FBQztBQUFELENBQUMsQUF2Q0QsSUF1Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlc2NhcGVBdHRyaWJ1dGUgfSBmcm9tIFwiLi9lc2NhcGUtYXR0cmlidXRlXCI7XG5pbXBvcnQgeyBTdHJpbmdhYmxlIH0gZnJvbSBcIi4vc3RyaW5nYWJsZVwiO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gWE1MIG5vZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBYbWxOb2RlIHtcbiAgcHJpdmF0ZSBhdHRyaWJ1dGVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmFtZTogc3RyaW5nLCBwdWJsaWMgcmVhZG9ubHkgY2hpbGRyZW46IFN0cmluZ2FibGVbXSA9IFtdKSB7fVxuXG4gIHdpdGhOYW1lKG5hbWU6IHN0cmluZyk6IFhtbE5vZGUge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhZGRBdHRyaWJ1dGUobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogWG1sTm9kZSB7XG4gICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhZGRDaGlsZE5vZGUoY2hpbGQ6IFN0cmluZ2FibGUpOiBYbWxOb2RlIHtcbiAgICB0aGlzLmNoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmVtb3ZlQXR0cmlidXRlKG5hbWU6IHN0cmluZyk6IFhtbE5vZGUge1xuICAgIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gQm9vbGVhbih0aGlzLmNoaWxkcmVuLmxlbmd0aCk7XG4gICAgbGV0IHhtbFRleHQgPSBgPCR7dGhpcy5uYW1lfWA7XG4gICAgLy8gYWRkIGF0dHJpYnV0ZXNcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5hdHRyaWJ1dGVzO1xuICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBvZiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKSkge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgIGlmICh0eXBlb2YgYXR0cmlidXRlICE9PSBcInVuZGVmaW5lZFwiICYmIGF0dHJpYnV0ZSAhPT0gbnVsbCkge1xuICAgICAgICB4bWxUZXh0ICs9IGAgJHthdHRyaWJ1dGVOYW1lfT1cIiR7ZXNjYXBlQXR0cmlidXRlKFwiXCIgKyBhdHRyaWJ1dGUpfVwiYDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gKHhtbFRleHQgKz0gIWhhc0NoaWxkcmVuID8gXCIvPlwiIDogYD4ke3RoaXMuY2hpbGRyZW4ubWFwKChjKSA9PiBjLnRvU3RyaW5nKCkpLmpvaW4oXCJcIil9PC8ke3RoaXMubmFtZX0+YCk7XG4gIH1cbn1cbiJdfQ==","/**\n * Escapes characters that can not be in an XML attribute.\n */\nexport function escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(/
/g, \">\").replace(/\"/g, \""\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLWF0dHJpYnV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lc2NhcGUtYXR0cmlidXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxLQUFhO0lBQzNDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDMUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXNjYXBlcyBjaGFyYWN0ZXJzIHRoYXQgY2FuIG5vdCBiZSBpbiBhbiBYTUwgYXR0cmlidXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZSgvJi9nLCBcIiZhbXA7XCIpLnJlcGxhY2UoLzwvZywgXCImbHQ7XCIpLnJlcGxhY2UoLz4vZywgXCImZ3Q7XCIpLnJlcGxhY2UoL1wiL2csIFwiJnF1b3Q7XCIpO1xufVxuIl19","import { escapeElement } from \"./escape-element\";\n/**\n * Represents an XML text value.\n */\nvar XmlText = /** @class */ (function () {\n function XmlText(value) {\n this.value = value;\n }\n XmlText.prototype.toString = function () {\n return escapeElement(\"\" + this.value);\n };\n return XmlText;\n}());\nexport { XmlText };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWG1sVGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9YbWxUZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRDs7R0FFRztBQUNIO0lBQ0UsaUJBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBQUcsQ0FBQztJQUVyQywwQkFBUSxHQUFSO1FBQ0UsT0FBTyxhQUFhLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0gsY0FBQztBQUFELENBQUMsQUFORCxJQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXNjYXBlRWxlbWVudCB9IGZyb20gXCIuL2VzY2FwZS1lbGVtZW50XCI7XG5pbXBvcnQgeyBTdHJpbmdhYmxlIH0gZnJvbSBcIi4vc3RyaW5nYWJsZVwiO1xuLyoqXG4gKiBSZXByZXNlbnRzIGFuIFhNTCB0ZXh0IHZhbHVlLlxuICovXG5leHBvcnQgY2xhc3MgWG1sVGV4dCBpbXBsZW1lbnRzIFN0cmluZ2FibGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZhbHVlOiBzdHJpbmcpIHt9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZXNjYXBlRWxlbWVudChcIlwiICsgdGhpcy52YWx1ZSk7XG4gIH1cbn1cbiJdfQ==","/**\n * Escapes characters that can not be in an XML element.\n */\nexport function escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXNjYXBlLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQWE7SUFDekMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXNjYXBlcyBjaGFyYWN0ZXJzIHRoYXQgY2FuIG5vdCBiZSBpbiBhbiBYTUwgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZUVsZW1lbnQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlKC8mL2csIFwiJmFtcDtcIikucmVwbGFjZSgvPC9nLCBcIiZsdDtcIikucmVwbGFjZSgvPi9nLCBcIiZndDtcIik7XG59XG4iXX0=","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { AnalyticsFilter, LifecycleRuleFilter, MetricsFilter, ReplicationRuleFilter, } from \"../models/models_0\";\nimport { HttpRequest as __HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { dateToUtcString as __dateToUtcString, extendedEncodeURIComponent as __extendedEncodeURIComponent, getArrayIfSingleItem as __getArrayIfSingleItem, getValueFromTextNode as __getValueFromTextNode, } from \"@aws-sdk/smithy-client\";\nimport { XmlNode as __XmlNode, XmlText as __XmlText } from \"@aws-sdk/xml-builder\";\nimport { parse as xmlParse } from \"fast-xml-parser\";\nexport var serializeAws_restXmlAbortMultipartUploadCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ \"x-id\": \"AbortMultipartUpload\" }, (input.UploadId !== undefined && { uploadId: input.UploadId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlCompleteMultipartUploadCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({}, (input.UploadId !== undefined && { uploadId: input.UploadId }));\n if (input.MultipartUpload !== undefined) {\n contents = serializeAws_restXmlCompletedMultipartUpload(input.MultipartUpload, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlCopyObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.CacheControl) && { \"cache-control\": input.CacheControl })), (isSerializableHeaderValue(input.ContentDisposition) && { \"content-disposition\": input.ContentDisposition })), (isSerializableHeaderValue(input.ContentEncoding) && { \"content-encoding\": input.ContentEncoding })), (isSerializableHeaderValue(input.ContentLanguage) && { \"content-language\": input.ContentLanguage })), (isSerializableHeaderValue(input.ContentType) && { \"content-type\": input.ContentType })), (isSerializableHeaderValue(input.CopySource) && { \"x-amz-copy-source\": input.CopySource })), (isSerializableHeaderValue(input.CopySourceIfMatch) && {\n \"x-amz-copy-source-if-match\": input.CopySourceIfMatch,\n })), (isSerializableHeaderValue(input.CopySourceIfModifiedSince) && {\n \"x-amz-copy-source-if-modified-since\": __dateToUtcString(input.CopySourceIfModifiedSince).toString(),\n })), (isSerializableHeaderValue(input.CopySourceIfNoneMatch) && {\n \"x-amz-copy-source-if-none-match\": input.CopySourceIfNoneMatch,\n })), (isSerializableHeaderValue(input.CopySourceIfUnmodifiedSince) && {\n \"x-amz-copy-source-if-unmodified-since\": __dateToUtcString(input.CopySourceIfUnmodifiedSince).toString(),\n })), (isSerializableHeaderValue(input.Expires) && { expires: __dateToUtcString(input.Expires).toString() })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.MetadataDirective) && { \"x-amz-metadata-directive\": input.MetadataDirective })), (isSerializableHeaderValue(input.TaggingDirective) && { \"x-amz-tagging-directive\": input.TaggingDirective })), (isSerializableHeaderValue(input.ServerSideEncryption) && {\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n })), (isSerializableHeaderValue(input.StorageClass) && { \"x-amz-storage-class\": input.StorageClass })), (isSerializableHeaderValue(input.WebsiteRedirectLocation) && {\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.SSEKMSKeyId) && {\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n })), (isSerializableHeaderValue(input.SSEKMSEncryptionContext) && {\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n })), (isSerializableHeaderValue(input.BucketKeyEnabled) && {\n \"x-amz-server-side-encryption-bucket-key-enabled\": input.BucketKeyEnabled.toString(),\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerAlgorithm) && {\n \"x-amz-copy-source-server-side-encryption-customer-algorithm\": input.CopySourceSSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerKey) && {\n \"x-amz-copy-source-server-side-encryption-customer-key\": input.CopySourceSSECustomerKey,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerKeyMD5) && {\n \"x-amz-copy-source-server-side-encryption-customer-key-md5\": input.CopySourceSSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.Tagging) && { \"x-amz-tagging\": input.Tagging })), (isSerializableHeaderValue(input.ObjectLockMode) && { \"x-amz-object-lock-mode\": input.ObjectLockMode })), (isSerializableHeaderValue(input.ObjectLockRetainUntilDate) && {\n \"x-amz-object-lock-retain-until-date\": (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n })), (isSerializableHeaderValue(input.ObjectLockLegalHoldStatus) && {\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n })), (isSerializableHeaderValue(input.ExpectedSourceBucketOwner) && {\n \"x-amz-source-expected-bucket-owner\": input.ExpectedSourceBucketOwner,\n })), (input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce(function (acc, suffix) {\n var _a;\n return (__assign(__assign({}, acc), (_a = {}, _a[\"x-amz-meta-\" + suffix.toLowerCase()] = input.Metadata[suffix], _a)));\n }, {})));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n \"x-id\": \"CopyObject\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlCreateBucketCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWrite) && { \"x-amz-grant-write\": input.GrantWrite })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.ObjectLockEnabledForBucket) && {\n \"x-amz-bucket-object-lock-enabled\": input.ObjectLockEnabledForBucket.toString(),\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.CreateBucketConfiguration !== undefined) {\n contents = serializeAws_restXmlCreateBucketConfiguration(input.CreateBucketConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlCreateMultipartUploadCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.CacheControl) && { \"cache-control\": input.CacheControl })), (isSerializableHeaderValue(input.ContentDisposition) && { \"content-disposition\": input.ContentDisposition })), (isSerializableHeaderValue(input.ContentEncoding) && { \"content-encoding\": input.ContentEncoding })), (isSerializableHeaderValue(input.ContentLanguage) && { \"content-language\": input.ContentLanguage })), (isSerializableHeaderValue(input.ContentType) && { \"content-type\": input.ContentType })), (isSerializableHeaderValue(input.Expires) && { expires: __dateToUtcString(input.Expires).toString() })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.ServerSideEncryption) && {\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n })), (isSerializableHeaderValue(input.StorageClass) && { \"x-amz-storage-class\": input.StorageClass })), (isSerializableHeaderValue(input.WebsiteRedirectLocation) && {\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.SSEKMSKeyId) && {\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n })), (isSerializableHeaderValue(input.SSEKMSEncryptionContext) && {\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n })), (isSerializableHeaderValue(input.BucketKeyEnabled) && {\n \"x-amz-server-side-encryption-bucket-key-enabled\": input.BucketKeyEnabled.toString(),\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.Tagging) && { \"x-amz-tagging\": input.Tagging })), (isSerializableHeaderValue(input.ObjectLockMode) && { \"x-amz-object-lock-mode\": input.ObjectLockMode })), (isSerializableHeaderValue(input.ObjectLockRetainUntilDate) && {\n \"x-amz-object-lock-retain-until-date\": (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n })), (isSerializableHeaderValue(input.ObjectLockLegalHoldStatus) && {\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n })), (input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce(function (acc, suffix) {\n var _a;\n return (__assign(__assign({}, acc), (_a = {}, _a[\"x-amz-meta-\" + suffix.toLowerCase()] = input.Metadata[suffix], _a)));\n }, {})));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n uploads: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ analytics: \"\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketCorsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n cors: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketEncryptionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n encryption: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {};\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ \"intelligent-tiering\": \"\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketInventoryConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ inventory: \"\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketLifecycleCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n lifecycle: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketMetricsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ metrics: \"\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketOwnershipControlsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n ownershipControls: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketPolicyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n policy: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketReplicationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n replication: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n tagging: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketWebsiteCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n website: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.MFA) && { \"x-amz-mfa\": input.MFA })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.BypassGovernanceRetention) && {\n \"x-amz-bypass-governance-retention\": input.BypassGovernanceRetention.toString(),\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ \"x-id\": \"DeleteObject\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteObjectsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.MFA) && { \"x-amz-mfa\": input.MFA })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.BypassGovernanceRetention) && {\n \"x-amz-bypass-governance-retention\": input.BypassGovernanceRetention.toString(),\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n delete: \"\",\n };\n if (input.Delete !== undefined) {\n contents = serializeAws_restXmlDelete(input.Delete, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteObjectTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ tagging: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeletePublicAccessBlockCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n publicAccessBlock: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketAccelerateConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n accelerate: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketAclCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n acl: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketAnalyticsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ analytics: \"\", \"x-id\": \"GetBucketAnalyticsConfiguration\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketCorsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n cors: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketEncryptionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n encryption: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {};\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ \"intelligent-tiering\": \"\", \"x-id\": \"GetBucketIntelligentTieringConfiguration\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketInventoryConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ inventory: \"\", \"x-id\": \"GetBucketInventoryConfiguration\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketLifecycleConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n lifecycle: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketLocationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n location: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketLoggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n logging: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketMetricsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ metrics: \"\", \"x-id\": \"GetBucketMetricsConfiguration\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketNotificationConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n notification: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketOwnershipControlsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n ownershipControls: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketPolicyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n policy: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketPolicyStatusCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n policyStatus: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketReplicationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n replication: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketRequestPaymentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n requestPayment: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n tagging: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketVersioningCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n versioning: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketWebsiteCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n website: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.IfMatch) && { \"if-match\": input.IfMatch })), (isSerializableHeaderValue(input.IfModifiedSince) && {\n \"if-modified-since\": __dateToUtcString(input.IfModifiedSince).toString(),\n })), (isSerializableHeaderValue(input.IfNoneMatch) && { \"if-none-match\": input.IfNoneMatch })), (isSerializableHeaderValue(input.IfUnmodifiedSince) && {\n \"if-unmodified-since\": __dateToUtcString(input.IfUnmodifiedSince).toString(),\n })), (isSerializableHeaderValue(input.Range) && { range: input.Range })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"x-id\": \"GetObject\" }, (input.ResponseCacheControl !== undefined && { \"response-cache-control\": input.ResponseCacheControl })), (input.ResponseContentDisposition !== undefined && {\n \"response-content-disposition\": input.ResponseContentDisposition,\n })), (input.ResponseContentEncoding !== undefined && { \"response-content-encoding\": input.ResponseContentEncoding })), (input.ResponseContentLanguage !== undefined && { \"response-content-language\": input.ResponseContentLanguage })), (input.ResponseContentType !== undefined && { \"response-content-type\": input.ResponseContentType })), (input.ResponseExpires !== undefined && {\n \"response-expires\": (input.ResponseExpires.toISOString().split(\".\")[0] + \"Z\").toString(),\n })), (input.VersionId !== undefined && { versionId: input.VersionId })), (input.PartNumber !== undefined && { partNumber: input.PartNumber.toString() }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectAclCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ acl: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectLegalHoldCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ \"legal-hold\": \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectLockConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n \"object-lock\": \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectRetentionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ retention: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ tagging: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectTorrentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n torrent: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetPublicAccessBlockCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n publicAccessBlock: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlHeadBucketCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"HEAD\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlHeadObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.IfMatch) && { \"if-match\": input.IfMatch })), (isSerializableHeaderValue(input.IfModifiedSince) && {\n \"if-modified-since\": __dateToUtcString(input.IfModifiedSince).toString(),\n })), (isSerializableHeaderValue(input.IfNoneMatch) && { \"if-none-match\": input.IfNoneMatch })), (isSerializableHeaderValue(input.IfUnmodifiedSince) && {\n \"if-unmodified-since\": __dateToUtcString(input.IfUnmodifiedSince).toString(),\n })), (isSerializableHeaderValue(input.Range) && { range: input.Range })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign({}, (input.VersionId !== undefined && { versionId: input.VersionId })), (input.PartNumber !== undefined && { partNumber: input.PartNumber.toString() }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"HEAD\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketAnalyticsConfigurationsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ analytics: \"\", \"x-id\": \"ListBucketAnalyticsConfigurations\" }, (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {};\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ \"intelligent-tiering\": \"\", \"x-id\": \"ListBucketIntelligentTieringConfigurations\" }, (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketInventoryConfigurationsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ inventory: \"\", \"x-id\": \"ListBucketInventoryConfigurations\" }, (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketMetricsConfigurationsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ metrics: \"\", \"x-id\": \"ListBucketMetricsConfigurations\" }, (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {};\n resolvedPath = \"/\";\n body = \"\";\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListMultipartUploadsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign(__assign(__assign(__assign(__assign(__assign({ uploads: \"\" }, (input.Delimiter !== undefined && { delimiter: input.Delimiter })), (input.EncodingType !== undefined && { \"encoding-type\": input.EncodingType })), (input.KeyMarker !== undefined && { \"key-marker\": input.KeyMarker })), (input.MaxUploads !== undefined && { \"max-uploads\": input.MaxUploads.toString() })), (input.Prefix !== undefined && { prefix: input.Prefix })), (input.UploadIdMarker !== undefined && { \"upload-id-marker\": input.UploadIdMarker }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListObjectsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign(__assign(__assign(__assign(__assign({}, (input.Delimiter !== undefined && { delimiter: input.Delimiter })), (input.EncodingType !== undefined && { \"encoding-type\": input.EncodingType })), (input.Marker !== undefined && { marker: input.Marker })), (input.MaxKeys !== undefined && { \"max-keys\": input.MaxKeys.toString() })), (input.Prefix !== undefined && { prefix: input.Prefix }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListObjectsV2Command = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"list-type\": \"2\" }, (input.Delimiter !== undefined && { delimiter: input.Delimiter })), (input.EncodingType !== undefined && { \"encoding-type\": input.EncodingType })), (input.MaxKeys !== undefined && { \"max-keys\": input.MaxKeys.toString() })), (input.Prefix !== undefined && { prefix: input.Prefix })), (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken })), (input.FetchOwner !== undefined && { \"fetch-owner\": input.FetchOwner.toString() })), (input.StartAfter !== undefined && { \"start-after\": input.StartAfter }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListObjectVersionsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign(__assign(__assign(__assign(__assign(__assign({ versions: \"\" }, (input.Delimiter !== undefined && { delimiter: input.Delimiter })), (input.EncodingType !== undefined && { \"encoding-type\": input.EncodingType })), (input.KeyMarker !== undefined && { \"key-marker\": input.KeyMarker })), (input.MaxKeys !== undefined && { \"max-keys\": input.MaxKeys.toString() })), (input.Prefix !== undefined && { prefix: input.Prefix })), (input.VersionIdMarker !== undefined && { \"version-id-marker\": input.VersionIdMarker }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListPartsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign(__assign({ \"x-id\": \"ListParts\" }, (input.MaxParts !== undefined && { \"max-parts\": input.MaxParts.toString() })), (input.PartNumberMarker !== undefined && { \"part-number-marker\": input.PartNumberMarker })), (input.UploadId !== undefined && { uploadId: input.UploadId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketAccelerateConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n accelerate: \"\",\n };\n if (input.AccelerateConfiguration !== undefined) {\n contents = serializeAws_restXmlAccelerateConfiguration(input.AccelerateConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketAclCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWrite) && { \"x-amz-grant-write\": input.GrantWrite })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n acl: \"\",\n };\n if (input.AccessControlPolicy !== undefined) {\n contents = serializeAws_restXmlAccessControlPolicy(input.AccessControlPolicy, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketAnalyticsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ analytics: \"\" }, (input.Id !== undefined && { id: input.Id }));\n if (input.AnalyticsConfiguration !== undefined) {\n contents = serializeAws_restXmlAnalyticsConfiguration(input.AnalyticsConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketCorsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n cors: \"\",\n };\n if (input.CORSConfiguration !== undefined) {\n contents = serializeAws_restXmlCORSConfiguration(input.CORSConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketEncryptionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n encryption: \"\",\n };\n if (input.ServerSideEncryptionConfiguration !== undefined) {\n contents = serializeAws_restXmlServerSideEncryptionConfiguration(input.ServerSideEncryptionConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {\n \"content-type\": \"application/xml\",\n };\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ \"intelligent-tiering\": \"\" }, (input.Id !== undefined && { id: input.Id }));\n if (input.IntelligentTieringConfiguration !== undefined) {\n contents = serializeAws_restXmlIntelligentTieringConfiguration(input.IntelligentTieringConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketInventoryConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ inventory: \"\" }, (input.Id !== undefined && { id: input.Id }));\n if (input.InventoryConfiguration !== undefined) {\n contents = serializeAws_restXmlInventoryConfiguration(input.InventoryConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketLifecycleConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n lifecycle: \"\",\n };\n if (input.LifecycleConfiguration !== undefined) {\n contents = serializeAws_restXmlBucketLifecycleConfiguration(input.LifecycleConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketLoggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n logging: \"\",\n };\n if (input.BucketLoggingStatus !== undefined) {\n contents = serializeAws_restXmlBucketLoggingStatus(input.BucketLoggingStatus, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketMetricsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ metrics: \"\" }, (input.Id !== undefined && { id: input.Id }));\n if (input.MetricsConfiguration !== undefined) {\n contents = serializeAws_restXmlMetricsConfiguration(input.MetricsConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketNotificationConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n notification: \"\",\n };\n if (input.NotificationConfiguration !== undefined) {\n contents = serializeAws_restXmlNotificationConfiguration(input.NotificationConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketOwnershipControlsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n ownershipControls: \"\",\n };\n if (input.OwnershipControls !== undefined) {\n contents = serializeAws_restXmlOwnershipControls(input.OwnershipControls, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketPolicyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign({ \"content-type\": \"text/plain\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ConfirmRemoveSelfBucketAccess) && {\n \"x-amz-confirm-remove-self-bucket-access\": input.ConfirmRemoveSelfBucketAccess.toString(),\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n policy: \"\",\n };\n if (input.Policy !== undefined) {\n contents = input.Policy;\n body = contents;\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketReplicationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.Token) && { \"x-amz-bucket-object-lock-token\": input.Token })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n replication: \"\",\n };\n if (input.ReplicationConfiguration !== undefined) {\n contents = serializeAws_restXmlReplicationConfiguration(input.ReplicationConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketRequestPaymentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n requestPayment: \"\",\n };\n if (input.RequestPaymentConfiguration !== undefined) {\n contents = serializeAws_restXmlRequestPaymentConfiguration(input.RequestPaymentConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n tagging: \"\",\n };\n if (input.Tagging !== undefined) {\n contents = serializeAws_restXmlTagging(input.Tagging, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketVersioningCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.MFA) && { \"x-amz-mfa\": input.MFA })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n versioning: \"\",\n };\n if (input.VersioningConfiguration !== undefined) {\n contents = serializeAws_restXmlVersioningConfiguration(input.VersioningConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketWebsiteCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n website: \"\",\n };\n if (input.WebsiteConfiguration !== undefined) {\n contents = serializeAws_restXmlWebsiteConfiguration(input.WebsiteConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/octet-stream\" }, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.CacheControl) && { \"cache-control\": input.CacheControl })), (isSerializableHeaderValue(input.ContentDisposition) && { \"content-disposition\": input.ContentDisposition })), (isSerializableHeaderValue(input.ContentEncoding) && { \"content-encoding\": input.ContentEncoding })), (isSerializableHeaderValue(input.ContentLanguage) && { \"content-language\": input.ContentLanguage })), (isSerializableHeaderValue(input.ContentLength) && { \"content-length\": input.ContentLength.toString() })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ContentType) && { \"content-type\": input.ContentType })), (isSerializableHeaderValue(input.Expires) && { expires: __dateToUtcString(input.Expires).toString() })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.ServerSideEncryption) && {\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n })), (isSerializableHeaderValue(input.StorageClass) && { \"x-amz-storage-class\": input.StorageClass })), (isSerializableHeaderValue(input.WebsiteRedirectLocation) && {\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.SSEKMSKeyId) && {\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n })), (isSerializableHeaderValue(input.SSEKMSEncryptionContext) && {\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n })), (isSerializableHeaderValue(input.BucketKeyEnabled) && {\n \"x-amz-server-side-encryption-bucket-key-enabled\": input.BucketKeyEnabled.toString(),\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.Tagging) && { \"x-amz-tagging\": input.Tagging })), (isSerializableHeaderValue(input.ObjectLockMode) && { \"x-amz-object-lock-mode\": input.ObjectLockMode })), (isSerializableHeaderValue(input.ObjectLockRetainUntilDate) && {\n \"x-amz-object-lock-retain-until-date\": (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n })), (isSerializableHeaderValue(input.ObjectLockLegalHoldStatus) && {\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n })), (input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce(function (acc, suffix) {\n var _a;\n return (__assign(__assign({}, acc), (_a = {}, _a[\"x-amz-meta-\" + suffix.toLowerCase()] = input.Metadata[suffix], _a)));\n }, {})));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n \"x-id\": \"PutObject\",\n };\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectAclCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWrite) && { \"x-amz-grant-write\": input.GrantWrite })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ acl: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.AccessControlPolicy !== undefined) {\n contents = serializeAws_restXmlAccessControlPolicy(input.AccessControlPolicy, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectLegalHoldCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ \"legal-hold\": \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.LegalHold !== undefined) {\n contents = serializeAws_restXmlObjectLockLegalHold(input.LegalHold, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectLockConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.Token) && { \"x-amz-bucket-object-lock-token\": input.Token })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n \"object-lock\": \"\",\n };\n if (input.ObjectLockConfiguration !== undefined) {\n contents = serializeAws_restXmlObjectLockConfiguration(input.ObjectLockConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectRetentionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.BypassGovernanceRetention) && {\n \"x-amz-bypass-governance-retention\": input.BypassGovernanceRetention.toString(),\n })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ retention: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.Retention !== undefined) {\n contents = serializeAws_restXmlObjectLockRetention(input.Retention, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ tagging: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.Tagging !== undefined) {\n contents = serializeAws_restXmlTagging(input.Tagging, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutPublicAccessBlockCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n publicAccessBlock: \"\",\n };\n if (input.PublicAccessBlockConfiguration !== undefined) {\n contents = serializeAws_restXmlPublicAccessBlockConfiguration(input.PublicAccessBlockConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlRestoreObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ restore: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.RestoreRequest !== undefined) {\n contents = serializeAws_restXmlRestoreRequest(input.RestoreRequest, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlSelectObjectContentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, bodyNode, node, node, node, node, node, node, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n select: \"\",\n \"select-type\": \"2\",\n };\n body = '';\n bodyNode = new __XmlNode(\"SelectObjectContentRequest\");\n bodyNode.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n if (input.Expression !== undefined) {\n node = new __XmlNode(\"Expression\").addChildNode(new __XmlText(input.Expression)).withName(\"Expression\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpressionType !== undefined) {\n node = new __XmlNode(\"ExpressionType\")\n .addChildNode(new __XmlText(input.ExpressionType))\n .withName(\"ExpressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.InputSerialization !== undefined) {\n node = serializeAws_restXmlInputSerialization(input.InputSerialization, context).withName(\"InputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputSerialization !== undefined) {\n node = serializeAws_restXmlOutputSerialization(input.OutputSerialization, context).withName(\"OutputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.RequestProgress !== undefined) {\n node = serializeAws_restXmlRequestProgress(input.RequestProgress, context).withName(\"RequestProgress\");\n bodyNode.addChildNode(node);\n }\n if (input.ScanRange !== undefined) {\n node = serializeAws_restXmlScanRange(input.ScanRange, context).withName(\"ScanRange\");\n bodyNode.addChildNode(node);\n }\n body += bodyNode.toString();\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlUploadPartCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/octet-stream\" }, (isSerializableHeaderValue(input.ContentLength) && { \"content-length\": input.ContentLength.toString() })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign({ \"x-id\": \"UploadPart\" }, (input.PartNumber !== undefined && { partNumber: input.PartNumber.toString() })), (input.UploadId !== undefined && { uploadId: input.UploadId }));\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlUploadPartCopyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.CopySource) && { \"x-amz-copy-source\": input.CopySource })), (isSerializableHeaderValue(input.CopySourceIfMatch) && {\n \"x-amz-copy-source-if-match\": input.CopySourceIfMatch,\n })), (isSerializableHeaderValue(input.CopySourceIfModifiedSince) && {\n \"x-amz-copy-source-if-modified-since\": __dateToUtcString(input.CopySourceIfModifiedSince).toString(),\n })), (isSerializableHeaderValue(input.CopySourceIfNoneMatch) && {\n \"x-amz-copy-source-if-none-match\": input.CopySourceIfNoneMatch,\n })), (isSerializableHeaderValue(input.CopySourceIfUnmodifiedSince) && {\n \"x-amz-copy-source-if-unmodified-since\": __dateToUtcString(input.CopySourceIfUnmodifiedSince).toString(),\n })), (isSerializableHeaderValue(input.CopySourceRange) && { \"x-amz-copy-source-range\": input.CopySourceRange })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerAlgorithm) && {\n \"x-amz-copy-source-server-side-encryption-customer-algorithm\": input.CopySourceSSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerKey) && {\n \"x-amz-copy-source-server-side-encryption-customer-key\": input.CopySourceSSECustomerKey,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerKeyMD5) && {\n \"x-amz-copy-source-server-side-encryption-customer-key-md5\": input.CopySourceSSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n })), (isSerializableHeaderValue(input.ExpectedSourceBucketOwner) && {\n \"x-amz-source-expected-bucket-owner\": input.ExpectedSourceBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign({ \"x-id\": \"UploadPartCopy\" }, (input.PartNumber !== undefined && { partNumber: input.PartNumber.toString() })), (input.UploadId !== undefined && { uploadId: input.UploadId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var deserializeAws_restXmlAbortMultipartUploadCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlAbortMultipartUploadCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlAbortMultipartUploadCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchUpload\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchUpload\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchUploadResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlCompleteMultipartUploadCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlCompleteMultipartUploadCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Bucket: undefined,\n BucketKeyEnabled: undefined,\n ETag: undefined,\n Expiration: undefined,\n Key: undefined,\n Location: undefined,\n RequestCharged: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = data[\"Bucket\"];\n }\n if (data[\"ETag\"] !== undefined) {\n contents.ETag = data[\"ETag\"];\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = data[\"Key\"];\n }\n if (data[\"Location\"] !== undefined) {\n contents.Location = data[\"Location\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlCompleteMultipartUploadCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlCopyObjectCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlCopyObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n CopyObjectResult: undefined,\n CopySourceVersionId: undefined,\n Expiration: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSEncryptionContext: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"x-amz-copy-source-version-id\"] !== undefined) {\n contents.CopySourceVersionId = output.headers[\"x-amz-copy-source-version-id\"];\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-context\"] !== undefined) {\n contents.SSEKMSEncryptionContext = output.headers[\"x-amz-server-side-encryption-context\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.CopyObjectResult = deserializeAws_restXmlCopyObjectResult(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlCopyObjectCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ObjectNotInActiveTierError\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#ObjectNotInActiveTierError\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlObjectNotInActiveTierErrorResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlCreateBucketCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlCreateBucketCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Location: undefined,\n };\n if (output.headers[\"location\"] !== undefined) {\n contents.Location = output.headers[\"location\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlCreateBucketCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, parsedBody, message;\n var _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _a = [__assign({}, output)];\n _e = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_e.body = _f.sent(), _e)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"BucketAlreadyExists\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#BucketAlreadyExists\": return [3 /*break*/, 2];\n case \"BucketAlreadyOwnedByYou\": return [3 /*break*/, 4];\n case \"com.amazonaws.s3#BucketAlreadyOwnedByYou\": return [3 /*break*/, 4];\n }\n return [3 /*break*/, 6];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlBucketAlreadyExistsResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_f.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 7];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_restXmlBucketAlreadyOwnedByYouResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_f.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 7];\n case 6:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _f.label = 7;\n case 7:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlCreateMultipartUploadCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlCreateMultipartUploadCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AbortDate: undefined,\n AbortRuleId: undefined,\n Bucket: undefined,\n BucketKeyEnabled: undefined,\n Key: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSEncryptionContext: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n UploadId: undefined,\n };\n if (output.headers[\"x-amz-abort-date\"] !== undefined) {\n contents.AbortDate = new Date(output.headers[\"x-amz-abort-date\"]);\n }\n if (output.headers[\"x-amz-abort-rule-id\"] !== undefined) {\n contents.AbortRuleId = output.headers[\"x-amz-abort-rule-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-context\"] !== undefined) {\n contents.SSEKMSEncryptionContext = output.headers[\"x-amz-server-side-encryption-context\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = data[\"Bucket\"];\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = data[\"Key\"];\n }\n if (data[\"UploadId\"] !== undefined) {\n contents.UploadId = data[\"UploadId\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlCreateMultipartUploadCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketCorsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketCorsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketCorsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketEncryptionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketEncryptionCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketEncryptionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketInventoryConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketInventoryConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketInventoryConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketLifecycleCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketLifecycleCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketLifecycleCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketMetricsConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketMetricsConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketMetricsConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketOwnershipControlsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketOwnershipControlsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketOwnershipControlsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketPolicyCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketPolicyCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketPolicyCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketReplicationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketReplicationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketReplicationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketTaggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketTaggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketWebsiteCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketWebsiteCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketWebsiteCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteObjectCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n DeleteMarker: undefined,\n RequestCharged: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-delete-marker\"] !== undefined) {\n contents.DeleteMarker = output.headers[\"x-amz-delete-marker\"] === \"true\";\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteObjectCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteObjectsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteObjectsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Deleted: undefined,\n Errors: undefined,\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.Deleted === \"\") {\n contents.Deleted = [];\n }\n if (data[\"Deleted\"] !== undefined) {\n contents.Deleted = deserializeAws_restXmlDeletedObjects(__getArrayIfSingleItem(data[\"Deleted\"]), context);\n }\n if (data.Error === \"\") {\n contents.Errors = [];\n }\n if (data[\"Error\"] !== undefined) {\n contents.Errors = deserializeAws_restXmlErrors(__getArrayIfSingleItem(data[\"Error\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteObjectsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteObjectTaggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteObjectTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteObjectTaggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeletePublicAccessBlockCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeletePublicAccessBlockCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeletePublicAccessBlockCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketAccelerateConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketAccelerateConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Status: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Status\"] !== undefined) {\n contents.Status = data[\"Status\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketAccelerateConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketAclCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketAclCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Grants: undefined,\n Owner: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.AccessControlList === \"\") {\n contents.Grants = [];\n }\n if (data[\"AccessControlList\"] !== undefined && data[\"AccessControlList\"][\"Grant\"] !== undefined) {\n contents.Grants = deserializeAws_restXmlGrants(__getArrayIfSingleItem(data[\"AccessControlList\"][\"Grant\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketAclCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketAnalyticsConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketAnalyticsConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AnalyticsConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.AnalyticsConfiguration = deserializeAws_restXmlAnalyticsConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketAnalyticsConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketCorsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketCorsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n CORSRules: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CORSRule === \"\") {\n contents.CORSRules = [];\n }\n if (data[\"CORSRule\"] !== undefined) {\n contents.CORSRules = deserializeAws_restXmlCORSRules(__getArrayIfSingleItem(data[\"CORSRule\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketCorsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketEncryptionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketEncryptionCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ServerSideEncryptionConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.ServerSideEncryptionConfiguration = deserializeAws_restXmlServerSideEncryptionConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketEncryptionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n IntelligentTieringConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.IntelligentTieringConfiguration = deserializeAws_restXmlIntelligentTieringConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketInventoryConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketInventoryConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n InventoryConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.InventoryConfiguration = deserializeAws_restXmlInventoryConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketInventoryConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketLifecycleConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketLifecycleConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Rules: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.Rule === \"\") {\n contents.Rules = [];\n }\n if (data[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlLifecycleRules(__getArrayIfSingleItem(data[\"Rule\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketLifecycleConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketLocationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketLocationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n LocationConstraint: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"LocationConstraint\"] !== undefined) {\n contents.LocationConstraint = data[\"LocationConstraint\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketLocationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketLoggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketLoggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n LoggingEnabled: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"LoggingEnabled\"] !== undefined) {\n contents.LoggingEnabled = deserializeAws_restXmlLoggingEnabled(data[\"LoggingEnabled\"], context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketLoggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketMetricsConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketMetricsConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n MetricsConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.MetricsConfiguration = deserializeAws_restXmlMetricsConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketMetricsConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketNotificationConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketNotificationConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n LambdaFunctionConfigurations: undefined,\n QueueConfigurations: undefined,\n TopicConfigurations: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CloudFunctionConfiguration === \"\") {\n contents.LambdaFunctionConfigurations = [];\n }\n if (data[\"CloudFunctionConfiguration\"] !== undefined) {\n contents.LambdaFunctionConfigurations = deserializeAws_restXmlLambdaFunctionConfigurationList(__getArrayIfSingleItem(data[\"CloudFunctionConfiguration\"]), context);\n }\n if (data.QueueConfiguration === \"\") {\n contents.QueueConfigurations = [];\n }\n if (data[\"QueueConfiguration\"] !== undefined) {\n contents.QueueConfigurations = deserializeAws_restXmlQueueConfigurationList(__getArrayIfSingleItem(data[\"QueueConfiguration\"]), context);\n }\n if (data.TopicConfiguration === \"\") {\n contents.TopicConfigurations = [];\n }\n if (data[\"TopicConfiguration\"] !== undefined) {\n contents.TopicConfigurations = deserializeAws_restXmlTopicConfigurationList(__getArrayIfSingleItem(data[\"TopicConfiguration\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketNotificationConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketOwnershipControlsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketOwnershipControlsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n OwnershipControls: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.OwnershipControls = deserializeAws_restXmlOwnershipControls(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketOwnershipControlsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketPolicyCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketPolicyCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Policy: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Policy\"] !== undefined) {\n contents.Policy = data[\"Policy\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketPolicyCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketPolicyStatusCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketPolicyStatusCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n PolicyStatus: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.PolicyStatus = deserializeAws_restXmlPolicyStatus(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketPolicyStatusCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketReplicationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketReplicationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ReplicationConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.ReplicationConfiguration = deserializeAws_restXmlReplicationConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketReplicationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketRequestPaymentCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketRequestPaymentCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Payer: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Payer\"] !== undefined) {\n contents.Payer = data[\"Payer\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketRequestPaymentCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketTaggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n TagSet: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.TagSet === \"\") {\n contents.TagSet = [];\n }\n if (data[\"TagSet\"] !== undefined && data[\"TagSet\"][\"Tag\"] !== undefined) {\n contents.TagSet = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(data[\"TagSet\"][\"Tag\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketTaggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketVersioningCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketVersioningCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n MFADelete: undefined,\n Status: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"MfaDelete\"] !== undefined) {\n contents.MFADelete = data[\"MfaDelete\"];\n }\n if (data[\"Status\"] !== undefined) {\n contents.Status = data[\"Status\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketVersioningCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketWebsiteCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketWebsiteCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ErrorDocument: undefined,\n IndexDocument: undefined,\n RedirectAllRequestsTo: undefined,\n RoutingRules: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"ErrorDocument\"] !== undefined) {\n contents.ErrorDocument = deserializeAws_restXmlErrorDocument(data[\"ErrorDocument\"], context);\n }\n if (data[\"IndexDocument\"] !== undefined) {\n contents.IndexDocument = deserializeAws_restXmlIndexDocument(data[\"IndexDocument\"], context);\n }\n if (data[\"RedirectAllRequestsTo\"] !== undefined) {\n contents.RedirectAllRequestsTo = deserializeAws_restXmlRedirectAllRequestsTo(data[\"RedirectAllRequestsTo\"], context);\n }\n if (data.RoutingRules === \"\") {\n contents.RoutingRules = [];\n }\n if (data[\"RoutingRules\"] !== undefined && data[\"RoutingRules\"][\"RoutingRule\"] !== undefined) {\n contents.RoutingRules = deserializeAws_restXmlRoutingRules(__getArrayIfSingleItem(data[\"RoutingRules\"][\"RoutingRule\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketWebsiteCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetObjectCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AcceptRanges: undefined,\n Body: undefined,\n BucketKeyEnabled: undefined,\n CacheControl: undefined,\n ContentDisposition: undefined,\n ContentEncoding: undefined,\n ContentLanguage: undefined,\n ContentLength: undefined,\n ContentRange: undefined,\n ContentType: undefined,\n DeleteMarker: undefined,\n ETag: undefined,\n Expiration: undefined,\n Expires: undefined,\n LastModified: undefined,\n Metadata: undefined,\n MissingMeta: undefined,\n ObjectLockLegalHoldStatus: undefined,\n ObjectLockMode: undefined,\n ObjectLockRetainUntilDate: undefined,\n PartsCount: undefined,\n ReplicationStatus: undefined,\n RequestCharged: undefined,\n Restore: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n StorageClass: undefined,\n TagCount: undefined,\n VersionId: undefined,\n WebsiteRedirectLocation: undefined,\n };\n if (output.headers[\"x-amz-delete-marker\"] !== undefined) {\n contents.DeleteMarker = output.headers[\"x-amz-delete-marker\"] === \"true\";\n }\n if (output.headers[\"accept-ranges\"] !== undefined) {\n contents.AcceptRanges = output.headers[\"accept-ranges\"];\n }\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"x-amz-restore\"] !== undefined) {\n contents.Restore = output.headers[\"x-amz-restore\"];\n }\n if (output.headers[\"last-modified\"] !== undefined) {\n contents.LastModified = new Date(output.headers[\"last-modified\"]);\n }\n if (output.headers[\"content-length\"] !== undefined) {\n contents.ContentLength = parseInt(output.headers[\"content-length\"], 10);\n }\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n if (output.headers[\"x-amz-missing-meta\"] !== undefined) {\n contents.MissingMeta = parseInt(output.headers[\"x-amz-missing-meta\"], 10);\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"cache-control\"] !== undefined) {\n contents.CacheControl = output.headers[\"cache-control\"];\n }\n if (output.headers[\"content-disposition\"] !== undefined) {\n contents.ContentDisposition = output.headers[\"content-disposition\"];\n }\n if (output.headers[\"content-encoding\"] !== undefined) {\n contents.ContentEncoding = output.headers[\"content-encoding\"];\n }\n if (output.headers[\"content-language\"] !== undefined) {\n contents.ContentLanguage = output.headers[\"content-language\"];\n }\n if (output.headers[\"content-range\"] !== undefined) {\n contents.ContentRange = output.headers[\"content-range\"];\n }\n if (output.headers[\"content-type\"] !== undefined) {\n contents.ContentType = output.headers[\"content-type\"];\n }\n if (output.headers[\"expires\"] !== undefined) {\n contents.Expires = new Date(output.headers[\"expires\"]);\n }\n if (output.headers[\"x-amz-website-redirect-location\"] !== undefined) {\n contents.WebsiteRedirectLocation = output.headers[\"x-amz-website-redirect-location\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-storage-class\"] !== undefined) {\n contents.StorageClass = output.headers[\"x-amz-storage-class\"];\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n if (output.headers[\"x-amz-replication-status\"] !== undefined) {\n contents.ReplicationStatus = output.headers[\"x-amz-replication-status\"];\n }\n if (output.headers[\"x-amz-mp-parts-count\"] !== undefined) {\n contents.PartsCount = parseInt(output.headers[\"x-amz-mp-parts-count\"], 10);\n }\n if (output.headers[\"x-amz-tagging-count\"] !== undefined) {\n contents.TagCount = parseInt(output.headers[\"x-amz-tagging-count\"], 10);\n }\n if (output.headers[\"x-amz-object-lock-mode\"] !== undefined) {\n contents.ObjectLockMode = output.headers[\"x-amz-object-lock-mode\"];\n }\n if (output.headers[\"x-amz-object-lock-retain-until-date\"] !== undefined) {\n contents.ObjectLockRetainUntilDate = new Date(output.headers[\"x-amz-object-lock-retain-until-date\"]);\n }\n if (output.headers[\"x-amz-object-lock-legal-hold\"] !== undefined) {\n contents.ObjectLockLegalHoldStatus = output.headers[\"x-amz-object-lock-legal-hold\"];\n }\n Object.keys(output.headers).forEach(function (header) {\n if (contents.Metadata === undefined) {\n contents.Metadata = {};\n }\n if (header.startsWith(\"x-amz-meta-\")) {\n contents.Metadata[header.substring(11)] = output.headers[header];\n }\n });\n data = output.body;\n contents.Body = data;\n return [2 /*return*/, Promise.resolve(contents)];\n });\n}); };\nvar deserializeAws_restXmlGetObjectCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, parsedBody, message;\n var _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _a = [__assign({}, output)];\n _e = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_e.body = _f.sent(), _e)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InvalidObjectState\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#InvalidObjectState\": return [3 /*break*/, 2];\n case \"NoSuchKey\": return [3 /*break*/, 4];\n case \"com.amazonaws.s3#NoSuchKey\": return [3 /*break*/, 4];\n }\n return [3 /*break*/, 6];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlInvalidObjectStateResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_f.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 7];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_f.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 7];\n case 6:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _f.label = 7;\n case 7:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetObjectAclCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetObjectAclCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Grants: undefined,\n Owner: undefined,\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.AccessControlList === \"\") {\n contents.Grants = [];\n }\n if (data[\"AccessControlList\"] !== undefined && data[\"AccessControlList\"][\"Grant\"] !== undefined) {\n contents.Grants = deserializeAws_restXmlGrants(__getArrayIfSingleItem(data[\"AccessControlList\"][\"Grant\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectAclCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchKey\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchKey\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetObjectLegalHoldCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetObjectLegalHoldCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n LegalHold: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.LegalHold = deserializeAws_restXmlObjectLockLegalHold(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectLegalHoldCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetObjectLockConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetObjectLockConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ObjectLockConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.ObjectLockConfiguration = deserializeAws_restXmlObjectLockConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectLockConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetObjectRetentionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetObjectRetentionCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Retention: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.Retention = deserializeAws_restXmlObjectLockRetention(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectRetentionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetObjectTaggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetObjectTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n TagSet: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.TagSet === \"\") {\n contents.TagSet = [];\n }\n if (data[\"TagSet\"] !== undefined && data[\"TagSet\"][\"Tag\"] !== undefined) {\n contents.TagSet = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(data[\"TagSet\"][\"Tag\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectTaggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetObjectTorrentCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetObjectTorrentCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Body: undefined,\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n data = output.body;\n contents.Body = data;\n return [2 /*return*/, Promise.resolve(contents)];\n });\n}); };\nvar deserializeAws_restXmlGetObjectTorrentCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetPublicAccessBlockCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetPublicAccessBlockCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n PublicAccessBlockConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.PublicAccessBlockConfiguration = deserializeAws_restXmlPublicAccessBlockConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetPublicAccessBlockCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlHeadBucketCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlHeadBucketCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlHeadBucketCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchBucket\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchBucket\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchBucketResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlHeadObjectCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlHeadObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AcceptRanges: undefined,\n ArchiveStatus: undefined,\n BucketKeyEnabled: undefined,\n CacheControl: undefined,\n ContentDisposition: undefined,\n ContentEncoding: undefined,\n ContentLanguage: undefined,\n ContentLength: undefined,\n ContentType: undefined,\n DeleteMarker: undefined,\n ETag: undefined,\n Expiration: undefined,\n Expires: undefined,\n LastModified: undefined,\n Metadata: undefined,\n MissingMeta: undefined,\n ObjectLockLegalHoldStatus: undefined,\n ObjectLockMode: undefined,\n ObjectLockRetainUntilDate: undefined,\n PartsCount: undefined,\n ReplicationStatus: undefined,\n RequestCharged: undefined,\n Restore: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n StorageClass: undefined,\n VersionId: undefined,\n WebsiteRedirectLocation: undefined,\n };\n if (output.headers[\"x-amz-delete-marker\"] !== undefined) {\n contents.DeleteMarker = output.headers[\"x-amz-delete-marker\"] === \"true\";\n }\n if (output.headers[\"accept-ranges\"] !== undefined) {\n contents.AcceptRanges = output.headers[\"accept-ranges\"];\n }\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"x-amz-restore\"] !== undefined) {\n contents.Restore = output.headers[\"x-amz-restore\"];\n }\n if (output.headers[\"x-amz-archive-status\"] !== undefined) {\n contents.ArchiveStatus = output.headers[\"x-amz-archive-status\"];\n }\n if (output.headers[\"last-modified\"] !== undefined) {\n contents.LastModified = new Date(output.headers[\"last-modified\"]);\n }\n if (output.headers[\"content-length\"] !== undefined) {\n contents.ContentLength = parseInt(output.headers[\"content-length\"], 10);\n }\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n if (output.headers[\"x-amz-missing-meta\"] !== undefined) {\n contents.MissingMeta = parseInt(output.headers[\"x-amz-missing-meta\"], 10);\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"cache-control\"] !== undefined) {\n contents.CacheControl = output.headers[\"cache-control\"];\n }\n if (output.headers[\"content-disposition\"] !== undefined) {\n contents.ContentDisposition = output.headers[\"content-disposition\"];\n }\n if (output.headers[\"content-encoding\"] !== undefined) {\n contents.ContentEncoding = output.headers[\"content-encoding\"];\n }\n if (output.headers[\"content-language\"] !== undefined) {\n contents.ContentLanguage = output.headers[\"content-language\"];\n }\n if (output.headers[\"content-type\"] !== undefined) {\n contents.ContentType = output.headers[\"content-type\"];\n }\n if (output.headers[\"expires\"] !== undefined) {\n contents.Expires = new Date(output.headers[\"expires\"]);\n }\n if (output.headers[\"x-amz-website-redirect-location\"] !== undefined) {\n contents.WebsiteRedirectLocation = output.headers[\"x-amz-website-redirect-location\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-storage-class\"] !== undefined) {\n contents.StorageClass = output.headers[\"x-amz-storage-class\"];\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n if (output.headers[\"x-amz-replication-status\"] !== undefined) {\n contents.ReplicationStatus = output.headers[\"x-amz-replication-status\"];\n }\n if (output.headers[\"x-amz-mp-parts-count\"] !== undefined) {\n contents.PartsCount = parseInt(output.headers[\"x-amz-mp-parts-count\"], 10);\n }\n if (output.headers[\"x-amz-object-lock-mode\"] !== undefined) {\n contents.ObjectLockMode = output.headers[\"x-amz-object-lock-mode\"];\n }\n if (output.headers[\"x-amz-object-lock-retain-until-date\"] !== undefined) {\n contents.ObjectLockRetainUntilDate = new Date(output.headers[\"x-amz-object-lock-retain-until-date\"]);\n }\n if (output.headers[\"x-amz-object-lock-legal-hold\"] !== undefined) {\n contents.ObjectLockLegalHoldStatus = output.headers[\"x-amz-object-lock-legal-hold\"];\n }\n Object.keys(output.headers).forEach(function (header) {\n if (contents.Metadata === undefined) {\n contents.Metadata = {};\n }\n if (header.startsWith(\"x-amz-meta-\")) {\n contents.Metadata[header.substring(11)] = output.headers[header];\n }\n });\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlHeadObjectCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchKey\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchKey\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListBucketAnalyticsConfigurationsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListBucketAnalyticsConfigurationsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AnalyticsConfigurationList: undefined,\n ContinuationToken: undefined,\n IsTruncated: undefined,\n NextContinuationToken: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.AnalyticsConfiguration === \"\") {\n contents.AnalyticsConfigurationList = [];\n }\n if (data[\"AnalyticsConfiguration\"] !== undefined) {\n contents.AnalyticsConfigurationList = deserializeAws_restXmlAnalyticsConfigurationList(__getArrayIfSingleItem(data[\"AnalyticsConfiguration\"]), context);\n }\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketAnalyticsConfigurationsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ContinuationToken: undefined,\n IntelligentTieringConfigurationList: undefined,\n IsTruncated: undefined,\n NextContinuationToken: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data.IntelligentTieringConfiguration === \"\") {\n contents.IntelligentTieringConfigurationList = [];\n }\n if (data[\"IntelligentTieringConfiguration\"] !== undefined) {\n contents.IntelligentTieringConfigurationList = deserializeAws_restXmlIntelligentTieringConfigurationList(__getArrayIfSingleItem(data[\"IntelligentTieringConfiguration\"]), context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListBucketInventoryConfigurationsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListBucketInventoryConfigurationsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ContinuationToken: undefined,\n InventoryConfigurationList: undefined,\n IsTruncated: undefined,\n NextContinuationToken: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data.InventoryConfiguration === \"\") {\n contents.InventoryConfigurationList = [];\n }\n if (data[\"InventoryConfiguration\"] !== undefined) {\n contents.InventoryConfigurationList = deserializeAws_restXmlInventoryConfigurationList(__getArrayIfSingleItem(data[\"InventoryConfiguration\"]), context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketInventoryConfigurationsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListBucketMetricsConfigurationsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListBucketMetricsConfigurationsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ContinuationToken: undefined,\n IsTruncated: undefined,\n MetricsConfigurationList: undefined,\n NextContinuationToken: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data.MetricsConfiguration === \"\") {\n contents.MetricsConfigurationList = [];\n }\n if (data[\"MetricsConfiguration\"] !== undefined) {\n contents.MetricsConfigurationList = deserializeAws_restXmlMetricsConfigurationList(__getArrayIfSingleItem(data[\"MetricsConfiguration\"]), context);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketMetricsConfigurationsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListBucketsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListBucketsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Buckets: undefined,\n Owner: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.Buckets === \"\") {\n contents.Buckets = [];\n }\n if (data[\"Buckets\"] !== undefined && data[\"Buckets\"][\"Bucket\"] !== undefined) {\n contents.Buckets = deserializeAws_restXmlBuckets(__getArrayIfSingleItem(data[\"Buckets\"][\"Bucket\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListMultipartUploadsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListMultipartUploadsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Bucket: undefined,\n CommonPrefixes: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n KeyMarker: undefined,\n MaxUploads: undefined,\n NextKeyMarker: undefined,\n NextUploadIdMarker: undefined,\n Prefix: undefined,\n UploadIdMarker: undefined,\n Uploads: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = data[\"Bucket\"];\n }\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = data[\"Delimiter\"];\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = data[\"EncodingType\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"KeyMarker\"] !== undefined) {\n contents.KeyMarker = data[\"KeyMarker\"];\n }\n if (data[\"MaxUploads\"] !== undefined) {\n contents.MaxUploads = parseInt(data[\"MaxUploads\"]);\n }\n if (data[\"NextKeyMarker\"] !== undefined) {\n contents.NextKeyMarker = data[\"NextKeyMarker\"];\n }\n if (data[\"NextUploadIdMarker\"] !== undefined) {\n contents.NextUploadIdMarker = data[\"NextUploadIdMarker\"];\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = data[\"Prefix\"];\n }\n if (data[\"UploadIdMarker\"] !== undefined) {\n contents.UploadIdMarker = data[\"UploadIdMarker\"];\n }\n if (data.Upload === \"\") {\n contents.Uploads = [];\n }\n if (data[\"Upload\"] !== undefined) {\n contents.Uploads = deserializeAws_restXmlMultipartUploadList(__getArrayIfSingleItem(data[\"Upload\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListMultipartUploadsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListObjectsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListObjectsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n CommonPrefixes: undefined,\n Contents: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n Marker: undefined,\n MaxKeys: undefined,\n Name: undefined,\n NextMarker: undefined,\n Prefix: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.Contents === \"\") {\n contents.Contents = [];\n }\n if (data[\"Contents\"] !== undefined) {\n contents.Contents = deserializeAws_restXmlObjectList(__getArrayIfSingleItem(data[\"Contents\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = data[\"Delimiter\"];\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = data[\"EncodingType\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"Marker\"] !== undefined) {\n contents.Marker = data[\"Marker\"];\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = parseInt(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = data[\"Name\"];\n }\n if (data[\"NextMarker\"] !== undefined) {\n contents.NextMarker = data[\"NextMarker\"];\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = data[\"Prefix\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListObjectsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchBucket\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchBucket\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchBucketResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListObjectsV2Command = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListObjectsV2CommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n CommonPrefixes: undefined,\n Contents: undefined,\n ContinuationToken: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n KeyCount: undefined,\n MaxKeys: undefined,\n Name: undefined,\n NextContinuationToken: undefined,\n Prefix: undefined,\n StartAfter: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.Contents === \"\") {\n contents.Contents = [];\n }\n if (data[\"Contents\"] !== undefined) {\n contents.Contents = deserializeAws_restXmlObjectList(__getArrayIfSingleItem(data[\"Contents\"]), context);\n }\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = data[\"Delimiter\"];\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = data[\"EncodingType\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"KeyCount\"] !== undefined) {\n contents.KeyCount = parseInt(data[\"KeyCount\"]);\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = parseInt(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = data[\"Name\"];\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = data[\"Prefix\"];\n }\n if (data[\"StartAfter\"] !== undefined) {\n contents.StartAfter = data[\"StartAfter\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListObjectsV2CommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchBucket\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchBucket\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchBucketResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListObjectVersionsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListObjectVersionsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n CommonPrefixes: undefined,\n DeleteMarkers: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n KeyMarker: undefined,\n MaxKeys: undefined,\n Name: undefined,\n NextKeyMarker: undefined,\n NextVersionIdMarker: undefined,\n Prefix: undefined,\n VersionIdMarker: undefined,\n Versions: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.DeleteMarker === \"\") {\n contents.DeleteMarkers = [];\n }\n if (data[\"DeleteMarker\"] !== undefined) {\n contents.DeleteMarkers = deserializeAws_restXmlDeleteMarkers(__getArrayIfSingleItem(data[\"DeleteMarker\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = data[\"Delimiter\"];\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = data[\"EncodingType\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"KeyMarker\"] !== undefined) {\n contents.KeyMarker = data[\"KeyMarker\"];\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = parseInt(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = data[\"Name\"];\n }\n if (data[\"NextKeyMarker\"] !== undefined) {\n contents.NextKeyMarker = data[\"NextKeyMarker\"];\n }\n if (data[\"NextVersionIdMarker\"] !== undefined) {\n contents.NextVersionIdMarker = data[\"NextVersionIdMarker\"];\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = data[\"Prefix\"];\n }\n if (data[\"VersionIdMarker\"] !== undefined) {\n contents.VersionIdMarker = data[\"VersionIdMarker\"];\n }\n if (data.Version === \"\") {\n contents.Versions = [];\n }\n if (data[\"Version\"] !== undefined) {\n contents.Versions = deserializeAws_restXmlObjectVersionList(__getArrayIfSingleItem(data[\"Version\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListObjectVersionsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListPartsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListPartsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AbortDate: undefined,\n AbortRuleId: undefined,\n Bucket: undefined,\n Initiator: undefined,\n IsTruncated: undefined,\n Key: undefined,\n MaxParts: undefined,\n NextPartNumberMarker: undefined,\n Owner: undefined,\n PartNumberMarker: undefined,\n Parts: undefined,\n RequestCharged: undefined,\n StorageClass: undefined,\n UploadId: undefined,\n };\n if (output.headers[\"x-amz-abort-date\"] !== undefined) {\n contents.AbortDate = new Date(output.headers[\"x-amz-abort-date\"]);\n }\n if (output.headers[\"x-amz-abort-rule-id\"] !== undefined) {\n contents.AbortRuleId = output.headers[\"x-amz-abort-rule-id\"];\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = data[\"Bucket\"];\n }\n if (data[\"Initiator\"] !== undefined) {\n contents.Initiator = deserializeAws_restXmlInitiator(data[\"Initiator\"], context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = data[\"Key\"];\n }\n if (data[\"MaxParts\"] !== undefined) {\n contents.MaxParts = parseInt(data[\"MaxParts\"]);\n }\n if (data[\"NextPartNumberMarker\"] !== undefined) {\n contents.NextPartNumberMarker = data[\"NextPartNumberMarker\"];\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n if (data[\"PartNumberMarker\"] !== undefined) {\n contents.PartNumberMarker = data[\"PartNumberMarker\"];\n }\n if (data.Part === \"\") {\n contents.Parts = [];\n }\n if (data[\"Part\"] !== undefined) {\n contents.Parts = deserializeAws_restXmlParts(__getArrayIfSingleItem(data[\"Part\"]), context);\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = data[\"StorageClass\"];\n }\n if (data[\"UploadId\"] !== undefined) {\n contents.UploadId = data[\"UploadId\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListPartsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketAccelerateConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketAccelerateConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketAccelerateConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketAclCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketAclCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketAclCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketAnalyticsConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketAnalyticsConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketAnalyticsConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketCorsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketCorsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketCorsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketEncryptionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketEncryptionCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketEncryptionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketInventoryConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketInventoryConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketInventoryConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketLifecycleConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketLifecycleConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketLifecycleConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketLoggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketLoggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketLoggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketMetricsConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketMetricsConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketMetricsConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketNotificationConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketNotificationConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketNotificationConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketOwnershipControlsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketOwnershipControlsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketOwnershipControlsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketPolicyCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketPolicyCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketPolicyCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketReplicationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketReplicationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketReplicationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketRequestPaymentCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketRequestPaymentCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketRequestPaymentCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketTaggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketTaggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketVersioningCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketVersioningCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketVersioningCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketWebsiteCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketWebsiteCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketWebsiteCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutObjectCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n ETag: undefined,\n Expiration: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSEncryptionContext: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-context\"] !== undefined) {\n contents.SSEKMSEncryptionContext = output.headers[\"x-amz-server-side-encryption-context\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutObjectCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutObjectAclCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutObjectAclCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutObjectAclCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchKey\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchKey\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutObjectLegalHoldCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutObjectLegalHoldCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutObjectLegalHoldCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutObjectLockConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutObjectLockConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutObjectLockConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutObjectRetentionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutObjectRetentionCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutObjectRetentionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutObjectTaggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutObjectTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutObjectTaggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutPublicAccessBlockCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutPublicAccessBlockCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutPublicAccessBlockCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlRestoreObjectCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlRestoreObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n RestoreOutputPath: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n if (output.headers[\"x-amz-restore-output-path\"] !== undefined) {\n contents.RestoreOutputPath = output.headers[\"x-amz-restore-output-path\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlRestoreObjectCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ObjectAlreadyInActiveTierError\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#ObjectAlreadyInActiveTierError\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlObjectAlreadyInActiveTierErrorResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlSelectObjectContentCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlSelectObjectContentCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Payload: undefined,\n };\n data = context.eventStreamMarshaller.deserialize(output.body, function (event) { return __awaiter(void 0, void 0, void 0, function () {\n var eventName, eventHeaders, eventMessage, parsedEvent;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n eventName = Object.keys(event)[0];\n eventHeaders = Object.entries(event[eventName].headers).reduce(function (accummulator, curr) {\n accummulator[curr[0]] = curr[1].value;\n return accummulator;\n }, {});\n eventMessage = {\n headers: eventHeaders,\n body: event[eventName].body,\n };\n parsedEvent = (_a = {},\n _a[eventName] = eventMessage,\n _a);\n return [4 /*yield*/, deserializeAws_restXmlSelectObjectContentEventStream_event(parsedEvent, context)];\n case 1: return [2 /*return*/, _b.sent()];\n }\n });\n }); });\n contents.Payload = data;\n return [2 /*return*/, Promise.resolve(contents)];\n });\n}); };\nvar deserializeAws_restXmlSelectObjectContentCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlUploadPartCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlUploadPartCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n ETag: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n };\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlUploadPartCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlUploadPartCopyCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlUploadPartCopyCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n CopyPartResult: undefined,\n CopySourceVersionId: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n };\n if (output.headers[\"x-amz-copy-source-version-id\"] !== undefined) {\n contents.CopySourceVersionId = output.headers[\"x-amz-copy-source-version-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.CopyPartResult = deserializeAws_restXmlCopyPartResult(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlUploadPartCopyCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nvar deserializeAws_restXmlSelectObjectContentEventStream_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, _b, _c, _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (!(output[\"Records\"] !== undefined)) return [3 /*break*/, 2];\n _a = {};\n return [4 /*yield*/, deserializeAws_restXmlRecordsEvent_event(output[\"Records\"], context)];\n case 1: return [2 /*return*/, (_a.Records = _f.sent(),\n _a)];\n case 2:\n if (!(output[\"Stats\"] !== undefined)) return [3 /*break*/, 4];\n _b = {};\n return [4 /*yield*/, deserializeAws_restXmlStatsEvent_event(output[\"Stats\"], context)];\n case 3: return [2 /*return*/, (_b.Stats = _f.sent(),\n _b)];\n case 4:\n if (!(output[\"Progress\"] !== undefined)) return [3 /*break*/, 6];\n _c = {};\n return [4 /*yield*/, deserializeAws_restXmlProgressEvent_event(output[\"Progress\"], context)];\n case 5: return [2 /*return*/, (_c.Progress = _f.sent(),\n _c)];\n case 6:\n if (!(output[\"Cont\"] !== undefined)) return [3 /*break*/, 8];\n _d = {};\n return [4 /*yield*/, deserializeAws_restXmlContinuationEvent_event(output[\"Cont\"], context)];\n case 7: return [2 /*return*/, (_d.Cont = _f.sent(),\n _d)];\n case 8:\n if (!(output[\"End\"] !== undefined)) return [3 /*break*/, 10];\n _e = {};\n return [4 /*yield*/, deserializeAws_restXmlEndEvent_event(output[\"End\"], context)];\n case 9: return [2 /*return*/, (_e.End = _f.sent(),\n _e)];\n case 10: return [2 /*return*/, { $unknown: output }];\n }\n });\n}); };\nvar deserializeAws_restXmlContinuationEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n contents = {};\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlEndEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n contents = {};\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlProgressEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n contents = {};\n _a = contents;\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n _a.Details = _b.sent();\n return [2 /*return*/, contents];\n }\n });\n}); };\nvar deserializeAws_restXmlRecordsEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n contents = {};\n contents.Payload = output.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlStatsEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n contents = {};\n _a = contents;\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n _a.Details = _b.sent();\n return [2 /*return*/, contents];\n }\n });\n}); };\nvar deserializeAws_restXmlBucketAlreadyExistsResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"BucketAlreadyExists\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlBucketAlreadyOwnedByYouResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"BucketAlreadyOwnedByYou\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlInvalidObjectStateResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"InvalidObjectState\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n AccessTier: undefined,\n StorageClass: undefined,\n };\n data = parsedOutput.body;\n if (data[\"AccessTier\"] !== undefined) {\n contents.AccessTier = data[\"AccessTier\"];\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = data[\"StorageClass\"];\n }\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlNoSuchBucketResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"NoSuchBucket\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlNoSuchKeyResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"NoSuchKey\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlNoSuchUploadResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"NoSuchUpload\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlObjectAlreadyInActiveTierErrorResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"ObjectAlreadyInActiveTierError\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlObjectNotInActiveTierErrorResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"ObjectNotInActiveTierError\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar serializeAws_restXmlAbortIncompleteMultipartUpload = function (input, context) {\n var bodyNode = new __XmlNode(\"AbortIncompleteMultipartUpload\");\n if (input.DaysAfterInitiation !== undefined && input.DaysAfterInitiation !== null) {\n var node = new __XmlNode(\"DaysAfterInitiation\")\n .addChildNode(new __XmlText(String(input.DaysAfterInitiation)))\n .withName(\"DaysAfterInitiation\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAccelerateConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"AccelerateConfiguration\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"BucketAccelerateStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAccessControlPolicy = function (input, context) {\n var bodyNode = new __XmlNode(\"AccessControlPolicy\");\n if (input.Grants !== undefined && input.Grants !== null) {\n var nodes = serializeAws_restXmlGrants(input.Grants, context);\n var containerNode_1 = new __XmlNode(\"AccessControlList\");\n nodes.map(function (node) {\n containerNode_1.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_1);\n }\n if (input.Owner !== undefined && input.Owner !== null) {\n var node = serializeAws_restXmlOwner(input.Owner, context).withName(\"Owner\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAccessControlTranslation = function (input, context) {\n var bodyNode = new __XmlNode(\"AccessControlTranslation\");\n if (input.Owner !== undefined && input.Owner !== null) {\n var node = new __XmlNode(\"OwnerOverride\").addChildNode(new __XmlText(input.Owner)).withName(\"Owner\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAllowedHeaders = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = new __XmlNode(\"AllowedHeader\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlAllowedMethods = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = new __XmlNode(\"AllowedMethod\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlAllowedOrigins = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = new __XmlNode(\"AllowedOrigin\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlAnalyticsAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAnalyticsConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"AnalyticsId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlAnalyticsFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClassAnalysis !== undefined && input.StorageClassAnalysis !== null) {\n var node = serializeAws_restXmlStorageClassAnalysis(input.StorageClassAnalysis, context).withName(\"StorageClassAnalysis\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAnalyticsExportDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsExportDestination\");\n if (input.S3BucketDestination !== undefined && input.S3BucketDestination !== null) {\n var node = serializeAws_restXmlAnalyticsS3BucketDestination(input.S3BucketDestination, context).withName(\"S3BucketDestination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAnalyticsFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsFilter\");\n AnalyticsFilter.visit(input, {\n Prefix: function (value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function (value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function (value) {\n var node = serializeAws_restXmlAnalyticsAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function (name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nvar serializeAws_restXmlAnalyticsS3BucketDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsS3BucketDestination\");\n if (input.Format !== undefined && input.Format !== null) {\n var node = new __XmlNode(\"AnalyticsS3ExportFileFormat\")\n .addChildNode(new __XmlText(input.Format))\n .withName(\"Format\");\n bodyNode.addChildNode(node);\n }\n if (input.BucketAccountId !== undefined && input.BucketAccountId !== null) {\n var node = new __XmlNode(\"AccountId\")\n .addChildNode(new __XmlText(input.BucketAccountId))\n .withName(\"BucketAccountId\");\n bodyNode.addChildNode(node);\n }\n if (input.Bucket !== undefined && input.Bucket !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.Bucket)).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlBucketLifecycleConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"BucketLifecycleConfiguration\");\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlLifecycleRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlBucketLoggingStatus = function (input, context) {\n var bodyNode = new __XmlNode(\"BucketLoggingStatus\");\n if (input.LoggingEnabled !== undefined && input.LoggingEnabled !== null) {\n var node = serializeAws_restXmlLoggingEnabled(input.LoggingEnabled, context).withName(\"LoggingEnabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCompletedMultipartUpload = function (input, context) {\n var bodyNode = new __XmlNode(\"CompletedMultipartUpload\");\n if (input.Parts !== undefined && input.Parts !== null) {\n var nodes = serializeAws_restXmlCompletedPartList(input.Parts, context);\n nodes.map(function (node) {\n node = node.withName(\"Part\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCompletedPart = function (input, context) {\n var bodyNode = new __XmlNode(\"CompletedPart\");\n if (input.ETag !== undefined && input.ETag !== null) {\n var node = new __XmlNode(\"ETag\").addChildNode(new __XmlText(input.ETag)).withName(\"ETag\");\n bodyNode.addChildNode(node);\n }\n if (input.PartNumber !== undefined && input.PartNumber !== null) {\n var node = new __XmlNode(\"PartNumber\")\n .addChildNode(new __XmlText(String(input.PartNumber)))\n .withName(\"PartNumber\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCompletedPartList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlCompletedPart(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlCondition = function (input, context) {\n var bodyNode = new __XmlNode(\"Condition\");\n if (input.HttpErrorCodeReturnedEquals !== undefined && input.HttpErrorCodeReturnedEquals !== null) {\n var node = new __XmlNode(\"HttpErrorCodeReturnedEquals\")\n .addChildNode(new __XmlText(input.HttpErrorCodeReturnedEquals))\n .withName(\"HttpErrorCodeReturnedEquals\");\n bodyNode.addChildNode(node);\n }\n if (input.KeyPrefixEquals !== undefined && input.KeyPrefixEquals !== null) {\n var node = new __XmlNode(\"KeyPrefixEquals\")\n .addChildNode(new __XmlText(input.KeyPrefixEquals))\n .withName(\"KeyPrefixEquals\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCORSConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"CORSConfiguration\");\n if (input.CORSRules !== undefined && input.CORSRules !== null) {\n var nodes = serializeAws_restXmlCORSRules(input.CORSRules, context);\n nodes.map(function (node) {\n node = node.withName(\"CORSRule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCORSRule = function (input, context) {\n var bodyNode = new __XmlNode(\"CORSRule\");\n if (input.AllowedHeaders !== undefined && input.AllowedHeaders !== null) {\n var nodes = serializeAws_restXmlAllowedHeaders(input.AllowedHeaders, context);\n nodes.map(function (node) {\n node = node.withName(\"AllowedHeader\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AllowedMethods !== undefined && input.AllowedMethods !== null) {\n var nodes = serializeAws_restXmlAllowedMethods(input.AllowedMethods, context);\n nodes.map(function (node) {\n node = node.withName(\"AllowedMethod\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AllowedOrigins !== undefined && input.AllowedOrigins !== null) {\n var nodes = serializeAws_restXmlAllowedOrigins(input.AllowedOrigins, context);\n nodes.map(function (node) {\n node = node.withName(\"AllowedOrigin\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.ExposeHeaders !== undefined && input.ExposeHeaders !== null) {\n var nodes = serializeAws_restXmlExposeHeaders(input.ExposeHeaders, context);\n nodes.map(function (node) {\n node = node.withName(\"ExposeHeader\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.MaxAgeSeconds !== undefined && input.MaxAgeSeconds !== null) {\n var node = new __XmlNode(\"MaxAgeSeconds\")\n .addChildNode(new __XmlText(String(input.MaxAgeSeconds)))\n .withName(\"MaxAgeSeconds\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCORSRules = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlCORSRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlCreateBucketConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"CreateBucketConfiguration\");\n if (input.LocationConstraint !== undefined && input.LocationConstraint !== null) {\n var node = new __XmlNode(\"BucketLocationConstraint\")\n .addChildNode(new __XmlText(input.LocationConstraint))\n .withName(\"LocationConstraint\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCSVInput = function (input, context) {\n var bodyNode = new __XmlNode(\"CSVInput\");\n if (input.FileHeaderInfo !== undefined && input.FileHeaderInfo !== null) {\n var node = new __XmlNode(\"FileHeaderInfo\")\n .addChildNode(new __XmlText(input.FileHeaderInfo))\n .withName(\"FileHeaderInfo\");\n bodyNode.addChildNode(node);\n }\n if (input.Comments !== undefined && input.Comments !== null) {\n var node = new __XmlNode(\"Comments\").addChildNode(new __XmlText(input.Comments)).withName(\"Comments\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteEscapeCharacter !== undefined && input.QuoteEscapeCharacter !== null) {\n var node = new __XmlNode(\"QuoteEscapeCharacter\")\n .addChildNode(new __XmlText(input.QuoteEscapeCharacter))\n .withName(\"QuoteEscapeCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.RecordDelimiter !== undefined && input.RecordDelimiter !== null) {\n var node = new __XmlNode(\"RecordDelimiter\")\n .addChildNode(new __XmlText(input.RecordDelimiter))\n .withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.FieldDelimiter !== undefined && input.FieldDelimiter !== null) {\n var node = new __XmlNode(\"FieldDelimiter\")\n .addChildNode(new __XmlText(input.FieldDelimiter))\n .withName(\"FieldDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteCharacter !== undefined && input.QuoteCharacter !== null) {\n var node = new __XmlNode(\"QuoteCharacter\")\n .addChildNode(new __XmlText(input.QuoteCharacter))\n .withName(\"QuoteCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.AllowQuotedRecordDelimiter !== undefined && input.AllowQuotedRecordDelimiter !== null) {\n var node = new __XmlNode(\"AllowQuotedRecordDelimiter\")\n .addChildNode(new __XmlText(String(input.AllowQuotedRecordDelimiter)))\n .withName(\"AllowQuotedRecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCSVOutput = function (input, context) {\n var bodyNode = new __XmlNode(\"CSVOutput\");\n if (input.QuoteFields !== undefined && input.QuoteFields !== null) {\n var node = new __XmlNode(\"QuoteFields\").addChildNode(new __XmlText(input.QuoteFields)).withName(\"QuoteFields\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteEscapeCharacter !== undefined && input.QuoteEscapeCharacter !== null) {\n var node = new __XmlNode(\"QuoteEscapeCharacter\")\n .addChildNode(new __XmlText(input.QuoteEscapeCharacter))\n .withName(\"QuoteEscapeCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.RecordDelimiter !== undefined && input.RecordDelimiter !== null) {\n var node = new __XmlNode(\"RecordDelimiter\")\n .addChildNode(new __XmlText(input.RecordDelimiter))\n .withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.FieldDelimiter !== undefined && input.FieldDelimiter !== null) {\n var node = new __XmlNode(\"FieldDelimiter\")\n .addChildNode(new __XmlText(input.FieldDelimiter))\n .withName(\"FieldDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteCharacter !== undefined && input.QuoteCharacter !== null) {\n var node = new __XmlNode(\"QuoteCharacter\")\n .addChildNode(new __XmlText(input.QuoteCharacter))\n .withName(\"QuoteCharacter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlDefaultRetention = function (input, context) {\n var bodyNode = new __XmlNode(\"DefaultRetention\");\n if (input.Mode !== undefined && input.Mode !== null) {\n var node = new __XmlNode(\"ObjectLockRetentionMode\").addChildNode(new __XmlText(input.Mode)).withName(\"Mode\");\n bodyNode.addChildNode(node);\n }\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.Years !== undefined && input.Years !== null) {\n var node = new __XmlNode(\"Years\").addChildNode(new __XmlText(String(input.Years))).withName(\"Years\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlDelete = function (input, context) {\n var bodyNode = new __XmlNode(\"Delete\");\n if (input.Objects !== undefined && input.Objects !== null) {\n var nodes = serializeAws_restXmlObjectIdentifierList(input.Objects, context);\n nodes.map(function (node) {\n node = node.withName(\"Object\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Quiet !== undefined && input.Quiet !== null) {\n var node = new __XmlNode(\"Quiet\").addChildNode(new __XmlText(String(input.Quiet))).withName(\"Quiet\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlDeleteMarkerReplication = function (input, context) {\n var bodyNode = new __XmlNode(\"DeleteMarkerReplication\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"DeleteMarkerReplicationStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"Destination\");\n if (input.Bucket !== undefined && input.Bucket !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.Bucket)).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Account !== undefined && input.Account !== null) {\n var node = new __XmlNode(\"AccountId\").addChildNode(new __XmlText(input.Account)).withName(\"Account\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"StorageClass\").addChildNode(new __XmlText(input.StorageClass)).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessControlTranslation !== undefined && input.AccessControlTranslation !== null) {\n var node = serializeAws_restXmlAccessControlTranslation(input.AccessControlTranslation, context).withName(\"AccessControlTranslation\");\n bodyNode.addChildNode(node);\n }\n if (input.EncryptionConfiguration !== undefined && input.EncryptionConfiguration !== null) {\n var node = serializeAws_restXmlEncryptionConfiguration(input.EncryptionConfiguration, context).withName(\"EncryptionConfiguration\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplicationTime !== undefined && input.ReplicationTime !== null) {\n var node = serializeAws_restXmlReplicationTime(input.ReplicationTime, context).withName(\"ReplicationTime\");\n bodyNode.addChildNode(node);\n }\n if (input.Metrics !== undefined && input.Metrics !== null) {\n var node = serializeAws_restXmlMetrics(input.Metrics, context).withName(\"Metrics\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlEncryption = function (input, context) {\n var bodyNode = new __XmlNode(\"Encryption\");\n if (input.EncryptionType !== undefined && input.EncryptionType !== null) {\n var node = new __XmlNode(\"ServerSideEncryption\")\n .addChildNode(new __XmlText(input.EncryptionType))\n .withName(\"EncryptionType\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSKeyId !== undefined && input.KMSKeyId !== null) {\n var node = new __XmlNode(\"SSEKMSKeyId\").addChildNode(new __XmlText(input.KMSKeyId)).withName(\"KMSKeyId\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSContext !== undefined && input.KMSContext !== null) {\n var node = new __XmlNode(\"KMSContext\").addChildNode(new __XmlText(input.KMSContext)).withName(\"KMSContext\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlEncryptionConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"EncryptionConfiguration\");\n if (input.ReplicaKmsKeyID !== undefined && input.ReplicaKmsKeyID !== null) {\n var node = new __XmlNode(\"ReplicaKmsKeyID\")\n .addChildNode(new __XmlText(input.ReplicaKmsKeyID))\n .withName(\"ReplicaKmsKeyID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlErrorDocument = function (input, context) {\n var bodyNode = new __XmlNode(\"ErrorDocument\");\n if (input.Key !== undefined && input.Key !== null) {\n var node = new __XmlNode(\"ObjectKey\").addChildNode(new __XmlText(input.Key)).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlEventList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = new __XmlNode(\"Event\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlExistingObjectReplication = function (input, context) {\n var bodyNode = new __XmlNode(\"ExistingObjectReplication\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ExistingObjectReplicationStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlExposeHeaders = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = new __XmlNode(\"ExposeHeader\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlFilterRule = function (input, context) {\n var bodyNode = new __XmlNode(\"FilterRule\");\n if (input.Name !== undefined && input.Name !== null) {\n var node = new __XmlNode(\"FilterRuleName\").addChildNode(new __XmlText(input.Name)).withName(\"Name\");\n bodyNode.addChildNode(node);\n }\n if (input.Value !== undefined && input.Value !== null) {\n var node = new __XmlNode(\"FilterRuleValue\").addChildNode(new __XmlText(input.Value)).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlFilterRuleList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlFilterRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlGlacierJobParameters = function (input, context) {\n var bodyNode = new __XmlNode(\"GlacierJobParameters\");\n if (input.Tier !== undefined && input.Tier !== null) {\n var node = new __XmlNode(\"Tier\").addChildNode(new __XmlText(input.Tier)).withName(\"Tier\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlGrant = function (input, context) {\n var bodyNode = new __XmlNode(\"Grant\");\n if (input.Grantee !== undefined && input.Grantee !== null) {\n var node = serializeAws_restXmlGrantee(input.Grantee, context).withName(\"Grantee\");\n bodyNode.addChildNode(node);\n }\n if (input.Permission !== undefined && input.Permission !== null) {\n var node = new __XmlNode(\"Permission\").addChildNode(new __XmlText(input.Permission)).withName(\"Permission\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlGrantee = function (input, context) {\n var bodyNode = new __XmlNode(\"Grantee\");\n if (input.DisplayName !== undefined && input.DisplayName !== null) {\n var node = new __XmlNode(\"DisplayName\").addChildNode(new __XmlText(input.DisplayName)).withName(\"DisplayName\");\n bodyNode.addChildNode(node);\n }\n if (input.EmailAddress !== undefined && input.EmailAddress !== null) {\n var node = new __XmlNode(\"EmailAddress\").addChildNode(new __XmlText(input.EmailAddress)).withName(\"EmailAddress\");\n bodyNode.addChildNode(node);\n }\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.URI !== undefined && input.URI !== null) {\n var node = new __XmlNode(\"URI\").addChildNode(new __XmlText(input.URI)).withName(\"URI\");\n bodyNode.addChildNode(node);\n }\n if (input.Type !== undefined && input.Type !== null) {\n bodyNode.addAttribute(\"xsi:type\", input.Type);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlGrants = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlGrant(entry, context);\n return node.withName(\"Grant\");\n });\n};\nvar serializeAws_restXmlIndexDocument = function (input, context) {\n var bodyNode = new __XmlNode(\"IndexDocument\");\n if (input.Suffix !== undefined && input.Suffix !== null) {\n var node = new __XmlNode(\"Suffix\").addChildNode(new __XmlText(input.Suffix)).withName(\"Suffix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInputSerialization = function (input, context) {\n var bodyNode = new __XmlNode(\"InputSerialization\");\n if (input.CSV !== undefined && input.CSV !== null) {\n var node = serializeAws_restXmlCSVInput(input.CSV, context).withName(\"CSV\");\n bodyNode.addChildNode(node);\n }\n if (input.CompressionType !== undefined && input.CompressionType !== null) {\n var node = new __XmlNode(\"CompressionType\")\n .addChildNode(new __XmlText(input.CompressionType))\n .withName(\"CompressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.JSON !== undefined && input.JSON !== null) {\n var node = serializeAws_restXmlJSONInput(input.JSON, context).withName(\"JSON\");\n bodyNode.addChildNode(node);\n }\n if (input.Parquet !== undefined && input.Parquet !== null) {\n var node = serializeAws_restXmlParquetInput(input.Parquet, context).withName(\"Parquet\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlIntelligentTieringAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"IntelligentTieringAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlIntelligentTieringConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"IntelligentTieringConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"IntelligentTieringId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlIntelligentTieringFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"IntelligentTieringStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Tierings !== undefined && input.Tierings !== null) {\n var nodes = serializeAws_restXmlTieringList(input.Tierings, context);\n nodes.map(function (node) {\n node = node.withName(\"Tiering\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlIntelligentTieringFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"IntelligentTieringFilter\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tag !== undefined && input.Tag !== null) {\n var node = serializeAws_restXmlTag(input.Tag, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n }\n if (input.And !== undefined && input.And !== null) {\n var node = serializeAws_restXmlIntelligentTieringAndOperator(input.And, context).withName(\"And\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryConfiguration\");\n if (input.Destination !== undefined && input.Destination !== null) {\n var node = serializeAws_restXmlInventoryDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n if (input.IsEnabled !== undefined && input.IsEnabled !== null) {\n var node = new __XmlNode(\"IsEnabled\").addChildNode(new __XmlText(String(input.IsEnabled))).withName(\"IsEnabled\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlInventoryFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"InventoryId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.IncludedObjectVersions !== undefined && input.IncludedObjectVersions !== null) {\n var node = new __XmlNode(\"InventoryIncludedObjectVersions\")\n .addChildNode(new __XmlText(input.IncludedObjectVersions))\n .withName(\"IncludedObjectVersions\");\n bodyNode.addChildNode(node);\n }\n if (input.OptionalFields !== undefined && input.OptionalFields !== null) {\n var nodes = serializeAws_restXmlInventoryOptionalFields(input.OptionalFields, context);\n var containerNode_2 = new __XmlNode(\"OptionalFields\");\n nodes.map(function (node) {\n containerNode_2.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_2);\n }\n if (input.Schedule !== undefined && input.Schedule !== null) {\n var node = serializeAws_restXmlInventorySchedule(input.Schedule, context).withName(\"Schedule\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryDestination\");\n if (input.S3BucketDestination !== undefined && input.S3BucketDestination !== null) {\n var node = serializeAws_restXmlInventoryS3BucketDestination(input.S3BucketDestination, context).withName(\"S3BucketDestination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryEncryption = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryEncryption\");\n if (input.SSES3 !== undefined && input.SSES3 !== null) {\n var node = serializeAws_restXmlSSES3(input.SSES3, context).withName(\"SSE-S3\");\n bodyNode.addChildNode(node);\n }\n if (input.SSEKMS !== undefined && input.SSEKMS !== null) {\n var node = serializeAws_restXmlSSEKMS(input.SSEKMS, context).withName(\"SSE-KMS\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryFilter\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryOptionalFields = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = new __XmlNode(\"InventoryOptionalField\").addChildNode(new __XmlText(entry));\n return node.withName(\"Field\");\n });\n};\nvar serializeAws_restXmlInventoryS3BucketDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryS3BucketDestination\");\n if (input.AccountId !== undefined && input.AccountId !== null) {\n var node = new __XmlNode(\"AccountId\").addChildNode(new __XmlText(input.AccountId)).withName(\"AccountId\");\n bodyNode.addChildNode(node);\n }\n if (input.Bucket !== undefined && input.Bucket !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.Bucket)).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Format !== undefined && input.Format !== null) {\n var node = new __XmlNode(\"InventoryFormat\").addChildNode(new __XmlText(input.Format)).withName(\"Format\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Encryption !== undefined && input.Encryption !== null) {\n var node = serializeAws_restXmlInventoryEncryption(input.Encryption, context).withName(\"Encryption\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventorySchedule = function (input, context) {\n var bodyNode = new __XmlNode(\"InventorySchedule\");\n if (input.Frequency !== undefined && input.Frequency !== null) {\n var node = new __XmlNode(\"InventoryFrequency\").addChildNode(new __XmlText(input.Frequency)).withName(\"Frequency\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlJSONInput = function (input, context) {\n var bodyNode = new __XmlNode(\"JSONInput\");\n if (input.Type !== undefined && input.Type !== null) {\n var node = new __XmlNode(\"JSONType\").addChildNode(new __XmlText(input.Type)).withName(\"Type\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlJSONOutput = function (input, context) {\n var bodyNode = new __XmlNode(\"JSONOutput\");\n if (input.RecordDelimiter !== undefined && input.RecordDelimiter !== null) {\n var node = new __XmlNode(\"RecordDelimiter\")\n .addChildNode(new __XmlText(input.RecordDelimiter))\n .withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLambdaFunctionConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"LambdaFunctionConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"NotificationId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.LambdaFunctionArn !== undefined && input.LambdaFunctionArn !== null) {\n var node = new __XmlNode(\"LambdaFunctionArn\")\n .addChildNode(new __XmlText(input.LambdaFunctionArn))\n .withName(\"CloudFunction\");\n bodyNode.addChildNode(node);\n }\n if (input.Events !== undefined && input.Events !== null) {\n var nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map(function (node) {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLambdaFunctionConfigurationList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlLambdaFunctionConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlLifecycleExpiration = function (input, context) {\n var bodyNode = new __XmlNode(\"LifecycleExpiration\");\n if (input.Date !== undefined && input.Date !== null) {\n var node = new __XmlNode(\"Date\")\n .addChildNode(new __XmlText(input.Date.toISOString().split(\".\")[0] + \"Z\"))\n .withName(\"Date\");\n bodyNode.addChildNode(node);\n }\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpiredObjectDeleteMarker !== undefined && input.ExpiredObjectDeleteMarker !== null) {\n var node = new __XmlNode(\"ExpiredObjectDeleteMarker\")\n .addChildNode(new __XmlText(String(input.ExpiredObjectDeleteMarker)))\n .withName(\"ExpiredObjectDeleteMarker\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLifecycleRule = function (input, context) {\n var bodyNode = new __XmlNode(\"LifecycleRule\");\n if (input.Expiration !== undefined && input.Expiration !== null) {\n var node = serializeAws_restXmlLifecycleExpiration(input.Expiration, context).withName(\"Expiration\");\n bodyNode.addChildNode(node);\n }\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlLifecycleRuleFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ExpirationStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Transitions !== undefined && input.Transitions !== null) {\n var nodes = serializeAws_restXmlTransitionList(input.Transitions, context);\n nodes.map(function (node) {\n node = node.withName(\"Transition\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.NoncurrentVersionTransitions !== undefined && input.NoncurrentVersionTransitions !== null) {\n var nodes = serializeAws_restXmlNoncurrentVersionTransitionList(input.NoncurrentVersionTransitions, context);\n nodes.map(function (node) {\n node = node.withName(\"NoncurrentVersionTransition\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.NoncurrentVersionExpiration !== undefined && input.NoncurrentVersionExpiration !== null) {\n var node = serializeAws_restXmlNoncurrentVersionExpiration(input.NoncurrentVersionExpiration, context).withName(\"NoncurrentVersionExpiration\");\n bodyNode.addChildNode(node);\n }\n if (input.AbortIncompleteMultipartUpload !== undefined && input.AbortIncompleteMultipartUpload !== null) {\n var node = serializeAws_restXmlAbortIncompleteMultipartUpload(input.AbortIncompleteMultipartUpload, context).withName(\"AbortIncompleteMultipartUpload\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLifecycleRuleAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"LifecycleRuleAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLifecycleRuleFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"LifecycleRuleFilter\");\n LifecycleRuleFilter.visit(input, {\n Prefix: function (value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function (value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function (value) {\n var node = serializeAws_restXmlLifecycleRuleAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function (name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nvar serializeAws_restXmlLifecycleRules = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlLifecycleRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlLoggingEnabled = function (input, context) {\n var bodyNode = new __XmlNode(\"LoggingEnabled\");\n if (input.TargetBucket !== undefined && input.TargetBucket !== null) {\n var node = new __XmlNode(\"TargetBucket\").addChildNode(new __XmlText(input.TargetBucket)).withName(\"TargetBucket\");\n bodyNode.addChildNode(node);\n }\n if (input.TargetGrants !== undefined && input.TargetGrants !== null) {\n var nodes = serializeAws_restXmlTargetGrants(input.TargetGrants, context);\n var containerNode_3 = new __XmlNode(\"TargetGrants\");\n nodes.map(function (node) {\n containerNode_3.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_3);\n }\n if (input.TargetPrefix !== undefined && input.TargetPrefix !== null) {\n var node = new __XmlNode(\"TargetPrefix\").addChildNode(new __XmlText(input.TargetPrefix)).withName(\"TargetPrefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetadataEntry = function (input, context) {\n var bodyNode = new __XmlNode(\"MetadataEntry\");\n if (input.Name !== undefined && input.Name !== null) {\n var node = new __XmlNode(\"MetadataKey\").addChildNode(new __XmlText(input.Name)).withName(\"Name\");\n bodyNode.addChildNode(node);\n }\n if (input.Value !== undefined && input.Value !== null) {\n var node = new __XmlNode(\"MetadataValue\").addChildNode(new __XmlText(input.Value)).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetrics = function (input, context) {\n var bodyNode = new __XmlNode(\"Metrics\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"MetricsStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.EventThreshold !== undefined && input.EventThreshold !== null) {\n var node = serializeAws_restXmlReplicationTimeValue(input.EventThreshold, context).withName(\"EventThreshold\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetricsAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"MetricsAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetricsConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"MetricsConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"MetricsId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlMetricsFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetricsFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"MetricsFilter\");\n MetricsFilter.visit(input, {\n Prefix: function (value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function (value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function (value) {\n var node = serializeAws_restXmlMetricsAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function (name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nvar serializeAws_restXmlNoncurrentVersionExpiration = function (input, context) {\n var bodyNode = new __XmlNode(\"NoncurrentVersionExpiration\");\n if (input.NoncurrentDays !== undefined && input.NoncurrentDays !== null) {\n var node = new __XmlNode(\"Days\")\n .addChildNode(new __XmlText(String(input.NoncurrentDays)))\n .withName(\"NoncurrentDays\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlNoncurrentVersionTransition = function (input, context) {\n var bodyNode = new __XmlNode(\"NoncurrentVersionTransition\");\n if (input.NoncurrentDays !== undefined && input.NoncurrentDays !== null) {\n var node = new __XmlNode(\"Days\")\n .addChildNode(new __XmlText(String(input.NoncurrentDays)))\n .withName(\"NoncurrentDays\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"TransitionStorageClass\")\n .addChildNode(new __XmlText(input.StorageClass))\n .withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlNoncurrentVersionTransitionList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlNoncurrentVersionTransition(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlNotificationConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"NotificationConfiguration\");\n if (input.TopicConfigurations !== undefined && input.TopicConfigurations !== null) {\n var nodes = serializeAws_restXmlTopicConfigurationList(input.TopicConfigurations, context);\n nodes.map(function (node) {\n node = node.withName(\"TopicConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.QueueConfigurations !== undefined && input.QueueConfigurations !== null) {\n var nodes = serializeAws_restXmlQueueConfigurationList(input.QueueConfigurations, context);\n nodes.map(function (node) {\n node = node.withName(\"QueueConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.LambdaFunctionConfigurations !== undefined && input.LambdaFunctionConfigurations !== null) {\n var nodes = serializeAws_restXmlLambdaFunctionConfigurationList(input.LambdaFunctionConfigurations, context);\n nodes.map(function (node) {\n node = node.withName(\"CloudFunctionConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlNotificationConfigurationFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"NotificationConfigurationFilter\");\n if (input.Key !== undefined && input.Key !== null) {\n var node = serializeAws_restXmlS3KeyFilter(input.Key, context).withName(\"S3Key\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectIdentifier = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectIdentifier\");\n if (input.Key !== undefined && input.Key !== null) {\n var node = new __XmlNode(\"ObjectKey\").addChildNode(new __XmlText(input.Key)).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n if (input.VersionId !== undefined && input.VersionId !== null) {\n var node = new __XmlNode(\"ObjectVersionId\").addChildNode(new __XmlText(input.VersionId)).withName(\"VersionId\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectIdentifierList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlObjectIdentifier(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlObjectLockConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockConfiguration\");\n if (input.ObjectLockEnabled !== undefined && input.ObjectLockEnabled !== null) {\n var node = new __XmlNode(\"ObjectLockEnabled\")\n .addChildNode(new __XmlText(input.ObjectLockEnabled))\n .withName(\"ObjectLockEnabled\");\n bodyNode.addChildNode(node);\n }\n if (input.Rule !== undefined && input.Rule !== null) {\n var node = serializeAws_restXmlObjectLockRule(input.Rule, context).withName(\"Rule\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectLockLegalHold = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockLegalHold\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ObjectLockLegalHoldStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectLockRetention = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockRetention\");\n if (input.Mode !== undefined && input.Mode !== null) {\n var node = new __XmlNode(\"ObjectLockRetentionMode\").addChildNode(new __XmlText(input.Mode)).withName(\"Mode\");\n bodyNode.addChildNode(node);\n }\n if (input.RetainUntilDate !== undefined && input.RetainUntilDate !== null) {\n var node = new __XmlNode(\"Date\")\n .addChildNode(new __XmlText(input.RetainUntilDate.toISOString().split(\".\")[0] + \"Z\"))\n .withName(\"RetainUntilDate\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectLockRule = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockRule\");\n if (input.DefaultRetention !== undefined && input.DefaultRetention !== null) {\n var node = serializeAws_restXmlDefaultRetention(input.DefaultRetention, context).withName(\"DefaultRetention\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOutputLocation = function (input, context) {\n var bodyNode = new __XmlNode(\"OutputLocation\");\n if (input.S3 !== undefined && input.S3 !== null) {\n var node = serializeAws_restXmlS3Location(input.S3, context).withName(\"S3\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOutputSerialization = function (input, context) {\n var bodyNode = new __XmlNode(\"OutputSerialization\");\n if (input.CSV !== undefined && input.CSV !== null) {\n var node = serializeAws_restXmlCSVOutput(input.CSV, context).withName(\"CSV\");\n bodyNode.addChildNode(node);\n }\n if (input.JSON !== undefined && input.JSON !== null) {\n var node = serializeAws_restXmlJSONOutput(input.JSON, context).withName(\"JSON\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOwner = function (input, context) {\n var bodyNode = new __XmlNode(\"Owner\");\n if (input.DisplayName !== undefined && input.DisplayName !== null) {\n var node = new __XmlNode(\"DisplayName\").addChildNode(new __XmlText(input.DisplayName)).withName(\"DisplayName\");\n bodyNode.addChildNode(node);\n }\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOwnershipControls = function (input, context) {\n var bodyNode = new __XmlNode(\"OwnershipControls\");\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlOwnershipControlsRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOwnershipControlsRule = function (input, context) {\n var bodyNode = new __XmlNode(\"OwnershipControlsRule\");\n if (input.ObjectOwnership !== undefined && input.ObjectOwnership !== null) {\n var node = new __XmlNode(\"ObjectOwnership\")\n .addChildNode(new __XmlText(input.ObjectOwnership))\n .withName(\"ObjectOwnership\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOwnershipControlsRules = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlOwnershipControlsRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlParquetInput = function (input, context) {\n var bodyNode = new __XmlNode(\"ParquetInput\");\n return bodyNode;\n};\nvar serializeAws_restXmlPublicAccessBlockConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"PublicAccessBlockConfiguration\");\n if (input.BlockPublicAcls !== undefined && input.BlockPublicAcls !== null) {\n var node = new __XmlNode(\"Setting\")\n .addChildNode(new __XmlText(String(input.BlockPublicAcls)))\n .withName(\"BlockPublicAcls\");\n bodyNode.addChildNode(node);\n }\n if (input.IgnorePublicAcls !== undefined && input.IgnorePublicAcls !== null) {\n var node = new __XmlNode(\"Setting\")\n .addChildNode(new __XmlText(String(input.IgnorePublicAcls)))\n .withName(\"IgnorePublicAcls\");\n bodyNode.addChildNode(node);\n }\n if (input.BlockPublicPolicy !== undefined && input.BlockPublicPolicy !== null) {\n var node = new __XmlNode(\"Setting\")\n .addChildNode(new __XmlText(String(input.BlockPublicPolicy)))\n .withName(\"BlockPublicPolicy\");\n bodyNode.addChildNode(node);\n }\n if (input.RestrictPublicBuckets !== undefined && input.RestrictPublicBuckets !== null) {\n var node = new __XmlNode(\"Setting\")\n .addChildNode(new __XmlText(String(input.RestrictPublicBuckets)))\n .withName(\"RestrictPublicBuckets\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlQueueConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"QueueConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"NotificationId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.QueueArn !== undefined && input.QueueArn !== null) {\n var node = new __XmlNode(\"QueueArn\").addChildNode(new __XmlText(input.QueueArn)).withName(\"Queue\");\n bodyNode.addChildNode(node);\n }\n if (input.Events !== undefined && input.Events !== null) {\n var nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map(function (node) {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlQueueConfigurationList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlQueueConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlRedirect = function (input, context) {\n var bodyNode = new __XmlNode(\"Redirect\");\n if (input.HostName !== undefined && input.HostName !== null) {\n var node = new __XmlNode(\"HostName\").addChildNode(new __XmlText(input.HostName)).withName(\"HostName\");\n bodyNode.addChildNode(node);\n }\n if (input.HttpRedirectCode !== undefined && input.HttpRedirectCode !== null) {\n var node = new __XmlNode(\"HttpRedirectCode\")\n .addChildNode(new __XmlText(input.HttpRedirectCode))\n .withName(\"HttpRedirectCode\");\n bodyNode.addChildNode(node);\n }\n if (input.Protocol !== undefined && input.Protocol !== null) {\n var node = new __XmlNode(\"Protocol\").addChildNode(new __XmlText(input.Protocol)).withName(\"Protocol\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplaceKeyPrefixWith !== undefined && input.ReplaceKeyPrefixWith !== null) {\n var node = new __XmlNode(\"ReplaceKeyPrefixWith\")\n .addChildNode(new __XmlText(input.ReplaceKeyPrefixWith))\n .withName(\"ReplaceKeyPrefixWith\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplaceKeyWith !== undefined && input.ReplaceKeyWith !== null) {\n var node = new __XmlNode(\"ReplaceKeyWith\")\n .addChildNode(new __XmlText(input.ReplaceKeyWith))\n .withName(\"ReplaceKeyWith\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRedirectAllRequestsTo = function (input, context) {\n var bodyNode = new __XmlNode(\"RedirectAllRequestsTo\");\n if (input.HostName !== undefined && input.HostName !== null) {\n var node = new __XmlNode(\"HostName\").addChildNode(new __XmlText(input.HostName)).withName(\"HostName\");\n bodyNode.addChildNode(node);\n }\n if (input.Protocol !== undefined && input.Protocol !== null) {\n var node = new __XmlNode(\"Protocol\").addChildNode(new __XmlText(input.Protocol)).withName(\"Protocol\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicaModifications = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicaModifications\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ReplicaModificationsStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationConfiguration\");\n if (input.Role !== undefined && input.Role !== null) {\n var node = new __XmlNode(\"Role\").addChildNode(new __XmlText(input.Role)).withName(\"Role\");\n bodyNode.addChildNode(node);\n }\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlReplicationRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationRule = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationRule\");\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.Priority !== undefined && input.Priority !== null) {\n var node = new __XmlNode(\"Priority\").addChildNode(new __XmlText(String(input.Priority))).withName(\"Priority\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlReplicationRuleFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ReplicationRuleStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.SourceSelectionCriteria !== undefined && input.SourceSelectionCriteria !== null) {\n var node = serializeAws_restXmlSourceSelectionCriteria(input.SourceSelectionCriteria, context).withName(\"SourceSelectionCriteria\");\n bodyNode.addChildNode(node);\n }\n if (input.ExistingObjectReplication !== undefined && input.ExistingObjectReplication !== null) {\n var node = serializeAws_restXmlExistingObjectReplication(input.ExistingObjectReplication, context).withName(\"ExistingObjectReplication\");\n bodyNode.addChildNode(node);\n }\n if (input.Destination !== undefined && input.Destination !== null) {\n var node = serializeAws_restXmlDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n if (input.DeleteMarkerReplication !== undefined && input.DeleteMarkerReplication !== null) {\n var node = serializeAws_restXmlDeleteMarkerReplication(input.DeleteMarkerReplication, context).withName(\"DeleteMarkerReplication\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationRuleAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationRuleAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationRuleFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationRuleFilter\");\n ReplicationRuleFilter.visit(input, {\n Prefix: function (value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function (value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function (value) {\n var node = serializeAws_restXmlReplicationRuleAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function (name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationRules = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlReplicationRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlReplicationTime = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationTime\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ReplicationTimeStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Time !== undefined && input.Time !== null) {\n var node = serializeAws_restXmlReplicationTimeValue(input.Time, context).withName(\"Time\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationTimeValue = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationTimeValue\");\n if (input.Minutes !== undefined && input.Minutes !== null) {\n var node = new __XmlNode(\"Minutes\").addChildNode(new __XmlText(String(input.Minutes))).withName(\"Minutes\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRequestPaymentConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"RequestPaymentConfiguration\");\n if (input.Payer !== undefined && input.Payer !== null) {\n var node = new __XmlNode(\"Payer\").addChildNode(new __XmlText(input.Payer)).withName(\"Payer\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRequestProgress = function (input, context) {\n var bodyNode = new __XmlNode(\"RequestProgress\");\n if (input.Enabled !== undefined && input.Enabled !== null) {\n var node = new __XmlNode(\"EnableRequestProgress\")\n .addChildNode(new __XmlText(String(input.Enabled)))\n .withName(\"Enabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRestoreRequest = function (input, context) {\n var bodyNode = new __XmlNode(\"RestoreRequest\");\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.GlacierJobParameters !== undefined && input.GlacierJobParameters !== null) {\n var node = serializeAws_restXmlGlacierJobParameters(input.GlacierJobParameters, context).withName(\"GlacierJobParameters\");\n bodyNode.addChildNode(node);\n }\n if (input.Type !== undefined && input.Type !== null) {\n var node = new __XmlNode(\"RestoreRequestType\").addChildNode(new __XmlText(input.Type)).withName(\"Type\");\n bodyNode.addChildNode(node);\n }\n if (input.Tier !== undefined && input.Tier !== null) {\n var node = new __XmlNode(\"Tier\").addChildNode(new __XmlText(input.Tier)).withName(\"Tier\");\n bodyNode.addChildNode(node);\n }\n if (input.Description !== undefined && input.Description !== null) {\n var node = new __XmlNode(\"Description\").addChildNode(new __XmlText(input.Description)).withName(\"Description\");\n bodyNode.addChildNode(node);\n }\n if (input.SelectParameters !== undefined && input.SelectParameters !== null) {\n var node = serializeAws_restXmlSelectParameters(input.SelectParameters, context).withName(\"SelectParameters\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputLocation !== undefined && input.OutputLocation !== null) {\n var node = serializeAws_restXmlOutputLocation(input.OutputLocation, context).withName(\"OutputLocation\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRoutingRule = function (input, context) {\n var bodyNode = new __XmlNode(\"RoutingRule\");\n if (input.Condition !== undefined && input.Condition !== null) {\n var node = serializeAws_restXmlCondition(input.Condition, context).withName(\"Condition\");\n bodyNode.addChildNode(node);\n }\n if (input.Redirect !== undefined && input.Redirect !== null) {\n var node = serializeAws_restXmlRedirect(input.Redirect, context).withName(\"Redirect\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRoutingRules = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlRoutingRule(entry, context);\n return node.withName(\"RoutingRule\");\n });\n};\nvar serializeAws_restXmlS3KeyFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"S3KeyFilter\");\n if (input.FilterRules !== undefined && input.FilterRules !== null) {\n var nodes = serializeAws_restXmlFilterRuleList(input.FilterRules, context);\n nodes.map(function (node) {\n node = node.withName(\"FilterRule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlS3Location = function (input, context) {\n var bodyNode = new __XmlNode(\"S3Location\");\n if (input.BucketName !== undefined && input.BucketName !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.BucketName)).withName(\"BucketName\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"LocationPrefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Encryption !== undefined && input.Encryption !== null) {\n var node = serializeAws_restXmlEncryption(input.Encryption, context).withName(\"Encryption\");\n bodyNode.addChildNode(node);\n }\n if (input.CannedACL !== undefined && input.CannedACL !== null) {\n var node = new __XmlNode(\"ObjectCannedACL\").addChildNode(new __XmlText(input.CannedACL)).withName(\"CannedACL\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessControlList !== undefined && input.AccessControlList !== null) {\n var nodes = serializeAws_restXmlGrants(input.AccessControlList, context);\n var containerNode_4 = new __XmlNode(\"AccessControlList\");\n nodes.map(function (node) {\n containerNode_4.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_4);\n }\n if (input.Tagging !== undefined && input.Tagging !== null) {\n var node = serializeAws_restXmlTagging(input.Tagging, context).withName(\"Tagging\");\n bodyNode.addChildNode(node);\n }\n if (input.UserMetadata !== undefined && input.UserMetadata !== null) {\n var nodes = serializeAws_restXmlUserMetadata(input.UserMetadata, context);\n var containerNode_5 = new __XmlNode(\"UserMetadata\");\n nodes.map(function (node) {\n containerNode_5.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_5);\n }\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"StorageClass\").addChildNode(new __XmlText(input.StorageClass)).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlScanRange = function (input, context) {\n var bodyNode = new __XmlNode(\"ScanRange\");\n if (input.Start !== undefined && input.Start !== null) {\n var node = new __XmlNode(\"Start\").addChildNode(new __XmlText(String(input.Start))).withName(\"Start\");\n bodyNode.addChildNode(node);\n }\n if (input.End !== undefined && input.End !== null) {\n var node = new __XmlNode(\"End\").addChildNode(new __XmlText(String(input.End))).withName(\"End\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlSelectParameters = function (input, context) {\n var bodyNode = new __XmlNode(\"SelectParameters\");\n if (input.InputSerialization !== undefined && input.InputSerialization !== null) {\n var node = serializeAws_restXmlInputSerialization(input.InputSerialization, context).withName(\"InputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpressionType !== undefined && input.ExpressionType !== null) {\n var node = new __XmlNode(\"ExpressionType\")\n .addChildNode(new __XmlText(input.ExpressionType))\n .withName(\"ExpressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.Expression !== undefined && input.Expression !== null) {\n var node = new __XmlNode(\"Expression\").addChildNode(new __XmlText(input.Expression)).withName(\"Expression\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputSerialization !== undefined && input.OutputSerialization !== null) {\n var node = serializeAws_restXmlOutputSerialization(input.OutputSerialization, context).withName(\"OutputSerialization\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlServerSideEncryptionByDefault = function (input, context) {\n var bodyNode = new __XmlNode(\"ServerSideEncryptionByDefault\");\n if (input.SSEAlgorithm !== undefined && input.SSEAlgorithm !== null) {\n var node = new __XmlNode(\"ServerSideEncryption\")\n .addChildNode(new __XmlText(input.SSEAlgorithm))\n .withName(\"SSEAlgorithm\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSMasterKeyID !== undefined && input.KMSMasterKeyID !== null) {\n var node = new __XmlNode(\"SSEKMSKeyId\")\n .addChildNode(new __XmlText(input.KMSMasterKeyID))\n .withName(\"KMSMasterKeyID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlServerSideEncryptionConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"ServerSideEncryptionConfiguration\");\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlServerSideEncryptionRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlServerSideEncryptionRule = function (input, context) {\n var bodyNode = new __XmlNode(\"ServerSideEncryptionRule\");\n if (input.ApplyServerSideEncryptionByDefault !== undefined && input.ApplyServerSideEncryptionByDefault !== null) {\n var node = serializeAws_restXmlServerSideEncryptionByDefault(input.ApplyServerSideEncryptionByDefault, context).withName(\"ApplyServerSideEncryptionByDefault\");\n bodyNode.addChildNode(node);\n }\n if (input.BucketKeyEnabled !== undefined && input.BucketKeyEnabled !== null) {\n var node = new __XmlNode(\"BucketKeyEnabled\")\n .addChildNode(new __XmlText(String(input.BucketKeyEnabled)))\n .withName(\"BucketKeyEnabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlServerSideEncryptionRules = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlServerSideEncryptionRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlSourceSelectionCriteria = function (input, context) {\n var bodyNode = new __XmlNode(\"SourceSelectionCriteria\");\n if (input.SseKmsEncryptedObjects !== undefined && input.SseKmsEncryptedObjects !== null) {\n var node = serializeAws_restXmlSseKmsEncryptedObjects(input.SseKmsEncryptedObjects, context).withName(\"SseKmsEncryptedObjects\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplicaModifications !== undefined && input.ReplicaModifications !== null) {\n var node = serializeAws_restXmlReplicaModifications(input.ReplicaModifications, context).withName(\"ReplicaModifications\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlSSEKMS = function (input, context) {\n var bodyNode = new __XmlNode(\"SSE-KMS\");\n if (input.KeyId !== undefined && input.KeyId !== null) {\n var node = new __XmlNode(\"SSEKMSKeyId\").addChildNode(new __XmlText(input.KeyId)).withName(\"KeyId\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlSseKmsEncryptedObjects = function (input, context) {\n var bodyNode = new __XmlNode(\"SseKmsEncryptedObjects\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"SseKmsEncryptedObjectsStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlSSES3 = function (input, context) {\n var bodyNode = new __XmlNode(\"SSE-S3\");\n return bodyNode;\n};\nvar serializeAws_restXmlStorageClassAnalysis = function (input, context) {\n var bodyNode = new __XmlNode(\"StorageClassAnalysis\");\n if (input.DataExport !== undefined && input.DataExport !== null) {\n var node = serializeAws_restXmlStorageClassAnalysisDataExport(input.DataExport, context).withName(\"DataExport\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlStorageClassAnalysisDataExport = function (input, context) {\n var bodyNode = new __XmlNode(\"StorageClassAnalysisDataExport\");\n if (input.OutputSchemaVersion !== undefined && input.OutputSchemaVersion !== null) {\n var node = new __XmlNode(\"StorageClassAnalysisSchemaVersion\")\n .addChildNode(new __XmlText(input.OutputSchemaVersion))\n .withName(\"OutputSchemaVersion\");\n bodyNode.addChildNode(node);\n }\n if (input.Destination !== undefined && input.Destination !== null) {\n var node = serializeAws_restXmlAnalyticsExportDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTag = function (input, context) {\n var bodyNode = new __XmlNode(\"Tag\");\n if (input.Key !== undefined && input.Key !== null) {\n var node = new __XmlNode(\"ObjectKey\").addChildNode(new __XmlText(input.Key)).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n if (input.Value !== undefined && input.Value !== null) {\n var node = new __XmlNode(\"Value\").addChildNode(new __XmlText(input.Value)).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTagging = function (input, context) {\n var bodyNode = new __XmlNode(\"Tagging\");\n if (input.TagSet !== undefined && input.TagSet !== null) {\n var nodes = serializeAws_restXmlTagSet(input.TagSet, context);\n var containerNode_6 = new __XmlNode(\"TagSet\");\n nodes.map(function (node) {\n containerNode_6.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_6);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTagSet = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlTag(entry, context);\n return node.withName(\"Tag\");\n });\n};\nvar serializeAws_restXmlTargetGrant = function (input, context) {\n var bodyNode = new __XmlNode(\"TargetGrant\");\n if (input.Grantee !== undefined && input.Grantee !== null) {\n var node = serializeAws_restXmlGrantee(input.Grantee, context).withName(\"Grantee\");\n bodyNode.addChildNode(node);\n }\n if (input.Permission !== undefined && input.Permission !== null) {\n var node = new __XmlNode(\"BucketLogsPermission\")\n .addChildNode(new __XmlText(input.Permission))\n .withName(\"Permission\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTargetGrants = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlTargetGrant(entry, context);\n return node.withName(\"Grant\");\n });\n};\nvar serializeAws_restXmlTiering = function (input, context) {\n var bodyNode = new __XmlNode(\"Tiering\");\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"IntelligentTieringDays\")\n .addChildNode(new __XmlText(String(input.Days)))\n .withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessTier !== undefined && input.AccessTier !== null) {\n var node = new __XmlNode(\"IntelligentTieringAccessTier\")\n .addChildNode(new __XmlText(input.AccessTier))\n .withName(\"AccessTier\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTieringList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlTiering(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlTopicConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"TopicConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"NotificationId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.TopicArn !== undefined && input.TopicArn !== null) {\n var node = new __XmlNode(\"TopicArn\").addChildNode(new __XmlText(input.TopicArn)).withName(\"Topic\");\n bodyNode.addChildNode(node);\n }\n if (input.Events !== undefined && input.Events !== null) {\n var nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map(function (node) {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTopicConfigurationList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlTopicConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlTransition = function (input, context) {\n var bodyNode = new __XmlNode(\"Transition\");\n if (input.Date !== undefined && input.Date !== null) {\n var node = new __XmlNode(\"Date\")\n .addChildNode(new __XmlText(input.Date.toISOString().split(\".\")[0] + \"Z\"))\n .withName(\"Date\");\n bodyNode.addChildNode(node);\n }\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"TransitionStorageClass\")\n .addChildNode(new __XmlText(input.StorageClass))\n .withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTransitionList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlTransition(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlUserMetadata = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlMetadataEntry(entry, context);\n return node.withName(\"MetadataEntry\");\n });\n};\nvar serializeAws_restXmlVersioningConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"VersioningConfiguration\");\n if (input.MFADelete !== undefined && input.MFADelete !== null) {\n var node = new __XmlNode(\"MFADelete\").addChildNode(new __XmlText(input.MFADelete)).withName(\"MfaDelete\");\n bodyNode.addChildNode(node);\n }\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"BucketVersioningStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlWebsiteConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"WebsiteConfiguration\");\n if (input.ErrorDocument !== undefined && input.ErrorDocument !== null) {\n var node = serializeAws_restXmlErrorDocument(input.ErrorDocument, context).withName(\"ErrorDocument\");\n bodyNode.addChildNode(node);\n }\n if (input.IndexDocument !== undefined && input.IndexDocument !== null) {\n var node = serializeAws_restXmlIndexDocument(input.IndexDocument, context).withName(\"IndexDocument\");\n bodyNode.addChildNode(node);\n }\n if (input.RedirectAllRequestsTo !== undefined && input.RedirectAllRequestsTo !== null) {\n var node = serializeAws_restXmlRedirectAllRequestsTo(input.RedirectAllRequestsTo, context).withName(\"RedirectAllRequestsTo\");\n bodyNode.addChildNode(node);\n }\n if (input.RoutingRules !== undefined && input.RoutingRules !== null) {\n var nodes = serializeAws_restXmlRoutingRules(input.RoutingRules, context);\n var containerNode_7 = new __XmlNode(\"RoutingRules\");\n nodes.map(function (node) {\n containerNode_7.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_7);\n }\n return bodyNode;\n};\nvar deserializeAws_restXmlAbortIncompleteMultipartUpload = function (output, context) {\n var contents = {\n DaysAfterInitiation: undefined,\n };\n if (output[\"DaysAfterInitiation\"] !== undefined) {\n contents.DaysAfterInitiation = parseInt(output[\"DaysAfterInitiation\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlAccessControlTranslation = function (output, context) {\n var contents = {\n Owner: undefined,\n };\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = output[\"Owner\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlAllowedHeaders = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_restXmlAllowedMethods = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_restXmlAllowedOrigins = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_restXmlAnalyticsAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlAnalyticsConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n Filter: undefined,\n StorageClassAnalysis: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlAnalyticsFilter(output[\"Filter\"], context);\n }\n if (output[\"StorageClassAnalysis\"] !== undefined) {\n contents.StorageClassAnalysis = deserializeAws_restXmlStorageClassAnalysis(output[\"StorageClassAnalysis\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlAnalyticsConfigurationList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlAnalyticsConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlAnalyticsExportDestination = function (output, context) {\n var contents = {\n S3BucketDestination: undefined,\n };\n if (output[\"S3BucketDestination\"] !== undefined) {\n contents.S3BucketDestination = deserializeAws_restXmlAnalyticsS3BucketDestination(output[\"S3BucketDestination\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlAnalyticsFilter = function (output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: output[\"Prefix\"],\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlAnalyticsAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nvar deserializeAws_restXmlAnalyticsS3BucketDestination = function (output, context) {\n var contents = {\n Format: undefined,\n BucketAccountId: undefined,\n Bucket: undefined,\n Prefix: undefined,\n };\n if (output[\"Format\"] !== undefined) {\n contents.Format = output[\"Format\"];\n }\n if (output[\"BucketAccountId\"] !== undefined) {\n contents.BucketAccountId = output[\"BucketAccountId\"];\n }\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = output[\"Bucket\"];\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlBucket = function (output, context) {\n var contents = {\n Name: undefined,\n CreationDate: undefined,\n };\n if (output[\"Name\"] !== undefined) {\n contents.Name = output[\"Name\"];\n }\n if (output[\"CreationDate\"] !== undefined) {\n contents.CreationDate = new Date(output[\"CreationDate\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlBuckets = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlBucket(entry, context);\n });\n};\nvar deserializeAws_restXmlCommonPrefix = function (output, context) {\n var contents = {\n Prefix: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlCommonPrefixList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlCommonPrefix(entry, context);\n });\n};\nvar deserializeAws_restXmlCondition = function (output, context) {\n var contents = {\n HttpErrorCodeReturnedEquals: undefined,\n KeyPrefixEquals: undefined,\n };\n if (output[\"HttpErrorCodeReturnedEquals\"] !== undefined) {\n contents.HttpErrorCodeReturnedEquals = output[\"HttpErrorCodeReturnedEquals\"];\n }\n if (output[\"KeyPrefixEquals\"] !== undefined) {\n contents.KeyPrefixEquals = output[\"KeyPrefixEquals\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlCopyObjectResult = function (output, context) {\n var contents = {\n ETag: undefined,\n LastModified: undefined,\n };\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlCopyPartResult = function (output, context) {\n var contents = {\n ETag: undefined,\n LastModified: undefined,\n };\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlCORSRule = function (output, context) {\n var contents = {\n AllowedHeaders: undefined,\n AllowedMethods: undefined,\n AllowedOrigins: undefined,\n ExposeHeaders: undefined,\n MaxAgeSeconds: undefined,\n };\n if (output.AllowedHeader === \"\") {\n contents.AllowedHeaders = [];\n }\n if (output[\"AllowedHeader\"] !== undefined) {\n contents.AllowedHeaders = deserializeAws_restXmlAllowedHeaders(__getArrayIfSingleItem(output[\"AllowedHeader\"]), context);\n }\n if (output.AllowedMethod === \"\") {\n contents.AllowedMethods = [];\n }\n if (output[\"AllowedMethod\"] !== undefined) {\n contents.AllowedMethods = deserializeAws_restXmlAllowedMethods(__getArrayIfSingleItem(output[\"AllowedMethod\"]), context);\n }\n if (output.AllowedOrigin === \"\") {\n contents.AllowedOrigins = [];\n }\n if (output[\"AllowedOrigin\"] !== undefined) {\n contents.AllowedOrigins = deserializeAws_restXmlAllowedOrigins(__getArrayIfSingleItem(output[\"AllowedOrigin\"]), context);\n }\n if (output.ExposeHeader === \"\") {\n contents.ExposeHeaders = [];\n }\n if (output[\"ExposeHeader\"] !== undefined) {\n contents.ExposeHeaders = deserializeAws_restXmlExposeHeaders(__getArrayIfSingleItem(output[\"ExposeHeader\"]), context);\n }\n if (output[\"MaxAgeSeconds\"] !== undefined) {\n contents.MaxAgeSeconds = parseInt(output[\"MaxAgeSeconds\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlCORSRules = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlCORSRule(entry, context);\n });\n};\nvar deserializeAws_restXmlDefaultRetention = function (output, context) {\n var contents = {\n Mode: undefined,\n Days: undefined,\n Years: undefined,\n };\n if (output[\"Mode\"] !== undefined) {\n contents.Mode = output[\"Mode\"];\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n if (output[\"Years\"] !== undefined) {\n contents.Years = parseInt(output[\"Years\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlDeletedObject = function (output, context) {\n var contents = {\n Key: undefined,\n VersionId: undefined,\n DeleteMarker: undefined,\n DeleteMarkerVersionId: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = output[\"VersionId\"];\n }\n if (output[\"DeleteMarker\"] !== undefined) {\n contents.DeleteMarker = output[\"DeleteMarker\"] == \"true\";\n }\n if (output[\"DeleteMarkerVersionId\"] !== undefined) {\n contents.DeleteMarkerVersionId = output[\"DeleteMarkerVersionId\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlDeletedObjects = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlDeletedObject(entry, context);\n });\n};\nvar deserializeAws_restXmlDeleteMarkerEntry = function (output, context) {\n var contents = {\n Owner: undefined,\n Key: undefined,\n VersionId: undefined,\n IsLatest: undefined,\n LastModified: undefined,\n };\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = output[\"VersionId\"];\n }\n if (output[\"IsLatest\"] !== undefined) {\n contents.IsLatest = output[\"IsLatest\"] == \"true\";\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlDeleteMarkerReplication = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlDeleteMarkers = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlDeleteMarkerEntry(entry, context);\n });\n};\nvar deserializeAws_restXmlDestination = function (output, context) {\n var contents = {\n Bucket: undefined,\n Account: undefined,\n StorageClass: undefined,\n AccessControlTranslation: undefined,\n EncryptionConfiguration: undefined,\n ReplicationTime: undefined,\n Metrics: undefined,\n };\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = output[\"Bucket\"];\n }\n if (output[\"Account\"] !== undefined) {\n contents.Account = output[\"Account\"];\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n if (output[\"AccessControlTranslation\"] !== undefined) {\n contents.AccessControlTranslation = deserializeAws_restXmlAccessControlTranslation(output[\"AccessControlTranslation\"], context);\n }\n if (output[\"EncryptionConfiguration\"] !== undefined) {\n contents.EncryptionConfiguration = deserializeAws_restXmlEncryptionConfiguration(output[\"EncryptionConfiguration\"], context);\n }\n if (output[\"ReplicationTime\"] !== undefined) {\n contents.ReplicationTime = deserializeAws_restXmlReplicationTime(output[\"ReplicationTime\"], context);\n }\n if (output[\"Metrics\"] !== undefined) {\n contents.Metrics = deserializeAws_restXmlMetrics(output[\"Metrics\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlEncryptionConfiguration = function (output, context) {\n var contents = {\n ReplicaKmsKeyID: undefined,\n };\n if (output[\"ReplicaKmsKeyID\"] !== undefined) {\n contents.ReplicaKmsKeyID = output[\"ReplicaKmsKeyID\"];\n }\n return contents;\n};\nvar deserializeAws_restXml_Error = function (output, context) {\n var contents = {\n Key: undefined,\n VersionId: undefined,\n Code: undefined,\n Message: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = output[\"VersionId\"];\n }\n if (output[\"Code\"] !== undefined) {\n contents.Code = output[\"Code\"];\n }\n if (output[\"Message\"] !== undefined) {\n contents.Message = output[\"Message\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlErrorDocument = function (output, context) {\n var contents = {\n Key: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlErrors = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXml_Error(entry, context);\n });\n};\nvar deserializeAws_restXmlEventList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_restXmlExistingObjectReplication = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlExposeHeaders = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_restXmlFilterRule = function (output, context) {\n var contents = {\n Name: undefined,\n Value: undefined,\n };\n if (output[\"Name\"] !== undefined) {\n contents.Name = output[\"Name\"];\n }\n if (output[\"Value\"] !== undefined) {\n contents.Value = output[\"Value\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlFilterRuleList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlFilterRule(entry, context);\n });\n};\nvar deserializeAws_restXmlGrant = function (output, context) {\n var contents = {\n Grantee: undefined,\n Permission: undefined,\n };\n if (output[\"Grantee\"] !== undefined) {\n contents.Grantee = deserializeAws_restXmlGrantee(output[\"Grantee\"], context);\n }\n if (output[\"Permission\"] !== undefined) {\n contents.Permission = output[\"Permission\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlGrantee = function (output, context) {\n var contents = {\n DisplayName: undefined,\n EmailAddress: undefined,\n ID: undefined,\n URI: undefined,\n Type: undefined,\n };\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = output[\"DisplayName\"];\n }\n if (output[\"EmailAddress\"] !== undefined) {\n contents.EmailAddress = output[\"EmailAddress\"];\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n if (output[\"URI\"] !== undefined) {\n contents.URI = output[\"URI\"];\n }\n if (output[\"xsi:type\"] !== undefined) {\n contents.Type = output[\"xsi:type\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlGrants = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlGrant(entry, context);\n });\n};\nvar deserializeAws_restXmlIndexDocument = function (output, context) {\n var contents = {\n Suffix: undefined,\n };\n if (output[\"Suffix\"] !== undefined) {\n contents.Suffix = output[\"Suffix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlInitiator = function (output, context) {\n var contents = {\n ID: undefined,\n DisplayName: undefined,\n };\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = output[\"DisplayName\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlIntelligentTieringAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlIntelligentTieringConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n Filter: undefined,\n Status: undefined,\n Tierings: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlIntelligentTieringFilter(output[\"Filter\"], context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output.Tiering === \"\") {\n contents.Tierings = [];\n }\n if (output[\"Tiering\"] !== undefined) {\n contents.Tierings = deserializeAws_restXmlTieringList(__getArrayIfSingleItem(output[\"Tiering\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlIntelligentTieringConfigurationList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlIntelligentTieringConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlIntelligentTieringFilter = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tag: undefined,\n And: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tag = deserializeAws_restXmlTag(output[\"Tag\"], context);\n }\n if (output[\"And\"] !== undefined) {\n contents.And = deserializeAws_restXmlIntelligentTieringAndOperator(output[\"And\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryConfiguration = function (output, context) {\n var contents = {\n Destination: undefined,\n IsEnabled: undefined,\n Filter: undefined,\n Id: undefined,\n IncludedObjectVersions: undefined,\n OptionalFields: undefined,\n Schedule: undefined,\n };\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlInventoryDestination(output[\"Destination\"], context);\n }\n if (output[\"IsEnabled\"] !== undefined) {\n contents.IsEnabled = output[\"IsEnabled\"] == \"true\";\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlInventoryFilter(output[\"Filter\"], context);\n }\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"IncludedObjectVersions\"] !== undefined) {\n contents.IncludedObjectVersions = output[\"IncludedObjectVersions\"];\n }\n if (output.OptionalFields === \"\") {\n contents.OptionalFields = [];\n }\n if (output[\"OptionalFields\"] !== undefined && output[\"OptionalFields\"][\"Field\"] !== undefined) {\n contents.OptionalFields = deserializeAws_restXmlInventoryOptionalFields(__getArrayIfSingleItem(output[\"OptionalFields\"][\"Field\"]), context);\n }\n if (output[\"Schedule\"] !== undefined) {\n contents.Schedule = deserializeAws_restXmlInventorySchedule(output[\"Schedule\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryConfigurationList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlInventoryConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlInventoryDestination = function (output, context) {\n var contents = {\n S3BucketDestination: undefined,\n };\n if (output[\"S3BucketDestination\"] !== undefined) {\n contents.S3BucketDestination = deserializeAws_restXmlInventoryS3BucketDestination(output[\"S3BucketDestination\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryEncryption = function (output, context) {\n var contents = {\n SSES3: undefined,\n SSEKMS: undefined,\n };\n if (output[\"SSE-S3\"] !== undefined) {\n contents.SSES3 = deserializeAws_restXmlSSES3(output[\"SSE-S3\"], context);\n }\n if (output[\"SSE-KMS\"] !== undefined) {\n contents.SSEKMS = deserializeAws_restXmlSSEKMS(output[\"SSE-KMS\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryFilter = function (output, context) {\n var contents = {\n Prefix: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryOptionalFields = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_restXmlInventoryS3BucketDestination = function (output, context) {\n var contents = {\n AccountId: undefined,\n Bucket: undefined,\n Format: undefined,\n Prefix: undefined,\n Encryption: undefined,\n };\n if (output[\"AccountId\"] !== undefined) {\n contents.AccountId = output[\"AccountId\"];\n }\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = output[\"Bucket\"];\n }\n if (output[\"Format\"] !== undefined) {\n contents.Format = output[\"Format\"];\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output[\"Encryption\"] !== undefined) {\n contents.Encryption = deserializeAws_restXmlInventoryEncryption(output[\"Encryption\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventorySchedule = function (output, context) {\n var contents = {\n Frequency: undefined,\n };\n if (output[\"Frequency\"] !== undefined) {\n contents.Frequency = output[\"Frequency\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlLambdaFunctionConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n LambdaFunctionArn: undefined,\n Events: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"CloudFunction\"] !== undefined) {\n contents.LambdaFunctionArn = output[\"CloudFunction\"];\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlLambdaFunctionConfigurationList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlLambdaFunctionConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlLifecycleExpiration = function (output, context) {\n var contents = {\n Date: undefined,\n Days: undefined,\n ExpiredObjectDeleteMarker: undefined,\n };\n if (output[\"Date\"] !== undefined) {\n contents.Date = new Date(output[\"Date\"]);\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n if (output[\"ExpiredObjectDeleteMarker\"] !== undefined) {\n contents.ExpiredObjectDeleteMarker = output[\"ExpiredObjectDeleteMarker\"] == \"true\";\n }\n return contents;\n};\nvar deserializeAws_restXmlLifecycleRule = function (output, context) {\n var contents = {\n Expiration: undefined,\n ID: undefined,\n Prefix: undefined,\n Filter: undefined,\n Status: undefined,\n Transitions: undefined,\n NoncurrentVersionTransitions: undefined,\n NoncurrentVersionExpiration: undefined,\n AbortIncompleteMultipartUpload: undefined,\n };\n if (output[\"Expiration\"] !== undefined) {\n contents.Expiration = deserializeAws_restXmlLifecycleExpiration(output[\"Expiration\"], context);\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlLifecycleRuleFilter(output[\"Filter\"], context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output.Transition === \"\") {\n contents.Transitions = [];\n }\n if (output[\"Transition\"] !== undefined) {\n contents.Transitions = deserializeAws_restXmlTransitionList(__getArrayIfSingleItem(output[\"Transition\"]), context);\n }\n if (output.NoncurrentVersionTransition === \"\") {\n contents.NoncurrentVersionTransitions = [];\n }\n if (output[\"NoncurrentVersionTransition\"] !== undefined) {\n contents.NoncurrentVersionTransitions = deserializeAws_restXmlNoncurrentVersionTransitionList(__getArrayIfSingleItem(output[\"NoncurrentVersionTransition\"]), context);\n }\n if (output[\"NoncurrentVersionExpiration\"] !== undefined) {\n contents.NoncurrentVersionExpiration = deserializeAws_restXmlNoncurrentVersionExpiration(output[\"NoncurrentVersionExpiration\"], context);\n }\n if (output[\"AbortIncompleteMultipartUpload\"] !== undefined) {\n contents.AbortIncompleteMultipartUpload = deserializeAws_restXmlAbortIncompleteMultipartUpload(output[\"AbortIncompleteMultipartUpload\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlLifecycleRuleAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlLifecycleRuleFilter = function (output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: output[\"Prefix\"],\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlLifecycleRuleAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nvar deserializeAws_restXmlLifecycleRules = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlLifecycleRule(entry, context);\n });\n};\nvar deserializeAws_restXmlLoggingEnabled = function (output, context) {\n var contents = {\n TargetBucket: undefined,\n TargetGrants: undefined,\n TargetPrefix: undefined,\n };\n if (output[\"TargetBucket\"] !== undefined) {\n contents.TargetBucket = output[\"TargetBucket\"];\n }\n if (output.TargetGrants === \"\") {\n contents.TargetGrants = [];\n }\n if (output[\"TargetGrants\"] !== undefined && output[\"TargetGrants\"][\"Grant\"] !== undefined) {\n contents.TargetGrants = deserializeAws_restXmlTargetGrants(__getArrayIfSingleItem(output[\"TargetGrants\"][\"Grant\"]), context);\n }\n if (output[\"TargetPrefix\"] !== undefined) {\n contents.TargetPrefix = output[\"TargetPrefix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlMetrics = function (output, context) {\n var contents = {\n Status: undefined,\n EventThreshold: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output[\"EventThreshold\"] !== undefined) {\n contents.EventThreshold = deserializeAws_restXmlReplicationTimeValue(output[\"EventThreshold\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlMetricsAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlMetricsConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlMetricsFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlMetricsConfigurationList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlMetricsConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlMetricsFilter = function (output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: output[\"Prefix\"],\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlMetricsAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nvar deserializeAws_restXmlMultipartUpload = function (output, context) {\n var contents = {\n UploadId: undefined,\n Key: undefined,\n Initiated: undefined,\n StorageClass: undefined,\n Owner: undefined,\n Initiator: undefined,\n };\n if (output[\"UploadId\"] !== undefined) {\n contents.UploadId = output[\"UploadId\"];\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"Initiated\"] !== undefined) {\n contents.Initiated = new Date(output[\"Initiated\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n if (output[\"Initiator\"] !== undefined) {\n contents.Initiator = deserializeAws_restXmlInitiator(output[\"Initiator\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlMultipartUploadList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlMultipartUpload(entry, context);\n });\n};\nvar deserializeAws_restXmlNoncurrentVersionExpiration = function (output, context) {\n var contents = {\n NoncurrentDays: undefined,\n };\n if (output[\"NoncurrentDays\"] !== undefined) {\n contents.NoncurrentDays = parseInt(output[\"NoncurrentDays\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlNoncurrentVersionTransition = function (output, context) {\n var contents = {\n NoncurrentDays: undefined,\n StorageClass: undefined,\n };\n if (output[\"NoncurrentDays\"] !== undefined) {\n contents.NoncurrentDays = parseInt(output[\"NoncurrentDays\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlNoncurrentVersionTransitionList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlNoncurrentVersionTransition(entry, context);\n });\n};\nvar deserializeAws_restXmlNotificationConfigurationFilter = function (output, context) {\n var contents = {\n Key: undefined,\n };\n if (output[\"S3Key\"] !== undefined) {\n contents.Key = deserializeAws_restXmlS3KeyFilter(output[\"S3Key\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXml_Object = function (output, context) {\n var contents = {\n Key: undefined,\n LastModified: undefined,\n ETag: undefined,\n Size: undefined,\n StorageClass: undefined,\n Owner: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = parseInt(output[\"Size\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXml_Object(entry, context);\n });\n};\nvar deserializeAws_restXmlObjectLockConfiguration = function (output, context) {\n var contents = {\n ObjectLockEnabled: undefined,\n Rule: undefined,\n };\n if (output[\"ObjectLockEnabled\"] !== undefined) {\n contents.ObjectLockEnabled = output[\"ObjectLockEnabled\"];\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rule = deserializeAws_restXmlObjectLockRule(output[\"Rule\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectLockLegalHold = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectLockRetention = function (output, context) {\n var contents = {\n Mode: undefined,\n RetainUntilDate: undefined,\n };\n if (output[\"Mode\"] !== undefined) {\n contents.Mode = output[\"Mode\"];\n }\n if (output[\"RetainUntilDate\"] !== undefined) {\n contents.RetainUntilDate = new Date(output[\"RetainUntilDate\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectLockRule = function (output, context) {\n var contents = {\n DefaultRetention: undefined,\n };\n if (output[\"DefaultRetention\"] !== undefined) {\n contents.DefaultRetention = deserializeAws_restXmlDefaultRetention(output[\"DefaultRetention\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectVersion = function (output, context) {\n var contents = {\n ETag: undefined,\n Size: undefined,\n StorageClass: undefined,\n Key: undefined,\n VersionId: undefined,\n IsLatest: undefined,\n LastModified: undefined,\n Owner: undefined,\n };\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = parseInt(output[\"Size\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = output[\"VersionId\"];\n }\n if (output[\"IsLatest\"] !== undefined) {\n contents.IsLatest = output[\"IsLatest\"] == \"true\";\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectVersionList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlObjectVersion(entry, context);\n });\n};\nvar deserializeAws_restXmlOwner = function (output, context) {\n var contents = {\n DisplayName: undefined,\n ID: undefined,\n };\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = output[\"DisplayName\"];\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlOwnershipControls = function (output, context) {\n var contents = {\n Rules: undefined,\n };\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlOwnershipControlsRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlOwnershipControlsRule = function (output, context) {\n var contents = {\n ObjectOwnership: undefined,\n };\n if (output[\"ObjectOwnership\"] !== undefined) {\n contents.ObjectOwnership = output[\"ObjectOwnership\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlOwnershipControlsRules = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlOwnershipControlsRule(entry, context);\n });\n};\nvar deserializeAws_restXmlPart = function (output, context) {\n var contents = {\n PartNumber: undefined,\n LastModified: undefined,\n ETag: undefined,\n Size: undefined,\n };\n if (output[\"PartNumber\"] !== undefined) {\n contents.PartNumber = parseInt(output[\"PartNumber\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = parseInt(output[\"Size\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlParts = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlPart(entry, context);\n });\n};\nvar deserializeAws_restXmlPolicyStatus = function (output, context) {\n var contents = {\n IsPublic: undefined,\n };\n if (output[\"IsPublic\"] !== undefined) {\n contents.IsPublic = output[\"IsPublic\"] == \"true\";\n }\n return contents;\n};\nvar deserializeAws_restXmlPublicAccessBlockConfiguration = function (output, context) {\n var contents = {\n BlockPublicAcls: undefined,\n IgnorePublicAcls: undefined,\n BlockPublicPolicy: undefined,\n RestrictPublicBuckets: undefined,\n };\n if (output[\"BlockPublicAcls\"] !== undefined) {\n contents.BlockPublicAcls = output[\"BlockPublicAcls\"] == \"true\";\n }\n if (output[\"IgnorePublicAcls\"] !== undefined) {\n contents.IgnorePublicAcls = output[\"IgnorePublicAcls\"] == \"true\";\n }\n if (output[\"BlockPublicPolicy\"] !== undefined) {\n contents.BlockPublicPolicy = output[\"BlockPublicPolicy\"] == \"true\";\n }\n if (output[\"RestrictPublicBuckets\"] !== undefined) {\n contents.RestrictPublicBuckets = output[\"RestrictPublicBuckets\"] == \"true\";\n }\n return contents;\n};\nvar deserializeAws_restXmlQueueConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n QueueArn: undefined,\n Events: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Queue\"] !== undefined) {\n contents.QueueArn = output[\"Queue\"];\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlQueueConfigurationList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlQueueConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlRedirect = function (output, context) {\n var contents = {\n HostName: undefined,\n HttpRedirectCode: undefined,\n Protocol: undefined,\n ReplaceKeyPrefixWith: undefined,\n ReplaceKeyWith: undefined,\n };\n if (output[\"HostName\"] !== undefined) {\n contents.HostName = output[\"HostName\"];\n }\n if (output[\"HttpRedirectCode\"] !== undefined) {\n contents.HttpRedirectCode = output[\"HttpRedirectCode\"];\n }\n if (output[\"Protocol\"] !== undefined) {\n contents.Protocol = output[\"Protocol\"];\n }\n if (output[\"ReplaceKeyPrefixWith\"] !== undefined) {\n contents.ReplaceKeyPrefixWith = output[\"ReplaceKeyPrefixWith\"];\n }\n if (output[\"ReplaceKeyWith\"] !== undefined) {\n contents.ReplaceKeyWith = output[\"ReplaceKeyWith\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlRedirectAllRequestsTo = function (output, context) {\n var contents = {\n HostName: undefined,\n Protocol: undefined,\n };\n if (output[\"HostName\"] !== undefined) {\n contents.HostName = output[\"HostName\"];\n }\n if (output[\"Protocol\"] !== undefined) {\n contents.Protocol = output[\"Protocol\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicaModifications = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationConfiguration = function (output, context) {\n var contents = {\n Role: undefined,\n Rules: undefined,\n };\n if (output[\"Role\"] !== undefined) {\n contents.Role = output[\"Role\"];\n }\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlReplicationRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationRule = function (output, context) {\n var contents = {\n ID: undefined,\n Priority: undefined,\n Prefix: undefined,\n Filter: undefined,\n Status: undefined,\n SourceSelectionCriteria: undefined,\n ExistingObjectReplication: undefined,\n Destination: undefined,\n DeleteMarkerReplication: undefined,\n };\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n if (output[\"Priority\"] !== undefined) {\n contents.Priority = parseInt(output[\"Priority\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlReplicationRuleFilter(output[\"Filter\"], context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output[\"SourceSelectionCriteria\"] !== undefined) {\n contents.SourceSelectionCriteria = deserializeAws_restXmlSourceSelectionCriteria(output[\"SourceSelectionCriteria\"], context);\n }\n if (output[\"ExistingObjectReplication\"] !== undefined) {\n contents.ExistingObjectReplication = deserializeAws_restXmlExistingObjectReplication(output[\"ExistingObjectReplication\"], context);\n }\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlDestination(output[\"Destination\"], context);\n }\n if (output[\"DeleteMarkerReplication\"] !== undefined) {\n contents.DeleteMarkerReplication = deserializeAws_restXmlDeleteMarkerReplication(output[\"DeleteMarkerReplication\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationRuleAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationRuleFilter = function (output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: output[\"Prefix\"],\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlReplicationRuleAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nvar deserializeAws_restXmlReplicationRules = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlReplicationRule(entry, context);\n });\n};\nvar deserializeAws_restXmlReplicationTime = function (output, context) {\n var contents = {\n Status: undefined,\n Time: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output[\"Time\"] !== undefined) {\n contents.Time = deserializeAws_restXmlReplicationTimeValue(output[\"Time\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationTimeValue = function (output, context) {\n var contents = {\n Minutes: undefined,\n };\n if (output[\"Minutes\"] !== undefined) {\n contents.Minutes = parseInt(output[\"Minutes\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlRoutingRule = function (output, context) {\n var contents = {\n Condition: undefined,\n Redirect: undefined,\n };\n if (output[\"Condition\"] !== undefined) {\n contents.Condition = deserializeAws_restXmlCondition(output[\"Condition\"], context);\n }\n if (output[\"Redirect\"] !== undefined) {\n contents.Redirect = deserializeAws_restXmlRedirect(output[\"Redirect\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlRoutingRules = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlRoutingRule(entry, context);\n });\n};\nvar deserializeAws_restXmlS3KeyFilter = function (output, context) {\n var contents = {\n FilterRules: undefined,\n };\n if (output.FilterRule === \"\") {\n contents.FilterRules = [];\n }\n if (output[\"FilterRule\"] !== undefined) {\n contents.FilterRules = deserializeAws_restXmlFilterRuleList(__getArrayIfSingleItem(output[\"FilterRule\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlServerSideEncryptionByDefault = function (output, context) {\n var contents = {\n SSEAlgorithm: undefined,\n KMSMasterKeyID: undefined,\n };\n if (output[\"SSEAlgorithm\"] !== undefined) {\n contents.SSEAlgorithm = output[\"SSEAlgorithm\"];\n }\n if (output[\"KMSMasterKeyID\"] !== undefined) {\n contents.KMSMasterKeyID = output[\"KMSMasterKeyID\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlServerSideEncryptionConfiguration = function (output, context) {\n var contents = {\n Rules: undefined,\n };\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlServerSideEncryptionRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlServerSideEncryptionRule = function (output, context) {\n var contents = {\n ApplyServerSideEncryptionByDefault: undefined,\n BucketKeyEnabled: undefined,\n };\n if (output[\"ApplyServerSideEncryptionByDefault\"] !== undefined) {\n contents.ApplyServerSideEncryptionByDefault = deserializeAws_restXmlServerSideEncryptionByDefault(output[\"ApplyServerSideEncryptionByDefault\"], context);\n }\n if (output[\"BucketKeyEnabled\"] !== undefined) {\n contents.BucketKeyEnabled = output[\"BucketKeyEnabled\"] == \"true\";\n }\n return contents;\n};\nvar deserializeAws_restXmlServerSideEncryptionRules = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlServerSideEncryptionRule(entry, context);\n });\n};\nvar deserializeAws_restXmlSourceSelectionCriteria = function (output, context) {\n var contents = {\n SseKmsEncryptedObjects: undefined,\n ReplicaModifications: undefined,\n };\n if (output[\"SseKmsEncryptedObjects\"] !== undefined) {\n contents.SseKmsEncryptedObjects = deserializeAws_restXmlSseKmsEncryptedObjects(output[\"SseKmsEncryptedObjects\"], context);\n }\n if (output[\"ReplicaModifications\"] !== undefined) {\n contents.ReplicaModifications = deserializeAws_restXmlReplicaModifications(output[\"ReplicaModifications\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlSSEKMS = function (output, context) {\n var contents = {\n KeyId: undefined,\n };\n if (output[\"KeyId\"] !== undefined) {\n contents.KeyId = output[\"KeyId\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlSseKmsEncryptedObjects = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlSSES3 = function (output, context) {\n var contents = {};\n return contents;\n};\nvar deserializeAws_restXmlStorageClassAnalysis = function (output, context) {\n var contents = {\n DataExport: undefined,\n };\n if (output[\"DataExport\"] !== undefined) {\n contents.DataExport = deserializeAws_restXmlStorageClassAnalysisDataExport(output[\"DataExport\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlStorageClassAnalysisDataExport = function (output, context) {\n var contents = {\n OutputSchemaVersion: undefined,\n Destination: undefined,\n };\n if (output[\"OutputSchemaVersion\"] !== undefined) {\n contents.OutputSchemaVersion = output[\"OutputSchemaVersion\"];\n }\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlAnalyticsExportDestination(output[\"Destination\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlTag = function (output, context) {\n var contents = {\n Key: undefined,\n Value: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"Value\"] !== undefined) {\n contents.Value = output[\"Value\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlTagSet = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlTag(entry, context);\n });\n};\nvar deserializeAws_restXmlTargetGrant = function (output, context) {\n var contents = {\n Grantee: undefined,\n Permission: undefined,\n };\n if (output[\"Grantee\"] !== undefined) {\n contents.Grantee = deserializeAws_restXmlGrantee(output[\"Grantee\"], context);\n }\n if (output[\"Permission\"] !== undefined) {\n contents.Permission = output[\"Permission\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlTargetGrants = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlTargetGrant(entry, context);\n });\n};\nvar deserializeAws_restXmlTiering = function (output, context) {\n var contents = {\n Days: undefined,\n AccessTier: undefined,\n };\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n if (output[\"AccessTier\"] !== undefined) {\n contents.AccessTier = output[\"AccessTier\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlTieringList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlTiering(entry, context);\n });\n};\nvar deserializeAws_restXmlTopicConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n TopicArn: undefined,\n Events: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Topic\"] !== undefined) {\n contents.TopicArn = output[\"Topic\"];\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlTopicConfigurationList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlTopicConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlTransition = function (output, context) {\n var contents = {\n Date: undefined,\n Days: undefined,\n StorageClass: undefined,\n };\n if (output[\"Date\"] !== undefined) {\n contents.Date = new Date(output[\"Date\"]);\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlTransitionList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlTransition(entry, context);\n });\n};\nvar deserializeMetadata = function (output) {\n var _a;\n return ({\n httpStatusCode: output.statusCode,\n requestId: (_a = output.headers[\"x-amzn-requestid\"]) !== null && _a !== void 0 ? _a : output.headers[\"x-amzn-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n });\n};\n// Collect low-level response body stream to Uint8Array.\nvar collectBody = function (streamBody, context) {\n if (streamBody === void 0) { streamBody = new Uint8Array(); }\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\n// Encode Uint8Array data into string with utf-8.\nvar collectBodyString = function (streamBody, context) {\n return collectBody(streamBody, context).then(function (body) { return context.utf8Encoder(body); });\n};\nvar isSerializableHeaderValue = function (value) {\n return value !== undefined &&\n value !== null &&\n value !== \"\" &&\n (!Object.getOwnPropertyNames(value).includes(\"length\") || value.length != 0) &&\n (!Object.getOwnPropertyNames(value).includes(\"size\") || value.size != 0);\n};\nvar decodeEscapedXML = function (str) {\n return str\n .replace(/&/g, \"&\")\n .replace(/'/g, \"'\")\n .replace(/"/g, '\"')\n .replace(/>/g, \">\")\n .replace(/</g, \"<\");\n};\nvar parseBody = function (streamBody, context) {\n return collectBodyString(streamBody, context).then(function (encoded) {\n if (encoded.length) {\n var parsedObj = xmlParse(encoded, {\n attributeNamePrefix: \"\",\n ignoreAttributes: false,\n parseNodeValue: false,\n tagValueProcessor: function (val, tagName) { return decodeEscapedXML(val); },\n });\n var textNodeName = \"#text\";\n var key = Object.keys(parsedObj)[0];\n var parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return __getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n });\n};\nvar loadRestXmlErrorCode = function (output, data) {\n if (data.Code !== undefined) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n return \"\";\n};\n//# sourceMappingURL=Aws_restXml.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __read } from \"tslib\";\n/**\n * Validate whether a string is an ARN.\n */\nexport var validate = function (str) {\n return typeof str === \"string\" && str.indexOf(\"arn:\") === 0 && str.split(\":\").length >= 6;\n};\n/**\n * Parse an ARN string into structure with partition, service, region, accountId and resource values\n */\nexport var parse = function (arn) {\n var segments = arn.split(\":\");\n if (segments.length < 6 || segments[0] !== \"arn\")\n throw new Error(\"Malformed ARN\");\n var _a = __read(segments), \n //Skip \"arn\" literal\n partition = _a[1], service = _a[2], region = _a[3], accountId = _a[4], resource = _a.slice(5);\n return {\n partition: partition,\n service: service,\n region: region,\n accountId: accountId,\n resource: resource.join(\":\"),\n };\n};\n/**\n * Build an ARN with service, partition, region, accountId, and resources strings\n */\nexport var build = function (arnObject) {\n var _a = arnObject.partition, partition = _a === void 0 ? \"aws\" : _a, service = arnObject.service, region = arnObject.region, accountId = arnObject.accountId, resource = arnObject.resource;\n if ([service, region, accountId, resource].some(function (segment) { return typeof segment !== \"string\"; })) {\n throw new Error(\"Input ARN object is invalid\");\n }\n return \"arn:\" + partition + \":\" + service + \":\" + region + \":\" + accountId + \":\" + resource;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQU9BOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sUUFBUSxHQUFHLFVBQUMsR0FBUTtJQUMvQixPQUFBLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDO0FBQWxGLENBQWtGLENBQUM7QUFFckY7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxLQUFLLEdBQUcsVUFBQyxHQUFXO0lBQy9CLElBQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0UsSUFBQSxLQUFBLE9BUUYsUUFBUSxDQUFBO0lBTlYsb0JBQW9CO0lBQ3BCLFNBQVMsUUFBQSxFQUNULE9BQU8sUUFBQSxFQUNQLE1BQU0sUUFBQSxFQUNOLFNBQVMsUUFBQSxFQUNOLFFBQVEsY0FDRCxDQUFDO0lBRWIsT0FBTztRQUNMLFNBQVMsV0FBQTtRQUNULE9BQU8sU0FBQTtRQUNQLE1BQU0sUUFBQTtRQUNOLFNBQVMsV0FBQTtRQUNULFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztLQUM3QixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBSUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxLQUFLLEdBQUcsVUFBQyxTQUF1QjtJQUNuQyxJQUFBLEtBQTRELFNBQVMsVUFBcEQsRUFBakIsU0FBUyxtQkFBRyxLQUFLLEtBQUEsRUFBRSxPQUFPLEdBQWtDLFNBQVMsUUFBM0MsRUFBRSxNQUFNLEdBQTBCLFNBQVMsT0FBbkMsRUFBRSxTQUFTLEdBQWUsU0FBUyxVQUF4QixFQUFFLFFBQVEsR0FBSyxTQUFTLFNBQWQsQ0FBZTtJQUM5RSxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsT0FBTyxJQUFLLE9BQUEsT0FBTyxPQUFPLEtBQUssUUFBUSxFQUEzQixDQUEyQixDQUFDLEVBQUU7UUFDekYsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ2hEO0lBQ0QsT0FBTyxTQUFPLFNBQVMsU0FBSSxPQUFPLFNBQUksTUFBTSxTQUFJLFNBQVMsU0FBSSxRQUFVLENBQUM7QUFDMUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBUk4ge1xuICBwYXJ0aXRpb246IHN0cmluZztcbiAgc2VydmljZTogc3RyaW5nO1xuICByZWdpb246IHN0cmluZztcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIHJlc291cmNlOiBzdHJpbmc7XG59XG4vKipcbiAqIFZhbGlkYXRlIHdoZXRoZXIgYSBzdHJpbmcgaXMgYW4gQVJOLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGUgPSAoc3RyOiBhbnkpOiBib29sZWFuID0+XG4gIHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIgJiYgc3RyLmluZGV4T2YoXCJhcm46XCIpID09PSAwICYmIHN0ci5zcGxpdChcIjpcIikubGVuZ3RoID49IDY7XG5cbi8qKlxuICogUGFyc2UgYW4gQVJOIHN0cmluZyBpbnRvIHN0cnVjdHVyZSB3aXRoIHBhcnRpdGlvbiwgc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQgYW5kIHJlc291cmNlIHZhbHVlc1xuICovXG5leHBvcnQgY29uc3QgcGFyc2UgPSAoYXJuOiBzdHJpbmcpOiBBUk4gPT4ge1xuICBjb25zdCBzZWdtZW50cyA9IGFybi5zcGxpdChcIjpcIik7XG4gIGlmIChzZWdtZW50cy5sZW5ndGggPCA2IHx8IHNlZ21lbnRzWzBdICE9PSBcImFyblwiKSB0aHJvdyBuZXcgRXJyb3IoXCJNYWxmb3JtZWQgQVJOXCIpO1xuICBjb25zdCBbXG4gICAgLFxuICAgIC8vU2tpcCBcImFyblwiIGxpdGVyYWxcbiAgICBwYXJ0aXRpb24sXG4gICAgc2VydmljZSxcbiAgICByZWdpb24sXG4gICAgYWNjb3VudElkLFxuICAgIC4uLnJlc291cmNlXG4gIF0gPSBzZWdtZW50cztcblxuICByZXR1cm4ge1xuICAgIHBhcnRpdGlvbixcbiAgICBzZXJ2aWNlLFxuICAgIHJlZ2lvbixcbiAgICBhY2NvdW50SWQsXG4gICAgcmVzb3VyY2U6IHJlc291cmNlLmpvaW4oXCI6XCIpLFxuICB9O1xufTtcblxudHlwZSBidWlsZE9wdGlvbnMgPSBPbWl0PEFSTiwgXCJwYXJ0aXRpb25cIj4gJiB7IHBhcnRpdGlvbj86IHN0cmluZyB9O1xuXG4vKipcbiAqIEJ1aWxkIGFuIEFSTiB3aXRoIHNlcnZpY2UsIHBhcnRpdGlvbiwgcmVnaW9uLCBhY2NvdW50SWQsIGFuZCByZXNvdXJjZXMgc3RyaW5nc1xuICovXG5leHBvcnQgY29uc3QgYnVpbGQgPSAoYXJuT2JqZWN0OiBidWlsZE9wdGlvbnMpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IHBhcnRpdGlvbiA9IFwiYXdzXCIsIHNlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCByZXNvdXJjZSB9ID0gYXJuT2JqZWN0O1xuICBpZiAoW3NlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCByZXNvdXJjZV0uc29tZSgoc2VnbWVudCkgPT4gdHlwZW9mIHNlZ21lbnQgIT09IFwic3RyaW5nXCIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSW5wdXQgQVJOIG9iamVjdCBpcyBpbnZhbGlkXCIpO1xuICB9XG4gIHJldHVybiBgYXJuOiR7cGFydGl0aW9ufToke3NlcnZpY2V9OiR7cmVnaW9ufToke2FjY291bnRJZH06JHtyZXNvdXJjZX1gO1xufTtcbiJdfQ==","import { __read } from \"tslib\";\nvar DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nvar IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nvar DOTS_PATTERN = /\\.\\./;\nexport var DOT_PATTERN = /\\./;\nexport var S3_HOSTNAME_PATTERN = /^(.+\\.)?s3[.-]([a-z0-9-]+)\\./;\nvar S3_US_EAST_1_ALTNAME_PATTERN = /^s3(-external-1)?\\.amazonaws\\.com$/;\nvar AWS_PARTITION_SUFFIX = \"amazonaws.com\";\nexport var isBucketNameOptions = function (options) { return typeof options.bucketName === \"string\"; };\n/**\n * Get pseudo region from supplied region. For example, if supplied with `fips-us-west-2`, it returns `us-west-2`.\n * @internal\n */\nexport var getPseudoRegion = function (region) { return (isFipsRegion(region) ? region.replace(/fips-|-fips/, \"\") : region); };\n/**\n * Determines whether a given string is DNS compliant per the rules outlined by\n * S3. Length, capitaization, and leading dot restrictions are enforced by the\n * DOMAIN_PATTERN regular expression.\n * @internal\n *\n * @see https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html\n */\nexport var isDnsCompatibleBucketName = function (bucketName) {\n return DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\n};\nvar getRegionalSuffix = function (hostname) {\n var parts = hostname.match(S3_HOSTNAME_PATTERN);\n return [parts[2], hostname.replace(new RegExp(\"^\" + parts[0]), \"\")];\n};\nexport var getSuffix = function (hostname) {\n return S3_US_EAST_1_ALTNAME_PATTERN.test(hostname) ? [\"us-east-1\", AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname);\n};\n/**\n * Infer region and hostname suffix from a complete hostname\n * @internal\n * @param hostname - Hostname\n * @returns [Region, Hostname suffix]\n */\nexport var getSuffixForArnEndpoint = function (hostname) {\n return S3_US_EAST_1_ALTNAME_PATTERN.test(hostname)\n ? [hostname.replace(\".\" + AWS_PARTITION_SUFFIX, \"\"), AWS_PARTITION_SUFFIX]\n : getRegionalSuffix(hostname);\n};\nexport var validateArnEndpointOptions = function (options) {\n if (options.pathStyleEndpoint) {\n throw new Error(\"Path-style S3 endpoint is not supported when bucket is an ARN\");\n }\n if (options.accelerateEndpoint) {\n throw new Error(\"Accelerate endpoint is not supported when bucket is an ARN\");\n }\n if (!options.tlsCompatible) {\n throw new Error(\"HTTPS is required when bucket is an ARN\");\n }\n};\nexport var validateService = function (service) {\n if (service !== \"s3\" && service !== \"s3-outposts\") {\n throw new Error(\"Expect 's3' or 's3-outposts' in ARN service component\");\n }\n};\nexport var validateS3Service = function (service) {\n if (service !== \"s3\") {\n throw new Error(\"Expect 's3' in Accesspoint ARN service component\");\n }\n};\nexport var validateOutpostService = function (service) {\n if (service !== \"s3-outposts\") {\n throw new Error(\"Expect 's3-posts' in Outpost ARN service component\");\n }\n};\n/**\n * Validate partition inferred from ARN is the same to `options.clientPartition`.\n * @internal\n */\nexport var validatePartition = function (partition, options) {\n if (partition !== options.clientPartition) {\n throw new Error(\"Partition in ARN is incompatible, got \\\"\" + partition + \"\\\" but expected \\\"\" + options.clientPartition + \"\\\"\");\n }\n};\n/**\n * validate region value inferred from ARN. If `options.useArnRegion` is set, it validates the region is not a FIPS\n * region. If `options.useArnRegion` is unset, it validates the region is equal to `options.clientRegion` or\n * `options.clientSigningRegion`.\n * @internal\n */\nexport var validateRegion = function (region, options) {\n if (region === \"\") {\n throw new Error(\"ARN region is empty\");\n }\n if (!options.useArnRegion &&\n !isEqualRegions(region, options.clientRegion) &&\n !isEqualRegions(region, options.clientSigningRegion)) {\n throw new Error(\"Region in ARN is incompatible, got \" + region + \" but expected \" + options.clientRegion);\n }\n if (options.useArnRegion && isFipsRegion(region)) {\n throw new Error(\"Endpoint does not support FIPS region\");\n }\n};\nvar isFipsRegion = function (region) { return region.startsWith(\"fips-\") || region.endsWith(\"-fips\"); };\nvar isEqualRegions = function (regionA, regionB) {\n return regionA === regionB || getPseudoRegion(regionA) === regionB || regionA === getPseudoRegion(regionB);\n};\n/**\n * Validate an account ID\n * @internal\n */\nexport var validateAccountId = function (accountId) {\n if (!/[0-9]{12}/.exec(accountId)) {\n throw new Error(\"Access point ARN accountID does not match regex '[0-9]{12}'\");\n }\n};\n/**\n * Validate a host label according to https://tools.ietf.org/html/rfc3986#section-3.2.2\n * @internal\n */\nexport var validateDNSHostLabel = function (label, options) {\n if (options === void 0) { options = { tlsCompatible: true }; }\n // reference: https://tools.ietf.org/html/rfc3986#section-3.2.2\n if (label.length >= 64 ||\n !/^[a-z0-9][a-z0-9.-]+[a-z0-9]$/.test(label) ||\n /(\\d+\\.){3}\\d+/.test(label) ||\n /[.-]{2}/.test(label) ||\n ((options === null || options === void 0 ? void 0 : options.tlsCompatible) && DOT_PATTERN.test(label))) {\n throw new Error(\"Invalid DNS label \" + label);\n }\n};\n/**\n * Validate and parse an Access Point ARN or Outposts ARN\n * @internal\n *\n * @param resource - The resource section of an ARN\n * @returns Access Point Name and optional Outpost ID.\n */\nexport var getArnResources = function (resource) {\n var delimiter = resource.includes(\":\") ? \":\" : \"/\";\n var _a = __read(resource.split(delimiter)), resourceType = _a[0], rest = _a.slice(1);\n if (resourceType === \"accesspoint\") {\n // Parse accesspoint ARN\n if (rest.length !== 1 || rest[0] === \"\") {\n throw new Error(\"Access Point ARN should have one resource accesspoint\" + delimiter + \"{accesspointname}\");\n }\n return { accesspointName: rest[0] };\n }\n else if (resourceType === \"outpost\") {\n // Parse outpost ARN\n if (!rest[0] || rest[1] !== \"accesspoint\" || !rest[2] || rest.length !== 3) {\n throw new Error(\"Outpost ARN should have resource outpost\" + delimiter + \"{outpostId}\" + delimiter + \"accesspoint\" + delimiter + \"{accesspointName}\");\n }\n var _b = __read(rest, 3), outpostId = _b[0], _ = _b[1], accesspointName = _b[2];\n return { outpostId: outpostId, accesspointName: accesspointName };\n }\n else {\n throw new Error(\"ARN resource should begin with 'accesspoint\" + delimiter + \"' or 'outpost\" + delimiter + \"'\");\n }\n};\n/**\n * Throw if dual stack configuration is set to true.\n * @internal\n */\nexport var validateNoDualstack = function (dualstackEndpoint) {\n if (dualstackEndpoint)\n throw new Error(\"Dualstack endpoint is not supported with Outpost\");\n};\n/**\n * Validate region is not appended or prepended with a `fips-`\n * @internal\n */\nexport var validateNoFIPS = function (region) {\n if (isFipsRegion(region !== null && region !== void 0 ? region : \"\"))\n throw new Error(\"FIPS region is not supported with Outpost, got \" + region);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWVVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWNrZXRIb3N0bmFtZVV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxJQUFNLGNBQWMsR0FBRyxzQ0FBc0MsQ0FBQztBQUM5RCxJQUFNLGtCQUFrQixHQUFHLGVBQWUsQ0FBQztBQUMzQyxJQUFNLFlBQVksR0FBRyxNQUFNLENBQUM7QUFDNUIsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQztBQUNoQyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyw4QkFBOEIsQ0FBQztBQUNsRSxJQUFNLDRCQUE0QixHQUFHLG9DQUFvQyxDQUFDO0FBQzFFLElBQU0sb0JBQW9CLEdBQUcsZUFBZSxDQUFDO0FBd0I3QyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxVQUNqQyxPQUFpRCxJQUNiLE9BQUEsT0FBTyxPQUFPLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBdEMsQ0FBc0MsQ0FBQztBQUU3RTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUcsVUFBQyxNQUFjLElBQUssT0FBQSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFuRSxDQUFtRSxDQUFDO0FBRXZIOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsSUFBTSx5QkFBeUIsR0FBRyxVQUFDLFVBQWtCO0lBQzFELE9BQUEsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0FBQXpHLENBQXlHLENBQUM7QUFFNUcsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLFFB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QzFFLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkNBQTJDLFNBQVMsbUJBQWMsU0FBUyxtQkFBYyxTQUFTLHNCQUFtQixDQUN0SCxDQUFDO1NBQ0g7UUFDSyxJQUFBLEtBQUEsT0FBa0MsSUFBSSxJQUFBLEVBQXJDLFNBQVMsUUFBQSxFQUFFLENBQUMsUUFBQSxFQUFFLGVBQWUsUUFBUSxDQUFDO1FBQzdDLE9BQU8sRUFBRSxTQUFTLFdBQUEsRUFBRSxlQUFlLGlCQUFBLEVBQUUsQ0FBQztLQUN2QztTQUFNO1FBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBOEMsU0FBUyxxQkFBZ0IsU0FBUyxNQUFHLENBQUMsQ0FBQztLQUN0RztBQUNILENBQUMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLFVBQUMsaUJBQTBCO0lBQzVELElBQUksaUJBQWlCO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0FBQzdGLENBQUMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxVQUFDLE1BQWM7SUFDM0MsSUFBSSxZQUFZLENBQUMsTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLEdBQUksRUFBRSxDQUFDO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBa0QsTUFBUSxDQUFDLENBQUM7QUFDOUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVJOIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlclwiO1xuXG5jb25zdCBET01BSU5fUEFUVEVSTiA9IC9eW2EtejAtOV1bYS16MC05XFwuXFwtXXsxLDYxfVthLXowLTldJC87XG5jb25zdCBJUF9BRERSRVNTX1BBVFRFUk4gPSAvKFxcZCtcXC4pezN9XFxkKy87XG5jb25zdCBET1RTX1BBVFRFUk4gPSAvXFwuXFwuLztcbmV4cG9ydCBjb25zdCBET1RfUEFUVEVSTiA9IC9cXC4vO1xuZXhwb3J0IGNvbnN0IFMzX0hPU1ROQU1FX1BBVFRFUk4gPSAvXiguK1xcLik/czNbLi1dKFthLXowLTktXSspXFwuLztcbmNvbnN0IFMzX1VTX0VBU1RfMV9BTFROQU1FX1BBVFRFUk4gPSAvXnMzKC1leHRlcm5hbC0xKT9cXC5hbWF6b25hd3NcXC5jb20kLztcbmNvbnN0IEFXU19QQVJUSVRJT05fU1VGRklYID0gXCJhbWF6b25hd3MuY29tXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXNzUG9pbnRBcm4gZXh0ZW5kcyBBUk4ge1xuICBhY2Nlc3NQb2ludE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRIb3N0bmFtZVBhcmFtcyB7XG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW47XG4gIGJhc2VIb3N0bmFtZTogc3RyaW5nO1xuICBidWNrZXROYW1lOiBzdHJpbmc7XG4gIGNsaWVudFJlZ2lvbjogc3RyaW5nO1xuICBhY2NlbGVyYXRlRW5kcG9pbnQ/OiBib29sZWFuO1xuICBkdWFsc3RhY2tFbmRwb2ludD86IGJvb2xlYW47XG4gIHBhdGhTdHlsZUVuZHBvaW50PzogYm9vbGVhbjtcbiAgdGxzQ29tcGF0aWJsZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJuSG9zdG5hbWVQYXJhbXMgZXh0ZW5kcyBPbWl0PEJ1Y2tldEhvc3RuYW1lUGFyYW1zLCBcImJ1Y2tldE5hbWVcIj4ge1xuICBidWNrZXROYW1lOiBBUk47XG4gIGNsaWVudFNpZ25pbmdSZWdpb24/OiBzdHJpbmc7XG4gIGNsaWVudFBhcnRpdGlvbj86IHN0cmluZztcbiAgdXNlQXJuUmVnaW9uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGlzQnVja2V0TmFtZU9wdGlvbnMgPSAoXG4gIG9wdGlvbnM6IEJ1Y2tldEhvc3RuYW1lUGFyYW1zIHwgQXJuSG9zdG5hbWVQYXJhbXNcbik6IG9wdGlvbnMgaXMgQnVja2V0SG9zdG5hbWVQYXJhbXMgPT4gdHlwZW9mIG9wdGlvbnMuYnVja2V0TmFtZSA9PT0gXCJzdHJpbmdcIjtcblxuLyoqXG4gKiBHZXQgcHNldWRvIHJlZ2lvbiBmcm9tIHN1cHBsaWVkIHJlZ2lvbi4gRm9yIGV4YW1wbGUsIGlmIHN1cHBsaWVkIHdpdGggYGZpcHMtdXMtd2VzdC0yYCwgaXQgcmV0dXJucyBgdXMtd2VzdC0yYC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgZ2V0UHNldWRvUmVnaW9uID0gKHJlZ2lvbjogc3RyaW5nKSA9PiAoaXNGaXBzUmVnaW9uKHJlZ2lvbikgPyByZWdpb24ucmVwbGFjZSgvZmlwcy18LWZpcHMvLCBcIlwiKSA6IHJlZ2lvbik7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZ2l2ZW4gc3RyaW5nIGlzIEROUyBjb21wbGlhbnQgcGVyIHRoZSBydWxlcyBvdXRsaW5lZCBieVxuICogUzMuIExlbmd0aCwgY2FwaXRhaXphdGlvbiwgYW5kIGxlYWRpbmcgZG90IHJlc3RyaWN0aW9ucyBhcmUgZW5mb3JjZWQgYnkgdGhlXG4gKiBET01BSU5fUEFUVEVSTiByZWd1bGFyIGV4cHJlc3Npb24uXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvZGV2L0J1Y2tldFJlc3RyaWN0aW9ucy5odG1sXG4gKi9cbmV4cG9ydCBjb25zdCBpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lID0gKGJ1Y2tldE5hbWU6IHN0cmluZyk6IGJvb2xlYW4gPT5cbiAgRE9NQUlOX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSAmJiAhSVBfQUREUkVTU19QQVRURVJOLnRlc3QoYnVja2V0TmFtZSkgJiYgIURPVFNfUEFUVEVSTi50ZXN0KGJ1Y2tldE5hbWUpO1xuXG5jb25zdCBnZXRSZWdpb25hbFN1ZmZpeCA9IChob3N0bmFtZTogc3RyaW5nKTogW3N0cmluZywgc3RyaW5nXSA9PiB7XG4gIGNvbnN0IHBhcnRzID0gaG9zdG5hbWUubWF0Y2goUzNfSE9TVE5BTUVfUEFUVEVSTikhO1xuICByZXR1cm4gW3BhcnRzWzJdLCBob3N0bmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoYF4ke3BhcnRzWzBdfWApLCBcIlwiKV07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3VmZml4ID0gKGhvc3RuYW1lOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddID0+XG4gIFMzX1VTX0VBU1RfMV9BTFROQU1FX1BBVFRFUk4udGVzdChob3N0bmFtZSkgPyBbXCJ1cy1lYXN0LTFcIiwgQVdTX1BBUlRJVElPTl9TVUZGSVhdIDogZ2V0UmVnaW9uYWxTdWZmaXgoaG9zdG5hbWUpO1xuXG4vKipcbiAqIEluZmVyIHJlZ2lvbiBhbmQgaG9zdG5hbWUgc3VmZml4IGZyb20gYSBjb21wbGV0ZSBob3N0bmFtZVxuICogQGludGVybmFsXG4gKiBAcGFyYW0gaG9zdG5hbWUgLSBIb3N0bmFtZVxuICogQHJldHVybnMgW1JlZ2lvbiwgSG9zdG5hbWUgc3VmZml4XVxuICovXG5leHBvcnQgY29uc3QgZ2V0U3VmZml4Rm9yQXJuRW5kcG9pbnQgPSAoaG9zdG5hbWU6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZ10gPT5cbiAgUzNfVVNfRUFTVF8xX0FMVE5BTUVfUEFUVEVSTi50ZXN0KGhvc3RuYW1lKVxuICAgID8gW2hvc3RuYW1lLnJlcGxhY2UoYC4ke0FXU19QQVJUSVRJT05fU1VGRklYfWAsIFwiXCIpLCBBV1NfUEFSVElUSU9OX1NVRkZJWF1cbiAgICA6IGdldFJlZ2lvbmFsU3VmZml4KGhvc3RuYW1lKTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlQXJuRW5kcG9pbnRPcHRpb25zID0gKG9wdGlvbnM6IHtcbiAgYWNjZWxlcmF0ZUVuZHBvaW50PzogYm9vbGVhbjtcbiAgdGxzQ29tcGF0aWJsZT86IGJvb2xlYW47XG4gIHBhdGhTdHlsZUVuZHBvaW50PzogYm9vbGVhbjtcbn0pID0+IHtcbiAgaWYgKG9wdGlvbnMucGF0aFN0eWxlRW5kcG9pbnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoLXN0eWxlIFMzIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBidWNrZXQgaXMgYW4gQVJOXCIpO1xuICB9XG4gIGlmIChvcHRpb25zLmFjY2VsZXJhdGVFbmRwb2ludCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkFjY2VsZXJhdGUgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gIH1cbiAgaWYgKCFvcHRpb25zLnRsc0NvbXBhdGlibGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJIVFRQUyBpcyByZXF1aXJlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVNlcnZpY2UgPSAoc2VydmljZTogc3RyaW5nKSA9PiB7XG4gIGlmIChzZXJ2aWNlICE9PSBcInMzXCIgJiYgc2VydmljZSAhPT0gXCJzMy1vdXRwb3N0c1wiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ICdzMycgb3IgJ3MzLW91dHBvc3RzJyBpbiBBUk4gc2VydmljZSBjb21wb25lbnRcIik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVMzU2VydmljZSA9IChzZXJ2aWNlOiBzdHJpbmcpID0+IHtcbiAgaWYgKHNlcnZpY2UgIT09IFwiczNcIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdCAnczMnIGluIEFjY2Vzc3BvaW50IEFSTiBzZXJ2aWNlIGNvbXBvbmVudFwiKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlT3V0cG9zdFNlcnZpY2UgPSAoc2VydmljZTogc3RyaW5nKSA9PiB7XG4gIGlmIChzZXJ2aWNlICE9PSBcInMzLW91dHBvc3RzXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3QgJ3MzLXBvc3RzJyBpbiBPdXRwb3N0IEFSTiBzZXJ2aWNlIGNvbXBvbmVudFwiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBwYXJ0aXRpb24gaW5mZXJyZWQgZnJvbSBBUk4gaXMgdGhlIHNhbWUgdG8gYG9wdGlvbnMuY2xpZW50UGFydGl0aW9uYC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQYXJ0aXRpb24gPSAocGFydGl0aW9uOiBzdHJpbmcsIG9wdGlvbnM6IHsgY2xpZW50UGFydGl0aW9uOiBzdHJpbmcgfSkgPT4ge1xuICBpZiAocGFydGl0aW9uICE9PSBvcHRpb25zLmNsaWVudFBhcnRpdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgUGFydGl0aW9uIGluIEFSTiBpcyBpbmNvbXBhdGlibGUsIGdvdCBcIiR7cGFydGl0aW9ufVwiIGJ1dCBleHBlY3RlZCBcIiR7b3B0aW9ucy5jbGllbnRQYXJ0aXRpb259XCJgKTtcbiAgfVxufTtcblxuLyoqXG4gKiB2YWxpZGF0ZSByZWdpb24gdmFsdWUgaW5mZXJyZWQgZnJvbSBBUk4uIElmIGBvcHRpb25zLnVzZUFyblJlZ2lvbmAgaXMgc2V0LCBpdCB2YWxpZGF0ZXMgdGhlIHJlZ2lvbiBpcyBub3QgYSBGSVBTXG4gKiByZWdpb24uIElmIGBvcHRpb25zLnVzZUFyblJlZ2lvbmAgaXMgdW5zZXQsIGl0IHZhbGlkYXRlcyB0aGUgcmVnaW9uIGlzIGVxdWFsIHRvIGBvcHRpb25zLmNsaWVudFJlZ2lvbmAgb3JcbiAqIGBvcHRpb25zLmNsaWVudFNpZ25pbmdSZWdpb25gLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVJlZ2lvbiA9IChcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHtcbiAgICB1c2VBcm5SZWdpb24/OiBib29sZWFuO1xuICAgIGNsaWVudFJlZ2lvbjogc3RyaW5nO1xuICAgIGNsaWVudFNpZ25pbmdSZWdpb246IHN0cmluZztcbiAgfVxuKSA9PiB7XG4gIGlmIChyZWdpb24gPT09IFwiXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBUk4gcmVnaW9uIGlzIGVtcHR5XCIpO1xuICB9XG4gIGlmIChcbiAgICAhb3B0aW9ucy51c2VBcm5SZWdpb24gJiZcbiAgICAhaXNFcXVhbFJlZ2lvbnMocmVnaW9uLCBvcHRpb25zLmNsaWVudFJlZ2lvbikgJiZcbiAgICAhaXNFcXVhbFJlZ2lvbnMocmVnaW9uLCBvcHRpb25zLmNsaWVudFNpZ25pbmdSZWdpb24pXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVnaW9uIGluIEFSTiBpcyBpbmNvbXBhdGlibGUsIGdvdCAke3JlZ2lvbn0gYnV0IGV4cGVjdGVkICR7b3B0aW9ucy5jbGllbnRSZWdpb259YCk7XG4gIH1cbiAgaWYgKG9wdGlvbnMudXNlQXJuUmVnaW9uICYmIGlzRmlwc1JlZ2lvbihyZWdpb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBGSVBTIHJlZ2lvblwiKTtcbiAgfVxufTtcblxuY29uc3QgaXNGaXBzUmVnaW9uID0gKHJlZ2lvbjogc3RyaW5nKSA9PiByZWdpb24uc3RhcnRzV2l0aChcImZpcHMtXCIpIHx8IHJlZ2lvbi5lbmRzV2l0aChcIi1maXBzXCIpO1xuXG5jb25zdCBpc0VxdWFsUmVnaW9ucyA9IChyZWdpb25BOiBzdHJpbmcsIHJlZ2lvbkI6IHN0cmluZykgPT5cbiAgcmVnaW9uQSA9PT0gcmVnaW9uQiB8fCBnZXRQc2V1ZG9SZWdpb24ocmVnaW9uQSkgPT09IHJlZ2lvbkIgfHwgcmVnaW9uQSA9PT0gZ2V0UHNldWRvUmVnaW9uKHJlZ2lvbkIpO1xuXG4vKipcbiAqIFZhbGlkYXRlIGFuIGFjY291bnQgSURcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBY2NvdW50SWQgPSAoYWNjb3VudElkOiBzdHJpbmcpID0+IHtcbiAgaWYgKCEvWzAtOV17MTJ9Ly5leGVjKGFjY291bnRJZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBY2Nlc3MgcG9pbnQgQVJOIGFjY291bnRJRCBkb2VzIG5vdCBtYXRjaCByZWdleCAnWzAtOV17MTJ9J1wiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBhIGhvc3QgbGFiZWwgYWNjb3JkaW5nIHRvIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4yLjJcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVETlNIb3N0TGFiZWwgPSAobGFiZWw6IHN0cmluZywgb3B0aW9uczogeyB0bHNDb21wYXRpYmxlPzogYm9vbGVhbiB9ID0geyB0bHNDb21wYXRpYmxlOiB0cnVlIH0pID0+IHtcbiAgLy8gcmVmZXJlbmNlOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTMuMi4yXG4gIGlmIChcbiAgICBsYWJlbC5sZW5ndGggPj0gNjQgfHxcbiAgICAhL15bYS16MC05XVthLXowLTkuLV0rW2EtejAtOV0kLy50ZXN0KGxhYmVsKSB8fFxuICAgIC8oXFxkK1xcLil7M31cXGQrLy50ZXN0KGxhYmVsKSB8fFxuICAgIC9bLi1dezJ9Ly50ZXN0KGxhYmVsKSB8fFxuICAgIChvcHRpb25zPy50bHNDb21wYXRpYmxlICYmIERPVF9QQVRURVJOLnRlc3QobGFiZWwpKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRE5TIGxhYmVsICR7bGFiZWx9YCk7XG4gIH1cbn07XG5cbi8qKlxuICogVmFsaWRhdGUgYW5kIHBhcnNlIGFuIEFjY2VzcyBQb2ludCBBUk4gb3IgT3V0cG9zdHMgQVJOXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBAcGFyYW0gcmVzb3VyY2UgLSBUaGUgcmVzb3VyY2Ugc2VjdGlvbiBvZiBhbiBBUk5cbiAqIEByZXR1cm5zIEFjY2VzcyBQb2ludCBOYW1lIGFuZCBvcHRpb25hbCBPdXRwb3N0IElELlxuICovXG5leHBvcnQgY29uc3QgZ2V0QXJuUmVzb3VyY2VzID0gKFxuICByZXNvdXJjZTogc3RyaW5nXG4pOiB7XG4gIGFjY2Vzc3BvaW50TmFtZTogc3RyaW5nO1xuICBvdXRwb3N0SWQ/OiBzdHJpbmc7XG59ID0+IHtcbiAgY29uc3QgZGVsaW1pdGVyID0gcmVzb3VyY2UuaW5jbHVkZXMoXCI6XCIpID8gXCI6XCIgOiBcIi9cIjtcbiAgY29uc3QgW3Jlc291cmNlVHlwZSwgLi4ucmVzdF0gPSByZXNvdXJjZS5zcGxpdChkZWxpbWl0ZXIpO1xuICBpZiAocmVzb3VyY2VUeXBlID09PSBcImFjY2Vzc3BvaW50XCIpIHtcbiAgICAvLyBQYXJzZSBhY2Nlc3Nwb2ludCBBUk5cbiAgICBpZiAocmVzdC5sZW5ndGggIT09IDEgfHwgcmVzdFswXSA9PT0gXCJcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBY2Nlc3MgUG9pbnQgQVJOIHNob3VsZCBoYXZlIG9uZSByZXNvdXJjZSBhY2Nlc3Nwb2ludCR7ZGVsaW1pdGVyfXthY2Nlc3Nwb2ludG5hbWV9YCk7XG4gICAgfVxuICAgIHJldHVybiB7IGFjY2Vzc3BvaW50TmFtZTogcmVzdFswXSB9O1xuICB9IGVsc2UgaWYgKHJlc291cmNlVHlwZSA9PT0gXCJvdXRwb3N0XCIpIHtcbiAgICAvLyBQYXJzZSBvdXRwb3N0IEFSTlxuICAgIGlmICghcmVzdFswXSB8fCByZXN0WzFdICE9PSBcImFjY2Vzc3BvaW50XCIgfHwgIXJlc3RbMl0gfHwgcmVzdC5sZW5ndGggIT09IDMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE91dHBvc3QgQVJOIHNob3VsZCBoYXZlIHJlc291cmNlIG91dHBvc3Qke2RlbGltaXRlcn17b3V0cG9zdElkfSR7ZGVsaW1pdGVyfWFjY2Vzc3BvaW50JHtkZWxpbWl0ZXJ9e2FjY2Vzc3BvaW50TmFtZX1gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBbb3V0cG9zdElkLCBfLCBhY2Nlc3Nwb2ludE5hbWVdID0gcmVzdDtcbiAgICByZXR1cm4geyBvdXRwb3N0SWQsIGFjY2Vzc3BvaW50TmFtZSB9O1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgQVJOIHJlc291cmNlIHNob3VsZCBiZWdpbiB3aXRoICdhY2Nlc3Nwb2ludCR7ZGVsaW1pdGVyfScgb3IgJ291dHBvc3Qke2RlbGltaXRlcn0nYCk7XG4gIH1cbn07XG5cbi8qKlxuICogVGhyb3cgaWYgZHVhbCBzdGFjayBjb25maWd1cmF0aW9uIGlzIHNldCB0byB0cnVlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU5vRHVhbHN0YWNrID0gKGR1YWxzdGFja0VuZHBvaW50OiBib29sZWFuKSA9PiB7XG4gIGlmIChkdWFsc3RhY2tFbmRwb2ludCkgdGhyb3cgbmV3IEVycm9yKFwiRHVhbHN0YWNrIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBPdXRwb3N0XCIpO1xufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSByZWdpb24gaXMgbm90IGFwcGVuZGVkIG9yIHByZXBlbmRlZCB3aXRoIGEgYGZpcHMtYFxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU5vRklQUyA9IChyZWdpb246IHN0cmluZykgPT4ge1xuICBpZiAoaXNGaXBzUmVnaW9uKHJlZ2lvbiA/PyBcIlwiKSkgdGhyb3cgbmV3IEVycm9yKGBGSVBTIHJlZ2lvbiBpcyBub3Qgc3VwcG9ydGVkIHdpdGggT3V0cG9zdCwgZ290ICR7cmVnaW9ufWApO1xufTtcbiJdfQ==","import { __assign, __read } from \"tslib\";\nimport { DOT_PATTERN, getArnResources, getSuffix, getSuffixForArnEndpoint, isBucketNameOptions, isDnsCompatibleBucketName, validateAccountId, validateArnEndpointOptions, validateDNSHostLabel, validateNoDualstack, validateNoFIPS, validateOutpostService, validatePartition, validateRegion, validateS3Service, validateService, } from \"./bucketHostnameUtils\";\nexport var bucketHostname = function (options) {\n var isCustomEndpoint = options.isCustomEndpoint, baseHostname = options.baseHostname, dualstackEndpoint = options.dualstackEndpoint, accelerateEndpoint = options.accelerateEndpoint;\n if (isCustomEndpoint) {\n if (dualstackEndpoint)\n throw new Error(\"Dualstack endpoint is not supported with custom endpoint\");\n if (accelerateEndpoint)\n throw new Error(\"Accelerate endpoint is not supported with custom endpoint\");\n }\n return isBucketNameOptions(options)\n ? // Construct endpoint when bucketName is a string referring to a bucket name\n getEndpointFromBucketName(__assign(__assign({}, options), { isCustomEndpoint: isCustomEndpoint }))\n : // Construct endpoint when bucketName is an ARN referring to an S3 resource like Access Point\n getEndpointFromArn(__assign(__assign({}, options), { isCustomEndpoint: isCustomEndpoint }));\n};\nvar getEndpointFromArn = function (options) {\n var isCustomEndpoint = options.isCustomEndpoint, baseHostname = options.baseHostname;\n var _a = __read(isCustomEndpoint\n ? [options.clientRegion, baseHostname]\n : // Infer client region and hostname suffix from hostname from endpoints.json, like `s3.us-west-2.amazonaws.com`\n getSuffixForArnEndpoint(baseHostname), 2), clientRegion = _a[0], hostnameSuffix = _a[1];\n var pathStyleEndpoint = options.pathStyleEndpoint, _b = options.dualstackEndpoint, dualstackEndpoint = _b === void 0 ? false : _b, _c = options.accelerateEndpoint, accelerateEndpoint = _c === void 0 ? false : _c, _d = options.tlsCompatible, tlsCompatible = _d === void 0 ? true : _d, useArnRegion = options.useArnRegion, bucketName = options.bucketName, _e = options.clientPartition, clientPartition = _e === void 0 ? \"aws\" : _e, _f = options.clientSigningRegion, clientSigningRegion = _f === void 0 ? clientRegion : _f;\n validateArnEndpointOptions({ pathStyleEndpoint: pathStyleEndpoint, accelerateEndpoint: accelerateEndpoint, tlsCompatible: tlsCompatible });\n // Validate and parse the ARN supplied as a bucket name\n var service = bucketName.service, partition = bucketName.partition, accountId = bucketName.accountId, region = bucketName.region, resource = bucketName.resource;\n validateService(service);\n validatePartition(partition, { clientPartition: clientPartition });\n validateAccountId(accountId);\n validateRegion(region, { useArnRegion: useArnRegion, clientRegion: clientRegion, clientSigningRegion: clientSigningRegion });\n var _g = getArnResources(resource), accesspointName = _g.accesspointName, outpostId = _g.outpostId;\n validateDNSHostLabel(accesspointName + \"-\" + accountId, { tlsCompatible: tlsCompatible });\n var endpointRegion = useArnRegion ? region : clientRegion;\n var signingRegion = useArnRegion ? region : clientSigningRegion;\n if (outpostId) {\n // if this is an Outpost ARN\n validateOutpostService(service);\n validateDNSHostLabel(outpostId, { tlsCompatible: tlsCompatible });\n validateNoDualstack(dualstackEndpoint);\n validateNoFIPS(endpointRegion);\n var hostnamePrefix_1 = accesspointName + \"-\" + accountId + \".\" + outpostId;\n return {\n bucketEndpoint: true,\n hostname: \"\" + hostnamePrefix_1 + (isCustomEndpoint ? \"\" : \".s3-outposts.\" + endpointRegion) + \".\" + hostnameSuffix,\n signingRegion: signingRegion,\n signingService: \"s3-outposts\",\n };\n }\n // construct endpoint from Accesspoint ARN\n validateS3Service(service);\n var hostnamePrefix = accesspointName + \"-\" + accountId;\n return {\n bucketEndpoint: true,\n hostname: \"\" + hostnamePrefix + (isCustomEndpoint ? \"\" : \".s3-accesspoint\" + (dualstackEndpoint ? \".dualstack\" : \"\") + \".\" + endpointRegion) + \".\" + hostnameSuffix,\n signingRegion: signingRegion,\n };\n};\nvar getEndpointFromBucketName = function (_a) {\n var _b = _a.accelerateEndpoint, accelerateEndpoint = _b === void 0 ? false : _b, region = _a.clientRegion, baseHostname = _a.baseHostname, bucketName = _a.bucketName, _c = _a.dualstackEndpoint, dualstackEndpoint = _c === void 0 ? false : _c, _d = _a.pathStyleEndpoint, pathStyleEndpoint = _d === void 0 ? false : _d, _e = _a.tlsCompatible, tlsCompatible = _e === void 0 ? true : _e, _f = _a.isCustomEndpoint, isCustomEndpoint = _f === void 0 ? false : _f;\n var _g = __read(isCustomEndpoint ? [region, baseHostname] : getSuffix(baseHostname), 2), clientRegion = _g[0], hostnameSuffix = _g[1];\n if (pathStyleEndpoint || !isDnsCompatibleBucketName(bucketName) || (tlsCompatible && DOT_PATTERN.test(bucketName))) {\n return {\n bucketEndpoint: false,\n hostname: dualstackEndpoint ? \"s3.dualstack.\" + clientRegion + \".\" + hostnameSuffix : baseHostname,\n };\n }\n if (accelerateEndpoint) {\n baseHostname = \"s3-accelerate\" + (dualstackEndpoint ? \".dualstack\" : \"\") + \".\" + hostnameSuffix;\n }\n else if (dualstackEndpoint) {\n baseHostname = \"s3.dualstack.\" + clientRegion + \".\" + hostnameSuffix;\n }\n return {\n bucketEndpoint: true,\n hostname: bucketName + \".\" + baseHostname,\n };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVja2V0SG9zdG5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFHTCxXQUFXLEVBQ1gsZUFBZSxFQUNmLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixlQUFlLEdBQ2hCLE1BQU0sdUJBQXVCLENBQUM7QUFTL0IsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHLFVBQUMsT0FBaUQ7SUFDdEUsSUFBQSxnQkFBZ0IsR0FBMEQsT0FBTyxpQkFBakUsRUFBRSxZQUFZLEdBQTRDLE9BQU8sYUFBbkQsRUFBRSxpQkFBaUIsR0FBeUIsT0FBTyxrQkFBaEMsRUFBRSxrQkFBa0IsR0FBSyxPQUFPLG1CQUFaLENBQWE7SUFFMUYsSUFBSSxnQkFBZ0IsRUFBRTtRQUNwQixJQUFJLGlCQUFpQjtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztRQUNuRyxJQUFJLGtCQUFrQjtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztLQUN0RztJQUVELE9BQU8sbUJBQW1CLENBQUMsT0FBTyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyw0RUFBNEU7WUFDNUUseUJBQXlCLHVCQUFNLE9BQU8sS0FBRSxnQkFBZ0Isa0JBQUEsSUFBRztRQUM3RCxDQUFDLENBQUMsNkZBQTZGO1lBQzdGLGtCQUFrQix1QkFBTSxPQUFPLEtBQUUsZ0JBQWdCLGtCQUFBLElBQUcsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFFRixJQUFNLGtCQUFrQixHQUFHLFVBQUMsT0FBMEQ7SUFDNUUsSUFBQSxn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OUYsQ0FBQztLQUNIO0lBRUQsSUFBSSxrQkFBa0IsRUFBRTtRQUN0QixZQUFZLEdBQUcsbUJBQWdCLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBSSxjQUFnQixDQUFDO0tBQzFGO1NBQU0sSUFBSSxpQkFBaUIsRUFBRTtRQUM1QixZQUFZLEdBQUcsa0JBQWdCLFlBQVksU0FBSSxjQUFnQixDQUFDO0tBQ2pFO0lBRUQsT0FBTztRQUNMLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFFBQVEsRUFBSyxVQUFVLFNBQUksWUFBYztLQUMxQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXJuSG9zdG5hbWVQYXJhbXMsXG4gIEJ1Y2tldEhvc3RuYW1lUGFyYW1zLFxuICBET1RfUEFUVEVSTixcbiAgZ2V0QXJuUmVzb3VyY2VzLFxuICBnZXRTdWZmaXgsXG4gIGdldFN1ZmZpeEZvckFybkVuZHBvaW50LFxuICBpc0J1Y2tldE5hbWVPcHRpb25zLFxuICBpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lLFxuICB2YWxpZGF0ZUFjY291bnRJZCxcbiAgdmFsaWRhdGVBcm5FbmRwb2ludE9wdGlvbnMsXG4gIHZhbGlkYXRlRE5TSG9zdExhYmVsLFxuICB2YWxpZGF0ZU5vRHVhbHN0YWNrLFxuICB2YWxpZGF0ZU5vRklQUyxcbiAgdmFsaWRhdGVPdXRwb3N0U2VydmljZSxcbiAgdmFsaWRhdGVQYXJ0aXRpb24sXG4gIHZhbGlkYXRlUmVnaW9uLFxuICB2YWxpZGF0ZVMzU2VydmljZSxcbiAgdmFsaWRhdGVTZXJ2aWNlLFxufSBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVV0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0SG9zdG5hbWUge1xuICBob3N0bmFtZTogc3RyaW5nO1xuICBidWNrZXRFbmRwb2ludDogYm9vbGVhbjtcbiAgc2lnbmluZ1JlZ2lvbj86IHN0cmluZztcbiAgc2lnbmluZ1NlcnZpY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBidWNrZXRIb3N0bmFtZSA9IChvcHRpb25zOiBCdWNrZXRIb3N0bmFtZVBhcmFtcyB8IEFybkhvc3RuYW1lUGFyYW1zKTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICBjb25zdCB7IGlzQ3VzdG9tRW5kcG9pbnQsIGJhc2VIb3N0bmFtZSwgZHVhbHN0YWNrRW5kcG9pbnQsIGFjY2VsZXJhdGVFbmRwb2ludCB9ID0gb3B0aW9ucztcblxuICBpZiAoaXNDdXN0b21FbmRwb2ludCkge1xuICAgIGlmIChkdWFsc3RhY2tFbmRwb2ludCkgdGhyb3cgbmV3IEVycm9yKFwiRHVhbHN0YWNrIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBjdXN0b20gZW5kcG9pbnRcIik7XG4gICAgaWYgKGFjY2VsZXJhdGVFbmRwb2ludCkgdGhyb3cgbmV3IEVycm9yKFwiQWNjZWxlcmF0ZSBlbmRwb2ludCBpcyBub3Qgc3VwcG9ydGVkIHdpdGggY3VzdG9tIGVuZHBvaW50XCIpO1xuICB9XG5cbiAgcmV0dXJuIGlzQnVja2V0TmFtZU9wdGlvbnMob3B0aW9ucylcbiAgICA/IC8vIENvbnN0cnVjdCBlbmRwb2ludCB3aGVuIGJ1Y2tldE5hbWUgaXMgYSBzdHJpbmcgcmVmZXJyaW5nIHRvIGEgYnVja2V0IG5hbWVcbiAgICAgIGdldEVuZHBvaW50RnJvbUJ1Y2tldE5hbWUoeyAuLi5vcHRpb25zLCBpc0N1c3RvbUVuZHBvaW50IH0pXG4gICAgOiAvLyBDb25zdHJ1Y3QgZW5kcG9pbnQgd2hlbiBidWNrZXROYW1lIGlzIGFuIEFSTiByZWZlcnJpbmcgdG8gYW4gUzMgcmVzb3VyY2UgbGlrZSBBY2Nlc3MgUG9pbnRcbiAgICAgIGdldEVuZHBvaW50RnJvbUFybih7IC4uLm9wdGlvbnMsIGlzQ3VzdG9tRW5kcG9pbnQgfSk7XG59O1xuXG5jb25zdCBnZXRFbmRwb2ludEZyb21Bcm4gPSAob3B0aW9uczogQXJuSG9zdG5hbWVQYXJhbXMgJiB7IGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW4gfSk6IEJ1Y2tldEhvc3RuYW1lID0+IHtcbiAgY29uc3QgeyBpc0N1c3RvbUVuZHBvaW50LCBiYXNlSG9zdG5hbWUgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IFtjbGllbnRSZWdpb24sIGhvc3RuYW1lU3VmZml4XSA9IGlzQ3VzdG9tRW5kcG9pbnRcbiAgICA/IFtvcHRpb25zLmNsaWVudFJlZ2lvbiwgYmFzZUhvc3RuYW1lXVxuICAgIDogLy8gSW5mZXIgY2xpZW50IHJlZ2lvbiBhbmQgaG9zdG5hbWUgc3VmZml4IGZyb20gaG9zdG5hbWUgZnJvbSBlbmRwb2ludHMuanNvbiwgbGlrZSBgczMudXMtd2VzdC0yLmFtYXpvbmF3cy5jb21gXG4gICAgICBnZXRTdWZmaXhGb3JBcm5FbmRwb2ludChiYXNlSG9zdG5hbWUpO1xuXG4gIGNvbnN0IHtcbiAgICBwYXRoU3R5bGVFbmRwb2ludCxcbiAgICBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLFxuICAgIGFjY2VsZXJhdGVFbmRwb2ludCA9IGZhbHNlLFxuICAgIHRsc0NvbXBhdGlibGUgPSB0cnVlLFxuICAgIHVzZUFyblJlZ2lvbixcbiAgICBidWNrZXROYW1lLFxuICAgIGNsaWVudFBhcnRpdGlvbiA9IFwiYXdzXCIsXG4gICAgY2xpZW50U2lnbmluZ1JlZ2lvbiA9IGNsaWVudFJlZ2lvbixcbiAgfSA9IG9wdGlvbnM7XG5cbiAgdmFsaWRhdGVBcm5FbmRwb2ludE9wdGlvbnMoeyBwYXRoU3R5bGVFbmRwb2ludCwgYWNjZWxlcmF0ZUVuZHBvaW50LCB0bHNDb21wYXRpYmxlIH0pO1xuXG4gIC8vIFZhbGlkYXRlIGFuZCBwYXJzZSB0aGUgQVJOIHN1cHBsaWVkIGFzIGEgYnVja2V0IG5hbWVcbiAgY29uc3QgeyBzZXJ2aWNlLCBwYXJ0aXRpb24sIGFjY291bnRJZCwgcmVnaW9uLCByZXNvdXJjZSB9ID0gYnVja2V0TmFtZTtcbiAgdmFsaWRhdGVTZXJ2aWNlKHNlcnZpY2UpO1xuICB2YWxpZGF0ZVBhcnRpdGlvbihwYXJ0aXRpb24sIHsgY2xpZW50UGFydGl0aW9uIH0pO1xuICB2YWxpZGF0ZUFjY291bnRJZChhY2NvdW50SWQpO1xuICB2YWxpZGF0ZVJlZ2lvbihyZWdpb24sIHsgdXNlQXJuUmVnaW9uLCBjbGllbnRSZWdpb24sIGNsaWVudFNpZ25pbmdSZWdpb24gfSk7XG4gIGNvbnN0IHsgYWNjZXNzcG9pbnROYW1lLCBvdXRwb3N0SWQgfSA9IGdldEFyblJlc291cmNlcyhyZXNvdXJjZSk7XG4gIHZhbGlkYXRlRE5TSG9zdExhYmVsKGAke2FjY2Vzc3BvaW50TmFtZX0tJHthY2NvdW50SWR9YCwgeyB0bHNDb21wYXRpYmxlIH0pO1xuXG4gIGNvbnN0IGVuZHBvaW50UmVnaW9uID0gdXNlQXJuUmVnaW9uID8gcmVnaW9uIDogY2xpZW50UmVnaW9uO1xuICBjb25zdCBzaWduaW5nUmVnaW9uID0gdXNlQXJuUmVnaW9uID8gcmVnaW9uIDogY2xpZW50U2lnbmluZ1JlZ2lvbjtcbiAgaWYgKG91dHBvc3RJZCkge1xuICAgIC8vIGlmIHRoaXMgaXMgYW4gT3V0cG9zdCBBUk5cbiAgICB2YWxpZGF0ZU91dHBvc3RTZXJ2aWNlKHNlcnZpY2UpO1xuICAgIHZhbGlkYXRlRE5TSG9zdExhYmVsKG91dHBvc3RJZCwgeyB0bHNDb21wYXRpYmxlIH0pO1xuICAgIHZhbGlkYXRlTm9EdWFsc3RhY2soZHVhbHN0YWNrRW5kcG9pbnQpO1xuICAgIHZhbGlkYXRlTm9GSVBTKGVuZHBvaW50UmVnaW9uKTtcbiAgICBjb25zdCBob3N0bmFtZVByZWZpeCA9IGAke2FjY2Vzc3BvaW50TmFtZX0tJHthY2NvdW50SWR9LiR7b3V0cG9zdElkfWA7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgICAgaG9zdG5hbWU6IGAke2hvc3RuYW1lUHJlZml4fSR7aXNDdXN0b21FbmRwb2ludCA/IFwiXCIgOiBgLnMzLW91dHBvc3RzLiR7ZW5kcG9pbnRSZWdpb259YH0uJHtob3N0bmFtZVN1ZmZpeH1gLFxuICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgIHNpZ25pbmdTZXJ2aWNlOiBcInMzLW91dHBvc3RzXCIsXG4gICAgfTtcbiAgfVxuICAvLyBjb25zdHJ1Y3QgZW5kcG9pbnQgZnJvbSBBY2Nlc3Nwb2ludCBBUk5cbiAgdmFsaWRhdGVTM1NlcnZpY2Uoc2VydmljZSk7XG4gIGNvbnN0IGhvc3RuYW1lUHJlZml4ID0gYCR7YWNjZXNzcG9pbnROYW1lfS0ke2FjY291bnRJZH1gO1xuICByZXR1cm4ge1xuICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgIGhvc3RuYW1lOiBgJHtob3N0bmFtZVByZWZpeH0ke1xuICAgICAgaXNDdXN0b21FbmRwb2ludCA/IFwiXCIgOiBgLnMzLWFjY2Vzc3BvaW50JHtkdWFsc3RhY2tFbmRwb2ludCA/IFwiLmR1YWxzdGFja1wiIDogXCJcIn0uJHtlbmRwb2ludFJlZ2lvbn1gXG4gICAgfS4ke2hvc3RuYW1lU3VmZml4fWAsXG4gICAgc2lnbmluZ1JlZ2lvbixcbiAgfTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbUJ1Y2tldE5hbWUgPSAoe1xuICBhY2NlbGVyYXRlRW5kcG9pbnQgPSBmYWxzZSxcbiAgY2xpZW50UmVnaW9uOiByZWdpb24sXG4gIGJhc2VIb3N0bmFtZSxcbiAgYnVja2V0TmFtZSxcbiAgZHVhbHN0YWNrRW5kcG9pbnQgPSBmYWxzZSxcbiAgcGF0aFN0eWxlRW5kcG9pbnQgPSBmYWxzZSxcbiAgdGxzQ29tcGF0aWJsZSA9IHRydWUsXG4gIGlzQ3VzdG9tRW5kcG9pbnQgPSBmYWxzZSxcbn06IEJ1Y2tldEhvc3RuYW1lUGFyYW1zICYgeyBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuIH0pOiBCdWNrZXRIb3N0bmFtZSA9PiB7XG4gIGNvbnN0IFtjbGllbnRSZWdpb24sIGhvc3RuYW1lU3VmZml4XSA9IGlzQ3VzdG9tRW5kcG9pbnQgPyBbcmVnaW9uLCBiYXNlSG9zdG5hbWVdIDogZ2V0U3VmZml4KGJhc2VIb3N0bmFtZSk7XG4gIGlmIChwYXRoU3R5bGVFbmRwb2ludCB8fCAhaXNEbnNDb21wYXRpYmxlQnVja2V0TmFtZShidWNrZXROYW1lKSB8fCAodGxzQ29tcGF0aWJsZSAmJiBET1RfUEFUVEVSTi50ZXN0KGJ1Y2tldE5hbWUpKSkge1xuICAgIHJldHVybiB7XG4gICAgICBidWNrZXRFbmRwb2ludDogZmFsc2UsXG4gICAgICBob3N0bmFtZTogZHVhbHN0YWNrRW5kcG9pbnQgPyBgczMuZHVhbHN0YWNrLiR7Y2xpZW50UmVnaW9ufS4ke2hvc3RuYW1lU3VmZml4fWAgOiBiYXNlSG9zdG5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChhY2NlbGVyYXRlRW5kcG9pbnQpIHtcbiAgICBiYXNlSG9zdG5hbWUgPSBgczMtYWNjZWxlcmF0ZSR7ZHVhbHN0YWNrRW5kcG9pbnQgPyBcIi5kdWFsc3RhY2tcIiA6IFwiXCJ9LiR7aG9zdG5hbWVTdWZmaXh9YDtcbiAgfSBlbHNlIGlmIChkdWFsc3RhY2tFbmRwb2ludCkge1xuICAgIGJhc2VIb3N0bmFtZSA9IGBzMy5kdWFsc3RhY2suJHtjbGllbnRSZWdpb259LiR7aG9zdG5hbWVTdWZmaXh9YDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYnVja2V0RW5kcG9pbnQ6IHRydWUsXG4gICAgaG9zdG5hbWU6IGAke2J1Y2tldE5hbWV9LiR7YmFzZUhvc3RuYW1lfWAsXG4gIH07XG59O1xuIl19","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { parse as parseArn, validate as validateArn } from \"@aws-sdk/util-arn-parser\";\nimport { bucketHostname } from \"./bucketHostname\";\nimport { getPseudoRegion } from \"./bucketHostnameUtils\";\nexport var bucketEndpointMiddleware = function (options) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var bucketName, replaceBucketInPath, request, bucketArn, clientRegion, _a, _b, partition, _c, signingRegion, useArnRegion, _d, hostname, bucketEndpoint, modifiedSigningRegion, signingService, clientRegion, _e, _f, hostname, bucketEndpoint;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n bucketName = args.input.Bucket;\n replaceBucketInPath = options.bucketEndpoint;\n request = args.request;\n if (!HttpRequest.isInstance(request)) return [3 /*break*/, 8];\n if (!options.bucketEndpoint) return [3 /*break*/, 1];\n request.hostname = bucketName;\n return [3 /*break*/, 7];\n case 1:\n if (!validateArn(bucketName)) return [3 /*break*/, 5];\n bucketArn = parseArn(bucketName);\n _a = getPseudoRegion;\n return [4 /*yield*/, options.region()];\n case 2:\n clientRegion = _a.apply(void 0, [_g.sent()]);\n return [4 /*yield*/, options.regionInfoProvider(clientRegion)];\n case 3:\n _b = (_g.sent()) || {}, partition = _b.partition, _c = _b.signingRegion, signingRegion = _c === void 0 ? clientRegion : _c;\n return [4 /*yield*/, options.useArnRegion()];\n case 4:\n useArnRegion = _g.sent();\n _d = bucketHostname({\n bucketName: bucketArn,\n baseHostname: request.hostname,\n accelerateEndpoint: options.useAccelerateEndpoint,\n dualstackEndpoint: options.useDualstackEndpoint,\n pathStyleEndpoint: options.forcePathStyle,\n tlsCompatible: request.protocol === \"https:\",\n useArnRegion: useArnRegion,\n clientPartition: partition,\n clientSigningRegion: signingRegion,\n clientRegion: clientRegion,\n isCustomEndpoint: options.isCustomEndpoint,\n }), hostname = _d.hostname, bucketEndpoint = _d.bucketEndpoint, modifiedSigningRegion = _d.signingRegion, signingService = _d.signingService;\n // If the request needs to use a region or service name inferred from ARN that different from client region, we\n // need to set them in the handler context so the signer will use them\n if (modifiedSigningRegion && modifiedSigningRegion !== signingRegion) {\n context[\"signing_region\"] = modifiedSigningRegion;\n }\n if (signingService && signingService !== \"s3\") {\n context[\"signing_service\"] = signingService;\n }\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n return [3 /*break*/, 7];\n case 5:\n _e = getPseudoRegion;\n return [4 /*yield*/, options.region()];\n case 6:\n clientRegion = _e.apply(void 0, [_g.sent()]);\n _f = bucketHostname({\n bucketName: bucketName,\n clientRegion: clientRegion,\n baseHostname: request.hostname,\n accelerateEndpoint: options.useAccelerateEndpoint,\n dualstackEndpoint: options.useDualstackEndpoint,\n pathStyleEndpoint: options.forcePathStyle,\n tlsCompatible: request.protocol === \"https:\",\n isCustomEndpoint: options.isCustomEndpoint,\n }), hostname = _f.hostname, bucketEndpoint = _f.bucketEndpoint;\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n _g.label = 7;\n case 7:\n if (replaceBucketInPath) {\n request.path = request.path.replace(/^(\\/)?[^\\/]+/, \"\");\n if (request.path === \"\") {\n request.path = \"/\";\n }\n }\n _g.label = 8;\n case 8: return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n}); }; }; };\nexport var bucketEndpointMiddlewareOptions = {\n tags: [\"BUCKET_ENDPOINT\"],\n name: \"bucketEndpointMiddleware\",\n relation: \"before\",\n toMiddleware: \"hostHeaderMiddleware\",\n override: true,\n};\nexport var getBucketEndpointPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1Y2tldEVuZHBvaW50TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBV3JELE9BQU8sRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLFFBQVEsSUFBSSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3hELE1BQU0sQ0FBQyxJQUFNLHdCQUF3QixHQUFHLFVBQUMsT0FBcUMsSUFBZ0MsT0FBQSxVQUc1RyxJQUErQixFQUMvQixPQUFnQyxJQUNGLE9BQUEsVUFBTyxJQUFnQzs7Ozs7Z0JBQ3JELFVBQVUsR0FBSyxJQUFJLENBQUMsS0FBMkIsT0FBckMsQ0FBc0M7Z0JBQzVELG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7Z0JBQzNDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO3FCQUN6QixXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUEvQix3QkFBK0I7cUJBQzdCLE9BQU8sQ0FBQyxjQUFjLEVBQXRCLHdCQUFzQjtnQkFDeEIsT0FBTyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7OztxQkFDckIsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUF2Qix3QkFBdUI7Z0JBQzFCLFNBQVMsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2xCLEtBQUEsZUFBZSxDQUFBO2dCQUFDLHFCQUFNLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBQTs7Z0JBQXJELFlBQVksR0FBRyxrQkFBZ0IsU0FBc0IsRUFBQztnQkFDUCxxQkFBTSxPQUFPLENBQUMsa0JBQWtCLENB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cEMsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sdUJBQXVCLEdBQUcsVUFBQyxPQUFxQyxJQUEwQixPQUFBLENBQUM7SUFDdEcsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxFQUFFLCtCQUErQixDQUFDLENBQUM7SUFDaEcsQ0FBQztDQUNGLENBQUMsRUFKcUcsQ0FJckcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEJ1aWxkSGFuZGxlcixcbiAgQnVpbGRIYW5kbGVyQXJndW1lbnRzLFxuICBCdWlsZEhhbmRsZXJPdXRwdXQsXG4gIEJ1aWxkTWlkZGxld2FyZSxcbiAgSGFuZGxlckV4ZWN1dGlvbkNvbnRleHQsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG4gIFJlbGF0aXZlTWlkZGxld2FyZU9wdGlvbnMsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VBcm4sIHZhbGlkYXRlIGFzIHZhbGlkYXRlQXJuIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlclwiO1xuXG5pbXBvcnQgeyBidWNrZXRIb3N0bmFtZSB9IGZyb20gXCIuL2J1Y2tldEhvc3RuYW1lXCI7XG5pbXBvcnQgeyBnZXRQc2V1ZG9SZWdpb24gfSBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVV0aWxzXCI7XG5pbXBvcnQgeyBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnNcIjtcblxuZXhwb3J0IGNvbnN0IGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZSA9IChvcHRpb25zOiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiA9PiA8XG4gIE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyXG4+KFxuICBuZXh0OiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+LFxuICBjb250ZXh0OiBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dFxuKTogQnVpbGRIYW5kbGVyPGFueSwgT3V0cHV0PiA9PiBhc3luYyAoYXJnczogQnVpbGRIYW5kbGVyQXJndW1lbnRzPGFueT4pOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gIGNvbnN0IHsgQnVja2V0OiBidWNrZXROYW1lIH0gPSBhcmdzLmlucHV0IGFzIHsgQnVja2V0OiBzdHJpbmcgfTtcbiAgbGV0IHJlcGxhY2VCdWNrZXRJblBhdGggPSBvcHRpb25zLmJ1Y2tldEVuZHBvaW50O1xuICBjb25zdCByZXF1ZXN0ID0gYXJncy5yZXF1ZXN0O1xuICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgIGlmIChvcHRpb25zLmJ1Y2tldEVuZHBvaW50KSB7XG4gICAgICByZXF1ZXN0Lmhvc3RuYW1lID0gYnVja2V0TmFtZTtcbiAgICB9IGVsc2UgaWYgKHZhbGlkYXRlQXJuKGJ1Y2tldE5hbWUpKSB7XG4gICAgICBjb25zdCBidWNrZXRBcm4gPSBwYXJzZUFybihidWNrZXROYW1lKTtcbiAgICAgIGNvbnN0IGNsaWVudFJlZ2lvbiA9IGdldFBzZXVkb1JlZ2lvbihhd2FpdCBvcHRpb25zLnJlZ2lvbigpKTtcbiAgICAgIGNvbnN0IHsgcGFydGl0aW9uLCBzaWduaW5nUmVnaW9uID0gY2xpZW50UmVnaW9uIH0gPSAoYXdhaXQgb3B0aW9ucy5yZWdpb25JbmZvUHJvdmlkZXIoY2xpZW50UmVnaW9uKSkgfHwge307XG4gICAgICBjb25zdCB1c2VBcm5SZWdpb24gPSBhd2FpdCBvcHRpb25zLnVzZUFyblJlZ2lvbigpO1xuICAgICAgY29uc3QgeyBob3N0bmFtZSwgYnVja2V0RW5kcG9pbnQsIHNpZ25pbmdSZWdpb246IG1vZGlmaWVkU2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSA9IGJ1Y2tldEhvc3RuYW1lKHtcbiAgICAgICAgYnVja2V0TmFtZTogYnVja2V0QXJuLFxuICAgICAgICBiYXNlSG9zdG5hbWU6IHJlcXVlc3QuaG9zdG5hbWUsXG4gICAgICAgIGFjY2VsZXJhdGVFbmRwb2ludDogb3B0aW9ucy51c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgICAgIGR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50LFxuICAgICAgICBwYXRoU3R5bGVFbmRwb2ludDogb3B0aW9ucy5mb3JjZVBhdGhTdHlsZSxcbiAgICAgICAgdGxzQ29tcGF0aWJsZTogcmVxdWVzdC5wcm90b2NvbCA9PT0gXCJodHRwczpcIixcbiAgICAgICAgdXNlQXJuUmVnaW9uLFxuICAgICAgICBjbGllbnRQYXJ0aXRpb246IHBhcnRpdGlvbixcbiAgICAgICAgY2xpZW50U2lnbmluZ1JlZ2lvbjogc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgY2xpZW50UmVnaW9uOiBjbGllbnRSZWdpb24sXG4gICAgICAgIGlzQ3VzdG9tRW5kcG9pbnQ6IG9wdGlvbnMuaXNDdXN0b21FbmRwb2ludCxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBJZiB0aGUgcmVxdWVzdCBuZWVkcyB0byB1c2UgYSByZWdpb24gb3Igc2VydmljZSBuYW1lIGluZmVycmVkIGZyb20gQVJOIHRoYXQgZGlmZmVyZW50IGZyb20gY2xpZW50IHJlZ2lvbiwgd2VcbiAgICAgIC8vIG5lZWQgdG8gc2V0IHRoZW0gaW4gdGhlIGhhbmRsZXIgY29udGV4dCBzbyB0aGUgc2lnbmVyIHdpbGwgdXNlIHRoZW1cbiAgICAgIGlmIChtb2RpZmllZFNpZ25pbmdSZWdpb24gJiYgbW9kaWZpZWRTaWduaW5nUmVnaW9uICE9PSBzaWduaW5nUmVnaW9uKSB7XG4gICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3JlZ2lvblwiXSA9IG1vZGlmaWVkU2lnbmluZ1JlZ2lvbjtcbiAgICAgIH1cbiAgICAgIGlmIChzaWduaW5nU2VydmljZSAmJiBzaWduaW5nU2VydmljZSAhPT0gXCJzM1wiKSB7XG4gICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3NlcnZpY2VcIl0gPSBzaWduaW5nU2VydmljZTtcbiAgICAgIH1cblxuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IGJ1Y2tldEVuZHBvaW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjbGllbnRSZWdpb24gPSBnZXRQc2V1ZG9SZWdpb24oYXdhaXQgb3B0aW9ucy5yZWdpb24oKSk7XG4gICAgICBjb25zdCB7IGhvc3RuYW1lLCBidWNrZXRFbmRwb2ludCB9ID0gYnVja2V0SG9zdG5hbWUoe1xuICAgICAgICBidWNrZXROYW1lLFxuICAgICAgICBjbGllbnRSZWdpb24sXG4gICAgICAgIGJhc2VIb3N0bmFtZTogcmVxdWVzdC5ob3N0bmFtZSxcbiAgICAgICAgYWNjZWxlcmF0ZUVuZHBvaW50OiBvcHRpb25zLnVzZUFjY2VsZXJhdGVFbmRwb2ludCxcbiAgICAgICAgZHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICAgIHBhdGhTdHlsZUVuZHBvaW50OiBvcHRpb25zLmZvcmNlUGF0aFN0eWxlLFxuICAgICAgICB0bHNDb21wYXRpYmxlOiByZXF1ZXN0LnByb3RvY29sID09PSBcImh0dHBzOlwiLFxuICAgICAgICBpc0N1c3RvbUVuZHBvaW50OiBvcHRpb25zLmlzQ3VzdG9tRW5kcG9pbnQsXG4gICAgICB9KTtcblxuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IGJ1Y2tldEVuZHBvaW50O1xuICAgIH1cblxuICAgIGlmIChyZXBsYWNlQnVja2V0SW5QYXRoKSB7XG4gICAgICByZXF1ZXN0LnBhdGggPSByZXF1ZXN0LnBhdGgucmVwbGFjZSgvXihcXC8pP1teXFwvXSsvLCBcIlwiKTtcbiAgICAgIGlmIChyZXF1ZXN0LnBhdGggPT09IFwiXCIpIHtcbiAgICAgICAgcmVxdWVzdC5wYXRoID0gXCIvXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5leHQoeyAuLi5hcmdzLCByZXF1ZXN0IH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnM6IFJlbGF0aXZlTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gIHRhZ3M6IFtcIkJVQ0tFVF9FTkRQT0lOVFwiXSxcbiAgbmFtZTogXCJidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVcIixcbiAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gIHRvTWlkZGxld2FyZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCdWNrZXRFbmRwb2ludFBsdWdpbiA9IChvcHRpb25zOiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnMpLCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { validate as validateArn } from \"@aws-sdk/util-arn-parser\";\n/**\n * @internal\n */\nexport function validateBucketNameMiddleware() {\n var _this = this;\n return function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var Bucket, err;\n return __generator(this, function (_a) {\n Bucket = args.input.Bucket;\n if (typeof Bucket === \"string\" && !validateArn(Bucket) && Bucket.indexOf(\"/\") >= 0) {\n err = new Error(\"Bucket name shouldn't contain '/', received '\" + Bucket + \"'\");\n err.name = \"InvalidBucketName\";\n throw err;\n }\n return [2 /*return*/, next(__assign({}, args))];\n });\n }); }; };\n}\n/**\n * @internal\n */\nexport var validateBucketNameMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"VALIDATE_BUCKET_NAME\"],\n name: \"validateBucketNameMiddleware\",\n override: true,\n};\n/**\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport var getValidateBucketNamePlugin = function (unused) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(validateBucketNameMiddleware(), validateBucketNameMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtYnVja2V0LW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGUtYnVja2V0LW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVNBLE9BQU8sRUFBRSxRQUFRLElBQUksV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsNEJBQTRCO0lBQTVDLGlCQWdCQztJQWZDLE9BQU8sVUFDTCxJQUFvQyxJQUNELE9BQUEsVUFDbkMsSUFBcUM7OztZQUcxQixNQUFNLEdBQ2IsSUFBSSxhQURTLENBQ1I7WUFDVCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDNUUsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLGtEQUFnRCxNQUFNLE1BQUcsQ0FBQyxDQUFDO2dCQUNqRixHQUFHLENBQUMsSUFBSSxHQUFHLG1CQUFtQixDQUFDO2dCQUMvQixNQUFNLEdBQUcsQ0FBQzthQUNYO1lBQ0Qsc0JBQU8sSUFBSSxjQUFNLElBQUksRUFBRyxFQUFDOztTQUMxQixFQVpvQyxDQVlwQyxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sbUNBQW1DLEdBQTZCO0lBQzNFLElBQUksRUFBRSxZQUFZO0lBQ2xCLElBQUksRUFBRSxDQUFDLHNCQUFzQixDQUFDO0lBQzlCLElBQUksRUFBRSw4QkFBOEI7SUFDcEMsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUY7O0dBRUc7QUFDSCw2REFBNkQ7QUFDN0QsTUFBTSxDQUFDLElBQU0sMkJBQTJCLEdBQUcsVUFBQyxNQUFXLElBQTBCLE9BQUEsQ0FBQztJQUNoRixZQUFZLEVBQUUsVUFBQyxXQUFXO1FBQ3hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLEVBQUUsRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7Q0FDRixDQUFDLEVBSitFLENBSS9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbml0aWFsaXplSGFuZGxlcixcbiAgSW5pdGlhbGl6ZUhhbmRsZXJBcmd1bWVudHMsXG4gIEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyxcbiAgSW5pdGlhbGl6ZUhhbmRsZXJPdXRwdXQsXG4gIEluaXRpYWxpemVNaWRkbGV3YXJlLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHZhbGlkYXRlIGFzIHZhbGlkYXRlQXJuIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlclwiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZSgpOiBJbml0aWFsaXplTWlkZGxld2FyZTxhbnksIGFueT4ge1xuICByZXR1cm4gPE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyPihcbiAgICBuZXh0OiBJbml0aWFsaXplSGFuZGxlcjxhbnksIE91dHB1dD5cbiAgKTogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgICBhcmdzOiBJbml0aWFsaXplSGFuZGxlckFyZ3VtZW50czxhbnk+XG4gICk6IFByb21pc2U8SW5pdGlhbGl6ZUhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGlucHV0OiB7IEJ1Y2tldCB9LFxuICAgIH0gPSBhcmdzO1xuICAgIGlmICh0eXBlb2YgQnVja2V0ID09PSBcInN0cmluZ1wiICYmICF2YWxpZGF0ZUFybihCdWNrZXQpICYmIEJ1Y2tldC5pbmRleE9mKFwiL1wiKSA+PSAwKSB7XG4gICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoYEJ1Y2tldCBuYW1lIHNob3VsZG4ndCBjb250YWluICcvJywgcmVjZWl2ZWQgJyR7QnVja2V0fSdgKTtcbiAgICAgIGVyci5uYW1lID0gXCJJbnZhbGlkQnVja2V0TmFtZVwiO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dCh7IC4uLmFyZ3MgfSk7XG4gIH07XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlT3B0aW9uczogSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgdGFnczogW1wiVkFMSURBVEVfQlVDS0VUX05BTUVcIl0sXG4gIG5hbWU6IFwidmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmV4cG9ydCBjb25zdCBnZXRWYWxpZGF0ZUJ1Y2tldE5hbWVQbHVnaW4gPSAodW51c2VkOiBhbnkpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkKHZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmUoKSwgdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\n/**\n * @internal\n */\nexport var useRegionalEndpointMiddleware = function (config) { return function (next) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n request = args.request;\n if (!HttpRequest.isInstance(request) || config.isCustomEndpoint)\n return [2 /*return*/, next(__assign({}, args))];\n if (!(request.hostname === \"s3.amazonaws.com\")) return [3 /*break*/, 1];\n request.hostname = \"s3.us-east-1.amazonaws.com\";\n return [3 /*break*/, 3];\n case 1:\n _a = \"aws-global\";\n return [4 /*yield*/, config.region()];\n case 2:\n if (_a === (_b.sent())) {\n request.hostname = \"s3.amazonaws.com\";\n }\n _b.label = 3;\n case 3: return [2 /*return*/, next(__assign({}, args))];\n }\n });\n}); }; }; };\n/**\n * @internal\n */\nexport var useRegionalEndpointMiddlewareOptions = {\n step: \"build\",\n tags: [\"USE_REGIONAL_ENDPOINT\", \"S3\"],\n name: \"useRegionalEndpointMiddleware\",\n override: true,\n};\n/**\n * @internal\n */\nexport var getUseRegionalEndpointPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(useRegionalEndpointMiddleware(config), useRegionalEndpointMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJlZ2lvbmFsLWVuZHBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VzZS1yZWdpb25hbC1lbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBaUJyRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLDZCQUE2QixHQUFHLFVBQUMsTUFBMEIsSUFBZ0MsT0FBQSxVQUd0RyxJQUErQixJQUNELE9BQUEsVUFBTyxJQUFnQzs7Ozs7Z0JBQzdELE9BQU8sR0FBSyxJQUFJLFFBQVQsQ0FBVTtnQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLGdCQUFnQjtvQkFBRSxzQkFBTyxJQUFJLGNBQU0sSUFBSSxFQUFHLEVBQUM7cUJBQ3RGLENBQUEsT0FBTyxDQUFDLFFBQVEsS0FBSyxrQkFBa0IsQ0FBQSxFQUF2Qyx3QkFBdUM7Z0JBQ3pDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsNEJBQTRCLENBQUM7OztnQkFDdkMsS0FBQSxZQUFZLENBQUE7Z0JBQU0scUJBQU0sTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFBOztnQkFBM0MsSUFBSSxPQUFpQixDQUFDLFNBQXFCLENBQUMsRUFBRTtvQkFDbkQsT0FBTyxDQUFDLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQztpQkFDdkM7O29CQUNELHNCQUFPLElBQUksY0FBTSxJQUFJLEVBQUcsRUFBQzs7O0tBQzFCLEVBVCtCLENBUy9CLEVBYnVHLENBYXZHLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLG9DQUFvQyxHQUF3QjtJQUN2RSxJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQztJQUNyQyxJQUFJLEVBQUUsK0JBQStCO0lBQ3JDLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQUcsVUFBQyxNQUEwQixJQUEwQixPQUFBLENBQUM7SUFDaEcsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLE1BQU0sQ0FBQyxFQUFFLG9DQUFvQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztDQUNGLENBQUMsRUFKK0YsQ0FJL0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEJ1aWxkSGFuZGxlcixcbiAgQnVpbGRIYW5kbGVyQXJndW1lbnRzLFxuICBCdWlsZEhhbmRsZXJPcHRpb25zLFxuICBCdWlsZEhhbmRsZXJPdXRwdXQsXG4gIEJ1aWxkTWlkZGxld2FyZSxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbiAgUHJvdmlkZXIsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG50eXBlIFByZXZpb3VzbHlSZXNvbHZlZCA9IHtcbiAgcmVnaW9uOiBQcm92aWRlcjxzdHJpbmc+O1xuICBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVJlZ2lvbmFsRW5kcG9pbnRNaWRkbGV3YXJlID0gKGNvbmZpZzogUHJldmlvdXNseVJlc29sdmVkKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiA9PiA8XG4gIE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyXG4+KFxuICBuZXh0OiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+XG4pOiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChhcmdzOiBCdWlsZEhhbmRsZXJBcmd1bWVudHM8YW55Pik6IFByb21pc2U8QnVpbGRIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UocmVxdWVzdCkgfHwgY29uZmlnLmlzQ3VzdG9tRW5kcG9pbnQpIHJldHVybiBuZXh0KHsgLi4uYXJncyB9KTtcbiAgaWYgKHJlcXVlc3QuaG9zdG5hbWUgPT09IFwiczMuYW1hem9uYXdzLmNvbVwiKSB7XG4gICAgcmVxdWVzdC5ob3N0bmFtZSA9IFwiczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cIjtcbiAgfSBlbHNlIGlmIChcImF3cy1nbG9iYWxcIiA9PT0gKGF3YWl0IGNvbmZpZy5yZWdpb24oKSkpIHtcbiAgICByZXF1ZXN0Lmhvc3RuYW1lID0gXCJzMy5hbWF6b25hd3MuY29tXCI7XG4gIH1cbiAgcmV0dXJuIG5leHQoeyAuLi5hcmdzIH0pO1xufTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVJlZ2lvbmFsRW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9uczogQnVpbGRIYW5kbGVyT3B0aW9ucyA9IHtcbiAgc3RlcDogXCJidWlsZFwiLFxuICB0YWdzOiBbXCJVU0VfUkVHSU9OQUxfRU5EUE9JTlRcIiwgXCJTM1wiXSxcbiAgbmFtZTogXCJ1c2VSZWdpb25hbEVuZHBvaW50TWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRVc2VSZWdpb25hbEVuZHBvaW50UGx1Z2luID0gKGNvbmZpZzogUHJldmlvdXNseVJlc29sdmVkKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZCh1c2VSZWdpb25hbEVuZHBvaW50TWlkZGxld2FyZShjb25maWcpLCB1c2VSZWdpb25hbEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=","import { __awaiter, __generator } from \"tslib\";\nimport { HttpResponse } from \"@aws-sdk/protocol-http\";\n/**\n * In case of an internal error/terminated connection, S3 operations may return 200 errors. CopyObject, UploadPartCopy,\n * CompleteMultipartUpload may return empty payload or payload with only xml Preamble.\n * @internal\n */\nexport var throw200ExceptionsMiddleware = function (config) { return function (next) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var result, response, statusCode, body, bodyBytes, bodyString, err;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, next(args)];\n case 1:\n result = _a.sent();\n response = result.response;\n if (!HttpResponse.isInstance(response))\n return [2 /*return*/, result];\n statusCode = response.statusCode, body = response.body;\n if (statusCode < 200 && statusCode >= 300)\n return [2 /*return*/, result];\n return [4 /*yield*/, collectBody(body, config)];\n case 2:\n bodyBytes = _a.sent();\n return [4 /*yield*/, collectBodyString(bodyBytes, config)];\n case 3:\n bodyString = _a.sent();\n if (bodyBytes.length === 0) {\n err = new Error(\"S3 aborted request\");\n err.name = \"InternalError\";\n throw err;\n }\n if (bodyString && bodyString.match(\"\")) {\n // Set the error code to 4XX so that error deserializer can parse them\n response.statusCode = 400;\n }\n // Body stream is consumed and paused at this point. So replace the response.body to the collected bytes.\n // So that the deserializer can consume the body as normal.\n response.body = bodyBytes;\n return [2 /*return*/, result];\n }\n });\n}); }; }; };\n// Collect low-level response body stream to Uint8Array.\nvar collectBody = function (streamBody, context) {\n if (streamBody === void 0) { streamBody = new Uint8Array(); }\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\n// Encode Uint8Array data into string with utf-8.\nvar collectBodyString = function (streamBody, context) {\n return collectBody(streamBody, context).then(function (body) { return context.utf8Encoder(body); });\n};\n/**\n * @internal\n */\nexport var throw200ExceptionsMiddlewareOptions = {\n relation: \"after\",\n toMiddleware: \"deserializerMiddleware\",\n tags: [\"THROW_200_EXCEPTIONS\", \"S3\"],\n name: \"throw200ExceptionsMiddleware\",\n override: true,\n};\n/**\n *\n * @internal\n */\nexport var getThrow200ExceptionsPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3ctMjAwLWV4Y2VwdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGhyb3ctMjAwLWV4Y2VwdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVF0RDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQUcsVUFBQyxNQUEwQixJQUFzQyxPQUFBLFVBQzNHLElBQUksSUFDRCxPQUFBLFVBQU8sSUFBSTs7OztvQkFDQyxxQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUE7O2dCQUF6QixNQUFNLEdBQUcsU0FBZ0I7Z0JBQ3ZCLFFBQVEsR0FBSyxNQUFNLFNBQVgsQ0FBWTtnQkFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO29CQUFFLHNCQUFPLE1BQU0sRUFBQztnQkFDOUMsVUFBVSxHQUFXLFFBQVEsV0FBbkIsRUFBRSxJQUFJLEdBQUssUUFBUSxLQUFiLENBQWM7Z0JBQ3RDLElBQUksVUFBVSxHQUFHLEdBQUcsSUFBSSxVQUFVLElBQUksR0FBRztvQkFBRSxzQkFBTyxNQUFNLEVBQUM7Z0JBR3ZDLHFCQUFNLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUE7O2dCQUEzQyxTQUFTLEdBQUcsU0FBK0I7Z0JBQzlCLHFCQUFNLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFBQTs7Z0JBQXZELFVBQVUsR0FBRyxTQUEwQztnQkFDN0QsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDcEIsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7b0JBQzVDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDO29CQUMzQixNQUFNLEdBQUcsQ0FBQztpQkFDWDtnQkFDRCxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFO29CQUM3QyxzRUFBc0U7b0JBQ3RFLFFBQVEsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO2lCQUMzQjtnQkFFRCx5R0FBeUc7Z0JBQ3pHLDJEQUEyRDtnQkFDM0QsUUFBUSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7Z0JBQzFCLHNCQUFPLE1BQU0sRUFBQzs7O0tBQ2YsRUF4QkksQ0F3QkosRUExQjRHLENBMEI1RyxDQUFDO0FBRUYsd0RBQXdEO0FBQ3hELElBQU0sV0FBVyxHQUFHLFVBQUMsVUFBa0MsRUFBRSxPQUEyQjtJQUEvRCwyQkFBQSxFQUFBLGlCQUFzQixVQUFVLEVBQUU7SUFDckQsSUFBSSxVQUFVLFlBQVksVUFBVSxFQUFFO1FBQ3BDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUNwQztJQUNELE9BQU8sT0FBTyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQztBQUNsRixDQUFDLENBQUM7QUFFRixpREFBaUQ7QUFDakQsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLFVBQWUsRUFBRSxPQUEyQjtJQUNyRSxPQUFBLFdBQVcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBekIsQ0FBeUIsQ0FBQztBQUExRSxDQUEwRSxDQUFDO0FBRTdFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sbUNBQW1DLEdBQThCO0lBQzVFLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLFlBQVksRUFBRSx3QkFBd0I7SUFDdEMsSUFBSSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDO0lBQ3BDLElBQUksRUFBRSw4QkFBOEI7SUFDcEMsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sMkJBQTJCLEdBQUcsVUFBQyxNQUEwQixJQUEwQixPQUFBLENBQUM7SUFDL0YsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsYUFBYSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxFQUFFLG1DQUFtQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztDQUNGLENBQUMsRUFKOEYsQ0FJOUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXNwb25zZSB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBEZXNlcmlhbGl6ZU1pZGRsZXdhcmUsIEVuY29kZXIsIFBsdWdnYWJsZSwgUmVsYXRpdmVNaWRkbGV3YXJlT3B0aW9ucywgU3RyZWFtQ29sbGVjdG9yIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbnR5cGUgUHJldmlvdXNseVJlc29sdmVkID0ge1xuICBzdHJlYW1Db2xsZWN0b3I6IFN0cmVhbUNvbGxlY3RvcjtcbiAgdXRmOEVuY29kZXI6IEVuY29kZXI7XG59O1xuXG4vKipcbiAqIEluIGNhc2Ugb2YgYW4gaW50ZXJuYWwgZXJyb3IvdGVybWluYXRlZCBjb25uZWN0aW9uLCBTMyBvcGVyYXRpb25zIG1heSByZXR1cm4gMjAwIGVycm9ycy4gQ29weU9iamVjdCwgVXBsb2FkUGFydENvcHksXG4gKiBDb21wbGV0ZU11bHRpcGFydFVwbG9hZCBtYXkgcmV0dXJuIGVtcHR5IHBheWxvYWQgb3IgcGF5bG9hZCB3aXRoIG9ubHkgeG1sIFByZWFtYmxlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlID0gKGNvbmZpZzogUHJldmlvdXNseVJlc29sdmVkKTogRGVzZXJpYWxpemVNaWRkbGV3YXJlPGFueSwgYW55PiA9PiAoXG4gIG5leHRcbikgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgY29uc3QgeyByZXNwb25zZSB9ID0gcmVzdWx0O1xuICBpZiAoIUh0dHBSZXNwb25zZS5pc0luc3RhbmNlKHJlc3BvbnNlKSkgcmV0dXJuIHJlc3VsdDtcbiAgY29uc3QgeyBzdGF0dXNDb2RlLCBib2R5IH0gPSByZXNwb25zZTtcbiAgaWYgKHN0YXR1c0NvZGUgPCAyMDAgJiYgc3RhdHVzQ29kZSA+PSAzMDApIHJldHVybiByZXN1bHQ7XG5cbiAgLy8gVGhyb3cgMlhYIHJlc3BvbnNlIHRoYXQncyBlaXRoZXIgYW4gZXJyb3Igb3IgaGFzIGVtcHR5IGJvZHkuXG4gIGNvbnN0IGJvZHlCeXRlcyA9IGF3YWl0IGNvbGxlY3RCb2R5KGJvZHksIGNvbmZpZyk7XG4gIGNvbnN0IGJvZHlTdHJpbmcgPSBhd2FpdCBjb2xsZWN0Qm9keVN0cmluZyhib2R5Qnl0ZXMsIGNvbmZpZyk7XG4gIGlmIChib2R5Qnl0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgY29uc3QgZXJyID0gbmV3IEVycm9yKFwiUzMgYWJvcnRlZCByZXF1ZXN0XCIpO1xuICAgIGVyci5uYW1lID0gXCJJbnRlcm5hbEVycm9yXCI7XG4gICAgdGhyb3cgZXJyO1xuICB9XG4gIGlmIChib2R5U3RyaW5nICYmIGJvZHlTdHJpbmcubWF0Y2goXCI8RXJyb3I+XCIpKSB7XG4gICAgLy8gU2V0IHRoZSBlcnJvciBjb2RlIHRvIDRYWCBzbyB0aGF0IGVycm9yIGRlc2VyaWFsaXplciBjYW4gcGFyc2UgdGhlbVxuICAgIHJlc3BvbnNlLnN0YXR1c0NvZGUgPSA0MDA7XG4gIH1cblxuICAvLyBCb2R5IHN0cmVhbSBpcyBjb25zdW1lZCBhbmQgcGF1c2VkIGF0IHRoaXMgcG9pbnQuIFNvIHJlcGxhY2UgdGhlIHJlc3BvbnNlLmJvZHkgdG8gdGhlIGNvbGxlY3RlZCBieXRlcy5cbiAgLy8gU28gdGhhdCB0aGUgZGVzZXJpYWxpemVyIGNhbiBjb25zdW1lIHRoZSBib2R5IGFzIG5vcm1hbC5cbiAgcmVzcG9uc2UuYm9keSA9IGJvZHlCeXRlcztcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8vIENvbGxlY3QgbG93LWxldmVsIHJlc3BvbnNlIGJvZHkgc3RyZWFtIHRvIFVpbnQ4QXJyYXkuXG5jb25zdCBjb2xsZWN0Qm9keSA9IChzdHJlYW1Cb2R5OiBhbnkgPSBuZXcgVWludDhBcnJheSgpLCBjb250ZXh0OiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBQcm9taXNlPFVpbnQ4QXJyYXk+ID0+IHtcbiAgaWYgKHN0cmVhbUJvZHkgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzdHJlYW1Cb2R5KTtcbiAgfVxuICByZXR1cm4gY29udGV4dC5zdHJlYW1Db2xsZWN0b3Ioc3RyZWFtQm9keSkgfHwgUHJvbWlzZS5yZXNvbHZlKG5ldyBVaW50OEFycmF5KCkpO1xufTtcblxuLy8gRW5jb2RlIFVpbnQ4QXJyYXkgZGF0YSBpbnRvIHN0cmluZyB3aXRoIHV0Zi04LlxuY29uc3QgY29sbGVjdEJvZHlTdHJpbmcgPSAoc3RyZWFtQm9keTogYW55LCBjb250ZXh0OiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBQcm9taXNlPHN0cmluZz4gPT5cbiAgY29sbGVjdEJvZHkoc3RyZWFtQm9keSwgY29udGV4dCkudGhlbigoYm9keSkgPT4gY29udGV4dC51dGY4RW5jb2Rlcihib2R5KSk7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlT3B0aW9uczogUmVsYXRpdmVNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgcmVsYXRpb246IFwiYWZ0ZXJcIixcbiAgdG9NaWRkbGV3YXJlOiBcImRlc2VyaWFsaXplck1pZGRsZXdhcmVcIixcbiAgdGFnczogW1wiVEhST1dfMjAwX0VYQ0VQVElPTlNcIiwgXCJTM1wiXSxcbiAgbmFtZTogXCJ0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlXCIsXG4gIG92ZXJyaWRlOiB0cnVlLFxufTtcblxuLyoqXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4gPSAoY29uZmlnOiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkUmVsYXRpdmVUbyh0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlKGNvbmZpZyksIHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __awaiter, __generator, __values } from \"tslib\";\nexport function ssecMiddleware(options) {\n var _this = this;\n return function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var input, properties, properties_1, properties_1_1, prop, value, valueView, encoded, hash, _a, _b, _c, _d, e_1_1;\n var e_1, _e, _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n input = __assign({}, args.input);\n properties = [\n {\n target: \"SSECustomerKey\",\n hash: \"SSECustomerKeyMD5\",\n },\n {\n target: \"CopySourceSSECustomerKey\",\n hash: \"CopySourceSSECustomerKeyMD5\",\n },\n ];\n _g.label = 1;\n case 1:\n _g.trys.push([1, 6, 7, 8]);\n properties_1 = __values(properties), properties_1_1 = properties_1.next();\n _g.label = 2;\n case 2:\n if (!!properties_1_1.done) return [3 /*break*/, 5];\n prop = properties_1_1.value;\n value = input[prop.target];\n if (!value) return [3 /*break*/, 4];\n valueView = ArrayBuffer.isView(value)\n ? new Uint8Array(value.buffer, value.byteOffset, value.byteLength)\n : typeof value === \"string\"\n ? options.utf8Decoder(value)\n : new Uint8Array(value);\n encoded = options.base64Encoder(valueView);\n hash = new options.md5();\n hash.update(valueView);\n _a = [__assign({}, input)];\n _f = {}, _f[prop.target] = encoded;\n _b = prop.hash;\n _d = (_c = options).base64Encoder;\n return [4 /*yield*/, hash.digest()];\n case 3:\n input = __assign.apply(void 0, _a.concat([(_f[_b] = _d.apply(_c, [_g.sent()]), _f)]));\n _g.label = 4;\n case 4:\n properties_1_1 = properties_1.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_1_1 = _g.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (properties_1_1 && !properties_1_1.done && (_e = properties_1.return)) _e.call(properties_1);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/, next(__assign(__assign({}, args), { input: input }))];\n }\n });\n }); }; };\n}\nexport var ssecMiddlewareOptions = {\n name: \"ssecMiddleware\",\n step: \"initialize\",\n tags: [\"SSE\"],\n override: true,\n};\nexport var getSsecPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(ssecMiddleware(config), ssecMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWFBLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBcUM7SUFBcEUsaUJBMENDO0lBekNDLE9BQU8sVUFDTCxJQUFvQyxJQUNELE9BQUEsVUFDbkMsSUFBcUM7Ozs7OztvQkFFakMsS0FBSyxnQkFBUSxJQUFJLENBQUMsS0FBSyxDQUFFLENBQUM7b0JBQ3hCLFVBQVUsR0FBRzt3QkFDakI7NEJBQ0UsTUFBTSxFQUFFLGdCQUFnQjs0QkFDeEIsSUFBSSxFQUFFLG1CQUFtQjt5QkFDMUI7d0JBQ0Q7NEJBQ0UsTUFBTSxFQUFFLDBCQUEwQjs0QkFDbEMsSUFBSSxFQUFFLDZCQUE2Qjt5QkFDcEM7cUJBQ0YsQ0FBQzs7OztvQkFFaUIsZUFBQSxTQUFBLFVBQVUsQ0FBQTs7OztvQkFBbEIsSUFBSTtvQkFDUCxLQUFLLEdBQTRCLEtBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7eUJBQzlELEtBQUssRUFBTCx3QkFBSztvQkFDRCxTQUFTLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7d0JBQ3pDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQzt3QkFDbEUsQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVE7NEJBQzNCLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQzs0QkFDNUIsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwQixPQUFPLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDM0MsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3VDQUVqQixLQUFhO2dDQUNoQixJQUFJLENBQUMsTUFBTSxJQUFHLE9BQU87b0JBQ3JCLEtBQUEsSUFBSSxDQUFDLElBQUksQ0FBQTtvQkFBRyxLQUFBLENBQUEsS0FBQSxPQUFPLENBQUEsQ0FBQyxhQUFhLENBQUE7b0JBQUMscUJBQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFBOztvQkFIeEQsS0FBSywrQ0FHVSxjQUFzQixTQUFtQixFQUFDLFFBQ3hELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7d0JBSU4sc0JBQU8sSUFBSSx1QkFDTixJQUFJLEtBQ1AsS0FBSyxPQUFBLElBQ0wsRUFBQzs7O1NBQ0osRUF0Q29DLENBc0NwQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxJQUFNLHFCQUFxQixHQUE2QjtJQUM3RCxJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLElBQUksRUFBRSxZQUFZO0lBQ2xCLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQztJQUNiLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBRyxVQUFDLE1BQW9DLElBQTBCLE9BQUEsQ0FBQztJQUMzRixZQUFZLEVBQUUsVUFBQyxXQUFXO1FBQ3hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNGLENBQUMsRUFKMEYsQ0FJMUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluaXRpYWxpemVIYW5kbGVyLFxuICBJbml0aWFsaXplSGFuZGxlckFyZ3VtZW50cyxcbiAgSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zLFxuICBJbml0aWFsaXplSGFuZGxlck91dHB1dCxcbiAgSW5pdGlhbGl6ZU1pZGRsZXdhcmUsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG4gIFNvdXJjZURhdGEsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBSZXNvbHZlZFNzZWNNaWRkbGV3YXJlQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvblwiO1xuXG5leHBvcnQgZnVuY3Rpb24gc3NlY01pZGRsZXdhcmUob3B0aW9uczogUmVzb2x2ZWRTc2VjTWlkZGxld2FyZUNvbmZpZyk6IEluaXRpYWxpemVNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KFxuICAgIG5leHQ6IEluaXRpYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0PlxuICApOiBJbml0aWFsaXplSGFuZGxlcjxhbnksIE91dHB1dD4gPT4gYXN5bmMgKFxuICAgIGFyZ3M6IEluaXRpYWxpemVIYW5kbGVyQXJndW1lbnRzPGFueT5cbiAgKTogUHJvbWlzZTxJbml0aWFsaXplSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgbGV0IGlucHV0ID0geyAuLi5hcmdzLmlucHV0IH07XG4gICAgY29uc3QgcHJvcGVydGllcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdGFyZ2V0OiBcIlNTRUN1c3RvbWVyS2V5XCIsXG4gICAgICAgIGhhc2g6IFwiU1NFQ3VzdG9tZXJLZXlNRDVcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRhcmdldDogXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXlcIixcbiAgICAgICAgaGFzaDogXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXlNRDVcIixcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICBjb25zdCB2YWx1ZTogU291cmNlRGF0YSB8IHVuZGVmaW5lZCA9IChpbnB1dCBhcyBhbnkpW3Byb3AudGFyZ2V0XTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBjb25zdCB2YWx1ZVZpZXcgPSBBcnJheUJ1ZmZlci5pc1ZpZXcodmFsdWUpXG4gICAgICAgICAgPyBuZXcgVWludDhBcnJheSh2YWx1ZS5idWZmZXIsIHZhbHVlLmJ5dGVPZmZzZXQsIHZhbHVlLmJ5dGVMZW5ndGgpXG4gICAgICAgICAgOiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IG9wdGlvbnMudXRmOERlY29kZXIodmFsdWUpXG4gICAgICAgICAgOiBuZXcgVWludDhBcnJheSh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IGVuY29kZWQgPSBvcHRpb25zLmJhc2U2NEVuY29kZXIodmFsdWVWaWV3KTtcbiAgICAgICAgY29uc3QgaGFzaCA9IG5ldyBvcHRpb25zLm1kNSgpO1xuICAgICAgICBoYXNoLnVwZGF0ZSh2YWx1ZVZpZXcpO1xuICAgICAgICBpbnB1dCA9IHtcbiAgICAgICAgICAuLi4oaW5wdXQgYXMgYW55KSxcbiAgICAgICAgICBbcHJvcC50YXJnZXRdOiBlbmNvZGVkLFxuICAgICAgICAgIFtwcm9wLmhhc2hdOiBvcHRpb25zLmJhc2U2NEVuY29kZXIoYXdhaXQgaGFzaC5kaWdlc3QoKSksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQoe1xuICAgICAgLi4uYXJncyxcbiAgICAgIGlucHV0LFxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3Qgc3NlY01pZGRsZXdhcmVPcHRpb25zOiBJbml0aWFsaXplSGFuZGxlck9wdGlvbnMgPSB7XG4gIG5hbWU6IFwic3NlY01pZGRsZXdhcmVcIixcbiAgc3RlcDogXCJpbml0aWFsaXplXCIsXG4gIHRhZ3M6IFtcIlNTRVwiXSxcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3NlY1BsdWdpbiA9IChjb25maWc6IFJlc29sdmVkU3NlY01pZGRsZXdhcmVDb25maWcpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkKHNzZWNNaWRkbGV3YXJlKGNvbmZpZyksIHNzZWNNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","import { __extends } from \"tslib\";\nimport { CopyObjectOutput, CopyObjectRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlCopyObjectCommand, serializeAws_restXmlCopyObjectCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Creates a copy of an object that is already stored in Amazon S3.

\n * \n *

You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your\n * object up to 5 GB in size in a single atomic operation using this API. However, to copy\n * an object greater than 5 GB, you must use the multipart upload Upload Part - Copy API.\n * For more information, see Copy Object Using the REST Multipart Upload API.

\n *
\n *

All copy requests must be authenticated. Additionally, you must have\n * read access to the source object and write\n * access to the destination bucket. For more information, see REST Authentication. Both the Region\n * that you want to copy the object from and the Region that you want to copy the object to\n * must be enabled for your account.

\n *

A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3\n * is copying the files. If the error occurs before the copy operation starts, you receive a\n * standard Amazon S3 error. If the error occurs during the copy operation, the error response is\n * embedded in the 200 OK response. This means that a 200 OK\n * response can contain either a success or an error. Design your application to parse the\n * contents of the response and handle it appropriately.

\n *

If the copy is successful, you receive a response with information about the copied\n * object.

\n * \n *

If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not,\n * it would not contain the content-length, and you would need to read the entire\n * body.

\n *
\n *

The copy request charge is based on the storage class and Region that you specify for\n * the destination object. For pricing information, see Amazon S3 pricing.

\n * \n *

Amazon S3 transfer acceleration does not support cross-Region copies. If you request a\n * cross-Region copy using a transfer acceleration endpoint, you get a 400 Bad\n * Request error. For more information, see Transfer Acceleration.

\n *
\n *

\n * Metadata\n *

\n *

When copying an object, you can preserve all metadata (default) or specify new metadata.\n * However, the ACL is not preserved and is set to private for the user making the request. To\n * override the default ACL setting, specify a new ACL when generating a copy request. For\n * more information, see Using ACLs.

\n *

To specify whether you want the object metadata copied from the source object or\n * replaced with metadata provided in the request, you can optionally add the\n * x-amz-metadata-directive header. When you grant permissions, you can use\n * the s3:x-amz-metadata-directive condition key to enforce certain metadata\n * behavior when objects are uploaded. For more information, see Specifying Conditions in a\n * Policy in the Amazon S3 Developer Guide. For a complete list of\n * Amazon S3-specific condition keys, see Actions, Resources, and Condition Keys for\n * Amazon S3.

\n *

\n * \n * x-amz-copy-source-if Headers\n *

\n *

To only copy an object under certain conditions, such as whether the Etag\n * matches or whether the object was modified before or after a specified date, use the\n * following request parameters:

\n *
    \n *
  • \n *

    \n * x-amz-copy-source-if-match\n *

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-none-match\n *

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-unmodified-since\n *

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-modified-since\n *

    \n *
  • \n *
\n *

If both the x-amz-copy-source-if-match and\n * x-amz-copy-source-if-unmodified-since headers are present in the request\n * and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

\n *
    \n *
  • \n *

    \n * x-amz-copy-source-if-match condition evaluates to true

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-unmodified-since condition evaluates to\n * false

    \n *
  • \n *
\n *\n *

If both the x-amz-copy-source-if-none-match and\n * x-amz-copy-source-if-modified-since headers are present in the request and\n * evaluate as follows, Amazon S3 returns the 412 Precondition Failed response\n * code:

\n *
    \n *
  • \n *

    \n * x-amz-copy-source-if-none-match condition evaluates to false

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-modified-since condition evaluates to\n * true

    \n *
  • \n *
\n *\n * \n *

All headers with the x-amz- prefix, including\n * x-amz-copy-source, must be signed.

\n *
\n *

\n * Server-side encryption\n *

\n *

When you perform a CopyObject operation, you can optionally use the appropriate encryption-related headers to encrypt the object using server-side encryption with AWS managed encryption keys (SSE-S3 or SSE-KMS) or a customer-provided encryption key. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it. For more information about server-side encryption, see Using\n * Server-Side Encryption.

\n *

If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the object. For more\n * information, see Amazon S3 Bucket Keys in the Amazon Simple Storage Service Developer Guide.

\n *

\n * Access Control List (ACL)-Specific Request\n * Headers\n *

\n *

When copying an object, you can optionally use headers to grant ACL-based permissions.\n * By default, all objects are private. Only the owner has full access control. When adding a\n * new object, you can grant permissions to individual AWS accounts or to predefined groups\n * defined by Amazon S3. These permissions are then added to the ACL on the object. For more\n * information, see Access Control List (ACL) Overview and Managing ACLs Using the REST\n * API.

\n *\n *

\n * Storage Class Options\n *

\n *

You can use the CopyObject operation to change the storage class of an\n * object that is already stored in Amazon S3 using the StorageClass parameter. For\n * more information, see Storage\n * Classes in the Amazon S3 Service Developer Guide.

\n *

\n * Versioning\n *

\n *

By default, x-amz-copy-source identifies the current version of an object\n * to copy. If the current version is a delete marker, Amazon S3 behaves as if the object was\n * deleted. To copy a different version, use the versionId subresource.

\n *

If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for\n * the object being copied. This version ID is different from the version ID of the source\n * object. Amazon S3 returns the version ID of the copied object in the\n * x-amz-version-id response header in the response.

\n *

If you do not enable versioning or suspend it on the target bucket, the version ID that\n * Amazon S3 generates is always null.

\n *

If the source object's storage class is GLACIER, you must restore a copy of this object\n * before you can use it as a source object for the copy operation. For more information, see\n * RestoreObject.

\n *

The following operations are related to CopyObject:

\n * \n *

For more information, see Copying\n * Objects.

\n */\nvar CopyObjectCommand = /** @class */ (function (_super) {\n __extends(CopyObjectCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function CopyObjectCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n CopyObjectCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getThrow200ExceptionsPlugin(configuration));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"CopyObjectCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: CopyObjectRequest.filterSensitiveLog,\n outputFilterSensitiveLog: CopyObjectOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n CopyObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlCopyObjectCommand(input, context);\n };\n CopyObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlCopyObjectCommand(output, context);\n };\n return CopyObjectCommand;\n}($Command));\nexport { CopyObjectCommand };\n//# sourceMappingURL=CopyObjectCommand.js.map","import { __extends } from \"tslib\";\nimport { GetObjectOutput, GetObjectRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlGetObjectCommand, serializeAws_restXmlGetObjectCommand } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Retrieves objects from Amazon S3. To use GET, you must have READ\n * access to the object. If you grant READ access to the anonymous user, you can\n * return the object without using an authorization header.

\n *\n *

An Amazon S3 bucket has no directory hierarchy such as you would find in a typical computer\n * file system. You can, however, create a logical hierarchy by using object key names that\n * imply a folder structure. For example, instead of naming an object sample.jpg,\n * you can name it photos/2006/February/sample.jpg.

\n *\n *

To get an object from such a logical hierarchy, specify the full key name for the object\n * in the GET operation. For a virtual hosted-style request example, if you have\n * the object photos/2006/February/sample.jpg, specify the resource as\n * /photos/2006/February/sample.jpg. For a path-style request example, if you\n * have the object photos/2006/February/sample.jpg in the bucket named\n * examplebucket, specify the resource as\n * /examplebucket/photos/2006/February/sample.jpg. For more information about\n * request types, see HTTP Host Header Bucket Specification.

\n *\n *

To distribute large files to many people, you can save bandwidth costs by using\n * BitTorrent. For more information, see Amazon S3\n * Torrent. For more information about returning the ACL of an object, see GetObjectAcl.

\n *\n *

If the object you are retrieving is stored in the S3 Glacier or\n * S3 Glacier Deep Archive storage class, or S3 Intelligent-Tiering Archive or\n * S3 Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you must first restore a\n * copy using RestoreObject. Otherwise, this operation returns an\n * InvalidObjectStateError error. For information about restoring archived\n * objects, see Restoring Archived\n * Objects.

\n *\n *

Encryption request headers, like x-amz-server-side-encryption, should not\n * be sent for GET requests if your object uses server-side encryption with CMKs stored in AWS\n * KMS (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your\n * object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

\n *

If you encrypt an object by using server-side encryption with customer-provided\n * encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object,\n * you must use the following headers:

\n *
    \n *
  • \n *

    x-amz-server-side-encryption-customer-algorithm

    \n *
  • \n *
  • \n *

    x-amz-server-side-encryption-customer-key

    \n *
  • \n *
  • \n *

    x-amz-server-side-encryption-customer-key-MD5

    \n *
  • \n *
\n *

For more information about SSE-C, see Server-Side Encryption (Using\n * Customer-Provided Encryption Keys).

\n *\n *

Assuming you have permission to read object tags (permission for the\n * s3:GetObjectVersionTagging action), the response also returns the\n * x-amz-tagging-count header that provides the count of number of tags\n * associated with the object. You can use GetObjectTagging to retrieve\n * the tag set associated with an object.

\n *\n *

\n * Permissions\n *

\n *

You need the s3:GetObject permission for this operation. For more\n * information, see Specifying Permissions\n * in a Policy. If the object you request does not exist, the error Amazon S3 returns\n * depends on whether you also have the s3:ListBucket permission.

\n *
    \n *
  • \n *

    If you have the s3:ListBucket permission on the bucket, Amazon S3 will\n * return an HTTP status code 404 (\"no such key\") error.

    \n *
  • \n *
  • \n *

    If you don’t have the s3:ListBucket permission, Amazon S3 will return an\n * HTTP status code 403 (\"access denied\") error.

    \n *
  • \n *
\n *\n *\n *

\n * Versioning\n *

\n *

By default, the GET operation returns the current version of an object. To return a\n * different version, use the versionId subresource.

\n *\n * \n *

If the current version of the object is a delete marker, Amazon S3 behaves as if the\n * object was deleted and includes x-amz-delete-marker: true in the\n * response.

\n *
\n *\n *\n *

For more information about versioning, see PutBucketVersioning.

\n *\n *

\n * Overriding Response Header Values\n *

\n *

There are times when you want to override certain response header values in a GET\n * response. For example, you might override the Content-Disposition response header value in\n * your GET request.

\n *\n *

You can override values for a set of response headers using the following query\n * parameters. These response header values are sent only on a successful request, that is,\n * when status code 200 OK is returned. The set of headers you can override using these\n * parameters is a subset of the headers that Amazon S3 accepts when you create an object. The\n * response headers that you can override for the GET response are Content-Type,\n * Content-Language, Expires, Cache-Control,\n * Content-Disposition, and Content-Encoding. To override these\n * header values in the GET response, you use the following request parameters.

\n *\n * \n *

You must sign the request, either using an Authorization header or a presigned URL,\n * when using these parameters. They cannot be used with an unsigned (anonymous)\n * request.

\n *
\n *
    \n *
  • \n *

    \n * response-content-type\n *

    \n *
  • \n *
  • \n *

    \n * response-content-language\n *

    \n *
  • \n *
  • \n *

    \n * response-expires\n *

    \n *
  • \n *
  • \n *

    \n * response-cache-control\n *

    \n *
  • \n *
  • \n *

    \n * response-content-disposition\n *

    \n *
  • \n *
  • \n *

    \n * response-content-encoding\n *

    \n *
  • \n *
\n *\n *

\n * Additional Considerations about Request Headers\n *

\n *\n *

If both of the If-Match and If-Unmodified-Since headers are\n * present in the request as follows: If-Match condition evaluates to\n * true, and; If-Unmodified-Since condition evaluates to\n * false; then, S3 returns 200 OK and the data requested.

\n *\n *

If both of the If-None-Match and If-Modified-Since headers are\n * present in the request as follows: If-None-Match condition evaluates to\n * false, and; If-Modified-Since condition evaluates to\n * true; then, S3 returns 304 Not Modified response code.

\n *\n *

For more information about conditional requests, see RFC 7232.

\n *\n *

The following operations are related to GetObject:

\n * \n */\nvar GetObjectCommand = /** @class */ (function (_super) {\n __extends(GetObjectCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function GetObjectCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n GetObjectCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"GetObjectCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: GetObjectRequest.filterSensitiveLog,\n outputFilterSensitiveLog: GetObjectOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n GetObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlGetObjectCommand(input, context);\n };\n GetObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlGetObjectCommand(output, context);\n };\n return GetObjectCommand;\n}($Command));\nexport { GetObjectCommand };\n//# sourceMappingURL=GetObjectCommand.js.map","import { __extends } from \"tslib\";\nimport { DeleteObjectOutput, DeleteObjectRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlDeleteObjectCommand, serializeAws_restXmlDeleteObjectCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Removes the null version (if there is one) of an object and inserts a delete marker,\n * which becomes the latest version of the object. If there isn't a null version, Amazon S3 does\n * not remove any objects.

\n *\n *

To remove a specific version, you must be the bucket owner and you must use the version\n * Id subresource. Using this subresource permanently deletes the version. If the object\n * deleted is a delete marker, Amazon S3 sets the response header,\n * x-amz-delete-marker, to true.

\n *\n *

If the object you want to delete is in a bucket where the bucket versioning\n * configuration is MFA Delete enabled, you must include the x-amz-mfa request\n * header in the DELETE versionId request. Requests that include\n * x-amz-mfa must use HTTPS.

\n *\n *

For more information about MFA Delete, see Using MFA Delete. To see sample requests that use versioning, see Sample Request.

\n *\n *

You can delete objects by explicitly calling the DELETE Object API or configure its\n * lifecycle (PutBucketLifecycle) to\n * enable Amazon S3 to remove them for you. If you want to block users or accounts from removing or\n * deleting objects from your bucket, you must deny them the s3:DeleteObject,\n * s3:DeleteObjectVersion, and s3:PutLifeCycleConfiguration\n * actions.

\n *\n *

The following operation is related to DeleteObject:

\n * \n */\nvar DeleteObjectCommand = /** @class */ (function (_super) {\n __extends(DeleteObjectCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function DeleteObjectCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n DeleteObjectCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"DeleteObjectCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: DeleteObjectRequest.filterSensitiveLog,\n outputFilterSensitiveLog: DeleteObjectOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n DeleteObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlDeleteObjectCommand(input, context);\n };\n DeleteObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlDeleteObjectCommand(output, context);\n };\n return DeleteObjectCommand;\n}($Command));\nexport { DeleteObjectCommand };\n//# sourceMappingURL=DeleteObjectCommand.js.map","import { __extends } from \"tslib\";\nimport { ListObjectsV2Output, ListObjectsV2Request } from \"../models/models_0\";\nimport { deserializeAws_restXmlListObjectsV2Command, serializeAws_restXmlListObjectsV2Command, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Returns some or all (up to 1,000) of the objects in a bucket. You can use the request\n * parameters as selection criteria to return a subset of the objects in a bucket. A 200\n * OK response can contain valid or invalid XML. Make sure to design your\n * application to parse the contents of the response and handle it appropriately.

\n *\n *

To use this operation, you must have READ access to the bucket.

\n *\n *

To use this operation in an AWS Identity and Access Management (IAM) policy, you must\n * have permissions to perform the s3:ListBucket action. The bucket owner has\n * this permission by default and can grant this permission to others. For more information\n * about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n * Resources.

\n * \n *

This section describes the latest revision of the API. We recommend that you use this\n * revised API for application development. For backward compatibility, Amazon S3 continues to\n * support the prior version of this API, ListObjects.

\n *
\n *\n *

To get a list of your buckets, see ListBuckets.

\n *\n *

The following operations are related to ListObjectsV2:

\n * \n */\nvar ListObjectsV2Command = /** @class */ (function (_super) {\n __extends(ListObjectsV2Command, _super);\n // Start section: command_properties\n // End section: command_properties\n function ListObjectsV2Command(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n ListObjectsV2Command.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"ListObjectsV2Command\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: ListObjectsV2Request.filterSensitiveLog,\n outputFilterSensitiveLog: ListObjectsV2Output.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n ListObjectsV2Command.prototype.serialize = function (input, context) {\n return serializeAws_restXmlListObjectsV2Command(input, context);\n };\n ListObjectsV2Command.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlListObjectsV2Command(output, context);\n };\n return ListObjectsV2Command;\n}($Command));\nexport { ListObjectsV2Command };\n//# sourceMappingURL=ListObjectsV2Command.js.map","import { buildQueryString } from \"@aws-sdk/querystring-builder\";\nexport function formatUrl(request) {\n var port = request.port, query = request.query;\n var protocol = request.protocol, path = request.path, hostname = request.hostname;\n if (protocol && protocol.substr(-1) !== \":\") {\n protocol += \":\";\n }\n if (port) {\n hostname += \":\" + port;\n }\n if (path && path.charAt(0) !== \"/\") {\n path = \"/\" + path;\n }\n var queryString = query ? buildQueryString(query) : \"\";\n if (queryString && queryString[0] !== \"?\") {\n queryString = \"?\" + queryString;\n }\n return protocol + \"//\" + hostname + path + queryString;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHaEUsTUFBTSxVQUFVLFNBQVMsQ0FBQyxPQUFnRDtJQUNoRSxJQUFBLElBQUksR0FBWSxPQUFPLEtBQW5CLEVBQUUsS0FBSyxHQUFLLE9BQU8sTUFBWixDQUFhO0lBQzFCLElBQUEsUUFBUSxHQUFxQixPQUFPLFNBQTVCLEVBQUUsSUFBSSxHQUFlLE9BQU8sS0FBdEIsRUFBRSxRQUFRLEdBQUssT0FBTyxTQUFaLENBQWE7SUFDM0MsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtRQUMzQyxRQUFRLElBQUksR0FBRyxDQUFDO0tBQ2pCO0lBQ0QsSUFBSSxJQUFJLEVBQUU7UUFDUixRQUFRLElBQUksTUFBSSxJQUFNLENBQUM7S0FDeEI7SUFDRCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtRQUNsQyxJQUFJLEdBQUcsTUFBSSxJQUFNLENBQUM7S0FDbkI7SUFDRCxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdkQsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtRQUN6QyxXQUFXLEdBQUcsTUFBSSxXQUFhLENBQUM7S0FDakM7SUFDRCxPQUFVLFFBQVEsVUFBSyxRQUFRLEdBQUcsSUFBSSxHQUFHLFdBQWEsQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYnVpbGRRdWVyeVN0cmluZyB9IGZyb20gXCJAYXdzLXNkay9xdWVyeXN0cmluZy1idWlsZGVyXCI7XG5pbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VXJsKHJlcXVlc3Q6IE9taXQ8SHR0cFJlcXVlc3QsIFwiaGVhZGVyc1wiIHwgXCJtZXRob2RcIj4pOiBzdHJpbmcge1xuICBjb25zdCB7IHBvcnQsIHF1ZXJ5IH0gPSByZXF1ZXN0O1xuICBsZXQgeyBwcm90b2NvbCwgcGF0aCwgaG9zdG5hbWUgfSA9IHJlcXVlc3Q7XG4gIGlmIChwcm90b2NvbCAmJiBwcm90b2NvbC5zdWJzdHIoLTEpICE9PSBcIjpcIikge1xuICAgIHByb3RvY29sICs9IFwiOlwiO1xuICB9XG4gIGlmIChwb3J0KSB7XG4gICAgaG9zdG5hbWUgKz0gYDoke3BvcnR9YDtcbiAgfVxuICBpZiAocGF0aCAmJiBwYXRoLmNoYXJBdCgwKSAhPT0gXCIvXCIpIHtcbiAgICBwYXRoID0gYC8ke3BhdGh9YDtcbiAgfVxuICBsZXQgcXVlcnlTdHJpbmcgPSBxdWVyeSA/IGJ1aWxkUXVlcnlTdHJpbmcocXVlcnkpIDogXCJcIjtcbiAgaWYgKHF1ZXJ5U3RyaW5nICYmIHF1ZXJ5U3RyaW5nWzBdICE9PSBcIj9cIikge1xuICAgIHF1ZXJ5U3RyaW5nID0gYD8ke3F1ZXJ5U3RyaW5nfWA7XG4gIH1cbiAgcmV0dXJuIGAke3Byb3RvY29sfS8vJHtob3N0bmFtZX0ke3BhdGh9JHtxdWVyeVN0cmluZ31gO1xufVxuIl19","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __awaiter, __generator } from \"tslib\";\nexport function createRequest(client, command) {\n return __awaiter(this, void 0, void 0, function () {\n var interceptMiddleware, clientStack, handler;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n interceptMiddleware = function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, { output: { request: args.request }, response: undefined }];\n });\n }); }; };\n clientStack = client.middlewareStack.clone();\n // @ts-ignore: add middleware to the last of 'build' step\n clientStack.add(interceptMiddleware, {\n step: \"build\",\n priority: \"low\",\n });\n handler = command.resolveMiddleware(clientStack, client.config, undefined);\n return [4 /*yield*/, handler(command).then(function (output) { return output.output.request; })];\n case 1: \n // @ts-ignore\n return [2 /*return*/, _a.sent()];\n }\n });\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUdBLE1BQU0sVUFBZ0IsYUFBYSxDQUtqQyxNQUF5RCxFQUN6RCxPQUE2RTs7Ozs7OztvQkFHdkUsbUJBQW1CLEdBQTJDLFVBQUMsSUFBSSxJQUFLLE9BQUEsVUFBTyxJQUFJOzs0QkFDdkYsc0JBQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsRUFBQzs7eUJBQzFFLEVBRjZFLENBRTdFLENBQUM7b0JBQ0ksV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBRW5ELHlEQUF5RDtvQkFDekQsV0FBVyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRTt3QkFDbkMsSUFBSSxFQUFFLE9BQU87d0JBQ2IsUUFBUSxFQUFFLEtBQUs7cUJBQ2hCLENBQUMsQ0FBQztvQkFFRyxPQUFPLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUcxRSxxQkFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsTUFBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQXJCLENBQXFCLENBQUMsRUFBQTs7Z0JBRHJFLGFBQWE7Z0JBQ2Isc0JBQU8sU0FBOEQsRUFBQzs7OztDQUN2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaWVudCwgQ29tbWFuZCB9IGZyb20gXCJAYXdzLXNkay9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBCdWlsZE1pZGRsZXdhcmUsIEh0dHBSZXF1ZXN0LCBNZXRhZGF0YUJlYXJlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVxdWVzdDxcbiAgSW5wdXRUeXBlc1VuaW9uIGV4dGVuZHMgb2JqZWN0LFxuICBJbnB1dFR5cGUgZXh0ZW5kcyBJbnB1dFR5cGVzVW5pb24sXG4gIE91dHB1dFR5cGUgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlciA9IE1ldGFkYXRhQmVhcmVyXG4+KFxuICBjbGllbnQ6IENsaWVudDxhbnksIElucHV0VHlwZXNVbmlvbiwgTWV0YWRhdGFCZWFyZXIsIGFueT4sXG4gIGNvbW1hbmQ6IENvbW1hbmQ8SW5wdXRUeXBlLCBPdXRwdXRUeXBlLCBhbnksIElucHV0VHlwZXNVbmlvbiwgTWV0YWRhdGFCZWFyZXI+XG4pOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgY29uc3QgaW50ZXJjZXB0TWlkZGxld2FyZTogQnVpbGRNaWRkbGV3YXJlPElucHV0VHlwZSwgT3V0cHV0VHlwZT4gPSAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICByZXR1cm4geyBvdXRwdXQ6IHsgcmVxdWVzdDogYXJncy5yZXF1ZXN0IH0gYXMgYW55LCByZXNwb25zZTogdW5kZWZpbmVkIH07XG4gIH07XG4gIGNvbnN0IGNsaWVudFN0YWNrID0gY2xpZW50Lm1pZGRsZXdhcmVTdGFjay5jbG9uZSgpO1xuXG4gIC8vIEB0cy1pZ25vcmU6IGFkZCBtaWRkbGV3YXJlIHRvIHRoZSBsYXN0IG9mICdidWlsZCcgc3RlcFxuICBjbGllbnRTdGFjay5hZGQoaW50ZXJjZXB0TWlkZGxld2FyZSwge1xuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbiAgfSk7XG5cbiAgY29uc3QgaGFuZGxlciA9IGNvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNsaWVudC5jb25maWcsIHVuZGVmaW5lZCk7XG5cbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gYXdhaXQgaGFuZGxlcihjb21tYW5kKS50aGVuKChvdXRwdXQpID0+IG91dHB1dC5vdXRwdXQucmVxdWVzdCk7XG59XG4iXX0=","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export var ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport var CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport var AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport var SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport var EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport var SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport var TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport var AUTH_HEADER = \"authorization\";\nexport var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport var DATE_HEADER = \"date\";\nexport var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport var SHA256_HEADER = \"x-amz-content-sha256\";\nexport var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport var HOST_HEADER = \"host\";\nexport var ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nexport var PROXY_HEADER_PATTERN = /^proxy-/;\nexport var SEC_HEADER_PATTERN = /^sec-/;\nexport var UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport var ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport var EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport var UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport var MAX_CACHE_SIZE = 50;\nexport var KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxxQkFBcUIsR0FBRyxpQkFBaUIsQ0FBQztBQUN2RCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQztBQUN6RCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxZQUFZLENBQUM7QUFDakQsTUFBTSxDQUFDLElBQU0sMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDaEUsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsZUFBZSxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxJQUFNLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxJQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBRXhELE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFDM0MsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDbEMsTUFBTSxDQUFDLElBQU0saUJBQWlCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzdFLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQztBQUNwRCxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDNUQsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUVsQyxNQUFNLENBQUMsSUFBTSx5QkFBeUIsR0FBRztJQUN2QyxhQUFhLEVBQUUsSUFBSTtJQUNuQixlQUFlLEVBQUUsSUFBSTtJQUNyQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsWUFBWSxFQUFFLElBQUk7SUFDbEIsY0FBYyxFQUFFLElBQUk7SUFDcEIsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsSUFBSTtJQUNiLEVBQUUsRUFBRSxJQUFJO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsWUFBWSxFQUFFLElBQUk7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSTtDQUN4QixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUUxQyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUUxRCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxrQkFBa0IsQ0FBQztBQUV2RCxNQUFNLENBQUMsSUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQztBQUVyRSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUVuRCxNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUVsRCxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQUxHT1JJVEhNX1FVRVJZX1BBUkFNID0gXCJYLUFtei1BbGdvcml0aG1cIjtcbmV4cG9ydCBjb25zdCBDUkVERU5USUFMX1FVRVJZX1BBUkFNID0gXCJYLUFtei1DcmVkZW50aWFsXCI7XG5leHBvcnQgY29uc3QgQU1aX0RBVEVfUVVFUllfUEFSQU0gPSBcIlgtQW16LURhdGVcIjtcbmV4cG9ydCBjb25zdCBTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTSA9IFwiWC1BbXotU2lnbmVkSGVhZGVyc1wiO1xuZXhwb3J0IGNvbnN0IEVYUElSRVNfUVVFUllfUEFSQU0gPSBcIlgtQW16LUV4cGlyZXNcIjtcbmV4cG9ydCBjb25zdCBTSUdOQVRVUkVfUVVFUllfUEFSQU0gPSBcIlgtQW16LVNpZ25hdHVyZVwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX1FVRVJZX1BBUkFNID0gXCJYLUFtei1TZWN1cml0eS1Ub2tlblwiO1xuXG5leHBvcnQgY29uc3QgQVVUSF9IRUFERVIgPSBcImF1dGhvcml6YXRpb25cIjtcbmV4cG9ydCBjb25zdCBBTVpfREFURV9IRUFERVIgPSBBTVpfREFURV9RVUVSWV9QQVJBTS50b0xvd2VyQ2FzZSgpO1xuZXhwb3J0IGNvbnN0IERBVEVfSEVBREVSID0gXCJkYXRlXCI7XG5leHBvcnQgY29uc3QgR0VORVJBVEVEX0hFQURFUlMgPSBbQVVUSF9IRUFERVIsIEFNWl9EQVRFX0hFQURFUiwgREFURV9IRUFERVJdO1xuZXhwb3J0IGNvbnN0IFNJR05BVFVSRV9IRUFERVIgPSBTSUdOQVRVUkVfUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmV4cG9ydCBjb25zdCBTSEEyNTZfSEVBREVSID0gXCJ4LWFtei1jb250ZW50LXNoYTI1NlwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX0hFQURFUiA9IFRPS0VOX1FVRVJZX1BBUkFNLnRvTG93ZXJDYXNlKCk7XG5leHBvcnQgY29uc3QgSE9TVF9IRUFERVIgPSBcImhvc3RcIjtcblxuZXhwb3J0IGNvbnN0IEFMV0FZU19VTlNJR05BQkxFX0hFQURFUlMgPSB7XG4gIGF1dGhvcml6YXRpb246IHRydWUsXG4gIFwiY2FjaGUtY29udHJvbFwiOiB0cnVlLFxuICBjb25uZWN0aW9uOiB0cnVlLFxuICBleHBlY3Q6IHRydWUsXG4gIGZyb206IHRydWUsXG4gIFwia2VlcC1hbGl2ZVwiOiB0cnVlLFxuICBcIm1heC1mb3J3YXJkc1wiOiB0cnVlLFxuICBwcmFnbWE6IHRydWUsXG4gIHJlZmVyZXI6IHRydWUsXG4gIHRlOiB0cnVlLFxuICB0cmFpbGVyOiB0cnVlLFxuICBcInRyYW5zZmVyLWVuY29kaW5nXCI6IHRydWUsXG4gIHVwZ3JhZGU6IHRydWUsXG4gIFwidXNlci1hZ2VudFwiOiB0cnVlLFxuICBcIngtYW16bi10cmFjZS1pZFwiOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IFBST1hZX0hFQURFUl9QQVRURVJOID0gL15wcm94eS0vO1xuXG5leHBvcnQgY29uc3QgU0VDX0hFQURFUl9QQVRURVJOID0gL15zZWMtLztcblxuZXhwb3J0IGNvbnN0IFVOU0lHTkFCTEVfUEFUVEVSTlMgPSBbL15wcm94eS0vaSwgL15zZWMtL2ldO1xuXG5leHBvcnQgY29uc3QgQUxHT1JJVEhNX0lERU5USUZJRVIgPSBcIkFXUzQtSE1BQy1TSEEyNTZcIjtcblxuZXhwb3J0IGNvbnN0IEVWRU5UX0FMR09SSVRITV9JREVOVElGSUVSID0gXCJBV1M0LUhNQUMtU0hBMjU2LVBBWUxPQURcIjtcblxuZXhwb3J0IGNvbnN0IFVOU0lHTkVEX1BBWUxPQUQgPSBcIlVOU0lHTkVELVBBWUxPQURcIjtcblxuZXhwb3J0IGNvbnN0IE1BWF9DQUNIRV9TSVpFID0gNTA7XG5leHBvcnQgY29uc3QgS0VZX1RZUEVfSURFTlRJRklFUiA9IFwiYXdzNF9yZXF1ZXN0XCI7XG5cbmV4cG9ydCBjb25zdCBNQVhfUFJFU0lHTkVEX1RUTCA9IDYwICogNjAgKiAyNCAqIDc7XG4iXX0=","import { __awaiter, __generator, __values } from \"tslib\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { KEY_TYPE_IDENTIFIER, MAX_CACHE_SIZE } from \"./constants\";\nvar signingKeyCache = {};\nvar cacheQueue = [];\n/**\n * Create a string describing the scope of credentials used to sign a request.\n *\n * @param shortDate The current calendar date in the form YYYYMMDD.\n * @param region The AWS region in which the service resides.\n * @param service The service to which the signed request is being sent.\n */\nexport function createScope(shortDate, region, service) {\n return shortDate + \"/\" + region + \"/\" + service + \"/\" + KEY_TYPE_IDENTIFIER;\n}\n/**\n * Derive a signing key from its composite parts\n *\n * @param sha256Constructor A constructor function that can instantiate SHA-256\n * hash objects.\n * @param credentials The credentials with which the request will be\n * signed.\n * @param shortDate The current calendar date in the form YYYYMMDD.\n * @param region The AWS region in which the service resides.\n * @param service The service to which the signed request is being\n * sent.\n */\nexport var getSigningKey = function (sha256Constructor, credentials, shortDate, region, service) { return __awaiter(void 0, void 0, void 0, function () {\n var credsHash, cacheKey, key, _a, _b, signable, e_1_1;\n var e_1, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId)];\n case 1:\n credsHash = _d.sent();\n cacheKey = shortDate + \":\" + region + \":\" + service + \":\" + toHex(credsHash) + \":\" + credentials.sessionToken;\n if (cacheKey in signingKeyCache) {\n return [2 /*return*/, signingKeyCache[cacheKey]];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n key = \"AWS4\" + credentials.secretAccessKey;\n _d.label = 2;\n case 2:\n _d.trys.push([2, 7, 8, 9]);\n _a = __values([shortDate, region, service, KEY_TYPE_IDENTIFIER]), _b = _a.next();\n _d.label = 3;\n case 3:\n if (!!_b.done) return [3 /*break*/, 6];\n signable = _b.value;\n return [4 /*yield*/, hmac(sha256Constructor, key, signable)];\n case 4:\n key = _d.sent();\n _d.label = 5;\n case 5:\n _b = _a.next();\n return [3 /*break*/, 3];\n case 6: return [3 /*break*/, 9];\n case 7:\n e_1_1 = _d.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 9];\n case 8:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 9: return [2 /*return*/, (signingKeyCache[cacheKey] = key)];\n }\n });\n}); };\n/**\n * @internal\n */\nexport function clearCredentialCache() {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach(function (cacheKey) {\n delete signingKeyCache[cacheKey];\n });\n}\nfunction hmac(ctor, secret, data) {\n var hash = new ctor(secret);\n hash.update(data);\n return hash.digest();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbERlcml2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlZGVudGlhbERlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxFLElBQU0sZUFBZSxHQUFrQyxFQUFFLENBQUM7QUFDMUQsSUFBTSxVQUFVLEdBQWtCLEVBQUUsQ0FBQztBQUVyQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLFNBQWlCLEVBQUUsTUFBYyxFQUFFLE9BQWU7SUFDNUUsT0FBVSxTQUFTLFNBQUksTUFBTSxTQUFJLE9BQU8sU0FBSSxtQkFBcUIsQ0FBQztBQUNwRSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsVUFDM0IsaUJBQWtDLEVBQ2xDLFdBQXdCLEVBQ3hCLFNBQWlCLEVBQ2pCLE1BQWMsRUFDZCxPQUFlOzs7OztvQkFFRyxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUE7O2dCQUEvRixTQUFTLEdBQUcsU0FBbUY7Z0JBQy9GLFFBQVEsR0FBTSxTQUFTLFNBQUksTUFBTSxTQUFJLE9BQU8sU0FBSSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQUksV0FBVyxDQUFDLFlBQWMsQ0FBQztnQkFDckcsSUFBSSxRQUFRLElBQUksZUFBZSxFQUFFO29CQUMvQixzQkFBTyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUM7aUJBQ2xDO2dCQUVELFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sVUFBVSxDQUFDLE1BQU0sR0FBRyxjQUFjLEVBQUU7b0JBQ3pDLE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQVksQ0FBQyxDQUFDO2lCQUN0RDtnQkFFRyxHQUFHLEdBQWUsU0FBTyxXQUFXLENBQUMsZUFBaUIsQ0FBQzs7OztnQkFDcEMsS0FBQSxTQUFBLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTs7OztnQkFBN0QsUUFBUTtnQkFDWCxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFBOztnQkFBbEQsR0FBRyxHQUFHLFNBQTRDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBRXJELHNCQUFPLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQWlCLENBQUMsRUFBQzs7O0tBQ3hELENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxRQUFRO1FBQzVDLE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsSUFBSSxDQUFDLElBQXFCLEVBQUUsTUFBa0IsRUFBRSxJQUFnQjtJQUN2RSxJQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVkZW50aWFscywgSGFzaENvbnN0cnVjdG9yLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBLRVlfVFlQRV9JREVOVElGSUVSLCBNQVhfQ0FDSEVfU0laRSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5jb25zdCBzaWduaW5nS2V5Q2FjaGU6IHsgW2tleTogc3RyaW5nXTogVWludDhBcnJheSB9ID0ge307XG5jb25zdCBjYWNoZVF1ZXVlOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbi8qKlxuICogQ3JlYXRlIGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHNjb3BlIG9mIGNyZWRlbnRpYWxzIHVzZWQgdG8gc2lnbiBhIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIHNob3J0RGF0ZSBUaGUgY3VycmVudCBjYWxlbmRhciBkYXRlIGluIHRoZSBmb3JtIFlZWVlNTURELlxuICogQHBhcmFtIHJlZ2lvbiAgICBUaGUgQVdTIHJlZ2lvbiBpbiB3aGljaCB0aGUgc2VydmljZSByZXNpZGVzLlxuICogQHBhcmFtIHNlcnZpY2UgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmcgc2VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNjb3BlKHNob3J0RGF0ZTogc3RyaW5nLCByZWdpb246IHN0cmluZywgc2VydmljZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3Nob3J0RGF0ZX0vJHtyZWdpb259LyR7c2VydmljZX0vJHtLRVlfVFlQRV9JREVOVElGSUVSfWA7XG59XG5cbi8qKlxuICogRGVyaXZlIGEgc2lnbmluZyBrZXkgZnJvbSBpdHMgY29tcG9zaXRlIHBhcnRzXG4gKlxuICogQHBhcmFtIHNoYTI1NkNvbnN0cnVjdG9yIEEgY29uc3RydWN0b3IgZnVuY3Rpb24gdGhhdCBjYW4gaW5zdGFudGlhdGUgU0hBLTI1NlxuICogICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2ggb2JqZWN0cy5cbiAqIEBwYXJhbSBjcmVkZW50aWFscyAgICAgICBUaGUgY3JlZGVudGlhbHMgd2l0aCB3aGljaCB0aGUgcmVxdWVzdCB3aWxsIGJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkLlxuICogQHBhcmFtIHNob3J0RGF0ZSAgICAgICAgIFRoZSBjdXJyZW50IGNhbGVuZGFyIGRhdGUgaW4gdGhlIGZvcm0gWVlZWU1NREQuXG4gKiBAcGFyYW0gcmVnaW9uICAgICAgICAgICAgVGhlIEFXUyByZWdpb24gaW4gd2hpY2ggdGhlIHNlcnZpY2UgcmVzaWRlcy5cbiAqIEBwYXJhbSBzZXJ2aWNlICAgICAgICAgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmdcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50LlxuICovXG5leHBvcnQgY29uc3QgZ2V0U2lnbmluZ0tleSA9IGFzeW5jIChcbiAgc2hhMjU2Q29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvcixcbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzLFxuICBzaG9ydERhdGU6IHN0cmluZyxcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIHNlcnZpY2U6IHN0cmluZ1xuKTogUHJvbWlzZTxVaW50OEFycmF5PiA9PiB7XG4gIGNvbnN0IGNyZWRzSGFzaCA9IGF3YWl0IGhtYWMoc2hhMjU2Q29uc3RydWN0b3IsIGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSwgY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQpO1xuICBjb25zdCBjYWNoZUtleSA9IGAke3Nob3J0RGF0ZX06JHtyZWdpb259OiR7c2VydmljZX06JHt0b0hleChjcmVkc0hhc2gpfToke2NyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbn1gO1xuICBpZiAoY2FjaGVLZXkgaW4gc2lnbmluZ0tleUNhY2hlKSB7XG4gICAgcmV0dXJuIHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV07XG4gIH1cblxuICBjYWNoZVF1ZXVlLnB1c2goY2FjaGVLZXkpO1xuICB3aGlsZSAoY2FjaGVRdWV1ZS5sZW5ndGggPiBNQVhfQ0FDSEVfU0laRSkge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVRdWV1ZS5zaGlmdCgpIGFzIHN0cmluZ107XG4gIH1cblxuICBsZXQga2V5OiBTb3VyY2VEYXRhID0gYEFXUzQke2NyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleX1gO1xuICBmb3IgKGNvbnN0IHNpZ25hYmxlIG9mIFtzaG9ydERhdGUsIHJlZ2lvbiwgc2VydmljZSwgS0VZX1RZUEVfSURFTlRJRklFUl0pIHtcbiAgICBrZXkgPSBhd2FpdCBobWFjKHNoYTI1NkNvbnN0cnVjdG9yLCBrZXksIHNpZ25hYmxlKTtcbiAgfVxuICByZXR1cm4gKHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV0gPSBrZXkgYXMgVWludDhBcnJheSk7XG59O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJDcmVkZW50aWFsQ2FjaGUoKTogdm9pZCB7XG4gIGNhY2hlUXVldWUubGVuZ3RoID0gMDtcbiAgT2JqZWN0LmtleXMoc2lnbmluZ0tleUNhY2hlKS5mb3JFYWNoKChjYWNoZUtleSkgPT4ge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVLZXldO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaG1hYyhjdG9yOiBIYXNoQ29uc3RydWN0b3IsIHNlY3JldDogU291cmNlRGF0YSwgZGF0YTogU291cmNlRGF0YSk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCBoYXNoID0gbmV3IGN0b3Ioc2VjcmV0KTtcbiAgaGFzaC51cGRhdGUoZGF0YSk7XG4gIHJldHVybiBoYXNoLmRpZ2VzdCgpO1xufVxuIl19","import { __values } from \"tslib\";\nimport { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\n/**\n * @internal\n */\nexport function getCanonicalHeaders(_a, unsignableHeaders, signableHeaders) {\n var e_1, _b;\n var headers = _a.headers;\n var canonical = {};\n try {\n for (var _c = __values(Object.keys(headers).sort()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var headerName = _d.value;\n var canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || (unsignableHeaders === null || unsignableHeaders === void 0 ? void 0 : unsignableHeaders.has(canonicalHeaderName)) ||\n PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return canonical;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsSGVhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZXRDYW5vbmljYWxIZWFkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEc7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEVBQXdCLEVBQ3hCLGlCQUErQixFQUMvQixlQUE2Qjs7UUFGM0IsT0FBTyxhQUFBO0lBSVQsSUFBTSxTQUFTLEdBQWMsRUFBRSxDQUFDOztRQUNoQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBLGdCQUFBLDRCQUFFO1lBQWpELElBQU0sVUFBVSxXQUFBO1lBQ25CLElBQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JELElBQ0UsbUJBQW1CLElBQUkseUJBQXlCLEtBQ2hELGlCQUFpQixhQUFqQixpQkFBaUIsdUJBQWpCLGlCQUFpQixDQUFFLEdBQUcsQ0FBQyxtQkFBbUIsRUFBQztnQkFDM0Msb0JBQW9CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2dCQUM5QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFDNUM7Z0JBQ0EsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFO29CQUN0RixTQUFTO2lCQUNWO2FBQ0Y7WUFFRCxTQUFTLENBQUMsbUJBQW1CLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNsRjs7Ozs7Ozs7O0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhlYWRlckJhZywgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQUxXQVlTX1VOU0lHTkFCTEVfSEVBREVSUywgUFJPWFlfSEVBREVSX1BBVFRFUk4sIFNFQ19IRUFERVJfUEFUVEVSTiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2Fub25pY2FsSGVhZGVycyhcbiAgeyBoZWFkZXJzIH06IEh0dHBSZXF1ZXN0LFxuICB1bnNpZ25hYmxlSGVhZGVycz86IFNldDxzdHJpbmc+LFxuICBzaWduYWJsZUhlYWRlcnM/OiBTZXQ8c3RyaW5nPlxuKTogSGVhZGVyQmFnIHtcbiAgY29uc3QgY2Fub25pY2FsOiBIZWFkZXJCYWcgPSB7fTtcbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKSkge1xuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlck5hbWUgPSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKFxuICAgICAgY2Fub25pY2FsSGVhZGVyTmFtZSBpbiBBTFdBWVNfVU5TSUdOQUJMRV9IRUFERVJTIHx8XG4gICAgICB1bnNpZ25hYmxlSGVhZGVycz8uaGFzKGNhbm9uaWNhbEhlYWRlck5hbWUpIHx8XG4gICAgICBQUk9YWV9IRUFERVJfUEFUVEVSTi50ZXN0KGNhbm9uaWNhbEhlYWRlck5hbWUpIHx8XG4gICAgICBTRUNfSEVBREVSX1BBVFRFUk4udGVzdChjYW5vbmljYWxIZWFkZXJOYW1lKVxuICAgICkge1xuICAgICAgaWYgKCFzaWduYWJsZUhlYWRlcnMgfHwgKHNpZ25hYmxlSGVhZGVycyAmJiAhc2lnbmFibGVIZWFkZXJzLmhhcyhjYW5vbmljYWxIZWFkZXJOYW1lKSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2Fub25pY2FsW2Nhbm9uaWNhbEhlYWRlck5hbWVdID0gaGVhZGVyc1toZWFkZXJOYW1lXS50cmltKCkucmVwbGFjZSgvXFxzKy9nLCBcIiBcIik7XG4gIH1cblxuICByZXR1cm4gY2Fub25pY2FsO1xufVxuIl19","export var escapeUri = function (uri) {\n // AWS percent-encodes some extra non-standard characters in a URI\n return encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\n};\nvar hexEncode = function (c) { return \"%\" + c.charCodeAt(0).toString(16).toUpperCase(); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLXVyaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lc2NhcGUtdXJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxJQUFNLFNBQVMsR0FBRyxVQUFDLEdBQVc7SUFDbkMsa0VBQWtFO0lBQ2xFLE9BQUEsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7QUFBdEQsQ0FBc0QsQ0FBQztBQUV6RCxJQUFNLFNBQVMsR0FBRyxVQUFDLENBQVMsSUFBSyxPQUFBLE1BQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFJLEVBQWhELENBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZXNjYXBlVXJpID0gKHVyaTogc3RyaW5nKTogc3RyaW5nID0+XG4gIC8vIEFXUyBwZXJjZW50LWVuY29kZXMgc29tZSBleHRyYSBub24tc3RhbmRhcmQgY2hhcmFjdGVycyBpbiBhIFVSSVxuICBlbmNvZGVVUklDb21wb25lbnQodXJpKS5yZXBsYWNlKC9bIScoKSpdL2csIGhleEVuY29kZSk7XG5cbmNvbnN0IGhleEVuY29kZSA9IChjOiBzdHJpbmcpID0+IGAlJHtjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9YDtcbiJdfQ==","import { __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayBuffer } from \"@aws-sdk/is-array-buffer\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\n/**\n * @internal\n */\nexport function getPayloadHash(_a, hashConstructor) {\n var headers = _a.headers, body = _a.body;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c, headerName, hashCtor, _d;\n var e_1, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n try {\n for (_b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n headerName = _c.value;\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return [2 /*return*/, headers[headerName]];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_e = _b.return)) _e.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!(body == undefined)) return [3 /*break*/, 1];\n return [2 /*return*/, \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"];\n case 1:\n if (!(typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer(body))) return [3 /*break*/, 3];\n hashCtor = new hashConstructor();\n hashCtor.update(body);\n _d = toHex;\n return [4 /*yield*/, hashCtor.digest()];\n case 2: return [2 /*return*/, _d.apply(void 0, [_f.sent()])];\n case 3: \n // As any defined body that is not a string or binary data is a stream, this\n // body is unsignable. Attempt to send the request with an unsigned payload,\n // which may or may not be accepted by the service.\n return [2 /*return*/, UNSIGNED_PAYLOAD];\n }\n });\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGF5bG9hZEhhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0UGF5bG9hZEhhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sVUFBZ0IsY0FBYyxDQUNsQyxFQUE4QixFQUM5QixlQUFnQztRQUQ5QixPQUFPLGFBQUEsRUFBRSxJQUFJLFVBQUE7Ozs7Ozs7O3dCQUdmLEtBQXlCLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLDRDQUFFOzRCQUFwQyxVQUFVOzRCQUNuQixJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxhQUFhLEVBQUU7Z0NBQzlDLHNCQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBQzs2QkFDNUI7eUJBQ0Y7Ozs7Ozs7Ozt5QkFFRyxDQUFBLElBQUksSUFBSSxTQUFTLENBQUEsRUFBakIsd0JBQWlCO29CQUNuQixzQkFBTyxrRUFBa0UsRUFBQzs7eUJBQ2pFLENBQUEsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBLEVBQTNFLHdCQUEyRTtvQkFDOUUsUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ3ZDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2YsS0FBQSxLQUFLLENBQUE7b0JBQUMscUJBQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFBO3dCQUFwQyxzQkFBTyxrQkFBTSxTQUF1QixFQUFDLEVBQUM7O2dCQUd4Qyw0RUFBNEU7Z0JBQzVFLDRFQUE0RTtnQkFDNUUsbURBQW1EO2dCQUNuRCxzQkFBTyxnQkFBZ0IsRUFBQzs7OztDQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQXJyYXlCdWZmZXIgfSBmcm9tIFwiQGF3cy1zZGsvaXMtYXJyYXktYnVmZmVyXCI7XG5pbXBvcnQgeyBIYXNoQ29uc3RydWN0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBTSEEyNTZfSEVBREVSLCBVTlNJR05FRF9QQVlMT0FEIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQYXlsb2FkSGFzaChcbiAgeyBoZWFkZXJzLCBib2R5IH06IEh0dHBSZXF1ZXN0LFxuICBoYXNoQ29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvclxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgaWYgKGhlYWRlck5hbWUudG9Mb3dlckNhc2UoKSA9PT0gU0hBMjU2X0hFQURFUikge1xuICAgICAgcmV0dXJuIGhlYWRlcnNbaGVhZGVyTmFtZV07XG4gICAgfVxuICB9XG5cbiAgaWYgKGJvZHkgPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFwiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NVwiO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBib2R5ID09PSBcInN0cmluZ1wiIHx8IEFycmF5QnVmZmVyLmlzVmlldyhib2R5KSB8fCBpc0FycmF5QnVmZmVyKGJvZHkpKSB7XG4gICAgY29uc3QgaGFzaEN0b3IgPSBuZXcgaGFzaENvbnN0cnVjdG9yKCk7XG4gICAgaGFzaEN0b3IudXBkYXRlKGJvZHkpO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoQ3Rvci5kaWdlc3QoKSk7XG4gIH1cblxuICAvLyBBcyBhbnkgZGVmaW5lZCBib2R5IHRoYXQgaXMgbm90IGEgc3RyaW5nIG9yIGJpbmFyeSBkYXRhIGlzIGEgc3RyZWFtLCB0aGlzXG4gIC8vIGJvZHkgaXMgdW5zaWduYWJsZS4gQXR0ZW1wdCB0byBzZW5kIHRoZSByZXF1ZXN0IHdpdGggYW4gdW5zaWduZWQgcGF5bG9hZCxcbiAgLy8gd2hpY2ggbWF5IG9yIG1heSBub3QgYmUgYWNjZXB0ZWQgYnkgdGhlIHNlcnZpY2UuXG4gIHJldHVybiBVTlNJR05FRF9QQVlMT0FEO1xufVxuIl19","import { __assign, __read, __rest, __spread } from \"tslib\";\n/**\n * @internal\n */\nexport function cloneRequest(_a) {\n var headers = _a.headers, query = _a.query, rest = __rest(_a, [\"headers\", \"query\"]);\n return __assign(__assign({}, rest), { headers: __assign({}, headers), query: query ? cloneQuery(query) : undefined });\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spread(param) : param, _a));\n }, {});\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmVSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nsb25lUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEVBQXdDO0lBQXRDLElBQUEsT0FBTyxhQUFBLEVBQUUsS0FBSyxXQUFBLEVBQUssSUFBSSxjQUF6QixvQkFBMkIsQ0FBRjtJQUNwRCw2QkFDSyxJQUFJLEtBQ1AsT0FBTyxlQUFPLE9BQU8sR0FDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQzVDO0FBQ0osQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQXdCO0lBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUF3QixFQUFFLFNBQWlCOztRQUMzRSxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsNkJBQ0ssS0FBSyxnQkFDUCxTQUFTLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQ3REO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVSZXF1ZXN0KHsgaGVhZGVycywgcXVlcnksIC4uLnJlc3QgfTogSHR0cFJlcXVlc3QpOiBIdHRwUmVxdWVzdCB7XG4gIHJldHVybiB7XG4gICAgLi4ucmVzdCxcbiAgICBoZWFkZXJzOiB7IC4uLmhlYWRlcnMgfSxcbiAgICBxdWVyeTogcXVlcnkgPyBjbG9uZVF1ZXJ5KHF1ZXJ5KSA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2xvbmVRdWVyeShxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWcpOiBRdWVyeVBhcmFtZXRlckJhZyB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhxdWVyeSkucmVkdWNlKChjYXJyeTogUXVlcnlQYXJhbWV0ZXJCYWcsIHBhcmFtTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcGFyYW0gPSBxdWVyeVtwYXJhbU5hbWVdO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jYXJyeSxcbiAgICAgIFtwYXJhbU5hbWVdOiBBcnJheS5pc0FycmF5KHBhcmFtKSA/IFsuLi5wYXJhbV0gOiBwYXJhbSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG4iXX0=","import { __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\nimport { GENERATED_HEADERS } from \"./constants\";\n/**\n * @internal\n */\nexport function prepareRequest(request) {\n var e_1, _a;\n // Create a clone of the request object that does not clone the body\n request = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n try {\n for (var _b = __values(Object.keys(request.headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return request;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZVJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJlcGFyZVJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQW9COztJQUNqRCxvRUFBb0U7SUFDcEUsT0FBTyxHQUFHLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDOztRQUUxRyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtZQUFsRCxJQUFNLFVBQVUsV0FBQTtZQUNuQixJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDNUQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3BDO1NBQ0Y7Ozs7Ozs7OztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcbmltcG9ydCB7IEdFTkVSQVRFRF9IRUFERVJTIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlUmVxdWVzdChyZXF1ZXN0OiBIdHRwUmVxdWVzdCk6IEh0dHBSZXF1ZXN0IHtcbiAgLy8gQ3JlYXRlIGEgY2xvbmUgb2YgdGhlIHJlcXVlc3Qgb2JqZWN0IHRoYXQgZG9lcyBub3QgY2xvbmUgdGhlIGJvZHlcbiAgcmVxdWVzdCA9IHR5cGVvZiAocmVxdWVzdCBhcyBhbnkpLmNsb25lID09PSBcImZ1bmN0aW9uXCIgPyAocmVxdWVzdCBhcyBhbnkpLmNsb25lKCkgOiBjbG9uZVJlcXVlc3QocmVxdWVzdCk7XG5cbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKHJlcXVlc3QuaGVhZGVycykpIHtcbiAgICBpZiAoR0VORVJBVEVEX0hFQURFUlMuaW5kZXhPZihoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkpID4gLTEpIHtcbiAgICAgIGRlbGV0ZSByZXF1ZXN0LmhlYWRlcnNbaGVhZGVyTmFtZV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlcXVlc3Q7XG59XG4iXX0=","export function iso8601(time) {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\n}\nexport function toDate(time) {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbERhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbERhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUE0QjtJQUNsRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDaEIsV0FBVyxFQUFFO1NBQ2IsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUE0QjtJQUNqRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztLQUM5QjtJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc284NjAxKHRpbWU6IG51bWJlciB8IHN0cmluZyB8IERhdGUpOiBzdHJpbmcge1xuICByZXR1cm4gdG9EYXRlKHRpbWUpXG4gICAgLnRvSVNPU3RyaW5nKClcbiAgICAucmVwbGFjZSgvXFwuXFxkezN9WiQvLCBcIlpcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGUodGltZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSk6IERhdGUge1xuICBpZiAodHlwZW9mIHRpbWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodGltZSAqIDEwMDApO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0aW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgaWYgKE51bWJlcih0aW1lKSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKE51bWJlcih0aW1lKSAqIDEwMDApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUodGltZSk7XG4gIH1cblxuICByZXR1cm4gdGltZTtcbn1cbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { ALGORITHM_IDENTIFIER, ALGORITHM_QUERY_PARAM, AMZ_DATE_HEADER, AMZ_DATE_QUERY_PARAM, AUTH_HEADER, CREDENTIAL_QUERY_PARAM, EVENT_ALGORITHM_IDENTIFIER, EXPIRES_QUERY_PARAM, MAX_PRESIGNED_TTL, SHA256_HEADER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_HEADER, TOKEN_QUERY_PARAM, } from \"./constants\";\nimport { createScope, getSigningKey } from \"./credentialDerivation\";\nimport { getCanonicalHeaders } from \"./getCanonicalHeaders\";\nimport { getCanonicalQuery } from \"./getCanonicalQuery\";\nimport { getPayloadHash } from \"./getPayloadHash\";\nimport { hasHeader } from \"./hasHeader\";\nimport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nimport { prepareRequest } from \"./prepareRequest\";\nimport { iso8601 } from \"./utilDate\";\nvar SignatureV4 = /** @class */ (function () {\n function SignatureV4(_a) {\n var applyChecksum = _a.applyChecksum, credentials = _a.credentials, region = _a.region, service = _a.service, sha256 = _a.sha256, _b = _a.uriEscapePath, uriEscapePath = _b === void 0 ? true : _b;\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n // default to true if applyChecksum isn't set\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = normalizeRegionProvider(region);\n this.credentialProvider = normalizeCredentialsProvider(credentials);\n }\n SignatureV4.prototype.presign = function (originalRequest, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, signingDate, _b, expiresIn, unsignableHeaders, unhoistableHeaders, signableHeaders, signingRegion, signingService, credentials, region, _c, _d, longDate, shortDate, scope, request, canonicalHeaders, _e, _f, _g, _h, _j, _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = options.signingDate, signingDate = _a === void 0 ? new Date() : _a, _b = options.expiresIn, expiresIn = _b === void 0 ? 3600 : _b, unsignableHeaders = options.unsignableHeaders, unhoistableHeaders = options.unhoistableHeaders, signableHeaders = options.signableHeaders, signingRegion = options.signingRegion, signingService = options.signingService;\n return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _l.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _c = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _c = (_l.sent());\n _l.label = 4;\n case 4:\n region = _c;\n _d = formatDate(signingDate), longDate = _d.longDate, shortDate = _d.shortDate;\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return [2 /*return*/, Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\")];\n }\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders: unhoistableHeaders });\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n request.query[CREDENTIAL_QUERY_PARAM] = credentials.accessKeyId + \"/\" + scope;\n request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n _e = request.query;\n _f = SIGNATURE_QUERY_PARAM;\n _g = this.getSignature;\n _h = [longDate,\n scope,\n this.getSigningKey(credentials, region, shortDate, signingService)];\n _j = this.createCanonicalRequest;\n _k = [request, canonicalHeaders];\n return [4 /*yield*/, getPayloadHash(originalRequest, this.sha256)];\n case 5: return [4 /*yield*/, _g.apply(this, _h.concat([_j.apply(this, _k.concat([_l.sent()]))]))];\n case 6:\n _e[_f] = _l.sent();\n return [2 /*return*/, request];\n }\n });\n });\n };\n SignatureV4.prototype.sign = function (toSign, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (typeof toSign === \"string\") {\n return [2 /*return*/, this.signString(toSign, options)];\n }\n else if (toSign.headers && toSign.payload) {\n return [2 /*return*/, this.signEvent(toSign, options)];\n }\n else {\n return [2 /*return*/, this.signRequest(toSign, options)];\n }\n return [2 /*return*/];\n });\n });\n };\n SignatureV4.prototype.signEvent = function (_a, _b) {\n var headers = _a.headers, payload = _a.payload;\n var _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, priorSignature = _b.priorSignature, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var region, _d, _e, shortDate, longDate, scope, hashedPayload, hash, hashedHeaders, _f, stringToSign;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 1];\n _d = signingRegion;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.regionProvider()];\n case 2:\n _d = (_g.sent());\n _g.label = 3;\n case 3:\n region = _d;\n _e = formatDate(signingDate), shortDate = _e.shortDate, longDate = _e.longDate;\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n return [4 /*yield*/, getPayloadHash({ headers: {}, body: payload }, this.sha256)];\n case 4:\n hashedPayload = _g.sent();\n hash = new this.sha256();\n hash.update(headers);\n _f = toHex;\n return [4 /*yield*/, hash.digest()];\n case 5:\n hashedHeaders = _f.apply(void 0, [_g.sent()]);\n stringToSign = [\n EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return [2 /*return*/, this.signString(stringToSign, { signingDate: signingDate, signingRegion: region, signingService: signingService })];\n }\n });\n });\n };\n SignatureV4.prototype.signString = function (stringToSign, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, shortDate, hash, _e, _f, _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0: return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _h.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _d = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _d = (_h.sent());\n _h.label = 4;\n case 4:\n region = _d;\n shortDate = formatDate(signingDate).shortDate;\n _f = (_e = this.sha256).bind;\n return [4 /*yield*/, this.getSigningKey(credentials, region, shortDate, signingService)];\n case 5:\n hash = new (_f.apply(_e, [void 0, _h.sent()]))();\n hash.update(stringToSign);\n _g = toHex;\n return [4 /*yield*/, hash.digest()];\n case 6: return [2 /*return*/, _g.apply(void 0, [_h.sent()])];\n }\n });\n });\n };\n SignatureV4.prototype.signRequest = function (requestToSign, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signableHeaders = _b.signableHeaders, unsignableHeaders = _b.unsignableHeaders, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, request, _e, longDate, shortDate, scope, payloadHash, canonicalHeaders, signature;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0: return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _f.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _d = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _d = (_f.sent());\n _f.label = 4;\n case 4:\n region = _d;\n request = prepareRequest(requestToSign);\n _e = formatDate(signingDate), longDate = _e.longDate, shortDate = _e.shortDate;\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request.headers[AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n return [4 /*yield*/, getPayloadHash(request, this.sha256)];\n case 5:\n payloadHash = _f.sent();\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n return [4 /*yield*/, this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash))];\n case 6:\n signature = _f.sent();\n request.headers[AUTH_HEADER] =\n ALGORITHM_IDENTIFIER + \" \" +\n (\"Credential=\" + credentials.accessKeyId + \"/\" + scope + \", \") +\n (\"SignedHeaders=\" + getCanonicalHeaderList(canonicalHeaders) + \", \") +\n (\"Signature=\" + signature);\n return [2 /*return*/, request];\n }\n });\n });\n };\n SignatureV4.prototype.createCanonicalRequest = function (request, canonicalHeaders, payloadHash) {\n var sortedHeaders = Object.keys(canonicalHeaders).sort();\n return request.method + \"\\n\" + this.getCanonicalPath(request) + \"\\n\" + getCanonicalQuery(request) + \"\\n\" + sortedHeaders.map(function (name) { return name + \":\" + canonicalHeaders[name]; }).join(\"\\n\") + \"\\n\\n\" + sortedHeaders.join(\";\") + \"\\n\" + payloadHash;\n };\n SignatureV4.prototype.createStringToSign = function (longDate, credentialScope, canonicalRequest) {\n return __awaiter(this, void 0, void 0, function () {\n var hash, hashedRequest;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n hash = new this.sha256();\n hash.update(canonicalRequest);\n return [4 /*yield*/, hash.digest()];\n case 1:\n hashedRequest = _a.sent();\n return [2 /*return*/, ALGORITHM_IDENTIFIER + \"\\n\" + longDate + \"\\n\" + credentialScope + \"\\n\" + toHex(hashedRequest)];\n }\n });\n });\n };\n SignatureV4.prototype.getCanonicalPath = function (_a) {\n var path = _a.path;\n if (this.uriEscapePath) {\n var doubleEncoded = encodeURIComponent(path.replace(/^\\//, \"\"));\n return \"/\" + doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n };\n SignatureV4.prototype.getSignature = function (longDate, credentialScope, keyPromise, canonicalRequest) {\n return __awaiter(this, void 0, void 0, function () {\n var stringToSign, hash, _a, _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, this.createStringToSign(longDate, credentialScope, canonicalRequest)];\n case 1:\n stringToSign = _d.sent();\n _b = (_a = this.sha256).bind;\n return [4 /*yield*/, keyPromise];\n case 2:\n hash = new (_b.apply(_a, [void 0, _d.sent()]))();\n hash.update(stringToSign);\n _c = toHex;\n return [4 /*yield*/, hash.digest()];\n case 3: return [2 /*return*/, _c.apply(void 0, [_d.sent()])];\n }\n });\n });\n };\n SignatureV4.prototype.getSigningKey = function (credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n };\n return SignatureV4;\n}());\nexport { SignatureV4 };\nvar formatDate = function (now) {\n var longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate: longDate,\n shortDate: longDate.substr(0, 8),\n };\n};\nvar getCanonicalHeaderList = function (headers) { return Object.keys(headers).sort().join(\";\"); };\nvar normalizeRegionProvider = function (region) {\n if (typeof region === \"string\") {\n var promisified_1 = Promise.resolve(region);\n return function () { return promisified_1; };\n }\n else {\n return region;\n }\n};\nvar normalizeCredentialsProvider = function (credentials) {\n if (typeof credentials === \"object\") {\n var promisified_2 = Promise.resolve(credentials);\n return function () { return promisified_2; };\n }\n else {\n return credentials;\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lnbmF0dXJlVjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2lnbmF0dXJlVjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWlCQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzFCLFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQWtEckM7SUFRRSxxQkFBWSxFQU84QjtZQU54QyxhQUFhLG1CQUFBLEVBQ2IsV0FBVyxpQkFBQSxFQUNYLE1BQU0sWUFBQSxFQUNOLE9BQU8sYUFBQSxFQUNQLE1BQU0sWUFBQSxFQUNOLHFCQUFvQixFQUFwQixhQUFhLG1CQUFHLElBQUksS0FBQTtRQUVwQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJ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YztJQUNoQyxJQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxPQUFPO1FBQ0wsUUFBUSxVQUFBO1FBQ1IsU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNqQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsSUFBTSxzQkFBc0IsR0FBRyxVQUFDLE9BQWUsSUFBYSxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFyQyxDQUFxQyxDQUFDO0FBRWxHLElBQU0sdUJBQXVCLEdBQUcsVUFBQyxNQUFpQztJQUNoRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7QUFDSCxDQUFDLENBQUM7QUFFRixJQUFNLDRCQUE0QixHQUFHLFVBQUMsV0FBZ0Q7SUFDcEYsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUU7UUFDbkMsSUFBTSxhQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxPQUFPLGNBQU0sT0FBQSxhQUFXLEVBQVgsQ0FBVyxDQUFDO0tBQzFCO1NBQU07UUFDTCxPQUFPLFdBQVcsQ0FBQztLQUNwQjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENyZWRlbnRpYWxzLFxuICBEYXRlSW5wdXQsXG4gIEV2ZW50U2lnbmVyLFxuICBFdmVudFNpZ25pbmdBcmd1bWVudHMsXG4gIEZvcm1hdHRlZEV2ZW50LFxuICBIYXNoQ29uc3RydWN0b3IsXG4gIEhlYWRlckJhZyxcbiAgSHR0cFJlcXVlc3QsXG4gIFByb3ZpZGVyLFxuICBSZXF1ZXN0UHJlc2lnbmVyLFxuICBSZXF1ZXN0UHJlc2lnbmluZ0FyZ3VtZW50cyxcbiAgUmVxdWVzdFNpZ25lcixcbiAgUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMsXG4gIFNpZ25pbmdBcmd1bWVudHMsXG4gIFN0cmluZ1NpZ25lcixcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQge1xuICBBTEdPUklUSE1fSURFTlRJRklFUixcbiAgQUxHT1JJVEhNX1FVRVJZX1BBUkFNLFxuICBBTVpfREFURV9IRUFERVIsXG4gIEFNWl9EQVRFX1FVRVJZX1BBUkFNLFxuICBBVVRIX0hFQURFUixcbiAgQ1JFREVOVElBTF9RVUVSWV9QQVJBTSxcbiAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gIEVYUElSRVNfUVVFUllfUEFSQU0sXG4gIE1BWF9QUkVTSUdORURfVFRMLFxuICBTSEEyNTZfSEVBREVSLFxuICBTSUdOQVRVUkVfUVVFUllfUEFSQU0sXG4gIFNJR05FRF9IRUFERVJTX1FVRVJZX1BBUkFNLFxuICBUT0tFTl9IRUFERVIsXG4gIFRPS0VOX1FVRVJZX1BBUkFNLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNyZWF0ZVNjb3BlLCBnZXRTaWduaW5nS2V5IH0gZnJvbSBcIi4vY3JlZGVudGlhbERlcml2YXRpb25cIjtcbmltcG9ydCB7IGdldENhbm9uaWNhbEhlYWRlcnMgfSBmcm9tIFwiLi9nZXRDYW5vbmljYWxIZWFkZXJzXCI7XG5pbXBvcnQgeyBnZXRDYW5vbmljYWxRdWVyeSB9IGZyb20gXCIuL2dldENhbm9uaWNhbFF1ZXJ5XCI7XG5pbXBvcnQgeyBnZXRQYXlsb2FkSGFzaCB9IGZyb20gXCIuL2dldFBheWxvYWRIYXNoXCI7XG5pbXBvcnQgeyBoYXNIZWFkZXIgfSBmcm9tIFwiLi9oYXNIZWFkZXJcIjtcbmltcG9ydCB7IG1vdmVIZWFkZXJzVG9RdWVyeSB9IGZyb20gXCIuL21vdmVIZWFkZXJzVG9RdWVyeVwiO1xuaW1wb3J0IHsgcHJlcGFyZVJlcXVlc3QgfSBmcm9tIFwiLi9wcmVwYXJlUmVxdWVzdFwiO1xuaW1wb3J0IHsgaXNvODYwMSB9IGZyb20gXCIuL3V0aWxEYXRlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRJbml0IHtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHNpZ25pbmcgbmFtZS5cbiAgICovXG4gIHNlcnZpY2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBuYW1lIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHdpbGwgYmVcbiAgICogcmVzb2x2ZWQgd2l0aCB0aGUgcmVnaW9uIG5hbWUuXG4gICAqL1xuICByZWdpb246IHN0cmluZyB8IFByb3ZpZGVyPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFscyB3aXRoIHdoaWNoIHRoZSByZXF1ZXN0IHNob3VsZCBiZSBzaWduZWQgb3IgYSBmdW5jdGlvblxuICAgKiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHRoYXQgd2lsbCBiZSByZXNvbHZlZCB3aXRoIGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzIHwgUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuXG4gIC8qKlxuICAgKiBBIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciBhIGhhc2ggb2JqZWN0IHRoYXQgd2lsbCBjYWxjdWxhdGUgU0hBLTI1NiBITUFDXG4gICAqIGNoZWNrc3Vtcy5cbiAgICovXG4gIHNoYTI1Nj86IEhhc2hDb25zdHJ1Y3RvcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1cmktZXNjYXBlIHRoZSByZXF1ZXN0IFVSSSBwYXRoIGFzIHBhcnQgb2YgY29tcHV0aW5nIHRoZVxuICAgKiBjYW5vbmljYWwgcmVxdWVzdCBzdHJpbmcuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGV2ZXJ5IEFXUyBzZXJ2aWNlLCBleGNlcHRcbiAgICogQW1hem9uIFMzLCBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgdXJpRXNjYXBlUGF0aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2FsY3VsYXRlIGEgY2hlY2tzdW0gb2YgdGhlIHJlcXVlc3QgYm9keSBhbmQgaW5jbHVkZSBpdCBhc1xuICAgKiBlaXRoZXIgYSByZXF1ZXN0IGhlYWRlciAod2hlbiBzaWduaW5nKSBvciBhcyBhIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJcbiAgICogKHdoZW4gcHJlc2lnbmluZykuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIEFXUyBHbGFjaWVyIGFuZCBBbWF6b24gUzMgYW5kIG9wdGlvbmFsIGZvclxuICAgKiBldmVyeSBvdGhlciBBV1Mgc2VydmljZSBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgYXBwbHlDaGVja3N1bT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRDcnlwdG9Jbml0IHtcbiAgc2hhMjU2OiBIYXNoQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBjbGFzcyBTaWduYXR1cmVWNCBpbXBsZW1lbnRzIFJlcXVlc3RQcmVzaWduZXIsIFJlcXVlc3RTaWduZXIsIFN0cmluZ1NpZ25lciwgRXZlbnRTaWduZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZWdpb25Qcm92aWRlcjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcHJpdmF0ZSByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXI6IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcbiAgcHJpdmF0ZSByZWFkb25seSBzaGEyNTY6IEhhc2hDb25zdHJ1Y3RvcjtcbiAgcHJpdmF0ZSByZWFkb25seSB1cmlFc2NhcGVQYXRoOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGx5Q2hlY2tzdW06IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIGFwcGx5Q2hlY2tzdW0sXG4gICAgY3JlZGVudGlhbHMsXG4gICAgcmVnaW9uLFxuICAgIHNlcnZpY2UsXG4gICAgc2hhMjU2LFxuICAgIHVyaUVzY2FwZVBhdGggPSB0cnVlLFxuICB9OiBTaWduYXR1cmVWNEluaXQgJiBTaWduYXR1cmVWNENyeXB0b0luaXQpIHtcbiAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlO1xuICAgIHRoaXMuc2hhMjU2ID0gc2hhMjU2O1xuICAgIHRoaXMudXJpRXNjYXBlUGF0aCA9IHVyaUVzY2FwZVBhdGg7XG4gICAgLy8gZGVmYXVsdCB0byB0cnVlIGlmIGFwcGx5Q2hlY2tzdW0gaXNuJ3Qgc2V0XG4gICAgdGhpcy5hcHBseUNoZWNrc3VtID0gdHlwZW9mIGFwcGx5Q2hlY2tzdW0gPT09IFwiYm9vbGVhblwiID8gYXBwbHlDaGVja3N1bSA6IHRydWU7XG4gICAgdGhpcy5yZWdpb25Qcm92aWRlciA9IG5vcm1hbGl6ZVJlZ2lvblByb3ZpZGVyKHJlZ2lvbik7XG4gICAgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIgPSBub3JtYWxpemVDcmVkZW50aWFsc1Byb3ZpZGVyKGNyZWRlbnRpYWxzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcmVzaWduKG9yaWdpbmFsUmVxdWVzdDogSHR0cFJlcXVlc3QsIG9wdGlvbnM6IFJlcXVlc3RQcmVzaWduaW5nQXJndW1lbnRzID0ge30pOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3Qge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgZXhwaXJlc0luID0gMzYwMCxcbiAgICAgIHVuc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5ob2lzdGFibGVIZWFkZXJzLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgIHNpZ25pbmdTZXJ2aWNlLFxuICAgIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuXG4gICAgY29uc3QgeyBsb25nRGF0ZSwgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcbiAgICBpZiAoZXhwaXJlc0luID4gTUFYX1BSRVNJR05FRF9UVEwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgXCJTaWduYXR1cmUgdmVyc2lvbiA0IHByZXNpZ25lZCBVUkxzXCIgKyBcIiBtdXN0IGhhdmUgYW4gZXhwaXJhdGlvbiBkYXRlIGxlc3MgdGhhbiBvbmUgd2VlayBpblwiICsgXCIgdGhlIGZ1dHVyZVwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNjb3BlID0gY3JlYXRlU2NvcGUoc2hvcnREYXRlLCByZWdpb24sIHNpZ25pbmdTZXJ2aWNlID8/IHRoaXMuc2VydmljZSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IG1vdmVIZWFkZXJzVG9RdWVyeShwcmVwYXJlUmVxdWVzdChvcmlnaW5hbFJlcXVlc3QpLCB7IHVuaG9pc3RhYmxlSGVhZGVycyB9KTtcblxuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHJlcXVlc3QucXVlcnlbVE9LRU5fUVVFUllfUEFSQU1dID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cbiAgICByZXF1ZXN0LnF1ZXJ5W0FMR09SSVRITV9RVUVSWV9QQVJBTV0gPSBBTEdPUklUSE1fSURFTlRJRklFUjtcbiAgICByZXF1ZXN0LnF1ZXJ5W0NSRURFTlRJQUxfUVVFUllfUEFSQU1dID0gYCR7Y3JlZGVudGlhbHMuYWNjZXNzS2V5SWR9LyR7c2NvcGV9YDtcbiAgICByZXF1ZXN0LnF1ZXJ5W0FNWl9EQVRFX1FVRVJZX1BBUkFNXSA9IGxvbmdEYXRlO1xuICAgIHJlcXVlc3QucXVlcnlbRVhQSVJFU19RVUVSWV9QQVJBTV0gPSBleHBpcmVzSW4udG9TdHJpbmcoMTApO1xuXG4gICAgY29uc3QgY2Fub25pY2FsSGVhZGVycyA9IGdldENhbm9uaWNhbEhlYWRlcnMocmVxdWVzdCwgdW5zaWduYWJsZUhlYWRlcnMsIHNpZ25hYmxlSGVhZGVycyk7XG4gICAgcmVxdWVzdC5xdWVyeVtTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTV0gPSBnZXRDYW5vbmljYWxIZWFkZXJMaXN0KGNhbm9uaWNhbEhlYWRlcnMpO1xuXG4gICAgcmVxdWVzdC5xdWVyeVtTSUdOQVRVUkVfUVVFUllfUEFSQU1dID0gYXdhaXQgdGhpcy5nZXRTaWduYXR1cmUoXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpLFxuICAgICAgdGhpcy5jcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3QsIGNhbm9uaWNhbEhlYWRlcnMsIGF3YWl0IGdldFBheWxvYWRIYXNoKG9yaWdpbmFsUmVxdWVzdCwgdGhpcy5zaGEyNTYpKVxuICAgICk7XG5cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzaWduKHN0cmluZ1RvU2lnbjogc3RyaW5nLCBvcHRpb25zPzogU2lnbmluZ0FyZ3VtZW50cyk6IFByb21pc2U8c3RyaW5nPjtcbiAgcHVibGljIGFzeW5jIHNpZ24oZXZlbnQ6IEZvcm1hdHRlZEV2ZW50LCBvcHRpb25zOiBFdmVudFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPHN0cmluZz47XG4gIHB1YmxpYyBhc3luYyBzaWduKHJlcXVlc3RUb1NpZ246IEh0dHBSZXF1ZXN0LCBvcHRpb25zPzogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPEh0dHBSZXF1ZXN0PjtcbiAgcHVibGljIGFzeW5jIHNpZ24odG9TaWduOiBhbnksIG9wdGlvbnM6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHR5cGVvZiB0b1NpZ24gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnNpZ25TdHJpbmcodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2UgaWYgKHRvU2lnbi5oZWFkZXJzICYmIHRvU2lnbi5wYXlsb2FkKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaWduRXZlbnQodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuc2lnblJlcXVlc3QodG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25FdmVudChcbiAgICB7IGhlYWRlcnMsIHBheWxvYWQgfTogRm9ybWF0dGVkRXZlbnQsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHByaW9yU2lnbmF0dXJlLCBzaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSB9OiBFdmVudFNpZ25pbmdBcmd1bWVudHNcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlLCBsb25nRGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcbiAgICBjb25zdCBoYXNoZWRQYXlsb2FkID0gYXdhaXQgZ2V0UGF5bG9hZEhhc2goeyBoZWFkZXJzOiB7fSwgYm9keTogcGF5bG9hZCB9IGFzIGFueSwgdGhpcy5zaGEyNTYpO1xuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoKTtcbiAgICBoYXNoLnVwZGF0ZShoZWFkZXJzKTtcbiAgICBjb25zdCBoYXNoZWRIZWFkZXJzID0gdG9IZXgoYXdhaXQgaGFzaC5kaWdlc3QoKSk7XG4gICAgY29uc3Qgc3RyaW5nVG9TaWduID0gW1xuICAgICAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgcHJpb3JTaWduYXR1cmUsXG4gICAgICBoYXNoZWRIZWFkZXJzLFxuICAgICAgaGFzaGVkUGF5bG9hZCxcbiAgICBdLmpvaW4oXCJcXG5cIik7XG4gICAgcmV0dXJuIHRoaXMuc2lnblN0cmluZyhzdHJpbmdUb1NpZ24sIHsgc2lnbmluZ0RhdGUsIHNpZ25pbmdSZWdpb246IHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25TdHJpbmcoXG4gICAgc3RyaW5nVG9TaWduOiBzdHJpbmcsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH06IFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcblxuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoYXdhaXQgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2lnblJlcXVlc3QoXG4gICAgcmVxdWVzdFRvU2lnbjogSHR0cFJlcXVlc3QsXG4gICAge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5zaWduYWJsZUhlYWRlcnMsXG4gICAgICBzaWduaW5nUmVnaW9uLFxuICAgICAgc2lnbmluZ1NlcnZpY2UsXG4gICAgfTogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNyZWRlbnRpYWxQcm92aWRlcigpO1xuICAgIGNvbnN0IHJlZ2lvbiA9IHNpZ25pbmdSZWdpb24gPz8gKGF3YWl0IHRoaXMucmVnaW9uUHJvdmlkZXIoKSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IHByZXBhcmVSZXF1ZXN0KHJlcXVlc3RUb1NpZ24pO1xuICAgIGNvbnN0IHsgbG9uZ0RhdGUsIHNob3J0RGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcblxuICAgIHJlcXVlc3QuaGVhZGVyc1tBTVpfREFURV9IRUFERVJdID0gbG9uZ0RhdGU7XG4gICAgaWYgKGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbikge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW1RPS0VOX0hFQURFUl0gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgfVxuXG4gICAgY29uc3QgcGF5bG9hZEhhc2ggPSBhd2FpdCBnZXRQYXlsb2FkSGFzaChyZXF1ZXN0LCB0aGlzLnNoYTI1Nik7XG4gICAgaWYgKCFoYXNIZWFkZXIoU0hBMjU2X0hFQURFUiwgcmVxdWVzdC5oZWFkZXJzKSAmJiB0aGlzLmFwcGx5Q2hlY2tzdW0pIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVyc1tTSEEyNTZfSEVBREVSXSA9IHBheWxvYWRIYXNoO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlcnMgPSBnZXRDYW5vbmljYWxIZWFkZXJzKHJlcXVlc3QsIHVuc2lnbmFibGVIZWFkZXJzLCBzaWduYWJsZUhlYWRlcnMpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHRoaXMuZ2V0U2lnbmF0dXJlKFxuICAgICAgbG9uZ0RhdGUsXG4gICAgICBzY29wZSxcbiAgICAgIHRoaXMuZ2V0U2lnbmluZ0tleShjcmVkZW50aWFscywgcmVnaW9uLCBzaG9ydERhdGUsIHNpZ25pbmdTZXJ2aWNlKSxcbiAgICAgIHRoaXMuY3JlYXRlQ2Fub25pY2FsUmVxdWVzdChyZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzLCBwYXlsb2FkSGFzaClcbiAgICApO1xuXG4gICAgcmVxdWVzdC5oZWFkZXJzW0FVVEhfSEVBREVSXSA9XG4gICAgICBgJHtBTEdPUklUSE1fSURFTlRJRklFUn0gYCArXG4gICAgICBgQ3JlZGVudGlhbD0ke2NyZWRlbnRpYWxzLmFjY2Vzc0tleUlkfS8ke3Njb3BlfSwgYCArXG4gICAgICBgU2lnbmVkSGVhZGVycz0ke2dldENhbm9uaWNhbEhlYWRlckxpc3QoY2Fub25pY2FsSGVhZGVycyl9LCBgICtcbiAgICAgIGBTaWduYXR1cmU9JHtzaWduYXR1cmV9YDtcblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzOiBIZWFkZXJCYWcsIHBheWxvYWRIYXNoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNvcnRlZEhlYWRlcnMgPSBPYmplY3Qua2V5cyhjYW5vbmljYWxIZWFkZXJzKS5zb3J0KCk7XG4gICAgcmV0dXJuIGAke3JlcXVlc3QubWV0aG9kfVxuJHt0aGlzLmdldENhbm9uaWNhbFBhdGgocmVxdWVzdCl9XG4ke2dldENhbm9uaWNhbFF1ZXJ5KHJlcXVlc3QpfVxuJHtzb3J0ZWRIZWFkZXJzLm1hcCgobmFtZSkgPT4gYCR7bmFtZX06JHtjYW5vbmljYWxIZWFkZXJzW25hbWVdfWApLmpvaW4oXCJcXG5cIil9XG5cbiR7c29ydGVkSGVhZGVycy5qb2luKFwiO1wiKX1cbiR7cGF5bG9hZEhhc2h9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlU3RyaW5nVG9TaWduKFxuICAgIGxvbmdEYXRlOiBzdHJpbmcsXG4gICAgY3JlZGVudGlhbFNjb3BlOiBzdHJpbmcsXG4gICAgY2Fub25pY2FsUmVxdWVzdDogc3RyaW5nXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1NigpO1xuICAgIGhhc2gudXBkYXRlKGNhbm9uaWNhbFJlcXVlc3QpO1xuICAgIGNvbnN0IGhhc2hlZFJlcXVlc3QgPSBhd2FpdCBoYXNoLmRpZ2VzdCgpO1xuXG4gICAgcmV0dXJuIGAke0FMR09SSVRITV9JREVOVElGSUVSfVxuJHtsb25nRGF0ZX1cbiR7Y3JlZGVudGlhbFNjb3BlfVxuJHt0b0hleChoYXNoZWRSZXF1ZXN0KX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYW5vbmljYWxQYXRoKHsgcGF0aCB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudXJpRXNjYXBlUGF0aCkge1xuICAgICAgY29uc3QgZG91YmxlRW5jb2RlZCA9IGVuY29kZVVSSUNvbXBvbmVudChwYXRoLnJlcGxhY2UoL15cXC8vLCBcIlwiKSk7XG4gICAgICByZXR1cm4gYC8ke2RvdWJsZUVuY29kZWQucmVwbGFjZSgvJTJGL2csIFwiL1wiKX1gO1xuICAgIH1cblxuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRTaWduYXR1cmUoXG4gICAgbG9uZ0RhdGU6IHN0cmluZyxcbiAgICBjcmVkZW50aWFsU2NvcGU6IHN0cmluZyxcbiAgICBrZXlQcm9taXNlOiBQcm9taXNlPFVpbnQ4QXJyYXk+LFxuICAgIGNhbm9uaWNhbFJlcXVlc3Q6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHN0cmluZ1RvU2lnbiA9IGF3YWl0IHRoaXMuY3JlYXRlU3RyaW5nVG9TaWduKGxvbmdEYXRlLCBjcmVkZW50aWFsU2NvcGUsIGNhbm9uaWNhbFJlcXVlc3QpO1xuXG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1Nihhd2FpdCBrZXlQcm9taXNlKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2lnbmluZ0tleShcbiAgICBjcmVkZW50aWFsczogQ3JlZGVudGlhbHMsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgc2hvcnREYXRlOiBzdHJpbmcsXG4gICAgc2VydmljZT86IHN0cmluZ1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gZ2V0U2lnbmluZ0tleSh0aGlzLnNoYTI1NiwgY3JlZGVudGlhbHMsIHNob3J0RGF0ZSwgcmVnaW9uLCBzZXJ2aWNlIHx8IHRoaXMuc2VydmljZSk7XG4gIH1cbn1cblxuY29uc3QgZm9ybWF0RGF0ZSA9IChub3c6IERhdGVJbnB1dCk6IHsgbG9uZ0RhdGU6IHN0cmluZzsgc2hvcnREYXRlOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IGxvbmdEYXRlID0gaXNvODYwMShub3cpLnJlcGxhY2UoL1tcXC06XS9nLCBcIlwiKTtcbiAgcmV0dXJuIHtcbiAgICBsb25nRGF0ZSxcbiAgICBzaG9ydERhdGU6IGxvbmdEYXRlLnN1YnN0cigwLCA4KSxcbiAgfTtcbn07XG5cbmNvbnN0IGdldENhbm9uaWNhbEhlYWRlckxpc3QgPSAoaGVhZGVyczogb2JqZWN0KTogc3RyaW5nID0+IE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKS5qb2luKFwiO1wiKTtcblxuY29uc3Qgbm9ybWFsaXplUmVnaW9uUHJvdmlkZXIgPSAocmVnaW9uOiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+KTogUHJvdmlkZXI8c3RyaW5nPiA9PiB7XG4gIGlmICh0eXBlb2YgcmVnaW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUocmVnaW9uKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJlZ2lvbjtcbiAgfVxufTtcblxuY29uc3Qgbm9ybWFsaXplQ3JlZGVudGlhbHNQcm92aWRlciA9IChjcmVkZW50aWFsczogQ3JlZGVudGlhbHMgfCBQcm92aWRlcjxDcmVkZW50aWFscz4pOiBQcm92aWRlcjxDcmVkZW50aWFscz4gPT4ge1xuICBpZiAodHlwZW9mIGNyZWRlbnRpYWxzID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH1cbn07XG4iXX0=","export var StorageErrorStrings;\n(function (StorageErrorStrings) {\n StorageErrorStrings[\"NO_CREDENTIALS\"] = \"No credentials\";\n StorageErrorStrings[\"NO_SRC_KEY\"] = \"source param should be an object with the property \\\"key\\\" with value of type string\";\n StorageErrorStrings[\"NO_DEST_KEY\"] = \"destination param should be an object with the property \\\"key\\\" with value of type string\";\n StorageErrorStrings[\"INVALID_BLOB\"] = \"Object must be an instance of Blob\";\n})(StorageErrorStrings || (StorageErrorStrings = {}));\nexport var AWSS3ProviderMultipartCopierErrors;\n(function (AWSS3ProviderMultipartCopierErrors) {\n AWSS3ProviderMultipartCopierErrors[\"CLEANUP_FAILED\"] = \"Multipart copy clean up failed\";\n AWSS3ProviderMultipartCopierErrors[\"NO_OBJECT_FOUND\"] = \"Object does not exist\";\n AWSS3ProviderMultipartCopierErrors[\"INVALID_QUEUESIZE\"] = \"Queue size must be a positive number\";\n AWSS3ProviderMultipartCopierErrors[\"NO_COPYSOURCE\"] = \"You must specify a copy source\";\n AWSS3ProviderMultipartCopierErrors[\"MAX_NUM_PARTS_EXCEEDED\"] = \"Only a maximum of 10000 parts are allowed\";\n})(AWSS3ProviderMultipartCopierErrors || (AWSS3ProviderMultipartCopierErrors = {}));\nexport var AWSS3ProviderUploadErrorStrings;\n(function (AWSS3ProviderUploadErrorStrings) {\n AWSS3ProviderUploadErrorStrings[\"UPLOAD_PAUSED_MESSAGE\"] = \"paused\";\n})(AWSS3ProviderUploadErrorStrings || (AWSS3ProviderUploadErrorStrings = {}));\n//# sourceMappingURL=StorageErrorStrings.js.map","import { __assign, __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\n/**\n * @internal\n */\nexport function moveHeadersToQuery(request, options) {\n var e_1, _a;\n var _b;\n if (options === void 0) { options = {}; }\n var _c = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request), headers = _c.headers, _d = _c.query, query = _d === void 0 ? {} : _d;\n try {\n for (var _e = __values(Object.keys(headers)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var name = _f.value;\n var lname = name.toLowerCase();\n if (lname.substr(0, 6) === \"x-amz-\" && !((_b = options.unhoistableHeaders) === null || _b === void 0 ? void 0 : _b.has(lname))) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return __assign(__assign({}, request), { headers: headers,\n query: query });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZUhlYWRlcnNUb1F1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vdmVIZWFkZXJzVG9RdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxPQUFvQixFQUNwQixPQUFrRDs7O0lBQWxELHdCQUFBLEVBQUEsWUFBa0Q7SUFFNUMsSUFBQSxLQUNKLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUR6RixPQUFPLGFBQUEsRUFBRSxhQUErQixFQUEvQixLQUFLLG1CQUFHLEVBQXVCLEtBQ2lELENBQUM7O1FBQ2xHLEtBQW1CLElBQUEsS0FBQSxTQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7WUFBcEMsSUFBTSxJQUFJLFdBQUE7WUFDYixJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksUUFBQyxPQUFPLENBQUMsa0JBQWtCLDBDQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUMsRUFBRTtnQkFDOUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEI7U0FDRjs7Ozs7Ozs7O0lBRUQsNkJBQ0ssT0FBTyxLQUNWLE9BQU8sU0FBQTtRQUNQLEtBQUssT0FBQSxJQUNMO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vdmVIZWFkZXJzVG9RdWVyeShcbiAgcmVxdWVzdDogSHR0cFJlcXVlc3QsXG4gIG9wdGlvbnM6IHsgdW5ob2lzdGFibGVIZWFkZXJzPzogU2V0PHN0cmluZz4gfSA9IHt9XG4pOiBIdHRwUmVxdWVzdCAmIHsgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnIH0ge1xuICBjb25zdCB7IGhlYWRlcnMsIHF1ZXJ5ID0ge30gYXMgUXVlcnlQYXJhbWV0ZXJCYWcgfSA9XG4gICAgdHlwZW9mIChyZXF1ZXN0IGFzIGFueSkuY2xvbmUgPT09IFwiZnVuY3Rpb25cIiA/IChyZXF1ZXN0IGFzIGFueSkuY2xvbmUoKSA6IGNsb25lUmVxdWVzdChyZXF1ZXN0KTtcbiAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgY29uc3QgbG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxuYW1lLnN1YnN0cigwLCA2KSA9PT0gXCJ4LWFtei1cIiAmJiAhb3B0aW9ucy51bmhvaXN0YWJsZUhlYWRlcnM/LmhhcyhsbmFtZSkpIHtcbiAgICAgIHF1ZXJ5W25hbWVdID0gaGVhZGVyc1tuYW1lXTtcbiAgICAgIGRlbGV0ZSBoZWFkZXJzW25hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVxdWVzdCxcbiAgICBoZWFkZXJzLFxuICAgIHF1ZXJ5LFxuICB9O1xufVxuIl19","import { __values } from \"tslib\";\nexport function hasHeader(soughtHeader, headers) {\n var e_1, _a;\n soughtHeader = soughtHeader.toLowerCase();\n try {\n for (var _b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return false;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzSGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhc0hlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsTUFBTSxVQUFVLFNBQVMsQ0FBQyxZQUFvQixFQUFFLE9BQWtCOztJQUNoRSxZQUFZLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDOztRQUMxQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO1lBQTFDLElBQU0sVUFBVSxXQUFBO1lBQ25CLElBQUksWUFBWSxLQUFLLFVBQVUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDN0MsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGOzs7Ozs7Ozs7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0hlYWRlcihzb3VnaHRIZWFkZXI6IHN0cmluZywgaGVhZGVyczogSGVhZGVyQmFnKTogYm9vbGVhbiB7XG4gIHNvdWdodEhlYWRlciA9IHNvdWdodEhlYWRlci50b0xvd2VyQ2FzZSgpO1xuICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICBpZiAoc291Z2h0SGVhZGVyID09PSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\n/**\n * @internal\n */\nexport function getCanonicalQuery(_a) {\n var e_1, _b;\n var _c = _a.query, query = _c === void 0 ? {} : _c;\n var keys = [];\n var serialized = {};\n var _loop_1 = function (key) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n return \"continue\";\n }\n keys.push(key);\n var value = query[key];\n if (typeof value === \"string\") {\n serialized[key] = escapeUri(key) + \"=\" + escapeUri(value);\n }\n else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(function (encoded, value) { return encoded.concat([escapeUri(key) + \"=\" + escapeUri(value)]); }, [])\n .join(\"&\");\n }\n };\n try {\n for (var _d = __values(Object.keys(query).sort()), _e = _d.next(); !_e.done; _e = _d.next()) {\n var key = _e.value;\n _loop_1(key);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return keys\n .map(function (key) { return serialized[key]; })\n .filter(function (serialized) { return serialized; }) // omit any falsy values\n .join(\"&\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsUXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0Q2Fub25pY2FsUXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBMkI7O1FBQXpCLGFBQVUsRUFBVixLQUFLLG1CQUFHLEVBQUUsS0FBQTtJQUM1QyxJQUFNLElBQUksR0FBa0IsRUFBRSxDQUFDO0lBQy9CLElBQU0sVUFBVSxHQUE4QixFQUFFLENBQUM7NEJBQ3RDLEdBQUc7UUFDWixJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRTs7U0FFM0M7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBTSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBRyxDQUFDO1NBQzNEO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLO2lCQUNwQixLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUNSLElBQUksRUFBRTtpQkFDTixNQUFNLENBQ0wsVUFBQyxPQUFzQixFQUFFLEtBQWEsSUFBSyxPQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBSSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBRyxDQUFDLENBQUMsRUFBekQsQ0FBeUQsRUFDcEcsRUFBRSxDQUNIO2lCQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNkOzs7UUFsQkgsS0FBa0IsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxnQkFBQTtZQUF0QyxJQUFNLEdBQUcsV0FBQTtvQkFBSCxHQUFHO1NBbUJiOzs7Ozs7Ozs7SUFFRCxPQUFPLElBQUk7U0FDUixHQUFHLENBQUMsVUFBQyxHQUFHLElBQUssT0FBQSxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQWYsQ0FBZSxDQUFDO1NBQzdCLE1BQU0sQ0FBQyxVQUFDLFVBQVUsSUFBSyxPQUFBLFVBQVUsRUFBVixDQUFVLENBQUMsQ0FBQyx3QkFBd0I7U0FDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBlc2NhcGVVcmkgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11cmktZXNjYXBlXCI7XG5cbmltcG9ydCB7IFNJR05BVFVSRV9IRUFERVIgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhbm9uaWNhbFF1ZXJ5KHsgcXVlcnkgPSB7fSB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gIGNvbnN0IGtleXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgY29uc3Qgc2VyaWFsaXplZDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhxdWVyeSkuc29ydCgpKSB7XG4gICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSBTSUdOQVRVUkVfSEVBREVSKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBrZXlzLnB1c2goa2V5KTtcbiAgICBjb25zdCB2YWx1ZSA9IHF1ZXJ5W2tleV07XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgc2VyaWFsaXplZFtrZXldID0gYCR7ZXNjYXBlVXJpKGtleSl9PSR7ZXNjYXBlVXJpKHZhbHVlKX1gO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHNlcmlhbGl6ZWRba2V5XSA9IHZhbHVlXG4gICAgICAgIC5zbGljZSgwKVxuICAgICAgICAuc29ydCgpXG4gICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgKGVuY29kZWQ6IEFycmF5PHN0cmluZz4sIHZhbHVlOiBzdHJpbmcpID0+IGVuY29kZWQuY29uY2F0KFtgJHtlc2NhcGVVcmkoa2V5KX09JHtlc2NhcGVVcmkodmFsdWUpfWBdKSxcbiAgICAgICAgICBbXVxuICAgICAgICApXG4gICAgICAgIC5qb2luKFwiJlwiKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2V5c1xuICAgIC5tYXAoKGtleSkgPT4gc2VyaWFsaXplZFtrZXldKVxuICAgIC5maWx0ZXIoKHNlcmlhbGl6ZWQpID0+IHNlcmlhbGl6ZWQpIC8vIG9taXQgYW55IGZhbHN5IHZhbHVlc1xuICAgIC5qb2luKFwiJlwiKTtcbn1cbiJdfQ==","import { __assign, __awaiter, __generator, __rest } from \"tslib\";\nimport { SignatureV4 } from \"@aws-sdk/signature-v4\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\nvar S3RequestPresigner = /** @class */ (function () {\n function S3RequestPresigner(options) {\n var resolvedOptions = __assign({ \n // Allow `signingName` because we want to support usecase of supply client's resolved config\n // directly. Where service equals signingName.\n service: options.signingName || options.service || \"s3\", uriEscapePath: options.uriEscapePath || false }, options);\n this.signer = new SignatureV4(resolvedOptions);\n }\n S3RequestPresigner.prototype.presign = function (requestToSign, _a) {\n if (_a === void 0) { _a = {}; }\n var _b = _a.unsignableHeaders, unsignableHeaders = _b === void 0 ? new Set() : _b, _c = _a.unhoistableHeaders, unhoistableHeaders = _c === void 0 ? new Set() : _c, options = __rest(_a, [\"unsignableHeaders\", \"unhoistableHeaders\"]);\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_d) {\n unsignableHeaders.add(\"content-type\");\n // S3 requires SSE headers to be signed in headers instead of query\n // See: https://github.com/aws/aws-sdk-js-v3/issues/1576\n Object.keys(requestToSign.headers)\n .map(function (header) { return header.toLowerCase(); })\n .filter(function (header) { return header.startsWith(\"x-amz-server-side-encryption\"); })\n .forEach(function (header) {\n unhoistableHeaders.add(header);\n });\n requestToSign.headers[SHA256_HEADER] = UNSIGNED_PAYLOAD;\n if (!requestToSign.headers[\"host\"]) {\n requestToSign.headers.host = requestToSign.hostname;\n }\n return [2 /*return*/, this.signer.presign(requestToSign, __assign({ expiresIn: 900, unsignableHeaders: unsignableHeaders,\n unhoistableHeaders: unhoistableHeaders }, options))];\n });\n });\n };\n return S3RequestPresigner;\n}());\nexport { S3RequestPresigner };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2lnbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByZXNpZ25lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBMEMsTUFBTSx1QkFBdUIsQ0FBQztBQUk1RixPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBYzlEO0lBRUUsNEJBQVksT0FBa0M7UUFDNUMsSUFBTSxlQUFlO1lBQ25CLDRGQUE0RjtZQUM1Riw4Q0FBOEM7WUFDOUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQ3ZELGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLEtBQUssSUFDMUMsT0FBTyxDQUNYLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFWSxvQ0FBTyxHQUFwQixVQUNFLGFBQTJCLEVBQzNCLEVBQThHO1FBQTlHLG1CQUFBLEVBQUEsT0FBOEc7UUFBNUcsSUFBQSx5QkFBNkIsRUFBN0IsaUJBQWlCLG1CQUFHLElBQUksR0FBRyxFQUFFLEtBQUEsRUFBRSwwQkFBOEIsRUFBOUIsa0JBQWtCLG1CQUFHLElBQUksR0FBRyxFQUFFLEtBQUEsRUFBSyxPQUFPLGNBQTNFLDJDQUE2RSxDQUFGOzs7Z0JBRTNFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDdEMsbUVBQW1FO2dCQUNuRSx3REFBd0Q7Z0JBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztxQkFDL0IsR0FBRyxDQUFDLFVBQUMsTUFBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFwQixDQUFvQixDQUFDO3FCQUNyQyxNQUFNLENBQUMsVUFBQyxNQUFNLElBQUssT0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLDhCQUE4QixDQUFDLEVBQWpELENBQWlELENBQUM7cUJBQ3JFLE9BQU8sQ0FBQyxVQUFDLE1BQU07b0JBQ2Qsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNqQyxDQUFDLENBQUMsQ0FBQztnQkFDTCxhQUFhLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO2dCQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDbEMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztpQkFDckQ7Z0JBQ0Qsc0JBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxhQUN0QyxTQUFTLEVBQUUsR0FBRyxFQUNkLGlCQUFpQixtQkFBQTt3QkFDakIsa0JBQWtCLG9CQUFBLElBQ2YsT0FBTyxFQUNWLEVBQUM7OztLQUNKO0lBQ0gseUJBQUM7QUFBRCxDQUFDLEFBckNELElBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmF0dXJlVjQsIFNpZ25hdHVyZVY0Q3J5cHRvSW5pdCwgU2lnbmF0dXJlVjRJbml0IH0gZnJvbSBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NFwiO1xuaW1wb3J0IHsgUmVxdWVzdFByZXNpZ25lciwgUmVxdWVzdFByZXNpZ25pbmdBcmd1bWVudHMgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IEh0dHBSZXF1ZXN0IGFzIElIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBTSEEyNTZfSEVBREVSLCBVTlNJR05FRF9QQVlMT0FEIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogUGFydGlhbEJ5PFQsIEs+IG1ha2VzIHByb3BlcnRpZXMgc3BlY2lmaWVkIGluIEsgb3B0aW9uYWwgaW4gaW50ZXJmYWNlIFRcbiAqIHNlZTogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDMxNTk4ODcvbWFrZS1hLXNpbmdsZS1wcm9wZXJ0eS1vcHRpb25hbC1pbi10eXBlc2NyaXB0XG4gKiAqL1xudHlwZSBPbWl0PFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IFBpY2s8VCwgRXhjbHVkZTxrZXlvZiBULCBLPj47XG50eXBlIFBhcnRpYWxCeTxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSBPbWl0PFQsIEs+ICYgUGFydGlhbDxQaWNrPFQsIEs+PjtcblxuZXhwb3J0IHR5cGUgUzNSZXF1ZXN0UHJlc2lnbmVyT3B0aW9ucyA9IFBhcnRpYWxCeTxcbiAgU2lnbmF0dXJlVjRJbml0ICYgU2lnbmF0dXJlVjRDcnlwdG9Jbml0LFxuICBcInNlcnZpY2VcIiB8IFwidXJpRXNjYXBlUGF0aFwiXG4+ICYgeyBzaWduaW5nTmFtZT86IHN0cmluZyB9O1xuXG5leHBvcnQgY2xhc3MgUzNSZXF1ZXN0UHJlc2lnbmVyIGltcGxlbWVudHMgUmVxdWVzdFByZXNpZ25lciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2lnbmVyOiBTaWduYXR1cmVWNDtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogUzNSZXF1ZXN0UHJlc2lnbmVyT3B0aW9ucykge1xuICAgIGNvbnN0IHJlc29sdmVkT3B0aW9ucyA9IHtcbiAgICAgIC8vIEFsbG93IGBzaWduaW5nTmFtZWAgYmVjYXVzZSB3ZSB3YW50IHRvIHN1cHBvcnQgdXNlY2FzZSBvZiBzdXBwbHkgY2xpZW50J3MgcmVzb2x2ZWQgY29uZmlnXG4gICAgICAvLyBkaXJlY3RseS4gV2hlcmUgc2VydmljZSBlcXVhbHMgc2lnbmluZ05hbWUuXG4gICAgICBzZXJ2aWNlOiBvcHRpb25zLnNpZ25pbmdOYW1lIHx8IG9wdGlvbnMuc2VydmljZSB8fCBcInMzXCIsXG4gICAgICB1cmlFc2NhcGVQYXRoOiBvcHRpb25zLnVyaUVzY2FwZVBhdGggfHwgZmFsc2UsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gICAgdGhpcy5zaWduZXIgPSBuZXcgU2lnbmF0dXJlVjQocmVzb2x2ZWRPcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcmVzaWduKFxuICAgIHJlcXVlc3RUb1NpZ246IElIdHRwUmVxdWVzdCxcbiAgICB7IHVuc2lnbmFibGVIZWFkZXJzID0gbmV3IFNldCgpLCB1bmhvaXN0YWJsZUhlYWRlcnMgPSBuZXcgU2V0KCksIC4uLm9wdGlvbnMgfTogUmVxdWVzdFByZXNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPElIdHRwUmVxdWVzdD4ge1xuICAgIHVuc2lnbmFibGVIZWFkZXJzLmFkZChcImNvbnRlbnQtdHlwZVwiKTtcbiAgICAvLyBTMyByZXF1aXJlcyBTU0UgaGVhZGVycyB0byBiZSBzaWduZWQgaW4gaGVhZGVycyBpbnN0ZWFkIG9mIHF1ZXJ5XG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMvaXNzdWVzLzE1NzZcbiAgICBPYmplY3Qua2V5cyhyZXF1ZXN0VG9TaWduLmhlYWRlcnMpXG4gICAgICAubWFwKChoZWFkZXIpID0+IGhlYWRlci50b0xvd2VyQ2FzZSgpKVxuICAgICAgLmZpbHRlcigoaGVhZGVyKSA9PiBoZWFkZXIuc3RhcnRzV2l0aChcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb25cIikpXG4gICAgICAuZm9yRWFjaCgoaGVhZGVyKSA9PiB7XG4gICAgICAgIHVuaG9pc3RhYmxlSGVhZGVycy5hZGQoaGVhZGVyKTtcbiAgICAgIH0pO1xuICAgIHJlcXVlc3RUb1NpZ24uaGVhZGVyc1tTSEEyNTZfSEVBREVSXSA9IFVOU0lHTkVEX1BBWUxPQUQ7XG4gICAgaWYgKCFyZXF1ZXN0VG9TaWduLmhlYWRlcnNbXCJob3N0XCJdKSB7XG4gICAgICByZXF1ZXN0VG9TaWduLmhlYWRlcnMuaG9zdCA9IHJlcXVlc3RUb1NpZ24uaG9zdG5hbWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNpZ25lci5wcmVzaWduKHJlcXVlc3RUb1NpZ24sIHtcbiAgICAgIGV4cGlyZXNJbjogOTAwLFxuICAgICAgdW5zaWduYWJsZUhlYWRlcnMsXG4gICAgICB1bmhvaXN0YWJsZUhlYWRlcnMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","export var UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport var SHA256_HEADER = \"X-Amz-Content-Sha256\";\nexport var ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport var CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport var AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport var SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport var EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport var HOST_HEADER = \"host\";\nexport var ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUNuRCxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsc0JBQXNCLENBQUM7QUFFcEQsTUFBTSxDQUFDLElBQU0scUJBQXFCLEdBQUcsaUJBQWlCLENBQUM7QUFDdkQsTUFBTSxDQUFDLElBQU0sc0JBQXNCLEdBQUcsa0JBQWtCLENBQUM7QUFDekQsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDO0FBQ2pELE1BQU0sQ0FBQyxJQUFNLDBCQUEwQixHQUFHLHFCQUFxQixDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGVBQWUsQ0FBQztBQUNuRCxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFVOU0lHTkVEX1BBWUxPQUQgPSBcIlVOU0lHTkVELVBBWUxPQURcIjtcbmV4cG9ydCBjb25zdCBTSEEyNTZfSEVBREVSID0gXCJYLUFtei1Db250ZW50LVNoYTI1NlwiO1xuXG5leHBvcnQgY29uc3QgQUxHT1JJVEhNX1FVRVJZX1BBUkFNID0gXCJYLUFtei1BbGdvcml0aG1cIjtcbmV4cG9ydCBjb25zdCBDUkVERU5USUFMX1FVRVJZX1BBUkFNID0gXCJYLUFtei1DcmVkZW50aWFsXCI7XG5leHBvcnQgY29uc3QgQU1aX0RBVEVfUVVFUllfUEFSQU0gPSBcIlgtQW16LURhdGVcIjtcbmV4cG9ydCBjb25zdCBTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTSA9IFwiWC1BbXotU2lnbmVkSGVhZGVyc1wiO1xuZXhwb3J0IGNvbnN0IEVYUElSRVNfUVVFUllfUEFSQU0gPSBcIlgtQW16LUV4cGlyZXNcIjtcbmV4cG9ydCBjb25zdCBIT1NUX0hFQURFUiA9IFwiaG9zdFwiO1xuZXhwb3J0IGNvbnN0IEFMR09SSVRITV9JREVOVElGSUVSID0gXCJBV1M0LUhNQUMtU0hBMjU2XCI7XG4iXX0=","/*\n * Copyright 2017-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { HttpResponse } from '@aws-sdk/protocol-http';\nimport { buildQueryString } from '@aws-sdk/querystring-builder';\nimport axios from 'axios';\nimport { ConsoleLogger as Logger, Platform } from '@aws-amplify/core';\nimport { AWSS3ProviderUploadErrorStrings } from '../common/StorageErrorStrings';\nvar logger = new Logger('axios-http-handler');\nexport var SEND_UPLOAD_PROGRESS_EVENT = 'sendUploadProgress';\nexport var SEND_DOWNLOAD_PROGRESS_EVENT = 'sendDownloadProgress';\nfunction isBlob(body) {\n return typeof Blob !== 'undefined' && body instanceof Blob;\n}\nfunction hasErrorResponse(error) {\n return (typeof error !== 'undefined' &&\n Object.prototype.hasOwnProperty.call(error, 'response') &&\n typeof error.response !== 'undefined' &&\n Object.prototype.hasOwnProperty.call(error.response, 'status') &&\n typeof error.response.status === 'number');\n}\nvar normalizeHeaders = function (headers, normalizedName) {\n var e_1, _a;\n try {\n for (var _b = __values(Object.entries(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), k = _d[0], v = _d[1];\n if (k !== normalizedName &&\n k.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = v;\n delete headers[k];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n};\nexport var reactNativeRequestTransformer = [\n function (data, headers) {\n if (isBlob(data)) {\n normalizeHeaders(headers, 'Content-Type');\n normalizeHeaders(headers, 'Accept');\n return data;\n }\n // Axios' default transformRequest is an array\n return axios.defaults.transformRequest[0].call(null, data, headers);\n },\n];\nvar AxiosHttpHandler = /** @class */ (function () {\n function AxiosHttpHandler(httpOptions, emitter, cancelTokenSource) {\n if (httpOptions === void 0) { httpOptions = {}; }\n this.httpOptions = httpOptions;\n this.emitter = emitter;\n this.cancelTokenSource = cancelTokenSource;\n }\n AxiosHttpHandler.prototype.destroy = function () {\n // Do nothing. TLS and HTTP/2 connection pooling is handled by the\n // browser.\n };\n AxiosHttpHandler.prototype.handle = function (request, options) {\n var requestTimeoutInMs = this.httpOptions.requestTimeout;\n // prioritize the call specific event emitter, this is useful for multipart upload as each individual parts has\n // their own event emitter, without having to create s3client for every individual calls.\n var emitter = options.emitter || this.emitter;\n var path = request.path;\n if (request.query) {\n var queryString = buildQueryString(request.query);\n if (queryString) {\n path += \"?\" + queryString;\n }\n }\n var port = request.port;\n var url = request.protocol + \"//\" + request.hostname + (port ? \":\" + port : '') + path;\n var axiosRequest = {};\n axiosRequest.url = url;\n axiosRequest.method = request.method;\n axiosRequest.headers = request.headers;\n // The host header is automatically added by the browser and adding it explicitly in the\n // axios request throws an error https://github.com/aws-amplify/amplify-js/issues/5376\n // This is because the host header is a forbidden header for the http client to set\n // see https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name and\n // https://fetch.spec.whatwg.org/#forbidden-header-name\n // The reason we are removing this header here instead of in the aws-sdk's client\n // middleware is that the host header is required to be in the request signature and if\n // we remove it from the middlewares, then the request fails because the header is added\n // by the browser but is absent from the signature.\n delete axiosRequest.headers['host'];\n if (request.body) {\n axiosRequest.data = request.body;\n }\n else {\n // Fix for https://github.com/aws-amplify/amplify-js/issues/5432\n // If the POST request body is empty but content-type header is set, axios is forcibly removing it\n // See https://github.com/axios/axios/issues/1535 and refusing to fix it https://github.com/axios/axios/issues/755\n // This change is a workaround to set the data as null (instead of undefined) to prevent axios from\n // removing the content-type header. Link for the source code\n // https://github.com/axios/axios/blob/dc4bc49673943e35280e5df831f5c3d0347a9393/lib/adapters/xhr.js#L121-L123\n if (axiosRequest.headers[Object.keys(axiosRequest.headers).find(function (key) { return key.toLowerCase() === 'content-type'; })]) {\n axiosRequest.data = null;\n }\n }\n if (emitter) {\n // TODO: Unify linting rules across JS repo\n axiosRequest.onUploadProgress = function (event) {\n emitter.emit(SEND_UPLOAD_PROGRESS_EVENT, event);\n logger.debug(event);\n };\n // TODO: Unify linting rules across JS repo\n axiosRequest.onDownloadProgress = function (event) {\n emitter.emit(SEND_DOWNLOAD_PROGRESS_EVENT, event);\n logger.debug(event);\n };\n }\n // If a cancel token source is passed down from the provider, allows cancellation of in-flight requests\n if (this.cancelTokenSource) {\n axiosRequest.cancelToken = this.cancelTokenSource.token;\n }\n if (options.cancelTokenSource) {\n axiosRequest.cancelToken = options.cancelTokenSource.token;\n }\n // From gamma release, aws-sdk now expects all response type to be of blob or streams\n axiosRequest.responseType = 'blob';\n // In Axios, Blobs are identified by calling Object.prototype.toString on the object. However, on React Native,\n // calling Object.prototype.toString on a Blob returns '[object Object]' instead of '[object Blob]', which causes\n // Axios to treat Blobs as generic Javascript objects. Therefore we need a to use a custom request transformer\n // to correctly handle Blob in React Native.\n if (Platform.isReactNative) {\n axiosRequest.transformRequest = reactNativeRequestTransformer;\n }\n var raceOfPromises = [\n axios\n .request(axiosRequest)\n .then(function (response) {\n return {\n response: new HttpResponse({\n headers: response.headers,\n statusCode: response.status,\n body: response.data,\n }),\n };\n })\n .catch(function (error) {\n var _a, _b;\n // Error\n if (error.message !==\n AWSS3ProviderUploadErrorStrings.UPLOAD_PAUSED_MESSAGE) {\n logger.error(error.message);\n }\n // for axios' cancel error, we should re-throw it back so it's not considered an s3client error\n // if we return empty, or an abitrary error HttpResponse, it will be hard to debug down the line.\n //\n // for errors that does not have a 'response' object, it's very likely that it is an unexpected error for\n // example a disconnect. Without it we cannot meaningfully reconstruct a HttpResponse, and the AWS SDK might\n // consider the request successful by mistake. In this case we should also re-throw the error.\n if (axios.isCancel(error) || !hasErrorResponse(error)) {\n throw error;\n }\n // otherwise, we should re-construct an HttpResponse from the error, so that it can be passed down to other\n // aws sdk middleware (e.g retry, clock skew correction, error message serializing)\n return {\n response: new HttpResponse({\n statusCode: error.response.status,\n body: (_a = error.response) === null || _a === void 0 ? void 0 : _a.data,\n headers: (_b = error.response) === null || _b === void 0 ? void 0 : _b.headers,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n return Promise.race(raceOfPromises);\n };\n return AxiosHttpHandler;\n}());\nexport { AxiosHttpHandler };\nfunction requestTimeout(timeoutInMs) {\n if (timeoutInMs === void 0) { timeoutInMs = 0; }\n return new Promise(function (resolve, reject) {\n if (timeoutInMs) {\n setTimeout(function () {\n var timeoutError = new Error(\"Request did not complete within \" + timeoutInMs + \" ms\");\n timeoutError.name = 'TimeoutError';\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n//# sourceMappingURL=axios-http-handler.js.map","export var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' &&\n typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nexport var SET_CONTENT_LENGTH_HEADER = 'contentLengthMiddleware';\nexport var localTestingStorageEndpoint = 'http://localhost:20005';\nexport var UPLOADS_STORAGE_KEY = '__uploadInProgress';\n//# sourceMappingURL=StorageConstants.js.map","import { Hub } from '@aws-amplify/core';\nimport { AMPLIFY_SYMBOL } from './StorageConstants';\nexport var byteLength = function (x) {\n if (typeof x === 'string') {\n return x.length;\n }\n else if (isArrayBuffer(x)) {\n return x.byteLength;\n }\n else if (isBlob(x)) {\n return x.size;\n }\n else {\n throw new Error('Cannot determine byte length of ' + x);\n }\n};\nexport var dispatchStorageEvent = function (track, event, attrs, metrics, message) {\n if (track) {\n var data = { attrs: attrs };\n if (metrics) {\n data['metrics'] = metrics;\n }\n Hub.dispatch('storage', {\n event: event,\n data: data,\n message: message,\n }, 'Storage', AMPLIFY_SYMBOL);\n }\n};\nexport var isFile = function (x) {\n return typeof x !== 'undefined' && x instanceof File;\n};\nexport var isBlob = function (x) {\n return typeof x !== 'undefined' && x instanceof Blob;\n};\nvar isArrayBuffer = function (x) {\n return typeof x !== 'undefined' && x instanceof ArrayBuffer;\n};\n//# sourceMappingURL=StorageUtils.js.map","import { toHex } from \"@aws-sdk/util-hex-encoding\";\n/**\n * A lossless representation of a signed, 64-bit integer. Instances of this\n * class may be used in arithmetic expressions as if they were numeric\n * primitives, but the binary representation will be preserved unchanged as the\n * `bytes` property of the object. The bytes should be encoded as big-endian,\n * two's complement integers.\n */\nvar Int64 = /** @class */ (function () {\n function Int64(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n Int64.fromNumber = function (number) {\n if (number > 9223372036854775807 || number < -9223372036854775808) {\n throw new Error(number + \" is too large (or, if negative, too small) to represent as an Int64\");\n }\n var bytes = new Uint8Array(8);\n for (var i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new Int64(bytes);\n };\n /**\n * Called implicitly by infix arithmetic operators.\n */\n Int64.prototype.valueOf = function () {\n var bytes = this.bytes.slice(0);\n var negative = bytes[0] & 128;\n if (negative) {\n negate(bytes);\n }\n return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n };\n Int64.prototype.toString = function () {\n return String(this.valueOf());\n };\n return Int64;\n}());\nexport { Int64 };\nfunction negate(bytes) {\n for (var i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (var i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50NjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvSW50NjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSW5EOzs7Ozs7R0FNRztBQUNIO0lBQ0UsZUFBcUIsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNwQyxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7SUFFTSxnQkFBVSxHQUFqQixVQUFrQixNQUFjO1FBQzlCLElBQUksTUFBTSxHQUFHLG1CQUFtQixJQUFJLE1BQU0sR0FBRyxDQUFDLG1CQUFtQixFQUFFO1lBQ2pFLE1BQU0sSUFBSSxLQUFLLENBQUksTUFBTSx3RUFBcUUsQ0FBQyxDQUFDO1NBQ2pHO1FBRUQsSUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLFNBQVMsSUFBSSxHQUFHLEVBQUU7WUFDeEcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztTQUN0QjtRQUVELElBQUksTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNkLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBRUQsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCx1QkFBTyxHQUFQO1FBQ0UsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQVUsQ0FBQztRQUN2QyxJQUFJLFFBQVEsRUFBRTtZQUNaLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBRUQsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELHdCQUFRLEdBQVI7UUFDRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0gsWUFBQztBQUFELENBQUMsQUF4Q0QsSUF3Q0M7O0FBRUQsU0FBUyxNQUFNLENBQUMsS0FBaUI7SUFDL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMxQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0tBQ2xCO0lBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzNCLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1gsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUFFLE1BQU07S0FDM0I7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50NjQgYXMgSUludDY0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEludDY0IGV4dGVuZHMgSUludDY0IHt9XG5cbi8qKlxuICogQSBsb3NzbGVzcyByZXByZXNlbnRhdGlvbiBvZiBhIHNpZ25lZCwgNjQtYml0IGludGVnZXIuIEluc3RhbmNlcyBvZiB0aGlzXG4gKiBjbGFzcyBtYXkgYmUgdXNlZCBpbiBhcml0aG1ldGljIGV4cHJlc3Npb25zIGFzIGlmIHRoZXkgd2VyZSBudW1lcmljXG4gKiBwcmltaXRpdmVzLCBidXQgdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiB3aWxsIGJlIHByZXNlcnZlZCB1bmNoYW5nZWQgYXMgdGhlXG4gKiBgYnl0ZXNgIHByb3BlcnR5IG9mIHRoZSBvYmplY3QuIFRoZSBieXRlcyBzaG91bGQgYmUgZW5jb2RlZCBhcyBiaWctZW5kaWFuLFxuICogdHdvJ3MgY29tcGxlbWVudCBpbnRlZ2Vycy5cbiAqL1xuZXhwb3J0IGNsYXNzIEludDY0IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgYnl0ZXM6IFVpbnQ4QXJyYXkpIHtcbiAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCAhPT0gOCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW50NjQgYnVmZmVycyBtdXN0IGJlIGV4YWN0bHkgOCBieXRlc1wiKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZnJvbU51bWJlcihudW1iZXI6IG51bWJlcik6IEludDY0IHtcbiAgICBpZiAobnVtYmVyID4gOTIyMzM3MjAzNjg1NDc3NTgwNyB8fCBudW1iZXIgPCAtOTIyMzM3MjAzNjg1NDc3NTgwOCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke251bWJlcn0gaXMgdG9vIGxhcmdlIChvciwgaWYgbmVnYXRpdmUsIHRvbyBzbWFsbCkgdG8gcmVwcmVzZW50IGFzIGFuIEludDY0YCk7XG4gICAgfVxuXG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheSg4KTtcbiAgICBmb3IgKGxldCBpID0gNywgcmVtYWluaW5nID0gTWF0aC5hYnMoTWF0aC5yb3VuZChudW1iZXIpKTsgaSA+IC0xICYmIHJlbWFpbmluZyA+IDA7IGktLSwgcmVtYWluaW5nIC89IDI1Nikge1xuICAgICAgYnl0ZXNbaV0gPSByZW1haW5pbmc7XG4gICAgfVxuXG4gICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgIG5lZ2F0ZShieXRlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbnQ2NChieXRlcyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGltcGxpY2l0bHkgYnkgaW5maXggYXJpdGhtZXRpYyBvcGVyYXRvcnMuXG4gICAqL1xuICB2YWx1ZU9mKCk6IG51bWJlciB7XG4gICAgY29uc3QgYnl0ZXMgPSB0aGlzLmJ5dGVzLnNsaWNlKDApO1xuICAgIGNvbnN0IG5lZ2F0aXZlID0gYnl0ZXNbMF0gJiAwYjEwMDAwMDAwO1xuICAgIGlmIChuZWdhdGl2ZSkge1xuICAgICAgbmVnYXRlKGJ5dGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VJbnQodG9IZXgoYnl0ZXMpLCAxNikgKiAobmVnYXRpdmUgPyAtMSA6IDEpO1xuICB9XG5cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlT2YoKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbmVnYXRlKGJ5dGVzOiBVaW50OEFycmF5KTogdm9pZCB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgODsgaSsrKSB7XG4gICAgYnl0ZXNbaV0gXj0gMHhmZjtcbiAgfVxuXG4gIGZvciAobGV0IGkgPSA3OyBpID4gLTE7IGktLSkge1xuICAgIGJ5dGVzW2ldKys7XG4gICAgaWYgKGJ5dGVzW2ldICE9PSAwKSBicmVhaztcbiAgfVxufVxuIl19","import { __values } from \"tslib\";\nimport { fromHex, toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { Int64 } from \"./Int64\";\n/**\n * @internal\n */\nvar HeaderMarshaller = /** @class */ (function () {\n function HeaderMarshaller(toUtf8, fromUtf8) {\n this.toUtf8 = toUtf8;\n this.fromUtf8 = fromUtf8;\n }\n HeaderMarshaller.prototype.format = function (headers) {\n var e_1, _a, e_2, _b;\n var chunks = [];\n try {\n for (var _c = __values(Object.keys(headers)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var headerName = _d.value;\n var bytes = this.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var out = new Uint8Array(chunks.reduce(function (carry, bytes) { return carry + bytes.byteLength; }, 0));\n var position = 0;\n try {\n for (var chunks_1 = __values(chunks), chunks_1_1 = chunks_1.next(); !chunks_1_1.done; chunks_1_1 = chunks_1.next()) {\n var chunk = chunks_1_1.value;\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (chunks_1_1 && !chunks_1_1.done && (_b = chunks_1.return)) _b.call(chunks_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return out;\n };\n HeaderMarshaller.prototype.formatHeaderValue = function (header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 /* boolTrue */ : 1 /* boolFalse */]);\n case \"byte\":\n return Uint8Array.from([2 /* byte */, header.value]);\n case \"short\":\n var shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3 /* short */);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n var intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4 /* integer */);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n var longBytes = new Uint8Array(9);\n longBytes[0] = 5 /* long */;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n var binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6 /* byteArray */);\n binView.setUint16(1, header.value.byteLength, false);\n var binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n var utf8Bytes = this.fromUtf8(header.value);\n var strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7 /* string */);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n var strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n var tsBytes = new Uint8Array(9);\n tsBytes[0] = 8 /* timestamp */;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(\"Invalid UUID received: \" + header.value);\n }\n var uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9 /* uuid */;\n uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n };\n HeaderMarshaller.prototype.parse = function (headers) {\n var out = {};\n var position = 0;\n while (position < headers.byteLength) {\n var nameLength = headers.getUint8(position++);\n var name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n position += nameLength;\n switch (headers.getUint8(position++)) {\n case 0 /* boolTrue */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true,\n };\n break;\n case 1 /* boolFalse */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false,\n };\n break;\n case 2 /* byte */:\n out[name] = {\n type: BYTE_TAG,\n value: headers.getInt8(position++),\n };\n break;\n case 3 /* short */:\n out[name] = {\n type: SHORT_TAG,\n value: headers.getInt16(position, false),\n };\n position += 2;\n break;\n case 4 /* integer */:\n out[name] = {\n type: INT_TAG,\n value: headers.getInt32(position, false),\n };\n position += 4;\n break;\n case 5 /* long */:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)),\n };\n position += 8;\n break;\n case 6 /* byteArray */:\n var binaryLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength),\n };\n position += binaryLength;\n break;\n case 7 /* string */:\n var stringLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength)),\n };\n position += stringLength;\n break;\n case 8 /* timestamp */:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf()),\n };\n position += 8;\n break;\n case 9 /* uuid */:\n var uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: toHex(uuidBytes.subarray(0, 4)) + \"-\" + toHex(uuidBytes.subarray(4, 6)) + \"-\" + toHex(uuidBytes.subarray(6, 8)) + \"-\" + toHex(uuidBytes.subarray(8, 10)) + \"-\" + toHex(uuidBytes.subarray(10)),\n };\n break;\n default:\n throw new Error(\"Unrecognized header type tag\");\n }\n }\n return out;\n };\n return HeaderMarshaller;\n}());\nexport { HeaderMarshaller };\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nvar BOOLEAN_TAG = \"boolean\";\nvar BYTE_TAG = \"byte\";\nvar SHORT_TAG = \"short\";\nvar INT_TAG = \"integer\";\nvar LONG_TAG = \"long\";\nvar BINARY_TAG = \"binary\";\nvar STRING_TAG = \"string\";\nvar TIMESTAMP_TAG = \"timestamp\";\nvar UUID_TAG = \"uuid\";\nvar UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyTWFyc2hhbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9IZWFkZXJNYXJzaGFsbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEM7O0dBRUc7QUFDSDtJQUNFLDBCQUE2QixNQUFlLEVBQW1CLFFBQWlCO1FBQW5ELFdBQU0sR0FBTixNQUFNLENBQVM7UUFBbUIsYUFBUSxHQUFSLFFBQVEsQ0FBUztJQUFHLENBQUM7SUFFcEYsaUNBQU0sR0FBTixVQUFPLE9BQXVCOztRQUM1QixJQUFNLE1BQU0sR0FBc0IsRUFBRSxDQUFDOztZQUVyQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO2dCQUExQyxJQUFNLFVBQVUsV0FBQTtnQkFDbkIsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RHOzs7Ozs7Ozs7UUFFRCxJQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQUMsS0FBSyxFQUFFLEtBQUssSUFBSyxPQUFBLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxFQUF4QixDQUF3QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekYsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDOztZQUNqQixLQUFvQixJQUFB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QUMxQixpRUFBWSxDQUFBO0lBQ1osbUVBQVMsQ0FBQTtJQUNULHlEQUFJLENBQUE7SUFDSiwyREFBSyxDQUFBO0lBQ0wsK0RBQU8sQ0FBQTtJQUNQLHlEQUFJLENBQUE7SUFDSixtRUFBUyxDQUFBO0lBQ1QsNkRBQU0sQ0FBQTtJQUNOLG1FQUFTLENBQUE7SUFDVCx5REFBSSxDQUFBO0FBQ04sQ0FBQyxFQVhVLGlCQUFpQixLQUFqQixpQkFBaUIsUUFXM0I7QUFFRCxJQUFNLFdBQVcsR0FBRyxTQUFTLENBQUM7QUFDOUIsSUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBQ3hCLElBQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQztBQUMxQixJQUFNLE9BQU8sR0FBRyxTQUFTLENBQUM7QUFDMUIsSUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBQ3hCLElBQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQztBQUM1QixJQUFNLFVBQVUsR0FBRyxRQUFRLENBQUM7QUFDNUIsSUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDO0FBQ2xDLElBQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQztBQUV4QixJQUFNLFlBQVksR0FBRyxnRUFBZ0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY29kZXIsIEVuY29kZXIsIE1lc3NhZ2VIZWFkZXJzLCBNZXNzYWdlSGVhZGVyVmFsdWUgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IGZyb21IZXgsIHRvSGV4IH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtaGV4LWVuY29kaW5nXCI7XG5cbmltcG9ydCB7IEludDY0IH0gZnJvbSBcIi4vSW50NjRcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIEhlYWRlck1hcnNoYWxsZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRvVXRmODogRW5jb2RlciwgcHJpdmF0ZSByZWFkb25seSBmcm9tVXRmODogRGVjb2Rlcikge31cblxuICBmb3JtYXQoaGVhZGVyczogTWVzc2FnZUhlYWRlcnMpOiBVaW50OEFycmF5IHtcbiAgICBjb25zdCBjaHVua3M6IEFycmF5PFVpbnQ4QXJyYXk+ID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICAgIGNvbnN0IGJ5dGVzID0gdGhpcy5mcm9tVXRmOChoZWFkZXJOYW1lKTtcbiAgICAgIGNodW5rcy5wdXNoKFVpbnQ4QXJyYXkuZnJvbShbYnl0ZXMuYnl0ZUxlbmd0aF0pLCBieXRlcywgdGhpcy5mb3JtYXRIZWFkZXJWYWx1ZShoZWFkZXJzW2hlYWRlck5hbWVdKSk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0ID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmtzLnJlZHVjZSgoY2FycnksIGJ5dGVzKSA9PiBjYXJyeSArIGJ5dGVzLmJ5dGVMZW5ndGgsIDApKTtcbiAgICBsZXQgcG9zaXRpb24gPSAwO1xuICAgIGZvciAoY29uc3QgY2h1bmsgb2YgY2h1bmtzKSB7XG4gICAgICBvdXQuc2V0KGNodW5rLCBwb3NpdGlvbik7XG4gICAgICBwb3NpdGlvbiArPSBjaHVuay5ieXRlTGVuZ3RoO1xuICAgIH1cblxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEhlYWRlclZhbHVlKGhlYWRlcjogTWVzc2FnZUhlYWRlclZhbHVlKTogVWludDhBcnJheSB7XG4gICAgc3dpdGNoIChoZWFkZXIudHlwZSkge1xuICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShbaGVhZGVyLnZhbHVlID8gSEVBREVSX1ZBTFVFX1RZUEUuYm9vbFRydWUgOiBIRUFERVJfVkFMVUVfVFlQRS5ib29sRmFsc2VdKTtcbiAgICAgIGNhc2UgXCJieXRlXCI6XG4gICAgICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oW0hFQURFUl9WQUxVRV9UWVBFLmJ5dGUsIGhlYWRlci52YWx1ZV0pO1xuICAgICAgY2FzZSBcInNob3J0XCI6XG4gICAgICAgIGNvbnN0IHNob3J0VmlldyA9IG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMykpO1xuICAgICAgICBzaG9ydFZpZXcuc2V0VWludDgoMCwgSEVBREVSX1ZBTFVFX1RZUEUuc2hvcnQpO1xuICAgICAgICBzaG9ydFZpZXcuc2V0SW50MTYoMSwgaGVhZGVyLnZhbHVlLCBmYWxzZSk7XG4gICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShzaG9ydFZpZXcuYnVmZmVyKTtcbiAgICAgIGNhc2UgXCJpbnRlZ2VyXCI6XG4gICAgICAgIGNvbnN0IGludFZpZXcgPSBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDUpKTtcbiAgICAgICAgaW50Vmlldy5zZXRVaW50OCgwLCBIRUFERVJfVkFMVUVfVFlQRS5pbnRlZ2VyKTtcbiAgICAgICAgaW50Vmlldy5zZXRJbnQzMigxLCBoZWFkZXIudmFsdWUsIGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGludFZpZXcuYnVmZmVyKTtcbiAgICAgIGNhc2UgXCJsb25nXCI6XG4gICAgICAgIGNvbnN0IGxvbmdCeXRlcyA9IG5ldyBVaW50OEFycmF5KDkpO1xuICAgICAgICBsb25nQnl0ZXNbMF0gPSBIRUFERVJfVkFMVUVfVFlQRS5sb25nO1xuICAgICAgICBsb25nQnl0ZXMuc2V0KGhlYWRlci52YWx1ZS5ieXRlcywgMSk7XG4gICAgICAgIHJldHVybiBsb25nQnl0ZXM7XG4gICAgICBjYXNlIFwiYmluYXJ5XCI6XG4gICAgICAgIGNvbnN0IGJpblZpZXcgPSBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDMgKyBoZWFkZXIudmFsdWUuYnl0ZUxlbmd0aCkpO1xuICAgICAgICBiaW5WaWV3LnNldFVpbnQ4KDAsIEhFQURFUl9WQUxVRV9UWVBFLmJ5dGVBcnJheSk7XG4gICAgICAgIGJpblZpZXcuc2V0VWludDE2KDEsIGhlYWRlci52YWx1ZS5ieXRlTGVuZ3RoLCBmYWxzZSk7XG4gICAgICAgIGNvbnN0IGJpbkJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYmluVmlldy5idWZmZXIpO1xuICAgICAgICBiaW5CeXRlcy5zZXQoaGVhZGVyLnZhbHVlLCAzKTtcbiAgICAgICAgcmV0dXJuIGJpbkJ5dGVzO1xuICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICBjb25zdCB1dGY4Qnl0ZXMgPSB0aGlzLmZyb21VdGY4KGhlYWRlci52YWx1ZSk7XG4gICAgICAgIGNvbnN0IHN0clZpZXcgPSBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDMgKyB1dGY4Qnl0ZXMuYnl0ZUxlbmd0aCkpO1xuICAgICAgICBzdHJWaWV3LnNldFVpbnQ4KDAsIEhFQURFUl9WQUxVRV9UWVBFLnN0cmluZyk7XG4gICAgICAgIHN0clZpZXcuc2V0VWludDE2KDEsIHV0ZjhCeXRlcy5ieXRlTGVuZ3RoLCBmYWxzZSk7XG4gICAgICAgIGNvbnN0IHN0ckJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoc3RyVmlldy5idWZmZXIpO1xuICAgICAgICBzdHJCeXRlcy5zZXQodXRmOEJ5dGVzLCAzKTtcbiAgICAgICAgcmV0dXJuIHN0ckJ5dGVzO1xuICAgICAgY2FzZSBcInRpbWVzdGFtcFwiOlxuICAgICAgICBjb25zdCB0c0J5dGVzID0gbmV3IFVpbnQ4QXJyYXkoOSk7XG4gICAgICAgIHRzQnl0ZXNbMF0gPSBIRUFERVJfVkFMVUVfVFlQRS50aW1lc3RhbXA7XG4gICAgICAgIHRzQnl0ZXMuc2V0KEludDY0LmZyb21OdW1iZXIoaGVhZGVyLnZhbHVlLnZhbHVlT2YoKSkuYnl0ZXMsIDEpO1xuICAgICAgICByZXR1cm4gdHNCeXRlcztcbiAgICAgIGNhc2UgXCJ1dWlkXCI6XG4gICAgICAgIGlmICghVVVJRF9QQVRURVJOLnRlc3QoaGVhZGVyLnZhbHVlKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBVVUlEIHJlY2VpdmVkOiAke2hlYWRlci52YWx1ZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHV1aWRCeXRlcyA9IG5ldyBVaW50OEFycmF5KDE3KTtcbiAgICAgICAgdXVpZEJ5dGVzWzBdID0gSEVBREVSX1ZBTFVFX1RZUEUudXVpZDtcbiAgICAgICAgdXVpZEJ5dGVzLnNldChmcm9tSGV4KGhlYWRlci52YWx1ZS5yZXBsYWNlKC9cXC0vZywgXCJcIikpLCAxKTtcbiAgICAgICAgcmV0dXJuIHV1aWRCeXRlcztcbiAgICB9XG4gIH1cblxuICBwYXJzZShoZWFkZXJzOiBEYXRhVmlldyk6IE1lc3NhZ2VIZWFkZXJzIHtcbiAgICBjb25zdCBvdXQ6IE1lc3NhZ2VIZWFkZXJzID0ge307XG4gICAgbGV0IHBvc2l0aW9uID0gMDtcblxuICAgIHdoaWxlIChwb3NpdGlvbiA8IGhlYWRlcnMuYnl0ZUxlbmd0aCkge1xuICAgICAgY29uc3QgbmFtZUxlbmd0aCA9IGhlYWRlcnMuZ2V0VWludDgocG9zaXRpb24rKyk7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy50b1V0ZjgobmV3IFVpbnQ4QXJyYXkoaGVhZGVycy5idWZmZXIsIGhlYWRlcnMuYnl0ZU9mZnNldCArIHBvc2l0aW9uLCBuYW1lTGVuZ3RoKSk7XG4gICAgICBwb3NpdGlvbiArPSBuYW1lTGVuZ3RoO1xuXG4gICAgICBzd2l0Y2ggKGhlYWRlcnMuZ2V0VWludDgocG9zaXRpb24rKykpIHtcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5ib29sVHJ1ZTpcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBCT09MRUFOX1RBRyxcbiAgICAgICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgSEVBREVSX1ZBTFVFX1RZUEUuYm9vbEZhbHNlOlxuICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgIHR5cGU6IEJPT0xFQU5fVEFHLFxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgSEVBREVSX1ZBTFVFX1RZUEUuYnl0ZTpcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBCWVRFX1RBRyxcbiAgICAgICAgICAgIHZhbHVlOiBoZWFkZXJzLmdldEludDgocG9zaXRpb24rKyksXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5zaG9ydDpcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBTSE9SVF9UQUcsXG4gICAgICAgICAgICB2YWx1ZTogaGVhZGVycy5nZXRJbnQxNihwb3NpdGlvbiwgZmFsc2UpLFxuICAgICAgICAgIH07XG4gICAgICAgICAgcG9zaXRpb24gKz0gMjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5pbnRlZ2VyOlxuICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgIHR5cGU6IElOVF9UQUcsXG4gICAgICAgICAgICB2YWx1ZTogaGVhZGVycy5nZXRJbnQzMihwb3NpdGlvbiwgZmFsc2UpLFxuICAgICAgICAgIH07XG4gICAgICAgICAgcG9zaXRpb24gKz0gNDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5sb25nOlxuICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgIHR5cGU6IExPTkdfVEFHLFxuICAgICAgICAgICAgdmFsdWU6IG5ldyBJbnQ2NChuZXcgVWludDhBcnJheShoZWFkZXJzLmJ1ZmZlciwgaGVhZGVycy5ieXRlT2Zmc2V0ICsgcG9zaXRpb24sIDgpKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHBvc2l0aW9uICs9IDg7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgSEVBREVSX1ZBTFVFX1RZUEUuYnl0ZUFycmF5OlxuICAgICAgICAgIGNvbnN0IGJpbmFyeUxlbmd0aCA9IGhlYWRlcnMuZ2V0VWludDE2KHBvc2l0aW9uLCBmYWxzZSk7XG4gICAgICAgICAgcG9zaXRpb24gKz0gMjtcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBCSU5BUllfVEFHLFxuICAgICAgICAgICAgdmFsdWU6IG5ldyBVaW50OEFycmF5KGhlYWRlcnMuYnVmZmVyLCBoZWFkZXJzLmJ5dGVPZmZzZXQgKyBwb3NpdGlvbiwgYmluYXJ5TGVuZ3RoKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHBvc2l0aW9uICs9IGJpbmFyeUxlbmd0aDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5zdHJpbmc6XG4gICAgICAgICAgY29uc3Qgc3RyaW5nTGVuZ3RoID0gaGVhZGVycy5nZXRVaW50MTYocG9zaXRpb24sIGZhbHNlKTtcbiAgICAgICAgICBwb3NpdGlvbiArPSAyO1xuICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgIHR5cGU6IFNUUklOR19UQUcsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy50b1V0ZjgobmV3IFVpbnQ4QXJyYXkoaGVhZGVycy5idWZmZXIsIGhlYWRlcnMuYnl0ZU9mZnNldCArIHBvc2l0aW9uLCBzdHJpbmdMZW5ndGgpKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHBvc2l0aW9uICs9IHN0cmluZ0xlbmd0aDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS50aW1lc3RhbXA6XG4gICAgICAgICAgb3V0W25hbWVdID0ge1xuICAgICAgICAgICAgdHlwZTogVElNRVNUQU1QX1RBRyxcbiAgICAgICAgICAgIHZhbHVlOiBuZXcgRGF0ZShuZXcgSW50NjQobmV3IFVpbnQ4QXJyYXkoaGVhZGVycy5idWZmZXIsIGhlYWRlcnMuYnl0ZU9mZnNldCArIHBvc2l0aW9uLCA4KSkudmFsdWVPZigpKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHBvc2l0aW9uICs9IDg7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgSEVBREVSX1ZBTFVFX1RZUEUudXVpZDpcbiAgICAgICAgICBjb25zdCB1dWlkQnl0ZXMgPSBuZXcgVWludDhBcnJheShoZWFkZXJzLmJ1ZmZlciwgaGVhZGVycy5ieXRlT2Zmc2V0ICsgcG9zaXRpb24sIDE2KTtcbiAgICAgICAgICBwb3NpdGlvbiArPSAxNjtcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBVVUlEX1RBRyxcbiAgICAgICAgICAgIHZhbHVlOiBgJHt0b0hleCh1dWlkQnl0ZXMuc3ViYXJyYXkoMCwgNCkpfS0ke3RvSGV4KHV1aWRCeXRlcy5zdWJhcnJheSg0LCA2KSl9LSR7dG9IZXgoXG4gICAgICAgICAgICAgIHV1aWRCeXRlcy5zdWJhcnJheSg2LCA4KVxuICAgICAgICAgICAgKX0tJHt0b0hleCh1dWlkQnl0ZXMuc3ViYXJyYXkoOCwgMTApKX0tJHt0b0hleCh1dWlkQnl0ZXMuc3ViYXJyYXkoMTApKX1gLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgaGVhZGVyIHR5cGUgdGFnYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dDtcbiAgfVxufVxuXG5jb25zdCBlbnVtIEhFQURFUl9WQUxVRV9UWVBFIHtcbiAgYm9vbFRydWUgPSAwLFxuICBib29sRmFsc2UsXG4gIGJ5dGUsXG4gIHNob3J0LFxuICBpbnRlZ2VyLFxuICBsb25nLFxuICBieXRlQXJyYXksXG4gIHN0cmluZyxcbiAgdGltZXN0YW1wLFxuICB1dWlkLFxufVxuXG5jb25zdCBCT09MRUFOX1RBRyA9IFwiYm9vbGVhblwiO1xuY29uc3QgQllURV9UQUcgPSBcImJ5dGVcIjtcbmNvbnN0IFNIT1JUX1RBRyA9IFwic2hvcnRcIjtcbmNvbnN0IElOVF9UQUcgPSBcImludGVnZXJcIjtcbmNvbnN0IExPTkdfVEFHID0gXCJsb25nXCI7XG5jb25zdCBCSU5BUllfVEFHID0gXCJiaW5hcnlcIjtcbmNvbnN0IFNUUklOR19UQUcgPSBcInN0cmluZ1wiO1xuY29uc3QgVElNRVNUQU1QX1RBRyA9IFwidGltZXN0YW1wXCI7XG5jb25zdCBVVUlEX1RBRyA9IFwidXVpZFwiO1xuXG5jb25zdCBVVUlEX1BBVFRFUk4gPSAvXlthLWYwLTldezh9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezEyfSQvO1xuIl19","import { Crc32 } from \"@aws-crypto/crc32\";\nimport { HeaderMarshaller } from \"./HeaderMarshaller\";\nimport { splitMessage } from \"./splitMessage\";\n/**\n * A marshaller that can convert binary-packed event stream messages into\n * JavaScript objects and back again into their binary format.\n */\nvar EventStreamMarshaller = /** @class */ (function () {\n function EventStreamMarshaller(toUtf8, fromUtf8) {\n this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n }\n /**\n * Convert a structured JavaScript object with tagged headers into a binary\n * event stream message.\n */\n EventStreamMarshaller.prototype.marshall = function (_a) {\n var rawHeaders = _a.headers, body = _a.body;\n var headers = this.headerMarshaller.format(rawHeaders);\n var length = headers.byteLength + body.byteLength + 16;\n var out = new Uint8Array(length);\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n var checksum = new Crc32();\n // Format message\n view.setUint32(0, length, false);\n view.setUint32(4, headers.byteLength, false);\n view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);\n out.set(headers, 12);\n out.set(body, headers.byteLength + 12);\n // Write trailing message checksum\n view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n return out;\n };\n /**\n * Convert a binary event stream message into a JavaScript object with an\n * opaque, binary body and tagged, parsed headers.\n */\n EventStreamMarshaller.prototype.unmarshall = function (message) {\n var _a = splitMessage(message), headers = _a.headers, body = _a.body;\n return { headers: this.headerMarshaller.parse(headers), body: body };\n };\n /**\n * Convert a structured JavaScript object with tagged headers into a binary\n * event stream message header.\n */\n EventStreamMarshaller.prototype.formatHeaders = function (rawHeaders) {\n return this.headerMarshaller.format(rawHeaders);\n };\n return EventStreamMarshaller;\n}());\nexport { EventStreamMarshaller };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRTdHJlYW1NYXJzaGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V2ZW50U3RyZWFtTWFyc2hhbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDOzs7R0FHRztBQUNIO0lBR0UsK0JBQVksTUFBZSxFQUFFLFFBQWlCO1FBQzVDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsd0NBQVEsR0FBUixVQUFTLEVBQXNDO1lBQTNCLFVBQVUsYUFBQSxFQUFFLElBQUksVUFBQTtRQUNsQyxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFekQsSUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RSxJQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBRTdCLGlCQUFpQjtRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUV2QyxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFekYsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsMENBQVUsR0FBVixVQUFXLE9BQXdCO1FBQzNCLElBQUEsS0FBb0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUF2QyxPQUFPLGFBQUEsRUFBRSxJQUFJLFVBQTBCLENBQUM7UUFFaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksTUFBQSxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7T0FHRztJQUNILDZDQUFhLEdBQWIsVUFBYyxVQUEwQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNILDRCQUFDO0FBQUQsQ0FBQyxBQWpERCxJQWlEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyYzMyIH0gZnJvbSBcIkBhd3MtY3J5cHRvL2NyYzMyXCI7XG5pbXBvcnQgeyBNZXNzYWdlLCBNZXNzYWdlSGVhZGVycyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgRGVjb2RlciwgRW5jb2RlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBIZWFkZXJNYXJzaGFsbGVyIH0gZnJvbSBcIi4vSGVhZGVyTWFyc2hhbGxlclwiO1xuaW1wb3J0IHsgc3BsaXRNZXNzYWdlIH0gZnJvbSBcIi4vc3BsaXRNZXNzYWdlXCI7XG5cbi8qKlxuICogQSBtYXJzaGFsbGVyIHRoYXQgY2FuIGNvbnZlcnQgYmluYXJ5LXBhY2tlZCBldmVudCBzdHJlYW0gbWVzc2FnZXMgaW50b1xuICogSmF2YVNjcmlwdCBvYmplY3RzIGFuZCBiYWNrIGFnYWluIGludG8gdGhlaXIgYmluYXJ5IGZvcm1hdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50U3RyZWFtTWFyc2hhbGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGVhZGVyTWFyc2hhbGxlcjogSGVhZGVyTWFyc2hhbGxlcjtcblxuICBjb25zdHJ1Y3Rvcih0b1V0Zjg6IEVuY29kZXIsIGZyb21VdGY4OiBEZWNvZGVyKSB7XG4gICAgdGhpcy5oZWFkZXJNYXJzaGFsbGVyID0gbmV3IEhlYWRlck1hcnNoYWxsZXIodG9VdGY4LCBmcm9tVXRmOCk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBhIHN0cnVjdHVyZWQgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCB0YWdnZWQgaGVhZGVycyBpbnRvIGEgYmluYXJ5XG4gICAqIGV2ZW50IHN0cmVhbSBtZXNzYWdlLlxuICAgKi9cbiAgbWFyc2hhbGwoeyBoZWFkZXJzOiByYXdIZWFkZXJzLCBib2R5IH06IE1lc3NhZ2UpOiBVaW50OEFycmF5IHtcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5oZWFkZXJNYXJzaGFsbGVyLmZvcm1hdChyYXdIZWFkZXJzKTtcbiAgICBjb25zdCBsZW5ndGggPSBoZWFkZXJzLmJ5dGVMZW5ndGggKyBib2R5LmJ5dGVMZW5ndGggKyAxNjtcblxuICAgIGNvbnN0IG91dCA9IG5ldyBVaW50OEFycmF5KGxlbmd0aCk7XG4gICAgY29uc3QgdmlldyA9IG5ldyBEYXRhVmlldyhvdXQuYnVmZmVyLCBvdXQuYnl0ZU9mZnNldCwgb3V0LmJ5dGVMZW5ndGgpO1xuICAgIGNvbnN0IGNoZWNrc3VtID0gbmV3IENyYzMyKCk7XG5cbiAgICAvLyBGb3JtYXQgbWVzc2FnZVxuICAgIHZpZXcuc2V0VWludDMyKDAsIGxlbmd0aCwgZmFsc2UpO1xuICAgIHZpZXcuc2V0VWludDMyKDQsIGhlYWRlcnMuYnl0ZUxlbmd0aCwgZmFsc2UpO1xuICAgIHZpZXcuc2V0VWludDMyKDgsIGNoZWNrc3VtLnVwZGF0ZShvdXQuc3ViYXJyYXkoMCwgOCkpLmRpZ2VzdCgpLCBmYWxzZSk7XG4gICAgb3V0LnNldChoZWFkZXJzLCAxMik7XG4gICAgb3V0LnNldChib2R5LCBoZWFkZXJzLmJ5dGVMZW5ndGggKyAxMik7XG5cbiAgICAvLyBXcml0ZSB0cmFpbGluZyBtZXNzYWdlIGNoZWNrc3VtXG4gICAgdmlldy5zZXRVaW50MzIobGVuZ3RoIC0gNCwgY2hlY2tzdW0udXBkYXRlKG91dC5zdWJhcnJheSg4LCBsZW5ndGggLSA0KSkuZGlnZXN0KCksIGZhbHNlKTtcblxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBhIGJpbmFyeSBldmVudCBzdHJlYW0gbWVzc2FnZSBpbnRvIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCBhblxuICAgKiBvcGFxdWUsIGJpbmFyeSBib2R5IGFuZCB0YWdnZWQsIHBhcnNlZCBoZWFkZXJzLlxuICAgKi9cbiAgdW5tYXJzaGFsbChtZXNzYWdlOiBBcnJheUJ1ZmZlclZpZXcpOiBNZXNzYWdlIHtcbiAgICBjb25zdCB7IGhlYWRlcnMsIGJvZHkgfSA9IHNwbGl0TWVzc2FnZShtZXNzYWdlKTtcblxuICAgIHJldHVybiB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyTWFyc2hhbGxlci5wYXJzZShoZWFkZXJzKSwgYm9keSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYSBzdHJ1Y3R1cmVkIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggdGFnZ2VkIGhlYWRlcnMgaW50byBhIGJpbmFyeVxuICAgKiBldmVudCBzdHJlYW0gbWVzc2FnZSBoZWFkZXIuXG4gICAqL1xuICBmb3JtYXRIZWFkZXJzKHJhd0hlYWRlcnM6IE1lc3NhZ2VIZWFkZXJzKTogVWludDhBcnJheSB7XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyTWFyc2hhbGxlci5mb3JtYXQocmF3SGVhZGVycyk7XG4gIH1cbn1cbiJdfQ==","import { Crc32 } from \"@aws-crypto/crc32\";\n// All prelude components are unsigned, 32-bit integers\nvar PRELUDE_MEMBER_LENGTH = 4;\n// The prelude consists of two components\nvar PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\n// Checksums are always CRC32 hashes.\nvar CHECKSUM_LENGTH = 4;\n// Messages must include a full prelude, a prelude checksum, and a message checksum\nvar MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\n/**\n * @internal\n */\nexport function splitMessage(_a) {\n var byteLength = _a.byteLength, byteOffset = _a.byteOffset, buffer = _a.buffer;\n if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n }\n var view = new DataView(buffer, byteOffset, byteLength);\n var messageLength = view.getUint32(0, false);\n if (byteLength !== messageLength) {\n throw new Error(\"Reported message length does not match received message length\");\n }\n var headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n var expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n var expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n var checksummer = new Crc32().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));\n if (expectedPreludeChecksum !== checksummer.digest()) {\n throw new Error(\"The prelude checksum specified in the message (\" + expectedPreludeChecksum + \") does not match the calculated CRC32 checksum (\" + checksummer.digest() + \")\");\n }\n checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));\n if (expectedMessageChecksum !== checksummer.digest()) {\n throw new Error(\"The message checksum (\" + checksummer.digest() + \") did not match the expected value of \" + expectedMessageChecksum);\n }\n return {\n headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),\n body: new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength, messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)),\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXRNZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NwbGl0TWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUMsdURBQXVEO0FBQ3ZELElBQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLHlDQUF5QztBQUN6QyxJQUFNLGNBQWMsR0FBRyxxQkFBcUIsR0FBRyxDQUFDLENBQUM7QUFDakQscUNBQXFDO0FBQ3JDLElBQU0sZUFBZSxHQUFHLENBQUMsQ0FBQztBQUMxQixtRkFBbUY7QUFDbkYsSUFBTSxzQkFBc0IsR0FBRyxjQUFjLEdBQUcsZUFBZSxHQUFHLENBQUMsQ0FBQztBQVVwRTs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsRUFBbUQ7UUFBakQsVUFBVSxnQkFBQSxFQUFFLFVBQVUsZ0JBQUEsRUFBRSxNQUFNLFlBQUE7SUFDM0QsSUFBSSxVQUFVLEdBQUcsc0JBQXNCLEVBQUU7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO0tBQzVGO0lBRUQsSUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUUxRCxJQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUUvQyxJQUFJLFVBQVUsS0FBSyxhQUFhLEVBQUU7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0tBQ25GO0lBRUQsSUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRSxJQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLElBQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRXBGLElBQU0sV0FBVyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUMzRixJQUFJLHVCQUF1QixLQUFLLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNwRCxNQUFNLElBQUksS0FBSyxDQUNiLG9EQUFrRCx1QkFBdUIsd0RBQW1ELFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBRyxDQUNwSixDQUFDO0tBQ0g7SUFFRCxXQUFXLENBQUMsTUFBTSxDQUNoQixJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxHQUFHLGNBQWMsRUFBRSxVQUFVLEdBQUcsQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FDckcsQ0FBQztJQUNGLElBQUksdUJBQXVCLEtBQUssV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ3BELE1BQU0sSUFBSSxLQUFLLENBQ2IsMkJBQXlCLFdBQVcsQ0FBQyxNQUFNLEVBQUUsOENBQXlDLHVCQUF5QixDQUNoSCxDQUFDO0tBQ0g7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLEdBQUcsY0FBYyxHQUFHLGVBQWUsRUFBRSxZQUFZLENBQUM7UUFDMUYsSUFBSSxFQUFFLElBQUksVUFBVSxDQUNsQixNQUFNLEVBQ04sVUFBVSxHQUFHLGNBQWMsR0FBRyxlQUFlLEdBQUcsWUFBWSxFQUM1RCxhQUFhLEdBQUcsWUFBWSxHQUFHLENBQUMsY0FBYyxHQUFHLGVBQWUsR0FBRyxlQUFlLENBQUMsQ0FDcEY7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyYzMyIH0gZnJvbSBcIkBhd3MtY3J5cHRvL2NyYzMyXCI7XG5cbi8vIEFsbCBwcmVsdWRlIGNvbXBvbmVudHMgYXJlIHVuc2lnbmVkLCAzMi1iaXQgaW50ZWdlcnNcbmNvbnN0IFBSRUxVREVfTUVNQkVSX0xFTkdUSCA9IDQ7XG4vLyBUaGUgcHJlbHVkZSBjb25zaXN0cyBvZiB0d28gY29tcG9uZW50c1xuY29uc3QgUFJFTFVERV9MRU5HVEggPSBQUkVMVURFX01FTUJFUl9MRU5HVEggKiAyO1xuLy8gQ2hlY2tzdW1zIGFyZSBhbHdheXMgQ1JDMzIgaGFzaGVzLlxuY29uc3QgQ0hFQ0tTVU1fTEVOR1RIID0gNDtcbi8vIE1lc3NhZ2VzIG11c3QgaW5jbHVkZSBhIGZ1bGwgcHJlbHVkZSwgYSBwcmVsdWRlIGNoZWNrc3VtLCBhbmQgYSBtZXNzYWdlIGNoZWNrc3VtXG5jb25zdCBNSU5JTVVNX01FU1NBR0VfTEVOR1RIID0gUFJFTFVERV9MRU5HVEggKyBDSEVDS1NVTV9MRU5HVEggKiAyO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VQYXJ0cyB7XG4gIGhlYWRlcnM6IERhdGFWaWV3O1xuICBib2R5OiBVaW50OEFycmF5O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRNZXNzYWdlKHsgYnl0ZUxlbmd0aCwgYnl0ZU9mZnNldCwgYnVmZmVyIH06IEFycmF5QnVmZmVyVmlldyk6IE1lc3NhZ2VQYXJ0cyB7XG4gIGlmIChieXRlTGVuZ3RoIDwgTUlOSU1VTV9NRVNTQUdFX0xFTkdUSCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlByb3ZpZGVkIG1lc3NhZ2UgdG9vIHNob3J0IHRvIGFjY29tbW9kYXRlIGV2ZW50IHN0cmVhbSBtZXNzYWdlIG92ZXJoZWFkXCIpO1xuICB9XG5cbiAgY29uc3QgdmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIsIGJ5dGVPZmZzZXQsIGJ5dGVMZW5ndGgpO1xuXG4gIGNvbnN0IG1lc3NhZ2VMZW5ndGggPSB2aWV3LmdldFVpbnQzMigwLCBmYWxzZSk7XG5cbiAgaWYgKGJ5dGVMZW5ndGggIT09IG1lc3NhZ2VMZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZXBvcnRlZCBtZXNzYWdlIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCByZWNlaXZlZCBtZXNzYWdlIGxlbmd0aFwiKTtcbiAgfVxuXG4gIGNvbnN0IGhlYWRlckxlbmd0aCA9IHZpZXcuZ2V0VWludDMyKFBSRUxVREVfTUVNQkVSX0xFTkdUSCwgZmFsc2UpO1xuICBjb25zdCBleHBlY3RlZFByZWx1ZGVDaGVja3N1bSA9IHZpZXcuZ2V0VWludDMyKFBSRUxVREVfTEVOR1RILCBmYWxzZSk7XG4gIGNvbnN0IGV4cGVjdGVkTWVzc2FnZUNoZWNrc3VtID0gdmlldy5nZXRVaW50MzIoYnl0ZUxlbmd0aCAtIENIRUNLU1VNX0xFTkdUSCwgZmFsc2UpO1xuXG4gIGNvbnN0IGNoZWNrc3VtbWVyID0gbmV3IENyYzMyKCkudXBkYXRlKG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgYnl0ZU9mZnNldCwgUFJFTFVERV9MRU5HVEgpKTtcbiAgaWYgKGV4cGVjdGVkUHJlbHVkZUNoZWNrc3VtICE9PSBjaGVja3N1bW1lci5kaWdlc3QoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUaGUgcHJlbHVkZSBjaGVja3N1bSBzcGVjaWZpZWQgaW4gdGhlIG1lc3NhZ2UgKCR7ZXhwZWN0ZWRQcmVsdWRlQ2hlY2tzdW19KSBkb2VzIG5vdCBtYXRjaCB0aGUgY2FsY3VsYXRlZCBDUkMzMiBjaGVja3N1bSAoJHtjaGVja3N1bW1lci5kaWdlc3QoKX0pYFxuICAgICk7XG4gIH1cblxuICBjaGVja3N1bW1lci51cGRhdGUoXG4gICAgbmV3IFVpbnQ4QXJyYXkoYnVmZmVyLCBieXRlT2Zmc2V0ICsgUFJFTFVERV9MRU5HVEgsIGJ5dGVMZW5ndGggLSAoUFJFTFVERV9MRU5HVEggKyBDSEVDS1NVTV9MRU5HVEgpKVxuICApO1xuICBpZiAoZXhwZWN0ZWRNZXNzYWdlQ2hlY2tzdW0gIT09IGNoZWNrc3VtbWVyLmRpZ2VzdCgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRoZSBtZXNzYWdlIGNoZWNrc3VtICgke2NoZWNrc3VtbWVyLmRpZ2VzdCgpfSkgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgdmFsdWUgb2YgJHtleHBlY3RlZE1lc3NhZ2VDaGVja3N1bX1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaGVhZGVyczogbmV3IERhdGFWaWV3KGJ1ZmZlciwgYnl0ZU9mZnNldCArIFBSRUxVREVfTEVOR1RIICsgQ0hFQ0tTVU1fTEVOR1RILCBoZWFkZXJMZW5ndGgpLFxuICAgIGJvZHk6IG5ldyBVaW50OEFycmF5KFxuICAgICAgYnVmZmVyLFxuICAgICAgYnl0ZU9mZnNldCArIFBSRUxVREVfTEVOR1RIICsgQ0hFQ0tTVU1fTEVOR1RIICsgaGVhZGVyTGVuZ3RoLFxuICAgICAgbWVzc2FnZUxlbmd0aCAtIGhlYWRlckxlbmd0aCAtIChQUkVMVURFX0xFTkdUSCArIENIRUNLU1VNX0xFTkdUSCArIENIRUNLU1VNX0xFTkdUSClcbiAgICApLFxuICB9O1xufVxuIl19","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __asyncGenerator, __asyncValues, __await, __generator } from \"tslib\";\nimport { EventStreamMarshaller as EventMarshaller } from \"@aws-sdk/eventstream-marshaller\";\nimport { getChunkedStream } from \"./getChunkedStream\";\nimport { getUnmarshalledStream } from \"./getUnmarshalledStream\";\nvar EventStreamMarshaller = /** @class */ (function () {\n function EventStreamMarshaller(_a) {\n var utf8Encoder = _a.utf8Encoder, utf8Decoder = _a.utf8Decoder;\n this.eventMarshaller = new EventMarshaller(utf8Encoder, utf8Decoder);\n this.utfEncoder = utf8Encoder;\n }\n EventStreamMarshaller.prototype.deserialize = function (body, deserializer) {\n var chunkedStream = getChunkedStream(body);\n var unmarshalledStream = getUnmarshalledStream(chunkedStream, {\n eventMarshaller: this.eventMarshaller,\n deserializer: deserializer,\n toUtf8: this.utfEncoder,\n });\n return unmarshalledStream;\n };\n EventStreamMarshaller.prototype.serialize = function (input, serializer) {\n var _a;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n var serializedIterator = function () {\n return __asyncGenerator(this, arguments, function () {\n var input_1, input_1_1, chunk, payloadBuf, e_1_1;\n var e_1, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 7, 8, 13]);\n input_1 = __asyncValues(input);\n _b.label = 1;\n case 1: return [4 /*yield*/, __await(input_1.next())];\n case 2:\n if (!(input_1_1 = _b.sent(), !input_1_1.done)) return [3 /*break*/, 6];\n chunk = input_1_1.value;\n payloadBuf = self.eventMarshaller.marshall(serializer(chunk));\n return [4 /*yield*/, __await(payloadBuf)];\n case 3: return [4 /*yield*/, _b.sent()];\n case 4:\n _b.sent();\n _b.label = 5;\n case 5: return [3 /*break*/, 1];\n case 6: return [3 /*break*/, 13];\n case 7:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 13];\n case 8:\n _b.trys.push([8, , 11, 12]);\n if (!(input_1_1 && !input_1_1.done && (_a = input_1.return))) return [3 /*break*/, 10];\n return [4 /*yield*/, __await(_a.call(input_1))];\n case 9:\n _b.sent();\n _b.label = 10;\n case 10: return [3 /*break*/, 12];\n case 11:\n if (e_1) throw e_1.error;\n return [7 /*endfinally*/];\n case 12: return [7 /*endfinally*/];\n case 13: return [4 /*yield*/, __await(new Uint8Array(0))];\n case 14: \n // Ending frame\n return [4 /*yield*/, _b.sent()];\n case 15:\n // Ending frame\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return _a = {},\n _a[Symbol.asyncIterator] = serializedIterator,\n _a;\n };\n return EventStreamMarshaller;\n}());\nexport { EventStreamMarshaller };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRTdHJlYW1NYXJzaGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V2ZW50U3RyZWFtTWFyc2hhbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHFCQUFxQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBU2hFO0lBR0UsK0JBQVksRUFBMEQ7WUFBeEQsV0FBVyxpQkFBQSxFQUFFLFdBQVcsaUJBQUE7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7SUFDaEMsQ0FBQztJQUVELDJDQUFXLEdBQVgsVUFDRSxJQUErQixFQUMvQixZQUFpRTtRQUVqRSxJQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLGFBQWEsRUFBRTtZQUM5RCxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsWUFBWSxjQUFBO1lBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQ3hCLENBQUMsQ0FBQztRQUNILE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVELHlDQUFTLEdBQVQsVUFBYSxLQUF1QixFQUFFLFVBQWlDOztRQUNyRSw0REFBNEQ7UUFDNUQsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQU0sa0JBQWtCLEdBQUc7Ozs7Ozs7OzRCQUNDLFVBQUEsY0FBQSxLQUFLLENBQUE7Ozs7OzRCQUFkLEtBQUssa0JBQUEsQ0FBQTs0QkFDZCxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7eURBQzlELFVBQVU7Z0NBQWhCLGdDQUFnQjs7NEJBQWhCLFNBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhEQUdiLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQzs7d0JBRHZCLGVBQWU7d0JBQ2YsZ0NBQXVCOzs0QkFEdkIsZUFBZTs0QkFDZixTQUF1QixDQUFDOzs7OztTQUN6QixDQUFDO1FBQ0Y7WUFDRSxHQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUcsa0JBQWtCO2VBQzFDO0lBQ0osQ0FBQztJQUNILDRCQUFDO0FBQUQsQ0FBQyxBQXBDRCxJQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50U3RyZWFtTWFyc2hhbGxlciBhcyBFdmVudE1hcnNoYWxsZXIgfSBmcm9tIFwiQGF3cy1zZGsvZXZlbnRzdHJlYW0tbWFyc2hhbGxlclwiO1xuaW1wb3J0IHsgRGVjb2RlciwgRW5jb2RlciwgRXZlbnRTdHJlYW1NYXJzaGFsbGVyIGFzIElFdmVudFN0cmVhbU1hcnNoYWxsZXIsIE1lc3NhZ2UgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgZ2V0Q2h1bmtlZFN0cmVhbSB9IGZyb20gXCIuL2dldENodW5rZWRTdHJlYW1cIjtcbmltcG9ydCB7IGdldFVubWFyc2hhbGxlZFN0cmVhbSB9IGZyb20gXCIuL2dldFVubWFyc2hhbGxlZFN0cmVhbVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U3RyZWFtTWFyc2hhbGxlciBleHRlbmRzIElFdmVudFN0cmVhbU1hcnNoYWxsZXIge31cblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFN0cmVhbU1hcnNoYWxsZXJPcHRpb25zIHtcbiAgdXRmOEVuY29kZXI6IEVuY29kZXI7XG4gIHV0ZjhEZWNvZGVyOiBEZWNvZGVyO1xufVxuXG5leHBvcnQgY2xhc3MgRXZlbnRTdHJlYW1NYXJzaGFsbGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBldmVudE1hcnNoYWxsZXI6IEV2ZW50TWFyc2hhbGxlcjtcbiAgcHJpdmF0ZSByZWFkb25seSB1dGZFbmNvZGVyOiBFbmNvZGVyO1xuICBjb25zdHJ1Y3Rvcih7IHV0ZjhFbmNvZGVyLCB1dGY4RGVjb2RlciB9OiBFdmVudFN0cmVhbU1hcnNoYWxsZXJPcHRpb25zKSB7XG4gICAgdGhpcy5ldmVudE1hcnNoYWxsZXIgPSBuZXcgRXZlbnRNYXJzaGFsbGVyKHV0ZjhFbmNvZGVyLCB1dGY4RGVjb2Rlcik7XG4gICAgdGhpcy51dGZFbmNvZGVyID0gdXRmOEVuY29kZXI7XG4gIH1cblxuICBkZXNlcmlhbGl6ZTxUPihcbiAgICBib2R5OiBBc3luY0l0ZXJhYmxlPFVpbnQ4QXJyYXk+LFxuICAgIGRlc2VyaWFsaXplcjogKGlucHV0OiB7IFtldmVudDogc3RyaW5nXTogTWVzc2FnZSB9KSA9PiBQcm9taXNlPFQ+XG4gICk6IEFzeW5jSXRlcmFibGU8VD4ge1xuICAgIGNvbnN0IGNodW5rZWRTdHJlYW0gPSBnZXRDaHVua2VkU3RyZWFtKGJvZHkpO1xuICAgIGNvbnN0IHVubWFyc2hhbGxlZFN0cmVhbSA9IGdldFVubWFyc2hhbGxlZFN0cmVhbShjaHVua2VkU3RyZWFtLCB7XG4gICAgICBldmVudE1hcnNoYWxsZXI6IHRoaXMuZXZlbnRNYXJzaGFsbGVyLFxuICAgICAgZGVzZXJpYWxpemVyLFxuICAgICAgdG9VdGY4OiB0aGlzLnV0ZkVuY29kZXIsXG4gICAgfSk7XG4gICAgcmV0dXJuIHVubWFyc2hhbGxlZFN0cmVhbTtcbiAgfVxuXG4gIHNlcmlhbGl6ZTxUPihpbnB1dDogQXN5bmNJdGVyYWJsZTxUPiwgc2VyaWFsaXplcjogKGV2ZW50OiBUKSA9PiBNZXNzYWdlKTogQXN5bmNJdGVyYWJsZTxVaW50OEFycmF5PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29uc3Qgc2VyaWFsaXplZEl0ZXJhdG9yID0gYXN5bmMgZnVuY3Rpb24qICgpIHtcbiAgICAgIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2YgaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcGF5bG9hZEJ1ZiA9IHNlbGYuZXZlbnRNYXJzaGFsbGVyLm1hcnNoYWxsKHNlcmlhbGl6ZXIoY2h1bmspKTtcbiAgICAgICAgeWllbGQgcGF5bG9hZEJ1ZjtcbiAgICAgIH1cbiAgICAgIC8vIEVuZGluZyBmcmFtZVxuICAgICAgeWllbGQgbmV3IFVpbnQ4QXJyYXkoMCk7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTogc2VyaWFsaXplZEl0ZXJhdG9yLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==","import { __asyncGenerator, __asyncValues, __await, __generator } from \"tslib\";\nexport function getUnmarshalledStream(source, options) {\n var _a;\n return _a = {},\n _a[Symbol.asyncIterator] = function () {\n return __asyncGenerator(this, arguments, function () {\n var source_1, source_1_1, chunk, message, messageType, unmodeledError, code, exception, deserializedException, error, event, deserialized, e_1_1;\n var _a, _b;\n var e_1, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _d.trys.push([0, 12, 13, 18]);\n source_1 = __asyncValues(source);\n _d.label = 1;\n case 1: return [4 /*yield*/, __await(source_1.next())];\n case 2:\n if (!(source_1_1 = _d.sent(), !source_1_1.done)) return [3 /*break*/, 11];\n chunk = source_1_1.value;\n message = options.eventMarshaller.unmarshall(chunk);\n messageType = message.headers[\":message-type\"].value;\n if (!(messageType === \"error\")) return [3 /*break*/, 3];\n unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n unmodeledError.name = message.headers[\":error-code\"].value;\n throw unmodeledError;\n case 3:\n if (!(messageType === \"exception\")) return [3 /*break*/, 5];\n code = message.headers[\":exception-type\"].value;\n exception = (_a = {}, _a[code] = message, _a);\n return [4 /*yield*/, __await(options.deserializer(exception))];\n case 4:\n deserializedException = _d.sent();\n if (deserializedException.$unknown) {\n error = new Error(options.toUtf8(message.body));\n error.name = code;\n throw error;\n }\n throw deserializedException[code];\n case 5:\n if (!(messageType === \"event\")) return [3 /*break*/, 9];\n event = (_b = {},\n _b[message.headers[\":event-type\"].value] = message,\n _b);\n return [4 /*yield*/, __await(options.deserializer(event))];\n case 6:\n deserialized = _d.sent();\n if (deserialized.$unknown)\n return [3 /*break*/, 10];\n return [4 /*yield*/, __await(deserialized)];\n case 7: return [4 /*yield*/, _d.sent()];\n case 8:\n _d.sent();\n return [3 /*break*/, 10];\n case 9: throw Error(\"Unrecognizable event type: \" + message.headers[\":event-type\"].value);\n case 10: return [3 /*break*/, 1];\n case 11: return [3 /*break*/, 18];\n case 12:\n e_1_1 = _d.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 18];\n case 13:\n _d.trys.push([13, , 16, 17]);\n if (!(source_1_1 && !source_1_1.done && (_c = source_1.return))) return [3 /*break*/, 15];\n return [4 /*yield*/, __await(_c.call(source_1))];\n case 14:\n _d.sent();\n _d.label = 15;\n case 15: return [3 /*break*/, 17];\n case 16:\n if (e_1) throw e_1.error;\n return [7 /*endfinally*/];\n case 17: return [7 /*endfinally*/];\n case 18: return [2 /*return*/];\n }\n });\n });\n },\n _a;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0VW5tYXJzaGFsbGVkU3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dldFVubWFyc2hhbGxlZFN0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBU0EsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxNQUFpQyxFQUNqQyxPQUFxQzs7SUFFckM7UUFDRSxHQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUc7Ozs7Ozs7Ozs0QkFDSSxXQUFBLGNBQUEsTUFBTSxDQUFBOzs7Ozs0QkFBZixLQUFLLG1CQUFBLENBQUE7NEJBQ2QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUMzQyxXQUFXLEdBQUssT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBckMsQ0FBc0M7aUNBQzVELENBQUEsV0FBVyxLQUFLLE9BQU8sQ0FBQSxFQUF2Qix3QkFBdUI7NEJBRW5CLGNBQWMsR0FBRyxJQUFJLEtBQUssQ0FBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBZ0IsSUFBSSxjQUFjLENBQUMsQ0FBQzs0QkFDeEcsY0FBYyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQWUsQ0FBQzs0QkFDckUsTUFBTSxjQUFjLENBQUM7O2lDQUNaLENBQUEsV0FBVyxLQUFLLFdBQVcsQ0FBQSxFQUEzQix3QkFBMkI7NEJBRTlCLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsS0FBZSxDQUFDOzRCQUMxRCxTQUFTLGFBQUssR0FBQyxJQUFJLElBQUcsT0FBTyxLQUFFLENBQUM7NEJBRVIsNkJBQU0sT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBQTs7NEJBQTdELHFCQUFxQixHQUFHLFNBQXFDOzRCQUNuRSxJQUFJLHFCQUFxQixDQUFDLFFBQVEsRUFBRTtnQ0FFNUIsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0NBQ3RELEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dDQUNsQixNQUFNLEtBQUssQ0FBQzs2QkFDYjs0QkFDRCxNQUFNLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDOztpQ0FDekIsQ0FBQSxXQUFXLEtBQUssT0FBTyxDQUFBLEVBQXZCLHdCQUF1Qjs0QkFDMUIsS0FBSztnQ0FDVCxHQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBZSxJQUFHLE9BQU87bUNBQzFELENBQUM7NEJBQ21CLDZCQUFNLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUE7OzRCQUFoRCxZQUFZLEdBQUcsU0FBaUM7NEJBQ3RELElBQUksWUFBWSxDQUFDLFFBQVE7Z0NBQUUseUJBQVM7eURBQzlCLFlBQVk7Z0NBQWxCLGdDQUFrQjs7NEJBQWxCLFNBQWtCLENBQUM7O2dDQUVuQixNQUFNLEtBQUssQ0FBQyxnQ0FBOEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFPLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FHdkY7V0FDRDtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudFN0cmVhbU1hcnNoYWxsZXIgYXMgRXZlbnRNYXJzaGFsbGVyIH0gZnJvbSBcIkBhd3Mtc2RrL2V2ZW50c3RyZWFtLW1hcnNoYWxsZXJcIjtcbmltcG9ydCB7IEVuY29kZXIsIE1lc3NhZ2UgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IHR5cGUgVW5tYXJzaGFsbGVkU3RyZWFtT3B0aW9uczxUPiA9IHtcbiAgZXZlbnRNYXJzaGFsbGVyOiBFdmVudE1hcnNoYWxsZXI7XG4gIGRlc2VyaWFsaXplcjogKGlucHV0OiB7IFtuYW1lOiBzdHJpbmddOiBNZXNzYWdlIH0pID0+IFByb21pc2U8VD47XG4gIHRvVXRmODogRW5jb2Rlcjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVbm1hcnNoYWxsZWRTdHJlYW08VCBleHRlbmRzIHsgW2tleTogc3RyaW5nXTogYW55IH0+KFxuICBzb3VyY2U6IEFzeW5jSXRlcmFibGU8VWludDhBcnJheT4sXG4gIG9wdGlvbnM6IFVubWFyc2hhbGxlZFN0cmVhbU9wdGlvbnM8VD5cbik6IEFzeW5jSXRlcmFibGU8VD4ge1xuICByZXR1cm4ge1xuICAgIFtTeW1ib2wuYXN5bmNJdGVyYXRvcl06IGFzeW5jIGZ1bmN0aW9uKiAoKSB7XG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIHNvdXJjZSkge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gb3B0aW9ucy5ldmVudE1hcnNoYWxsZXIudW5tYXJzaGFsbChjaHVuayk7XG4gICAgICAgIGNvbnN0IHsgdmFsdWU6IG1lc3NhZ2VUeXBlIH0gPSBtZXNzYWdlLmhlYWRlcnNbXCI6bWVzc2FnZS10eXBlXCJdO1xuICAgICAgICBpZiAobWVzc2FnZVR5cGUgPT09IFwiZXJyb3JcIikge1xuICAgICAgICAgIC8vIFVubW9kZWxlZCBleGNlcHRpb24gaW4gZXZlbnRcbiAgICAgICAgICBjb25zdCB1bm1vZGVsZWRFcnJvciA9IG5ldyBFcnJvcigobWVzc2FnZS5oZWFkZXJzW1wiOmVycm9yLW1lc3NhZ2VcIl0udmFsdWUgYXMgc3RyaW5nKSB8fCBcIlVua25vd25FcnJvclwiKTtcbiAgICAgICAgICB1bm1vZGVsZWRFcnJvci5uYW1lID0gbWVzc2FnZS5oZWFkZXJzW1wiOmVycm9yLWNvZGVcIl0udmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIHRocm93IHVubW9kZWxlZEVycm9yO1xuICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2VUeXBlID09PSBcImV4Y2VwdGlvblwiKSB7XG4gICAgICAgICAgLy8gRm9yIG1vZGVsZWQgZXhjZXB0aW9uLCBwdXNoIGl0IHRvIGRlc2VyaWFsaXplciBhbmQgdGhyb3cgYWZ0ZXIgZGVzZXJpYWxpemluZ1xuICAgICAgICAgIGNvbnN0IGNvZGUgPSBtZXNzYWdlLmhlYWRlcnNbXCI6ZXhjZXB0aW9uLXR5cGVcIl0udmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IHsgW2NvZGVdOiBtZXNzYWdlIH07XG4gICAgICAgICAgLy8gR2V0IHBhcnNlZCBleGNlcHRpb24gZXZlbnQgaW4ga2V5KGVycm9yIGNvZGUpIHZhbHVlKHN0cnVjdHVyZWQgZXJyb3IpIHBhaXIuXG4gICAgICAgICAgY29uc3QgZGVzZXJpYWxpemVkRXhjZXB0aW9uID0gYXdhaXQgb3B0aW9ucy5kZXNlcmlhbGl6ZXIoZXhjZXB0aW9uKTtcbiAgICAgICAgICBpZiAoZGVzZXJpYWxpemVkRXhjZXB0aW9uLiR1bmtub3duKSB7XG4gICAgICAgICAgICAvL3RoaXMgaXMgYW4gdW5tb2RlbGVkIGV4Y2VwdGlvbiB0aGVuIHRyeSBwYXJzaW5nIGl0IHdpdGggYmVzdCBlZmZvcnRcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG9wdGlvbnMudG9VdGY4KG1lc3NhZ2UuYm9keSkpO1xuICAgICAgICAgICAgZXJyb3IubmFtZSA9IGNvZGU7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZGVzZXJpYWxpemVkRXhjZXB0aW9uW2NvZGVdO1xuICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2VUeXBlID09PSBcImV2ZW50XCIpIHtcbiAgICAgICAgICBjb25zdCBldmVudCA9IHtcbiAgICAgICAgICAgIFttZXNzYWdlLmhlYWRlcnNbXCI6ZXZlbnQtdHlwZVwiXS52YWx1ZSBhcyBzdHJpbmddOiBtZXNzYWdlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgZGVzZXJpYWxpemVkID0gYXdhaXQgb3B0aW9ucy5kZXNlcmlhbGl6ZXIoZXZlbnQpO1xuICAgICAgICAgIGlmIChkZXNlcmlhbGl6ZWQuJHVua25vd24pIGNvbnRpbnVlO1xuICAgICAgICAgIHlpZWxkIGRlc2VyaWFsaXplZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgVW5yZWNvZ25pemFibGUgZXZlbnQgdHlwZTogJHttZXNzYWdlLmhlYWRlcnNbXCI6ZXZlbnQtdHlwZVwiXS52YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iXX0=","import { __asyncGenerator, __await, __generator } from \"tslib\";\nexport function getChunkedStream(source) {\n var _a;\n var currentMessageTotalLength = 0;\n var currentMessagePendingLength = 0;\n var currentMessage = null;\n var messageLengthBuffer = null;\n var allocateMessage = function (size) {\n if (typeof size !== \"number\") {\n throw new Error(\"Attempted to allocate an event message where size was not a number: \" + size);\n }\n currentMessageTotalLength = size;\n currentMessagePendingLength = 4;\n currentMessage = new Uint8Array(size);\n var currentMessageView = new DataView(currentMessage.buffer);\n currentMessageView.setUint32(0, size, false); //set big-endian Uint32 to 0~3 bytes\n };\n var iterator = function () {\n return __asyncGenerator(this, arguments, function () {\n var sourceIterator, _a, value, done, chunkLength, currentOffset, bytesRemaining, numBytesForTotal, numBytesToWrite;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n sourceIterator = source[Symbol.asyncIterator]();\n _b.label = 1;\n case 1:\n if (!true) return [3 /*break*/, 16];\n return [4 /*yield*/, __await(sourceIterator.next())];\n case 2:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3 /*break*/, 10];\n if (!!currentMessageTotalLength) return [3 /*break*/, 4];\n return [4 /*yield*/, __await(void 0)];\n case 3: return [2 /*return*/, _b.sent()];\n case 4:\n if (!(currentMessageTotalLength === currentMessagePendingLength)) return [3 /*break*/, 7];\n return [4 /*yield*/, __await(currentMessage)];\n case 5: return [4 /*yield*/, _b.sent()];\n case 6:\n _b.sent();\n return [3 /*break*/, 8];\n case 7: throw new Error(\"Truncated event message received.\");\n case 8: return [4 /*yield*/, __await(void 0)];\n case 9: return [2 /*return*/, _b.sent()];\n case 10:\n chunkLength = value.length;\n currentOffset = 0;\n _b.label = 11;\n case 11:\n if (!(currentOffset < chunkLength)) return [3 /*break*/, 15];\n // create new message if necessary\n if (!currentMessage) {\n bytesRemaining = chunkLength - currentOffset;\n // prevent edge case where total length spans 2 chunks\n if (!messageLengthBuffer) {\n messageLengthBuffer = new Uint8Array(4);\n }\n numBytesForTotal = Math.min(4 - currentMessagePendingLength, // remaining bytes to fill the messageLengthBuffer\n bytesRemaining // bytes left in chunk\n );\n messageLengthBuffer.set(\n // @ts-ignore error TS2532: Object is possibly 'undefined' for value\n value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);\n currentMessagePendingLength += numBytesForTotal;\n currentOffset += numBytesForTotal;\n if (currentMessagePendingLength < 4) {\n // not enough information to create the current message\n return [3 /*break*/, 15];\n }\n allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n messageLengthBuffer = null;\n }\n numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, // number of bytes left to complete message\n chunkLength - currentOffset // number of bytes left in the original chunk\n );\n currentMessage.set(\n // @ts-ignore error TS2532: Object is possibly 'undefined' for value\n value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength);\n currentMessagePendingLength += numBytesToWrite;\n currentOffset += numBytesToWrite;\n if (!(currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength)) return [3 /*break*/, 14];\n return [4 /*yield*/, __await(currentMessage)];\n case 12: \n // push out the message\n return [4 /*yield*/, _b.sent()];\n case 13:\n // push out the message\n _b.sent();\n // cleanup\n currentMessage = null;\n currentMessageTotalLength = 0;\n currentMessagePendingLength = 0;\n _b.label = 14;\n case 14: return [3 /*break*/, 11];\n case 15: return [3 /*break*/, 1];\n case 16: return [2 /*return*/];\n }\n });\n });\n };\n return _a = {},\n _a[Symbol.asyncIterator] = iterator,\n _a;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2h1bmtlZFN0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZXRDaHVua2VkU3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBaUM7O0lBQ2hFLElBQUkseUJBQXlCLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLElBQUksMkJBQTJCLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLElBQUksY0FBYyxHQUFzQixJQUFJLENBQUM7SUFDN0MsSUFBSSxtQkFBbUIsR0FBc0IsSUFBSSxDQUFDO0lBQ2xELElBQU0sZUFBZSxHQUFHLFVBQUMsSUFBWTtRQUNuQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ2hHO1FBQ0QseUJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLDJCQUEyQixHQUFHLENBQUMsQ0FBQztRQUNoQyxjQUFjLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBTSxrQkFBa0IsR0FBRyxJQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0Qsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxvQ0FBb0M7SUFDcEYsQ0FBQyxDQUFDO0lBRUYsSUFBTSxRQUFRLEdBQUc7Ozs7Ozt3QkFDVCxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDOzs7NkJBQy9DLElBQUk7d0JBQ2UsNkJBQU0sY0FBYyxDQUFDLElBQUksRUFBRSxHQUFBOzt3QkFBN0MsS0FBa0IsU0FBMkIsRUFBM0MsS0FBSyxXQUFBLEVBQUUsSUFBSSxVQUFBOzZCQUNmLElBQUksRUFBSix5QkFBSTs2QkFDRixDQUFDLHlCQUF5QixFQUExQix3QkFBMEI7OzRCQUM1QixpQ0FBTzs7NkJBQ0UsQ0FBQSx5QkFBeUIsS0FBSywyQkFBMkIsQ0FBQSxFQUF6RCx3QkFBeUQ7cURBQzVELGNBQTRCOzRCQUFsQyxnQ0FBa0M7O3dCQUFsQyxTQUFrQyxDQUFDOzs0QkFFbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDOzs0QkFFdkQsaUNBQU87O3dCQUdILFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO3dCQUM3QixhQUFhLEdBQUcsQ0FBQyxDQUFDOzs7NkJBRWYsQ0FBQSxhQUFhLEdBQUcsV0FBVyxDQUFBO3dCQUNoQyxrQ0FBa0M7d0JBQ2xDLElBQUksQ0FBQyxjQUFjLEVBQUU7NEJBRWIsY0FBYyxHQUFHLFdBQVcsR0FBRyxhQUFhLENBQUM7NEJBQ25ELHNEQUFzRDs0QkFDdEQsSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dDQUN4QixtQkFBbUIsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs2QkFDekM7NEJBQ0ssZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDL0IsQ0FBQyxHQUFHLDJCQUEyQixFQUFFLGtEQUFrRDs0QkFDbkYsY0FBYyxDQUFDLHNCQUFzQjs2QkFDdEMsQ0FBQzs0QkFFRixtQkFBbUIsQ0FBQyxHQUFHOzRCQUNyQixvRUFBb0U7NEJBQ3BFLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxFQUM1RCwyQkFBMkIsQ0FDNUIsQ0FBQzs0QkFFRiwyQkFBMkIsSUFBSSxnQkFBZ0IsQ0FBQzs0QkFDaEQsYUFBYSxJQUFJLGdCQUFnQixDQUFDOzRCQUVsQyxJQUFJLDJCQUEyQixHQUFHLENBQUMsRUFBRTtnQ0FDbkMsdURBQXVEO2dDQUN2RCx5QkFBTTs2QkFDUDs0QkFDRCxlQUFlLENBQUMsSUFBSSxRQUFRLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDOzRCQUM5RSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7eUJBQzVCO3dCQUdLLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUM5Qix5QkFBeUIsR0FBRywyQkFBMkIsRUFBRSwyQ0FBMkM7d0JBQ3BHLFdBQVcsR0FBRyxhQUFhLENBQUMsNkNBQTZDO3lCQUMxRSxDQUFDO3dCQUNGLGNBQWUsQ0FBQyxHQUFHO3dCQUNqQixvRUFBb0U7d0JBQ3BFLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGFBQWEsR0FBRyxlQUFlLENBQUMsRUFDM0QsMkJBQTJCLENBQzVCLENBQUM7d0JBQ0YsMkJBQTJCLElBQUksZUFBZSxDQUFDO3dCQUMvQyxhQUFhLElBQUksZUFBZSxDQUFDOzZCQUc3QixDQUFBLHlCQUF5QixJQUFJLHlCQUF5QixLQUFLLDJCQUEyQixDQUFBLEVBQXRGLHlCQUFzRjtxREFFbEYsY0FBNEI7O29CQURsQyx1QkFBdUI7b0JBQ3ZCLGdDQUFrQzs7d0JBRGxDLHVCQUF1Qjt3QkFDdkIsU0FBa0MsQ0FBQzt3QkFDbkMsVUFBVTt3QkFDVixjQUFjLEdBQUcsSUFBSSxDQUFDO3dCQUN0Qix5QkFBeUIsR0FBRyxDQUFDLENBQUM7d0JBQzlCLDJCQUEyQixHQUFHLENBQUMsQ0FBQzs7Ozs7Ozs7S0FJdkMsQ0FBQztJQUVGO1FBQ0UsR0FBQyxNQUFNLENBQUMsYUFBYSxJQUFHLFFBQVE7V0FDaEM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGdldENodW5rZWRTdHJlYW0oc291cmNlOiBBc3luY0l0ZXJhYmxlPFVpbnQ4QXJyYXk+KTogQXN5bmNJdGVyYWJsZTxVaW50OEFycmF5PiB7XG4gIGxldCBjdXJyZW50TWVzc2FnZVRvdGFsTGVuZ3RoID0gMDtcbiAgbGV0IGN1cnJlbnRNZXNzYWdlUGVuZGluZ0xlbmd0aCA9IDA7XG4gIGxldCBjdXJyZW50TWVzc2FnZTogVWludDhBcnJheSB8IG51bGwgPSBudWxsO1xuICBsZXQgbWVzc2FnZUxlbmd0aEJ1ZmZlcjogVWludDhBcnJheSB8IG51bGwgPSBudWxsO1xuICBjb25zdCBhbGxvY2F0ZU1lc3NhZ2UgPSAoc2l6ZTogbnVtYmVyKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBzaXplICE9PSBcIm51bWJlclwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdHRlbXB0ZWQgdG8gYWxsb2NhdGUgYW4gZXZlbnQgbWVzc2FnZSB3aGVyZSBzaXplIHdhcyBub3QgYSBudW1iZXI6IFwiICsgc2l6ZSk7XG4gICAgfVxuICAgIGN1cnJlbnRNZXNzYWdlVG90YWxMZW5ndGggPSBzaXplO1xuICAgIGN1cnJlbnRNZXNzYWdlUGVuZGluZ0xlbmd0aCA9IDQ7XG4gICAgY3VycmVudE1lc3NhZ2UgPSBuZXcgVWludDhBcnJheShzaXplKTtcbiAgICBjb25zdCBjdXJyZW50TWVzc2FnZVZpZXcgPSBuZXcgRGF0YVZpZXcoY3VycmVudE1lc3NhZ2UuYnVmZmVyKTtcbiAgICBjdXJyZW50TWVzc2FnZVZpZXcuc2V0VWludDMyKDAsIHNpemUsIGZhbHNlKTsgLy9zZXQgYmlnLWVuZGlhbiBVaW50MzIgdG8gMH4zIGJ5dGVzXG4gIH07XG5cbiAgY29uc3QgaXRlcmF0b3IgPSBhc3luYyBmdW5jdGlvbiogKCkge1xuICAgIGNvbnN0IHNvdXJjZUl0ZXJhdG9yID0gc291cmNlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBkb25lIH0gPSBhd2FpdCBzb3VyY2VJdGVyYXRvci5uZXh0KCk7XG4gICAgICBpZiAoZG9uZSkge1xuICAgICAgICBpZiAoIWN1cnJlbnRNZXNzYWdlVG90YWxMZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudE1lc3NhZ2VUb3RhbExlbmd0aCA9PT0gY3VycmVudE1lc3NhZ2VQZW5kaW5nTGVuZ3RoKSB7XG4gICAgICAgICAgeWllbGQgY3VycmVudE1lc3NhZ2UgYXMgVWludDhBcnJheTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUcnVuY2F0ZWQgZXZlbnQgbWVzc2FnZSByZWNlaXZlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjaHVua0xlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgICAgIGxldCBjdXJyZW50T2Zmc2V0ID0gMDtcblxuICAgICAgd2hpbGUgKGN1cnJlbnRPZmZzZXQgPCBjaHVua0xlbmd0aCkge1xuICAgICAgICAvLyBjcmVhdGUgbmV3IG1lc3NhZ2UgaWYgbmVjZXNzYXJ5XG4gICAgICAgIGlmICghY3VycmVudE1lc3NhZ2UpIHtcbiAgICAgICAgICAvLyB3b3JraW5nIG9uIGEgbmV3IG1lc3NhZ2UsIGRldGVybWluZSB0b3RhbCBsZW5ndGhcbiAgICAgICAgICBjb25zdCBieXRlc1JlbWFpbmluZyA9IGNodW5rTGVuZ3RoIC0gY3VycmVudE9mZnNldDtcbiAgICAgICAgICAvLyBwcmV2ZW50IGVkZ2UgY2FzZSB3aGVyZSB0b3RhbCBsZW5ndGggc3BhbnMgMiBjaHVua3NcbiAgICAgICAgICBpZiAoIW1lc3NhZ2VMZW5ndGhCdWZmZXIpIHtcbiAgICAgICAgICAgIG1lc3NhZ2VMZW5ndGhCdWZmZXIgPSBuZXcgVWludDhBcnJheSg0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgbnVtQnl0ZXNGb3JUb3RhbCA9IE1hdGgubWluKFxuICAgICAgICAgICAgNCAtIGN1cnJlbnRNZXNzYWdlUGVuZGluZ0xlbmd0aCwgLy8gcmVtYWluaW5nIGJ5dGVzIHRvIGZpbGwgdGhlIG1lc3NhZ2VMZW5ndGhCdWZmZXJcbiAgICAgICAgICAgIGJ5dGVzUmVtYWluaW5nIC8vIGJ5dGVzIGxlZnQgaW4gY2h1bmtcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgbWVzc2FnZUxlbmd0aEJ1ZmZlci5zZXQoXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlIGVycm9yIFRTMjUzMjogT2JqZWN0IGlzIHBvc3NpYmx5ICd1bmRlZmluZWQnIGZvciB2YWx1ZVxuICAgICAgICAgICAgdmFsdWUuc2xpY2UoY3VycmVudE9mZnNldCwgY3VycmVudE9mZnNldCArIG51bUJ5dGVzRm9yVG90YWwpLFxuICAgICAgICAgICAgY3VycmVudE1lc3NhZ2VQZW5kaW5nTGVuZ3RoXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGN1cnJlbnRNZXNzYWdlUGVuZGluZ0xlbmd0aCArPSBudW1CeXRlc0ZvclRvdGFsO1xuICAgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0gbnVtQnl0ZXNGb3JUb3RhbDtcblxuICAgICAgICAgIGlmIChjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGggPCA0KSB7XG4gICAgICAgICAgICAvLyBub3QgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGNyZWF0ZSB0aGUgY3VycmVudCBtZXNzYWdlXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgYWxsb2NhdGVNZXNzYWdlKG5ldyBEYXRhVmlldyhtZXNzYWdlTGVuZ3RoQnVmZmVyLmJ1ZmZlcikuZ2V0VWludDMyKDAsIGZhbHNlKSk7XG4gICAgICAgICAgbWVzc2FnZUxlbmd0aEJ1ZmZlciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3cml0ZSBkYXRhIGludG8gY3VycmVudCBtZXNzYWdlXG4gICAgICAgIGNvbnN0IG51bUJ5dGVzVG9Xcml0ZSA9IE1hdGgubWluKFxuICAgICAgICAgIGN1cnJlbnRNZXNzYWdlVG90YWxMZW5ndGggLSBjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGgsIC8vIG51bWJlciBvZiBieXRlcyBsZWZ0IHRvIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgICBjaHVua0xlbmd0aCAtIGN1cnJlbnRPZmZzZXQgLy8gbnVtYmVyIG9mIGJ5dGVzIGxlZnQgaW4gdGhlIG9yaWdpbmFsIGNodW5rXG4gICAgICAgICk7XG4gICAgICAgIGN1cnJlbnRNZXNzYWdlIS5zZXQoXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZSBlcnJvciBUUzI1MzI6IE9iamVjdCBpcyBwb3NzaWJseSAndW5kZWZpbmVkJyBmb3IgdmFsdWVcbiAgICAgICAgICB2YWx1ZS5zbGljZShjdXJyZW50T2Zmc2V0LCBjdXJyZW50T2Zmc2V0ICsgbnVtQnl0ZXNUb1dyaXRlKSxcbiAgICAgICAgICBjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGhcbiAgICAgICAgKTtcbiAgICAgICAgY3VycmVudE1lc3NhZ2VQZW5kaW5nTGVuZ3RoICs9IG51bUJ5dGVzVG9Xcml0ZTtcbiAgICAgICAgY3VycmVudE9mZnNldCArPSBudW1CeXRlc1RvV3JpdGU7XG5cbiAgICAgICAgLy8gY2hlY2sgaWYgYSBtZXNzYWdlIGlzIHJlYWR5IHRvIGJlIHB1c2hlZFxuICAgICAgICBpZiAoY3VycmVudE1lc3NhZ2VUb3RhbExlbmd0aCAmJiBjdXJyZW50TWVzc2FnZVRvdGFsTGVuZ3RoID09PSBjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGgpIHtcbiAgICAgICAgICAvLyBwdXNoIG91dCB0aGUgbWVzc2FnZVxuICAgICAgICAgIHlpZWxkIGN1cnJlbnRNZXNzYWdlIGFzIFVpbnQ4QXJyYXk7XG4gICAgICAgICAgLy8gY2xlYW51cFxuICAgICAgICAgIGN1cnJlbnRNZXNzYWdlID0gbnVsbDtcbiAgICAgICAgICBjdXJyZW50TWVzc2FnZVRvdGFsTGVuZ3RoID0gMDtcbiAgICAgICAgICBjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGggPSAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTogaXRlcmF0b3IsXG4gIH07XG59XG4iXX0=","import { EventStreamMarshaller as EventMarshaller } from \"@aws-sdk/eventstream-marshaller\";\nimport { EventStreamMarshaller as UniversalEventStreamMarshaller } from \"@aws-sdk/eventstream-serde-universal\";\nimport { iterableToReadableStream, readableStreamtoIterable } from \"./utils\";\n/**\n * Utility class used to serialize and deserialize event streams in\n * browsers and ReactNative.\n *\n * In browsers where ReadableStream API is available:\n * * deserialize from ReadableStream to an async iterable of output structure\n * * serialize from async iterable of input structure to ReadableStream\n * In ReactNative where only async iterable API is available:\n * * deserialize from async iterable of binaries to async iterable of output structure\n * * serialize from async iterable of input structure to async iterable of binaries\n *\n * We use ReadableStream API in browsers because of the consistency with other\n * streaming operations, where ReadableStream API is used to denote streaming data.\n * Whereas in ReactNative, ReadableStream API is not available, we use async iterable\n * for streaming data although it has lower throughput.\n */\nvar EventStreamMarshaller = /** @class */ (function () {\n function EventStreamMarshaller(_a) {\n var utf8Encoder = _a.utf8Encoder, utf8Decoder = _a.utf8Decoder;\n this.eventMarshaller = new EventMarshaller(utf8Encoder, utf8Decoder);\n this.universalMarshaller = new UniversalEventStreamMarshaller({\n utf8Decoder: utf8Decoder,\n utf8Encoder: utf8Encoder,\n });\n }\n EventStreamMarshaller.prototype.deserialize = function (body, deserializer) {\n var bodyIterable = isReadableStream(body) ? readableStreamtoIterable(body) : body;\n return this.universalMarshaller.deserialize(bodyIterable, deserializer);\n };\n /**\n * Generate a stream that serialize events into stream of binary chunks;\n *\n * Caveat is that streaming request payload doesn't work on browser with native\n * xhr or fetch handler currently because they don't support upload streaming.\n * reference:\n * * https://bugs.chromium.org/p/chromium/issues/detail?id=688906\n * * https://bugzilla.mozilla.org/show_bug.cgi?id=1387483\n *\n */\n EventStreamMarshaller.prototype.serialize = function (input, serializer) {\n var serialziedIterable = this.universalMarshaller.serialize(input, serializer);\n return typeof ReadableStream === \"function\" ? iterableToReadableStream(serialziedIterable) : serialziedIterable;\n };\n return EventStreamMarshaller;\n}());\nexport { EventStreamMarshaller };\nvar isReadableStream = function (body) {\n return typeof ReadableStream === \"function\" && body instanceof ReadableStream;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRTdHJlYW1NYXJzaGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V2ZW50U3RyZWFtTWFyc2hhbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLElBQUksZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixJQUFJLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHL0csT0FBTyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBUzdFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNIO0lBR0UsK0JBQVksRUFBMEQ7WUFBeEQsV0FBVyxpQkFBQSxFQUFFLFdBQVcsaUJBQUE7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksOEJBQThCLENBQUM7WUFDNUQsV0FBVyxhQUFBO1lBQ1gsV0FBVyxhQUFBO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDJDQUFXLEdBQVgsVUFDRSxJQUE0RCxFQUM1RCxZQUFpRTtRQUVqRSxJQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwRixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCx5Q0FBUyxHQUFULFVBQWEsS0FBdUIsRUFBRSxVQUFpQztRQUNyRSxJQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sT0FBTyxjQUFjLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztJQUNsSCxDQUFDO0lBQ0gsNEJBQUM7QUFBRCxDQUFDLEFBakNELElBaUNDOztBQUVELElBQU0sZ0JBQWdCLEdBQUcsVUFBQyxJQUFTO0lBQ2pDLE9BQUEsT0FBTyxjQUFjLEtBQUssVUFBVSxJQUFJLElBQUksWUFBWSxjQUFjO0FBQXRFLENBQXNFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudFN0cmVhbU1hcnNoYWxsZXIgYXMgRXZlbnRNYXJzaGFsbGVyIH0gZnJvbSBcIkBhd3Mtc2RrL2V2ZW50c3RyZWFtLW1hcnNoYWxsZXJcIjtcbmltcG9ydCB7IEV2ZW50U3RyZWFtTWFyc2hhbGxlciBhcyBVbml2ZXJzYWxFdmVudFN0cmVhbU1hcnNoYWxsZXIgfSBmcm9tIFwiQGF3cy1zZGsvZXZlbnRzdHJlYW0tc2VyZGUtdW5pdmVyc2FsXCI7XG5pbXBvcnQgeyBEZWNvZGVyLCBFbmNvZGVyLCBFdmVudFN0cmVhbU1hcnNoYWxsZXIgYXMgSUV2ZW50U3RyZWFtTWFyc2hhbGxlciwgTWVzc2FnZSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBpdGVyYWJsZVRvUmVhZGFibGVTdHJlYW0sIHJlYWRhYmxlU3RyZWFtdG9JdGVyYWJsZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTdHJlYW1NYXJzaGFsbGVyIGV4dGVuZHMgSUV2ZW50U3RyZWFtTWFyc2hhbGxlciB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U3RyZWFtTWFyc2hhbGxlck9wdGlvbnMge1xuICB1dGY4RW5jb2RlcjogRW5jb2RlcjtcbiAgdXRmOERlY29kZXI6IERlY29kZXI7XG59XG5cbi8qKlxuICogVXRpbGl0eSBjbGFzcyB1c2VkIHRvIHNlcmlhbGl6ZSBhbmQgZGVzZXJpYWxpemUgZXZlbnQgc3RyZWFtcyBpblxuICogYnJvd3NlcnMgYW5kIFJlYWN0TmF0aXZlLlxuICpcbiAqIEluIGJyb3dzZXJzIHdoZXJlIFJlYWRhYmxlU3RyZWFtIEFQSSBpcyBhdmFpbGFibGU6XG4gKiAqIGRlc2VyaWFsaXplIGZyb20gUmVhZGFibGVTdHJlYW0gdG8gYW4gYXN5bmMgaXRlcmFibGUgb2Ygb3V0cHV0IHN0cnVjdHVyZVxuICogKiBzZXJpYWxpemUgZnJvbSBhc3luYyBpdGVyYWJsZSBvZiBpbnB1dCBzdHJ1Y3R1cmUgdG8gUmVhZGFibGVTdHJlYW1cbiAqIEluIFJlYWN0TmF0aXZlIHdoZXJlIG9ubHkgYXN5bmMgaXRlcmFibGUgQVBJIGlzIGF2YWlsYWJsZTpcbiAqICogZGVzZXJpYWxpemUgZnJvbSBhc3luYyBpdGVyYWJsZSBvZiBiaW5hcmllcyB0byBhc3luYyBpdGVyYWJsZSBvZiBvdXRwdXQgc3RydWN0dXJlXG4gKiAqIHNlcmlhbGl6ZSBmcm9tIGFzeW5jIGl0ZXJhYmxlIG9mIGlucHV0IHN0cnVjdHVyZSB0byBhc3luYyBpdGVyYWJsZSBvZiBiaW5hcmllc1xuICpcbiAqIFdlIHVzZSBSZWFkYWJsZVN0cmVhbSBBUEkgaW4gYnJvd3NlcnMgYmVjYXVzZSBvZiB0aGUgY29uc2lzdGVuY3kgd2l0aCBvdGhlclxuICogc3RyZWFtaW5nIG9wZXJhdGlvbnMsIHdoZXJlIFJlYWRhYmxlU3RyZWFtIEFQSSBpcyB1c2VkIHRvIGRlbm90ZSBzdHJlYW1pbmcgZGF0YS5cbiAqIFdoZXJlYXMgaW4gUmVhY3ROYXRpdmUsIFJlYWRhYmxlU3RyZWFtIEFQSSBpcyBub3QgYXZhaWxhYmxlLCB3ZSB1c2UgYXN5bmMgaXRlcmFibGVcbiAqIGZvciBzdHJlYW1pbmcgZGF0YSBhbHRob3VnaCBpdCBoYXMgbG93ZXIgdGhyb3VnaHB1dC5cbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50U3RyZWFtTWFyc2hhbGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRNYXJzaGFsbGVyOiBFdmVudE1hcnNoYWxsZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgdW5pdmVyc2FsTWFyc2hhbGxlcjogVW5pdmVyc2FsRXZlbnRTdHJlYW1NYXJzaGFsbGVyO1xuICBjb25zdHJ1Y3Rvcih7IHV0ZjhFbmNvZGVyLCB1dGY4RGVjb2RlciB9OiBFdmVudFN0cmVhbU1hcnNoYWxsZXJPcHRpb25zKSB7XG4gICAgdGhpcy5ldmVudE1hcnNoYWxsZXIgPSBuZXcgRXZlbnRNYXJzaGFsbGVyKHV0ZjhFbmNvZGVyLCB1dGY4RGVjb2Rlcik7XG4gICAgdGhpcy51bml2ZXJzYWxNYXJzaGFsbGVyID0gbmV3IFVuaXZlcnNhbEV2ZW50U3RyZWFtTWFyc2hhbGxlcih7XG4gICAgICB1dGY4RGVjb2RlcixcbiAgICAgIHV0ZjhFbmNvZGVyLFxuICAgIH0pO1xuICB9XG5cbiAgZGVzZXJpYWxpemU8VD4oXG4gICAgYm9keTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4gfCBBc3luY0l0ZXJhYmxlPFVpbnQ4QXJyYXk+LFxuICAgIGRlc2VyaWFsaXplcjogKGlucHV0OiB7IFtldmVudDogc3RyaW5nXTogTWVzc2FnZSB9KSA9PiBQcm9taXNlPFQ+XG4gICk6IEFzeW5jSXRlcmFibGU8VD4ge1xuICAgIGNvbnN0IGJvZHlJdGVyYWJsZSA9IGlzUmVhZGFibGVTdHJlYW0oYm9keSkgPyByZWFkYWJsZVN0cmVhbXRvSXRlcmFibGUoYm9keSkgOiBib2R5O1xuICAgIHJldHVybiB0aGlzLnVuaXZlcnNhbE1hcnNoYWxsZXIuZGVzZXJpYWxpemUoYm9keUl0ZXJhYmxlLCBkZXNlcmlhbGl6ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEgc3RyZWFtIHRoYXQgc2VyaWFsaXplIGV2ZW50cyBpbnRvIHN0cmVhbSBvZiBiaW5hcnkgY2h1bmtzO1xuICAgKlxuICAgKiBDYXZlYXQgaXMgdGhhdCBzdHJlYW1pbmcgcmVxdWVzdCBwYXlsb2FkIGRvZXNuJ3Qgd29yayBvbiBicm93c2VyIHdpdGggbmF0aXZlXG4gICAqIHhociBvciBmZXRjaCBoYW5kbGVyIGN1cnJlbnRseSBiZWNhdXNlIHRoZXkgZG9uJ3Qgc3VwcG9ydCB1cGxvYWQgc3RyZWFtaW5nLlxuICAgKiByZWZlcmVuY2U6XG4gICAqICogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9Njg4OTA2XG4gICAqICogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NzQ4M1xuICAgKlxuICAgKi9cbiAgc2VyaWFsaXplPFQ+KGlucHV0OiBBc3luY0l0ZXJhYmxlPFQ+LCBzZXJpYWxpemVyOiAoZXZlbnQ6IFQpID0+IE1lc3NhZ2UpOiBSZWFkYWJsZVN0cmVhbSB8IEFzeW5jSXRlcmFibGU8VWludDhBcnJheT4ge1xuICAgIGNvbnN0IHNlcmlhbHppZWRJdGVyYWJsZSA9IHRoaXMudW5pdmVyc2FsTWFyc2hhbGxlci5zZXJpYWxpemUoaW5wdXQsIHNlcmlhbGl6ZXIpO1xuICAgIHJldHVybiB0eXBlb2YgUmVhZGFibGVTdHJlYW0gPT09IFwiZnVuY3Rpb25cIiA/IGl0ZXJhYmxlVG9SZWFkYWJsZVN0cmVhbShzZXJpYWx6aWVkSXRlcmFibGUpIDogc2VyaWFsemllZEl0ZXJhYmxlO1xuICB9XG59XG5cbmNvbnN0IGlzUmVhZGFibGVTdHJlYW0gPSAoYm9keTogYW55KTogYm9keSBpcyBSZWFkYWJsZVN0cmVhbSA9PlxuICB0eXBlb2YgUmVhZGFibGVTdHJlYW0gPT09IFwiZnVuY3Rpb25cIiAmJiBib2R5IGluc3RhbmNlb2YgUmVhZGFibGVTdHJlYW07XG4iXX0=","import { __asyncGenerator, __await, __awaiter, __generator } from \"tslib\";\n/**\n * A util function converting ReadableStream into an async iterable.\n * Reference: https://jakearchibald.com/2017/async-iterators-and-generators/#making-streams-iterate\n */\nexport var readableStreamtoIterable = function (readableStream) {\n var _a;\n return (_a = {},\n _a[Symbol.asyncIterator] = function () {\n return __asyncGenerator(this, arguments, function () {\n var reader, _a, done, value;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3 /*break*/, 8];\n return [4 /*yield*/, __await(reader.read())];\n case 3:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (!done) return [3 /*break*/, 5];\n return [4 /*yield*/, __await(void 0)];\n case 4: return [2 /*return*/, _b.sent()];\n case 5: return [4 /*yield*/, __await(value)];\n case 6: return [4 /*yield*/, _b.sent()];\n case 7:\n _b.sent();\n return [3 /*break*/, 2];\n case 8: return [3 /*break*/, 10];\n case 9:\n reader.releaseLock();\n return [7 /*endfinally*/];\n case 10: return [2 /*return*/];\n }\n });\n });\n },\n _a);\n};\n/**\n * A util function converting async iterable to a ReadableStream.\n */\nexport var iterableToReadableStream = function (asyncIterable) {\n var iterator = asyncIterable[Symbol.asyncIterator]();\n return new ReadableStream({\n pull: function (controller) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, done, value;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, iterator.next()];\n case 1:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (done) {\n return [2 /*return*/, controller.close()];\n }\n controller.enqueue(value);\n return [2 /*return*/];\n }\n });\n });\n },\n });\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLHdCQUF3QixHQUFHLFVBQUksY0FBaUM7O0lBQXVCLE9BQUE7UUFDbEcsR0FBQyxNQUFNLENBQUMsYUFBYSxJQUFHOzs7Ozs7NEJBQ2hCLE1BQU0sR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7Ozs7OztpQ0FFakMsSUFBSTs0QkFDZSw2QkFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUE7OzRCQUFyQyxLQUFrQixTQUFtQixFQUFuQyxJQUFJLFVBQUEsRUFBRSxLQUFLLFdBQUE7aUNBQ2YsSUFBSSxFQUFKLHdCQUFJOztnQ0FBRSxpQ0FBTzs2REFDWCxLQUFVO2dDQUFoQixnQ0FBZ0I7OzRCQUFoQixTQUFnQixDQUFDOzs7OzRCQUduQixNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7Ozs7OztTQUV4QjtXQUNEO0FBYmtHLENBYWxHLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLHdCQUF3QixHQUFHLFVBQUksYUFBK0I7SUFDekUsSUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxjQUFjLENBQUM7UUFDbEIsSUFBSSxZQUFDLFVBQVU7Ozs7O2dDQUNLLHFCQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBQTs7NEJBQXZDLEtBQWtCLFNBQXFCLEVBQXJDLElBQUksVUFBQSxFQUFFLEtBQUssV0FBQTs0QkFDbkIsSUFBSSxJQUFJLEVBQUU7Z0NBQ1Isc0JBQU8sVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFDOzZCQUMzQjs0QkFDRCxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDOzs7OztTQUMzQjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSB1dGlsIGZ1bmN0aW9uIGNvbnZlcnRpbmcgUmVhZGFibGVTdHJlYW0gaW50byBhbiBhc3luYyBpdGVyYWJsZS5cbiAqIFJlZmVyZW5jZTogaHR0cHM6Ly9qYWtlYXJjaGliYWxkLmNvbS8yMDE3L2FzeW5jLWl0ZXJhdG9ycy1hbmQtZ2VuZXJhdG9ycy8jbWFraW5nLXN0cmVhbXMtaXRlcmF0ZVxuICovXG5leHBvcnQgY29uc3QgcmVhZGFibGVTdHJlYW10b0l0ZXJhYmxlID0gPFQ+KHJlYWRhYmxlU3RyZWFtOiBSZWFkYWJsZVN0cmVhbTxUPik6IEFzeW5jSXRlcmFibGU8VD4gPT4gKHtcbiAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTogYXN5bmMgZnVuY3Rpb24qICgpIHtcbiAgICBjb25zdCByZWFkZXIgPSByZWFkYWJsZVN0cmVhbS5nZXRSZWFkZXIoKTtcbiAgICB0cnkge1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgICAgaWYgKGRvbmUpIHJldHVybjtcbiAgICAgICAgeWllbGQgdmFsdWUgYXMgVDtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgcmVhZGVyLnJlbGVhc2VMb2NrKCk7XG4gICAgfVxuICB9LFxufSk7XG5cbi8qKlxuICogQSB1dGlsIGZ1bmN0aW9uIGNvbnZlcnRpbmcgYXN5bmMgaXRlcmFibGUgdG8gYSBSZWFkYWJsZVN0cmVhbS5cbiAqL1xuZXhwb3J0IGNvbnN0IGl0ZXJhYmxlVG9SZWFkYWJsZVN0cmVhbSA9IDxUPihhc3luY0l0ZXJhYmxlOiBBc3luY0l0ZXJhYmxlPFQ+KTogUmVhZGFibGVTdHJlYW08VD4gPT4ge1xuICBjb25zdCBpdGVyYXRvciA9IGFzeW5jSXRlcmFibGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7XG4gIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgIGFzeW5jIHB1bGwoY29udHJvbGxlcikge1xuICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgaXRlcmF0b3IubmV4dCgpO1xuICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgIH1cbiAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh2YWx1ZSk7XG4gICAgfSxcbiAgfSk7XG59O1xuIl19","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export function blobReader(blob, onChunk, chunkSize) {\n if (chunkSize === void 0) { chunkSize = 1024 * 1024; }\n return new Promise(function (resolve, reject) {\n var fileReader = new FileReader();\n fileReader.addEventListener(\"error\", reject);\n fileReader.addEventListener(\"abort\", reject);\n var size = blob.size;\n var totalBytesRead = 0;\n function read() {\n if (totalBytesRead >= size) {\n resolve();\n return;\n }\n fileReader.readAsArrayBuffer(blob.slice(totalBytesRead, Math.min(size, totalBytesRead + chunkSize)));\n }\n fileReader.addEventListener(\"load\", function (event) {\n var result = event.target.result;\n onChunk(new Uint8Array(result));\n totalBytesRead += result.byteLength;\n // read the next block\n read();\n });\n // kick off the read\n read();\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsSUFBVSxFQUNWLE9BQW9DLEVBQ3BDLFNBQStCO0lBQS9CLDBCQUFBLEVBQUEsWUFBb0IsSUFBSSxHQUFHLElBQUk7SUFFL0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1FBQ2pDLElBQU0sVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFFcEMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3QyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTdDLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLFNBQVMsSUFBSTtZQUNYLElBQUksY0FBYyxJQUFJLElBQUksRUFBRTtnQkFDMUIsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsT0FBTzthQUNSO1lBQ0QsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkcsQ0FBQztRQUVELFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsVUFBQyxLQUFLO1lBQ3hDLElBQU0sTUFBTSxHQUFpQixLQUFLLENBQUMsTUFBYyxDQUFDLE1BQU0sQ0FBQztZQUN6RCxPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNoQyxjQUFjLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUNwQyxzQkFBc0I7WUFDdEIsSUFBSSxFQUFFLENBQUM7UUFDVCxDQUFDLENBQUMsQ0FBQztRQUVILG9CQUFvQjtRQUNwQixJQUFJLEVBQUUsQ0FBQztJQUNULENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBibG9iUmVhZGVyKFxuICBibG9iOiBCbG9iLFxuICBvbkNodW5rOiAoY2h1bms6IFVpbnQ4QXJyYXkpID0+IHZvaWQsXG4gIGNodW5rU2l6ZTogbnVtYmVyID0gMTAyNCAqIDEwMjRcbik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgZmlsZVJlYWRlci5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgcmVqZWN0KTtcbiAgICBmaWxlUmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCByZWplY3QpO1xuXG4gICAgY29uc3Qgc2l6ZSA9IGJsb2Iuc2l6ZTtcbiAgICBsZXQgdG90YWxCeXRlc1JlYWQgPSAwO1xuXG4gICAgZnVuY3Rpb24gcmVhZCgpIHtcbiAgICAgIGlmICh0b3RhbEJ5dGVzUmVhZCA+PSBzaXplKSB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZmlsZVJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihibG9iLnNsaWNlKHRvdGFsQnl0ZXNSZWFkLCBNYXRoLm1pbihzaXplLCB0b3RhbEJ5dGVzUmVhZCArIGNodW5rU2l6ZSkpKTtcbiAgICB9XG5cbiAgICBmaWxlUmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsIChldmVudCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gPEFycmF5QnVmZmVyPihldmVudC50YXJnZXQgYXMgYW55KS5yZXN1bHQ7XG4gICAgICBvbkNodW5rKG5ldyBVaW50OEFycmF5KHJlc3VsdCkpO1xuICAgICAgdG90YWxCeXRlc1JlYWQgKz0gcmVzdWx0LmJ5dGVMZW5ndGg7XG4gICAgICAvLyByZWFkIHRoZSBuZXh0IGJsb2NrXG4gICAgICByZWFkKCk7XG4gICAgfSk7XG5cbiAgICAvLyBraWNrIG9mZiB0aGUgcmVhZFxuICAgIHJlYWQoKTtcbiAgfSk7XG59XG4iXX0=","import { __awaiter, __generator } from \"tslib\";\nimport { blobReader } from \"@aws-sdk/chunked-blob-reader\";\nexport var blobHasher = function blobHasher(hashCtor, blob) {\n return __awaiter(this, void 0, void 0, function () {\n var hash;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n hash = new hashCtor();\n return [4 /*yield*/, blobReader(blob, function (chunk) {\n hash.update(chunk);\n })];\n case 1:\n _a.sent();\n return [2 /*return*/, hash.digest()];\n }\n });\n });\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUcxRCxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQXVCLFNBQWUsVUFBVSxDQUNyRSxRQUF5QixFQUN6QixJQUFVOzs7Ozs7b0JBRUosSUFBSSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7b0JBRTVCLHFCQUFNLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBQyxLQUFLOzRCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNyQixDQUFDLENBQUMsRUFBQTs7b0JBRkYsU0FFRSxDQUFDO29CQUVILHNCQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBQzs7OztDQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmxvYlJlYWRlciB9IGZyb20gXCJAYXdzLXNkay9jaHVua2VkLWJsb2ItcmVhZGVyXCI7XG5pbXBvcnQgeyBIYXNoQ29uc3RydWN0b3IsIFN0cmVhbUhhc2hlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgYmxvYkhhc2hlcjogU3RyZWFtSGFzaGVyPEJsb2I+ID0gYXN5bmMgZnVuY3Rpb24gYmxvYkhhc2hlcihcbiAgaGFzaEN0b3I6IEhhc2hDb25zdHJ1Y3RvcixcbiAgYmxvYjogQmxvYlxuKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gIGNvbnN0IGhhc2ggPSBuZXcgaGFzaEN0b3IoKTtcblxuICBhd2FpdCBibG9iUmVhZGVyKGJsb2IsIChjaHVuaykgPT4ge1xuICAgIGhhc2gudXBkYXRlKGNodW5rKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGhhc2guZGlnZXN0KCk7XG59O1xuIl19","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * @internal\n */\nexport var BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexport var DIGEST_LENGTH = 16;\n/**\n * @internal\n */\nexport var INIT = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFFN0I7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO0FBRWhDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sSUFBSSxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgQkxPQ0tfU0laRSA9IDY0O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgRElHRVNUX0xFTkdUSCA9IDE2O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgSU5JVCA9IFsweDY3NDUyMzAxLCAweGVmY2RhYjg5LCAweDk4YmFkY2ZlLCAweDEwMzI1NDc2XTtcbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { fromUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { BLOCK_SIZE, DIGEST_LENGTH, INIT } from \"./constants\";\nvar Md5 = /** @class */ (function () {\n function Md5() {\n this.state = Uint32Array.from(INIT);\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n }\n Md5.prototype.update = function (sourceData) {\n if (isEmptyData(sourceData)) {\n return;\n }\n else if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var data = convertToBuffer(sourceData);\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n Md5.prototype.digest = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, buffer, undecoratedLength, bytesHashed, bitsHashed, i, i, out, i;\n return __generator(this, function (_b) {\n if (!this.finished) {\n _a = this, buffer = _a.buffer, undecoratedLength = _a.bufferLength, bytesHashed = _a.bytesHashed;\n bitsHashed = bytesHashed * 8;\n buffer.setUint8(this.bufferLength++, 128);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\n buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n this.hashBuffer();\n this.finished = true;\n }\n out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n for (i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n return [2 /*return*/, new Uint8Array(out.buffer, out.byteOffset, out.byteLength)];\n });\n });\n };\n Md5.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var a = state[0], b = state[1], c = state[2], d = state[3];\n a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478);\n d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756);\n c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db);\n b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee);\n a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf);\n d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a);\n c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613);\n b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501);\n a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8);\n d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af);\n c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1);\n b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be);\n a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122);\n d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193);\n c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e);\n b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821);\n a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562);\n d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340);\n c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51);\n b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa);\n a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d);\n d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681);\n b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8);\n a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6);\n d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6);\n c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87);\n b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed);\n a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905);\n d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8);\n c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9);\n b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a);\n a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942);\n d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681);\n c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122);\n b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c);\n a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44);\n d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9);\n c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60);\n b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70);\n a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6);\n d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa);\n c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085);\n b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05);\n a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039);\n d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5);\n c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8);\n b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665);\n a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244);\n d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97);\n c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7);\n b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039);\n a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3);\n d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92);\n c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d);\n b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1);\n a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f);\n d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0);\n c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314);\n b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1);\n a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82);\n d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235);\n c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb);\n b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391);\n state[0] = (a + state[0]) & 0xffffffff;\n state[1] = (b + state[1]) & 0xffffffff;\n state[2] = (c + state[2]) & 0xffffffff;\n state[3] = (d + state[3]) & 0xffffffff;\n };\n return Md5;\n}());\nexport { Md5 };\nfunction cmn(q, a, b, x, s, t) {\n a = (((a + q) & 0xffffffff) + ((x + t) & 0xffffffff)) & 0xffffffff;\n return (((a << s) | (a >>> (32 - s))) + b) & 0xffffffff;\n}\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | (~b & d), a, b, x, s, t);\n}\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & ~d), a, b, x, s, t);\n}\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | ~d), a, b, x, s, t);\n}\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nfunction convertToBuffer(data) {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUQ7SUFBQTtRQUNVLFVBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLFdBQU0sR0FBYSxJQUFJLFFBQVEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzdELGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUE2STNCLENBQUM7SUEzSUMsb0JBQU0sR0FBTixVQUFPLFVBQXNCO1FBQzNCLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzNCLE9BQU87U0FDUjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFNLElBQUksR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBQSxVQUFVLEdBQUssSUFBSSxXQUFULENBQVU7UUFDMUIsSUFBSSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUM7UUFFL0IsT0FBTyxVQUFVLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzVELFVBQVUsRUFBRSxDQUFDO1lBRWIsSUFBSSxJQUFJLENBQUMs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QUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUUvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUUvRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDdkMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUN2QyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDO0lBQ3pDLENBQUM7SUFDSCxVQUFDO0FBQUQsQ0FBQyxBQWxKRCxJQWtKQzs7QUFFRCxTQUFTLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDM0UsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDO0lBQ25FLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUM7QUFDMUQsQ0FBQztBQUVELFNBQVMsRUFBRSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDckYsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsRUFBRSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDckYsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsRUFBRSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDckYsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRCxTQUFTLEVBQUUsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTO0lBQ3JGLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsSUFBZ0I7SUFDbkMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztLQUMxQjtJQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLElBQWdCO0lBQ3ZDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3ZCO0lBRUQsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzVCLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FDckc7SUFFRCxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXNoLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBmcm9tVXRmOCB9IGZyb20gXCJAYXdzLXNkay91dGlsLXV0ZjgtYnJvd3NlclwiO1xuXG5pbXBvcnQgeyBCTE9DS19TSVpFLCBESUdFU1RfTEVOR1RILCBJTklUIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBjbGFzcyBNZDUgaW1wbGVtZW50cyBIYXNoIHtcbiAgcHJpdmF0ZSBzdGF0ZSA9IFVpbnQzMkFycmF5LmZyb20oSU5JVCk7XG4gIHByaXZhdGUgYnVmZmVyOiBEYXRhVmlldyA9IG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoQkxPQ0tfU0laRSkpO1xuICBwcml2YXRlIGJ1ZmZlckxlbmd0aCA9IDA7XG4gIHByaXZhdGUgYnl0ZXNIYXNoZWQgPSAwO1xuICBwcml2YXRlIGZpbmlzaGVkID0gZmFsc2U7XG5cbiAgdXBkYXRlKHNvdXJjZURhdGE6IFNvdXJjZURhdGEpOiB2b2lkIHtcbiAgICBpZiAoaXNFbXB0eURhdGEoc291cmNlRGF0YSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmluaXNoZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkF0dGVtcHRlZCB0byB1cGRhdGUgYW4gYWxyZWFkeSBmaW5pc2hlZCBoYXNoLlwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gY29udmVydFRvQnVmZmVyKHNvdXJjZURhdGEpO1xuXG4gICAgbGV0IHBvc2l0aW9uID0gMDtcbiAgICBsZXQgeyBieXRlTGVuZ3RoIH0gPSBkYXRhO1xuICAgIHRoaXMuYnl0ZXNIYXNoZWQgKz0gYnl0ZUxlbmd0aDtcblxuICAgIHdoaWxlIChieXRlTGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5idWZmZXIuc2V0VWludDgodGhpcy5idWZmZXJMZW5ndGgrKywgZGF0YVtwb3NpdGlvbisrXSk7XG4gICAgICBieXRlTGVuZ3RoLS07XG5cbiAgICAgIGlmICh0aGlzLmJ1ZmZlckxlbmd0aCA9PT0gQkxPQ0tfU0laRSkge1xuICAgICAgICB0aGlzLmhhc2hCdWZmZXIoKTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRpZ2VzdCgpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBpZiAoIXRoaXMuZmluaXNoZWQpIHtcbiAgICAgIGNvbnN0IHsgYnVmZmVyLCBidWZmZXJMZW5ndGg6IHVuZGVjb3JhdGVkTGVuZ3RoLCBieXRlc0hhc2hlZCB9ID0gdGhpcztcbiAgICAgIGNvbnN0IGJpdHNIYXNoZWQgPSBieXRlc0hhc2hlZCAqIDg7XG4gICAgICBidWZmZXIuc2V0VWludDgodGhpcy5idWZmZXJMZW5ndGgrKywgMGIxMDAwMDAwMCk7XG5cbiAgICAgIC8vIEVuc3VyZSB0aGUgZmluYWwgYmxvY2sgaGFzIGVub3VnaCByb29tIGZvciB0aGUgaGFzaGVkIGxlbmd0aFxuICAgICAgaWYgKHVuZGVjb3JhdGVkTGVuZ3RoICUgQkxPQ0tfU0laRSA+PSBCTE9DS19TSVpFIC0gOCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5idWZmZXJMZW5ndGg7IGkgPCBCTE9DS19TSVpFOyBpKyspIHtcbiAgICAgICAgICBidWZmZXIuc2V0VWludDgoaSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgIH1cblxuICAgICAgZm9yIChsZXQgaSA9IHRoaXMuYnVmZmVyTGVuZ3RoOyBpIDwgQkxPQ0tfU0laRSAtIDg7IGkrKykge1xuICAgICAgICBidWZmZXIuc2V0VWludDgoaSwgMCk7XG4gICAgICB9XG4gICAgICBidWZmZXIuc2V0VWludDMyKEJMT0NLX1NJWkUgLSA4LCBiaXRzSGFzaGVkID4+PiAwLCB0cnVlKTtcbiAgICAgIGJ1ZmZlci5zZXRVaW50MzIoQkxPQ0tfU0laRSAtIDQsIE1hdGguZmxvb3IoYml0c0hhc2hlZCAvIDB4MTAwMDAwMDAwKSwgdHJ1ZSk7XG5cbiAgICAgIHRoaXMuaGFzaEJ1ZmZlcigpO1xuXG4gICAgICB0aGlzLmZpbmlzaGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBvdXQgPSBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKERJR0VTVF9MRU5HVEgpKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7IGkrKykge1xuICAgICAgb3V0LnNldFVpbnQzMihpICogNCwgdGhpcy5zdGF0ZVtpXSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KG91dC5idWZmZXIsIG91dC5ieXRlT2Zmc2V0LCBvdXQuYnl0ZUxlbmd0aCk7XG4gIH1cblxuICBwcml2YXRlIGhhc2hCdWZmZXIoKTogdm9pZCB7XG4gICAgY29uc3QgeyBidWZmZXIsIHN0YXRlIH0gPSB0aGlzO1xuXG4gICAgbGV0IGEgPSBzdGF0ZVswXSxcbiAgICAgIGIgPSBzdGF0ZVsxXSxcbiAgICAgIGMgPSBzdGF0ZVsyXSxcbiAgICAgIGQgPSBzdGF0ZVszXTtcblxuICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDAsIHRydWUpLCA3LCAweGQ3NmFhNDc4KTtcbiAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig0LCB0cnVlKSwgMTIsIDB4ZThjN2I3NTYpO1xuICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDgsIHRydWUpLCAxNywgMHgyNDIwNzBkYik7XG4gICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoMTIsIHRydWUpLCAyMiwgMHhjMWJkY2VlZSk7XG4gICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMTYsIHRydWUpLCA3LCAweGY1N2MwZmFmKTtcbiAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMigyMCwgdHJ1ZSksIDEyLCAweDQ3ODdjNjJhKTtcbiAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMigyNCwgdHJ1ZSksIDE3LCAweGE4MzA0NjEzKTtcbiAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigyOCwgdHJ1ZSksIDIyLCAweGZkNDY5NTAxKTtcbiAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigzMiwgdHJ1ZSksIDcsIDB4Njk4MDk4ZDgpO1xuICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDM2LCB0cnVlKSwgMTIsIDB4OGI0NGY3YWYpO1xuICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDQwLCB0cnVlKSwgMTcsIDB4ZmZmZjViYjEpO1xuICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDQ0LCB0cnVlKSwgMjIsIDB4ODk1Y2Q3YmUpO1xuICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDQ4LCB0cnVlKSwgNywgMHg2YjkwMTEyMik7XG4gICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoNTIsIHRydWUpLCAxMiwgMHhmZDk4NzE5Myk7XG4gICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoNTYsIHRydWUpLCAxNywgMHhhNjc5NDM4ZSk7XG4gICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoNjAsIHRydWUpLCAyMiwgMHg0OWI0MDgyMSk7XG5cbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMig0LCB0cnVlKSwgNSwgMHhmNjFlMjU2Mik7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoMjQsIHRydWUpLCA5LCAweGMwNDBiMzQwKTtcbiAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig0NCwgdHJ1ZSksIDE0LCAweDI2NWU1YTUxKTtcbiAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigwLCB0cnVlKSwgMjAsIDB4ZTliNmM3YWEpO1xuICAgIGEgPSBnZyhhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDIwLCB0cnVlKSwgNSwgMHhkNjJmMTA1ZCk7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoNDAsIHRydWUpLCA5LCAweDAyNDQxNDUzKTtcbiAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig2MCwgdHJ1ZSksIDE0LCAweGQ4YTFlNjgxKTtcbiAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigxNiwgdHJ1ZSksIDIwLCAweGU3ZDNmYmM4KTtcbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigzNiwgdHJ1ZSksIDUsIDB4MjFlMWNkZTYpO1xuICAgIGQgPSBnZyhkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDU2LCB0cnVlKSwgOSwgMHhjMzM3MDdkNik7XG4gICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMTIsIHRydWUpLCAxNCwgMHhmNGQ1MGQ4Nyk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoMzIsIHRydWUpLCAyMCwgMHg0NTVhMTRlZCk7XG4gICAgYSA9IGdnKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoNTIsIHRydWUpLCA1LCAweGE5ZTNlOTA1KTtcbiAgICBkID0gZ2coZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig4LCB0cnVlKSwgOSwgMHhmY2VmYTNmOCk7XG4gICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMjgsIHRydWUpLCAxNCwgMHg2NzZmMDJkOSk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoNDgsIHRydWUpLCAyMCwgMHg4ZDJhNGM4YSk7XG5cbiAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigyMCwgdHJ1ZSksIDQsIDB4ZmZmYTM5NDIpO1xuICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDMyLCB0cnVlKSwgMTEsIDB4ODc3MWY2ODEpO1xuICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDQ0LCB0cnVlKSwgMTYsIDB4NmQ5ZDYxMjIpO1xuICAgIGIgPSBoaChiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDU2LCB0cnVlKSwgMjMsIDB4ZmRlNTM4MGMpO1xuICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDQsIHRydWUpLCA0LCAweGE0YmVlYTQ0KTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMigxNiwgdHJ1ZSksIDExLCAweDRiZGVjZmE5KTtcbiAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMigyOCwgdHJ1ZSksIDE2LCAweGY2YmI0YjYwKTtcbiAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMig0MCwgdHJ1ZSksIDIzLCAweGJlYmZiYzcwKTtcbiAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMig1MiwgdHJ1ZSksIDQsIDB4Mjg5YjdlYzYpO1xuICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDAsIHRydWUpLCAxMSwgMHhlYWExMjdmYSk7XG4gICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMTIsIHRydWUpLCAxNiwgMHhkNGVmMzA4NSk7XG4gICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoMjQsIHRydWUpLCAyMywgMHgwNDg4MWQwNSk7XG4gICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMzYsIHRydWUpLCA0LCAweGQ5ZDRkMDM5KTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig0OCwgdHJ1ZSksIDExLCAweGU2ZGI5OWU1KTtcbiAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig2MCwgdHJ1ZSksIDE2LCAweDFmYTI3Y2Y4KTtcbiAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMig4LCB0cnVlKSwgMjMsIDB4YzRhYzU2NjUpO1xuXG4gICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMCwgdHJ1ZSksIDYsIDB4ZjQyOTIyNDQpO1xuICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDI4LCB0cnVlKSwgMTAsIDB4NDMyYWZmOTcpO1xuICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDU2LCB0cnVlKSwgMTUsIDB4YWI5NDIzYTcpO1xuICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDIwLCB0cnVlKSwgMjEsIDB4ZmM5M2EwMzkpO1xuICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDQ4LCB0cnVlKSwgNiwgMHg2NTViNTljMyk7XG4gICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoMTIsIHRydWUpLCAxMCwgMHg4ZjBjY2M5Mik7XG4gICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoNDAsIHRydWUpLCAxNSwgMHhmZmVmZjQ3ZCk7XG4gICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoNCwgdHJ1ZSksIDIxLCAweDg1ODQ1ZGQxKTtcbiAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigzMiwgdHJ1ZSksIDYsIDB4NmZhODdlNGYpO1xuICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDYwLCB0cnVlKSwgMTAsIDB4ZmUyY2U2ZTApO1xuICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDI0LCB0cnVlKSwgMTUsIDB4YTMwMTQzMTQpO1xuICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDUyLCB0cnVlKSwgMjEsIDB4NGUwODExYTEpO1xuICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDE2LCB0cnVlKSwgNiwgMHhmNzUzN2U4Mik7XG4gICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoNDQsIHRydWUpLCAxMCwgMHhiZDNhZjIzNSk7XG4gICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoOCwgdHJ1ZSksIDE1LCAweDJhZDdkMmJiKTtcbiAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigzNiwgdHJ1ZSksIDIxLCAweGViODZkMzkxKTtcblxuICAgIHN0YXRlWzBdID0gKGEgKyBzdGF0ZVswXSkgJiAweGZmZmZmZmZmO1xuICAgIHN0YXRlWzFdID0gKGIgKyBzdGF0ZVsxXSkgJiAweGZmZmZmZmZmO1xuICAgIHN0YXRlWzJdID0gKGMgKyBzdGF0ZVsyXSkgJiAweGZmZmZmZmZmO1xuICAgIHN0YXRlWzNdID0gKGQgKyBzdGF0ZVszXSkgJiAweGZmZmZmZmZmO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNtbihxOiBudW1iZXIsIGE6IG51bWJlciwgYjogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIGEgPSAoKChhICsgcSkgJiAweGZmZmZmZmZmKSArICgoeCArIHQpICYgMHhmZmZmZmZmZikpICYgMHhmZmZmZmZmZjtcbiAgcmV0dXJuICgoKGEgPDwgcykgfCAoYSA+Pj4gKDMyIC0gcykpKSArIGIpICYgMHhmZmZmZmZmZjtcbn1cblxuZnVuY3Rpb24gZmYoYTogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlciwgZDogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIHJldHVybiBjbW4oKGIgJiBjKSB8ICh+YiAmIGQpLCBhLCBiLCB4LCBzLCB0KTtcbn1cblxuZnVuY3Rpb24gZ2coYTogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlciwgZDogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIHJldHVybiBjbW4oKGIgJiBkKSB8IChjICYgfmQpLCBhLCBiLCB4LCBzLCB0KTtcbn1cblxuZnVuY3Rpb24gaGgoYTogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlciwgZDogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIHJldHVybiBjbW4oYiBeIGMgXiBkLCBhLCBiLCB4LCBzLCB0KTtcbn1cblxuZnVuY3Rpb24gaWkoYTogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlciwgZDogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIHJldHVybiBjbW4oYyBeIChiIHwgfmQpLCBhLCBiLCB4LCBzLCB0KTtcbn1cblxuZnVuY3Rpb24gaXNFbXB0eURhdGEoZGF0YTogU291cmNlRGF0YSk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZGF0YS5sZW5ndGggPT09IDA7XG4gIH1cblxuICByZXR1cm4gZGF0YS5ieXRlTGVuZ3RoID09PSAwO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0VG9CdWZmZXIoZGF0YTogU291cmNlRGF0YSk6IFVpbnQ4QXJyYXkge1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZnJvbVV0ZjgoZGF0YSk7XG4gIH1cblxuICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGRhdGEpKSB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGRhdGEuYnVmZmVyLCBkYXRhLmJ5dGVPZmZzZXQsIGRhdGEuYnl0ZUxlbmd0aCAvIFVpbnQ4QXJyYXkuQllURVNfUEVSX0VMRU1FTlQpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGRhdGEpO1xufVxuIl19","import { __assign } from \"tslib\";\n// Partition default templates\nvar AWS_TEMPLATE = \"s3.{region}.amazonaws.com\";\nvar AWS_CN_TEMPLATE = \"s3.{region}.amazonaws.com.cn\";\nvar AWS_ISO_TEMPLATE = \"s3.{region}.c2s.ic.gov\";\nvar AWS_ISO_B_TEMPLATE = \"s3.{region}.sc2s.sgov.gov\";\nvar AWS_US_GOV_TEMPLATE = \"s3.{region}.amazonaws.com\";\n// Partition regions\nvar AWS_REGIONS = new Set([\n \"af-south-1\",\n \"ap-east-1\",\n \"ap-northeast-1\",\n \"ap-northeast-2\",\n \"ap-south-1\",\n \"ap-southeast-1\",\n \"ap-southeast-2\",\n \"ca-central-1\",\n \"eu-central-1\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-west-1\",\n \"eu-west-2\",\n \"eu-west-3\",\n \"me-south-1\",\n \"sa-east-1\",\n \"us-east-1\",\n \"us-east-2\",\n \"us-west-1\",\n \"us-west-2\",\n]);\nvar AWS_CN_REGIONS = new Set([\"cn-north-1\", \"cn-northwest-1\"]);\nvar AWS_ISO_REGIONS = new Set([\"us-iso-east-1\"]);\nvar AWS_ISO_B_REGIONS = new Set([\"us-isob-east-1\"]);\nvar AWS_US_GOV_REGIONS = new Set([\"us-gov-east-1\", \"us-gov-west-1\"]);\nexport var defaultRegionInfoProvider = function (region, options) {\n var regionInfo = undefined;\n switch (region) {\n // First, try to match exact region names.\n case \"af-south-1\":\n regionInfo = {\n hostname: \"s3.af-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-east-1\":\n regionInfo = {\n hostname: \"s3.ap-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-1\":\n regionInfo = {\n hostname: \"s3.ap-northeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-2\":\n regionInfo = {\n hostname: \"s3.ap-northeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-south-1\":\n regionInfo = {\n hostname: \"s3.ap-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-1\":\n regionInfo = {\n hostname: \"s3.ap-southeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-2\":\n regionInfo = {\n hostname: \"s3.ap-southeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"aws-global\":\n regionInfo = {\n hostname: \"s3.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\",\n };\n break;\n case \"ca-central-1\":\n regionInfo = {\n hostname: \"s3.ca-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"cn-north-1\":\n regionInfo = {\n hostname: \"s3.cn-north-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"cn-northwest-1\":\n regionInfo = {\n hostname: \"s3.cn-northwest-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"eu-central-1\":\n regionInfo = {\n hostname: \"s3.eu-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-north-1\":\n regionInfo = {\n hostname: \"s3.eu-north-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-south-1\":\n regionInfo = {\n hostname: \"s3.eu-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-1\":\n regionInfo = {\n hostname: \"s3.eu-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-2\":\n regionInfo = {\n hostname: \"s3.eu-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-3\":\n regionInfo = {\n hostname: \"s3.eu-west-3.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"fips-us-gov-west-1\":\n regionInfo = {\n hostname: \"s3-fips.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-west-1\",\n };\n break;\n case \"me-south-1\":\n regionInfo = {\n hostname: \"s3.me-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"s3-external-1\":\n regionInfo = {\n hostname: \"s3-external-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\",\n };\n break;\n case \"sa-east-1\":\n regionInfo = {\n hostname: \"s3.sa-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-1\":\n regionInfo = {\n hostname: \"s3.us-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-2\":\n regionInfo = {\n hostname: \"s3.us-east-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-gov-east-1\":\n regionInfo = {\n hostname: \"s3.us-gov-east-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n };\n break;\n case \"us-gov-west-1\":\n regionInfo = {\n hostname: \"s3.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n };\n break;\n case \"us-iso-east-1\":\n regionInfo = {\n hostname: \"s3.us-iso-east-1.c2s.ic.gov\",\n partition: \"aws-iso\",\n };\n break;\n case \"us-isob-east-1\":\n regionInfo = {\n hostname: \"s3.us-isob-east-1.sc2s.sgov.gov\",\n partition: \"aws-iso-b\",\n };\n break;\n case \"us-west-1\":\n regionInfo = {\n hostname: \"s3.us-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-west-2\":\n regionInfo = {\n hostname: \"s3.us-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n // Next, try to match partition endpoints.\n default:\n if (AWS_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n if (AWS_CN_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_CN_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-cn\",\n };\n }\n if (AWS_ISO_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso\",\n };\n }\n if (AWS_ISO_B_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_B_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso-b\",\n };\n }\n if (AWS_US_GOV_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_US_GOV_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-us-gov\",\n };\n }\n // Finally, assume it's an AWS partition endpoint.\n if (regionInfo === undefined) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n }\n return Promise.resolve(__assign({ signingService: \"s3\" }, regionInfo));\n};\n//# sourceMappingURL=endpoints.js.map","import { defaultRegionInfoProvider } from \"./endpoints\";\nimport { parseUrl } from \"@aws-sdk/url-parser\";\n/**\n * @internal\n */\nexport var ClientSharedValues = {\n apiVersion: \"2006-03-01\",\n disableHostPrefix: false,\n logger: {},\n regionInfoProvider: defaultRegionInfoProvider,\n serviceId: \"S3\",\n signingEscapePath: false,\n urlParser: parseUrl,\n useArnRegion: false,\n};\n//# sourceMappingURL=runtimeConfig.shared.js.map","import { __assign } from \"tslib\";\nimport packageInfo from \"./package.json\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { eventStreamSerdeProvider } from \"@aws-sdk/eventstream-serde-browser\";\nimport { FetchHttpHandler, streamCollector } from \"@aws-sdk/fetch-http-handler\";\nimport { blobHasher as streamHasher } from \"@aws-sdk/hash-blob-browser\";\nimport { invalidProvider } from \"@aws-sdk/invalid-dependency\";\nimport { Md5 } from \"@aws-sdk/md5-js\";\nimport { DEFAULT_MAX_ATTEMPTS } from \"@aws-sdk/middleware-retry\";\nimport { fromBase64, toBase64 } from \"@aws-sdk/util-base64-browser\";\nimport { calculateBodyLength } from \"@aws-sdk/util-body-length-browser\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { fromUtf8, toUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { ClientSharedValues } from \"./runtimeConfig.shared\";\n/**\n * @internal\n */\nexport var ClientDefaultValues = __assign(__assign({}, ClientSharedValues), { runtime: \"browser\", base64Decoder: fromBase64, base64Encoder: toBase64, bodyLengthChecker: calculateBodyLength, credentialDefaultProvider: function (_) { return function () { return Promise.reject(new Error(\"Credential is missing\")); }; }, defaultUserAgentProvider: defaultUserAgent({\n serviceId: ClientSharedValues.serviceId,\n clientVersion: packageInfo.version,\n }), eventStreamSerdeProvider: eventStreamSerdeProvider, maxAttempts: DEFAULT_MAX_ATTEMPTS, md5: Md5, region: invalidProvider(\"Region is missing\"), requestHandler: new FetchHttpHandler(), sha256: Sha256, streamCollector: streamCollector,\n streamHasher: streamHasher, utf8Decoder: fromUtf8, utf8Encoder: toUtf8 });\n//# sourceMappingURL=runtimeConfig.browser.js.map","import { EventStreamMarshaller } from \"./EventStreamMarshaller\";\n/** browser event stream serde utils provider */\nexport var eventStreamSerdeProvider = function (options) { return new EventStreamMarshaller(options); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsZ0RBQWdEO0FBQ2hELE1BQU0sQ0FBQyxJQUFNLHdCQUF3QixHQUE2QixVQUFDLE9BSWxFLElBQUssT0FBQSxJQUFJLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxFQUFsQyxDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVjb2RlciwgRW5jb2RlciwgRXZlbnRTaWduZXIsIEV2ZW50U3RyZWFtU2VyZGVQcm92aWRlciwgUHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgRXZlbnRTdHJlYW1NYXJzaGFsbGVyIH0gZnJvbSBcIi4vRXZlbnRTdHJlYW1NYXJzaGFsbGVyXCI7XG5cbi8qKiBicm93c2VyIGV2ZW50IHN0cmVhbSBzZXJkZSB1dGlscyBwcm92aWRlciAqL1xuZXhwb3J0IGNvbnN0IGV2ZW50U3RyZWFtU2VyZGVQcm92aWRlcjogRXZlbnRTdHJlYW1TZXJkZVByb3ZpZGVyID0gKG9wdGlvbnM6IHtcbiAgdXRmOEVuY29kZXI6IEVuY29kZXI7XG4gIHV0ZjhEZWNvZGVyOiBEZWNvZGVyO1xuICBldmVudFNpZ25lcjogRXZlbnRTaWduZXIgfCBQcm92aWRlcjxFdmVudFNpZ25lcj47XG59KSA9PiBuZXcgRXZlbnRTdHJlYW1NYXJzaGFsbGVyKG9wdGlvbnMpO1xuIl19","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign } from \"tslib\";\nexport var resolveEventStreamSerdeConfig = function (input) { return (__assign(__assign({}, input), { eventStreamMarshaller: input.eventStreamSerdeProvider(input) })); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRTdHJlYW1TZXJkZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FdmVudFN0cmVhbVNlcmRlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFZQSxNQUFNLENBQUMsSUFBTSw2QkFBNkIsR0FBRyxVQUMzQyxLQUEyRCxJQUNwQixPQUFBLHVCQUNwQyxLQUFLLEtBQ1IscUJBQXFCLEVBQUUsS0FBSyxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxJQUM1RCxFQUh1QyxDQUd2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRTdHJlYW1NYXJzaGFsbGVyLCBFdmVudFN0cmVhbVNlcmRlUHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFN0cmVhbVNlcmRlSW5wdXRDb25maWcge31cblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFN0cmVhbVNlcmRlUmVzb2x2ZWRDb25maWcge1xuICBldmVudFN0cmVhbU1hcnNoYWxsZXI6IEV2ZW50U3RyZWFtTWFyc2hhbGxlcjtcbn1cblxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIGV2ZW50U3RyZWFtU2VyZGVQcm92aWRlcjogRXZlbnRTdHJlYW1TZXJkZVByb3ZpZGVyO1xufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZUV2ZW50U3RyZWFtU2VyZGVDb25maWcgPSA8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgRXZlbnRTdHJlYW1TZXJkZUlucHV0Q29uZmlnXG4pOiBUICYgRXZlbnRTdHJlYW1TZXJkZVJlc29sdmVkQ29uZmlnID0+ICh7XG4gIC4uLmlucHV0LFxuICBldmVudFN0cmVhbU1hcnNoYWxsZXI6IGlucHV0LmV2ZW50U3RyZWFtU2VyZGVQcm92aWRlcihpbnB1dCksXG59KTtcbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nexport function addExpectContinueMiddleware(options) {\n var _this = this;\n return function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var request;\n return __generator(this, function (_a) {\n request = args.request;\n if (HttpRequest.isInstance(request) && request.body && options.runtime === \"node\") {\n request.headers = __assign(__assign({}, request.headers), { Expect: \"100-continue\" });\n }\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n });\n }); }; };\n}\nexport var addExpectContinueMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_EXPECT_HEADER\", \"EXPECT_HEADER\"],\n name: \"addExpectContinueMiddleware\",\n override: true,\n};\nexport var getAddExpectContinuePlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(addExpectContinueMiddleware(options), addExpectContinueMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQWVyRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsT0FBMkI7SUFBdkUsaUJBZ0JDO0lBZkMsT0FBTyxVQUFnQyxJQUErQixJQUFnQyxPQUFBLFVBQ3BHLElBQWdDOzs7WUFFeEIsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFVO1lBQ3pCLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFO2dCQUNqRixPQUFPLENBQUMsT0FBTyx5QkFDVixPQUFPLENBQUMsT0FBTyxLQUNsQixNQUFNLEVBQUUsY0FBYyxHQUN2QixDQUFDO2FBQ0g7WUFDRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOztTQUNKLEVBZHFHLENBY3JHLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLElBQU0sa0NBQWtDLEdBQXdCO0lBQ3JFLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDO0lBQzVDLElBQUksRUFBRSw2QkFBNkI7SUFDbkMsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sMEJBQTBCLEdBQUcsVUFBQyxPQUEyQixJQUEwQixPQUFBLENBQUM7SUFDL0YsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxFQUFFLGtDQUFrQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztDQUNGLENBQUMsRUFKOEYsQ0FJOUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEJ1aWxkSGFuZGxlcixcbiAgQnVpbGRIYW5kbGVyQXJndW1lbnRzLFxuICBCdWlsZEhhbmRsZXJPcHRpb25zLFxuICBCdWlsZEhhbmRsZXJPdXRwdXQsXG4gIEJ1aWxkTWlkZGxld2FyZSxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICBydW50aW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmUob3B0aW9uczogUHJldmlvdXNseVJlc29sdmVkKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KG5leHQ6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4pOiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgICBhcmdzOiBCdWlsZEhhbmRsZXJBcmd1bWVudHM8YW55PlxuICApOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgIGlmIChIdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpICYmIHJlcXVlc3QuYm9keSAmJiBvcHRpb25zLnJ1bnRpbWUgPT09IFwibm9kZVwiKSB7XG4gICAgICByZXF1ZXN0LmhlYWRlcnMgPSB7XG4gICAgICAgIC4uLnJlcXVlc3QuaGVhZGVycyxcbiAgICAgICAgRXhwZWN0OiBcIjEwMC1jb250aW51ZVwiLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQoe1xuICAgICAgLi4uYXJncyxcbiAgICAgIHJlcXVlc3QsXG4gICAgfSk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHRhZ3M6IFtcIlNFVF9FWFBFQ1RfSEVBREVSXCIsIFwiRVhQRUNUX0hFQURFUlwiXSxcbiAgbmFtZTogXCJhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmVcIixcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QWRkRXhwZWN0Q29udGludWVQbHVnaW4gPSAob3B0aW9uczogUHJldmlvdXNseVJlc29sdmVkKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZChhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmUob3B0aW9ucyksIGFkZEV4cGVjdENvbnRpbnVlTWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=","import { __assign } from \"tslib\";\nimport { Encryption, } from \"./models_0\";\nimport { SENSITIVE_STRING } from \"@aws-sdk/smithy-client\";\nexport var MetadataEntry;\n(function (MetadataEntry) {\n MetadataEntry.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MetadataEntry || (MetadataEntry = {}));\nexport var S3Location;\n(function (S3Location) {\n S3Location.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Encryption && { Encryption: Encryption.filterSensitiveLog(obj.Encryption) }))); };\n})(S3Location || (S3Location = {}));\nexport var OutputLocation;\n(function (OutputLocation) {\n OutputLocation.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.S3 && { S3: S3Location.filterSensitiveLog(obj.S3) }))); };\n})(OutputLocation || (OutputLocation = {}));\nexport var FileHeaderInfo;\n(function (FileHeaderInfo) {\n FileHeaderInfo[\"IGNORE\"] = \"IGNORE\";\n FileHeaderInfo[\"NONE\"] = \"NONE\";\n FileHeaderInfo[\"USE\"] = \"USE\";\n})(FileHeaderInfo || (FileHeaderInfo = {}));\nexport var CSVInput;\n(function (CSVInput) {\n CSVInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CSVInput || (CSVInput = {}));\nexport var JSONType;\n(function (JSONType) {\n JSONType[\"DOCUMENT\"] = \"DOCUMENT\";\n JSONType[\"LINES\"] = \"LINES\";\n})(JSONType || (JSONType = {}));\nexport var JSONInput;\n(function (JSONInput) {\n JSONInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(JSONInput || (JSONInput = {}));\nexport var ParquetInput;\n(function (ParquetInput) {\n ParquetInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ParquetInput || (ParquetInput = {}));\nexport var InputSerialization;\n(function (InputSerialization) {\n InputSerialization.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InputSerialization || (InputSerialization = {}));\nexport var QuoteFields;\n(function (QuoteFields) {\n QuoteFields[\"ALWAYS\"] = \"ALWAYS\";\n QuoteFields[\"ASNEEDED\"] = \"ASNEEDED\";\n})(QuoteFields || (QuoteFields = {}));\nexport var CSVOutput;\n(function (CSVOutput) {\n CSVOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CSVOutput || (CSVOutput = {}));\nexport var JSONOutput;\n(function (JSONOutput) {\n JSONOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(JSONOutput || (JSONOutput = {}));\nexport var OutputSerialization;\n(function (OutputSerialization) {\n OutputSerialization.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(OutputSerialization || (OutputSerialization = {}));\nexport var SelectParameters;\n(function (SelectParameters) {\n SelectParameters.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SelectParameters || (SelectParameters = {}));\nexport var RestoreRequestType;\n(function (RestoreRequestType) {\n RestoreRequestType[\"SELECT\"] = \"SELECT\";\n})(RestoreRequestType || (RestoreRequestType = {}));\nexport var RestoreRequest;\n(function (RestoreRequest) {\n RestoreRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.OutputLocation && { OutputLocation: OutputLocation.filterSensitiveLog(obj.OutputLocation) }))); };\n})(RestoreRequest || (RestoreRequest = {}));\nexport var RestoreObjectRequest;\n(function (RestoreObjectRequest) {\n RestoreObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.RestoreRequest && { RestoreRequest: RestoreRequest.filterSensitiveLog(obj.RestoreRequest) }))); };\n})(RestoreObjectRequest || (RestoreObjectRequest = {}));\nexport var ContinuationEvent;\n(function (ContinuationEvent) {\n ContinuationEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ContinuationEvent || (ContinuationEvent = {}));\nexport var EndEvent;\n(function (EndEvent) {\n EndEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(EndEvent || (EndEvent = {}));\nexport var Progress;\n(function (Progress) {\n Progress.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Progress || (Progress = {}));\nexport var ProgressEvent;\n(function (ProgressEvent) {\n ProgressEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ProgressEvent || (ProgressEvent = {}));\nexport var RecordsEvent;\n(function (RecordsEvent) {\n RecordsEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RecordsEvent || (RecordsEvent = {}));\nexport var Stats;\n(function (Stats) {\n Stats.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Stats || (Stats = {}));\nexport var StatsEvent;\n(function (StatsEvent) {\n StatsEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StatsEvent || (StatsEvent = {}));\nexport var SelectObjectContentEventStream;\n(function (SelectObjectContentEventStream) {\n SelectObjectContentEventStream.visit = function (value, visitor) {\n if (value.Records !== undefined)\n return visitor.Records(value.Records);\n if (value.Stats !== undefined)\n return visitor.Stats(value.Stats);\n if (value.Progress !== undefined)\n return visitor.Progress(value.Progress);\n if (value.Cont !== undefined)\n return visitor.Cont(value.Cont);\n if (value.End !== undefined)\n return visitor.End(value.End);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n SelectObjectContentEventStream.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Records !== undefined)\n return { Records: RecordsEvent.filterSensitiveLog(obj.Records) };\n if (obj.Stats !== undefined)\n return { Stats: StatsEvent.filterSensitiveLog(obj.Stats) };\n if (obj.Progress !== undefined)\n return { Progress: ProgressEvent.filterSensitiveLog(obj.Progress) };\n if (obj.Cont !== undefined)\n return { Cont: ContinuationEvent.filterSensitiveLog(obj.Cont) };\n if (obj.End !== undefined)\n return { End: EndEvent.filterSensitiveLog(obj.End) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(SelectObjectContentEventStream || (SelectObjectContentEventStream = {}));\nexport var SelectObjectContentOutput;\n(function (SelectObjectContentOutput) {\n SelectObjectContentOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Payload && { Payload: \"STREAMING_CONTENT\" }))); };\n})(SelectObjectContentOutput || (SelectObjectContentOutput = {}));\nexport var RequestProgress;\n(function (RequestProgress) {\n RequestProgress.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RequestProgress || (RequestProgress = {}));\nexport var ScanRange;\n(function (ScanRange) {\n ScanRange.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ScanRange || (ScanRange = {}));\nexport var SelectObjectContentRequest;\n(function (SelectObjectContentRequest) {\n SelectObjectContentRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }))); };\n})(SelectObjectContentRequest || (SelectObjectContentRequest = {}));\nexport var UploadPartOutput;\n(function (UploadPartOutput) {\n UploadPartOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(UploadPartOutput || (UploadPartOutput = {}));\nexport var UploadPartRequest;\n(function (UploadPartRequest) {\n UploadPartRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }))); };\n})(UploadPartRequest || (UploadPartRequest = {}));\nexport var CopyPartResult;\n(function (CopyPartResult) {\n CopyPartResult.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CopyPartResult || (CopyPartResult = {}));\nexport var UploadPartCopyOutput;\n(function (UploadPartCopyOutput) {\n UploadPartCopyOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(UploadPartCopyOutput || (UploadPartCopyOutput = {}));\nexport var UploadPartCopyRequest;\n(function (UploadPartCopyRequest) {\n UploadPartCopyRequest.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING })), (obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: SENSITIVE_STRING }))); };\n})(UploadPartCopyRequest || (UploadPartCopyRequest = {}));\n//# sourceMappingURL=models_1.js.map","import { __assign, __extends } from \"tslib\";\nimport { ClientDefaultValues as __ClientDefaultValues } from \"./runtimeConfig\";\nimport { resolveEndpointsConfig, resolveRegionConfig, } from \"@aws-sdk/config-resolver\";\nimport { resolveEventStreamSerdeConfig, } from \"@aws-sdk/eventstream-serde-config-resolver\";\nimport { resolveBucketEndpointConfig, } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport { getAddExpectContinuePlugin } from \"@aws-sdk/middleware-expect-continue\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@aws-sdk/middleware-retry\";\nimport { getUseRegionalEndpointPlugin, getValidateBucketNamePlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getAwsAuthPlugin, resolveAwsAuthConfig, } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { Client as __Client, } from \"@aws-sdk/smithy-client\";\n/**\n *

\n */\nvar S3Client = /** @class */ (function (_super) {\n __extends(S3Client, _super);\n function S3Client(configuration) {\n var _this = this;\n var _config_0 = __assign(__assign({}, __ClientDefaultValues), configuration);\n var _config_1 = resolveRegionConfig(_config_0);\n var _config_2 = resolveEndpointsConfig(_config_1);\n var _config_3 = resolveAwsAuthConfig(_config_2);\n var _config_4 = resolveRetryConfig(_config_3);\n var _config_5 = resolveHostHeaderConfig(_config_4);\n var _config_6 = resolveBucketEndpointConfig(_config_5);\n var _config_7 = resolveUserAgentConfig(_config_6);\n var _config_8 = resolveEventStreamSerdeConfig(_config_7);\n _this = _super.call(this, _config_8) || this;\n _this.config = _config_8;\n _this.middlewareStack.use(getAwsAuthPlugin(_this.config));\n _this.middlewareStack.use(getRetryPlugin(_this.config));\n _this.middlewareStack.use(getContentLengthPlugin(_this.config));\n _this.middlewareStack.use(getHostHeaderPlugin(_this.config));\n _this.middlewareStack.use(getLoggerPlugin(_this.config));\n _this.middlewareStack.use(getValidateBucketNamePlugin(_this.config));\n _this.middlewareStack.use(getUseRegionalEndpointPlugin(_this.config));\n _this.middlewareStack.use(getAddExpectContinuePlugin(_this.config));\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n return _this;\n }\n S3Client.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return S3Client;\n}(__Client));\nexport { S3Client };\n//# sourceMappingURL=S3Client.js.map","import { __assign } from \"tslib\";\nexport function resolveBucketEndpointConfig(input) {\n var _a = input.bucketEndpoint, bucketEndpoint = _a === void 0 ? false : _a, _b = input.forcePathStyle, forcePathStyle = _b === void 0 ? false : _b, _c = input.useAccelerateEndpoint, useAccelerateEndpoint = _c === void 0 ? false : _c, _d = input.useDualstackEndpoint, useDualstackEndpoint = _d === void 0 ? false : _d, _e = input.useArnRegion, useArnRegion = _e === void 0 ? false : _e;\n return __assign(__assign({}, input), { bucketEndpoint: bucketEndpoint,\n forcePathStyle: forcePathStyle,\n useAccelerateEndpoint: useAccelerateEndpoint,\n useDualstackEndpoint: useDualstackEndpoint, useArnRegion: typeof useArnRegion === \"function\" ? useArnRegion : function () { return Promise.resolve(useArnRegion); } });\n}\nexport var NODE_USE_ARN_REGION_ENV_NAME = \"AWS_S3_USE_ARN_REGION\";\nexport var NODE_USE_ARN_REGION_INI_NAME = \"s3_use_arn_region\";\n/**\n * Config to load useArnRegion from environment variables and shared INI files\n *\n * @api private\n */\nexport var NODE_USE_ARN_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) {\n if (!Object.prototype.hasOwnProperty.call(env, NODE_USE_ARN_REGION_ENV_NAME))\n return undefined;\n if (env[NODE_USE_ARN_REGION_ENV_NAME] === \"true\")\n return true;\n if (env[NODE_USE_ARN_REGION_ENV_NAME] === \"false\")\n return false;\n throw new Error(\"Cannot load env \" + NODE_USE_ARN_REGION_ENV_NAME + \". Expected \\\"true\\\" or \\\"false\\\", got \" + env[NODE_USE_ARN_REGION_ENV_NAME] + \".\");\n },\n configFileSelector: function (profile) {\n if (!Object.prototype.hasOwnProperty.call(profile, NODE_USE_ARN_REGION_INI_NAME))\n return undefined;\n if (profile[NODE_USE_ARN_REGION_INI_NAME] === \"true\")\n return true;\n if (profile[NODE_USE_ARN_REGION_INI_NAME] === \"false\")\n return false;\n throw new Error(\"Cannot load shared config entry \" + NODE_USE_ARN_REGION_INI_NAME + \". Expected \\\"true\\\" or \\\"false\\\", got \" + profile[NODE_USE_ARN_REGION_INI_NAME] + \".\");\n },\n default: false,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQTJDQSxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLEtBQXlEO0lBR3ZELElBQUEsS0FLRSxLQUFLLGVBTGUsRUFBdEIsY0FBYyxtQkFBRyxLQUFLLEtBQUEsRUFDdEIsS0FJRSxLQUFLLGVBSmUsRUFBdEIsY0FBYyxtQkFBRyxLQUFLLEtBQUEsRUFDdEIsS0FHRSxLQUFLLHNCQUhzQixFQUE3QixxQkFBcUIsbUJBQUcsS0FBSyxLQUFBLEVBQzdCLEtBRUUsS0FBSyxxQkFGcUIsRUFBNUIsb0JBQW9CLG1CQUFHLEtBQUssS0FBQSxFQUM1QixLQUNFLEtBQUssYUFEYSxFQUFwQixZQUFZLG1CQUFHLEtBQUssS0FBQSxDQUNaO0lBQ1YsNkJBQ0ssS0FBSyxLQUNSLGNBQWMsZ0JBQUE7UUFDZCxjQUFjLGdCQUFBO1FBQ2QscUJBQXFCLHVCQUFBO1FBQ3JCLG9CQUFvQixzQkFBQSxFQUNwQixZQUFZLEVBQUUsT0FBTyxZQUFZLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQU0sT0FBQSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUE3QixDQUE2QixJQUNyRztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsSUFBTSw0QkFBNEIsR0FBRyx1QkFBdUIsQ0FBQztBQUNwRSxNQUFNLENBQUMsSUFBTSw0QkFBNEIsR0FBRyxtQkFBbUIsQ0FBQztBQUVoRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLElBQU0sa0NBQWtDLEdBQW1DO0lBQ2hGLDJCQUEyQixFQUFFLFVBQUMsR0FBc0I7UUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUMvRixJQUFJLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5RCxJQUFJLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNoRSxNQUFNLElBQUksS0FBSyxDQUNiLHFCQUFtQiw0QkFBNEIsOENBQXFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxNQUFHLENBQ3pILENBQUM7SUFDSixDQUFDO0lBQ0Qsa0JBQWtCLEVBQUUsVUFBQyxPQUFPO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDRCQUE0QixDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDbkcsSUFBSSxPQUFPLENBQUMsNEJBQTRCLENBQUMsS0FBSyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDbEUsSUFBSSxPQUFPLENBQUMsNEJBQTRCLENBQUMsS0FBSyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FDYixxQ0FBbUMsNEJBQTRCLDhDQUFxQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsTUFBRyxDQUM3SSxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sRUFBRSxLQUFLO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvYWRlZENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gXCJAYXdzLXNkay9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgUHJvdmlkZXIsIFJlZ2lvbkluZm9Qcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcHJvdmlkZWQgZW5kcG9pbnQgYWRkcmVzc2VzIGFuIGluZGl2aWR1YWwgYnVja2V0LlxuICAgKi9cbiAgYnVja2V0RW5kcG9pbnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byBmb3JjZSBwYXRoIHN0eWxlIFVSTHMgZm9yIFMzIG9iamVjdHMgKGUuZy4sIGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS88YnVja2V0TmFtZT4vPGtleT4gaW5zdGVhZCBvZiBodHRwczovLzxidWNrZXROYW1lPi5zMy5hbWF6b25hd3MuY29tLzxrZXk+XG4gICAqL1xuICBmb3JjZVBhdGhTdHlsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSB0aGUgUzMgVHJhbnNmZXIgQWNjZWxlcmF0aW9uIGVuZHBvaW50IGJ5IGRlZmF1bHRcbiAgICovXG4gIHVzZUFjY2VsZXJhdGVFbmRwb2ludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGVzIElQdjYvSVB2NCBkdWFsc3RhY2sgZW5kcG9pbnQuIFdoZW4gYSBETlMgbG9va3VwIGlzIHBlcmZvcm1lZCBvbiBhbiBlbmRwb2ludCBvZiB0aGlzIHR5cGUsIGl0IHJldHVybnMgYW4g4oCcQeKAnSByZWNvcmQgd2l0aCBhbiBJUHY0IGFkZHJlc3MgYW5kIGFuIOKAnEFBQUHigJ0gcmVjb3JkIHdpdGggYW4gSVB2NiBhZGRyZXNzLiBJbiBtb3N0IGNhc2VzIHRoZSBuZXR3b3JrIHN0YWNrIGluIHRoZSBjbGllbnQgZW52aXJvbm1lbnQgd2lsbCBhdXRvbWF0aWNhbGx5IHByZWZlciB0aGUgQUFBQSByZWNvcmQgYW5kIG1ha2UgYSBjb25uZWN0aW9uIHVzaW5nIHRoZSBJUHY2IGFkZHJlc3MuIE5vdGUsIGhvd2V2ZXIsIHRoYXQgY3VycmVudGx5IG9uIFdpbmRvd3MsIHRoZSBJUHY0IGFkZHJlc3Mgd2lsbCBiZSBwcmVmZXJyZWQuXG4gICAqL1xuICB1c2VEdWFsc3RhY2tFbmRwb2ludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIG92ZXJyaWRlIHRoZSByZXF1ZXN0IHJlZ2lvbiB3aXRoIHRoZSByZWdpb24gaW5mZXJyZWQgZnJvbSByZXF1ZXN0ZWQgcmVzb3VyY2UncyBBUk4uIERlZmF1bHRzIHRvIGZhbHNlXG4gICAqL1xuICB1c2VBcm5SZWdpb24/OiBib29sZWFuIHwgUHJvdmlkZXI8Ym9vbGVhbj47XG59XG5cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuO1xuICByZWdpb246IFByb3ZpZGVyPHN0cmluZz47XG4gIHJlZ2lvbkluZm9Qcm92aWRlcjogUmVnaW9uSW5mb1Byb3ZpZGVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcge1xuICBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuO1xuICBidWNrZXRFbmRwb2ludDogYm9vbGVhbjtcbiAgZm9yY2VQYXRoU3R5bGU6IGJvb2xlYW47XG4gIHVzZUFjY2VsZXJhdGVFbmRwb2ludDogYm9vbGVhbjtcbiAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGJvb2xlYW47XG4gIHVzZUFyblJlZ2lvbjogUHJvdmlkZXI8Ym9vbGVhbj47XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcmVnaW9uSW5mb1Byb3ZpZGVyOiBSZWdpb25JbmZvUHJvdmlkZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQnVja2V0RW5kcG9pbnRDb25maWc8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgQnVja2V0RW5kcG9pbnRJbnB1dENvbmZpZ1xuKTogVCAmIEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcge1xuICBjb25zdCB7XG4gICAgYnVja2V0RW5kcG9pbnQgPSBmYWxzZSxcbiAgICBmb3JjZVBhdGhTdHlsZSA9IGZhbHNlLFxuICAgIHVzZUFjY2VsZXJhdGVFbmRwb2ludCA9IGZhbHNlLFxuICAgIHVzZUR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gICAgdXNlQXJuUmVnaW9uID0gZmFsc2UsXG4gIH0gPSBpbnB1dDtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBidWNrZXRFbmRwb2ludCxcbiAgICBmb3JjZVBhdGhTdHlsZSxcbiAgICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgdXNlQXJuUmVnaW9uOiB0eXBlb2YgdXNlQXJuUmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyB1c2VBcm5SZWdpb24gOiAoKSA9PiBQcm9taXNlLnJlc29sdmUodXNlQXJuUmVnaW9uKSxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUgPSBcIkFXU19TM19VU0VfQVJOX1JFR0lPTlwiO1xuZXhwb3J0IGNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUgPSBcInMzX3VzZV9hcm5fcmVnaW9uXCI7XG5cbi8qKlxuICogQ29uZmlnIHRvIGxvYWQgdXNlQXJuUmVnaW9uIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZCBzaGFyZWQgSU5JIGZpbGVzXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBOT0RFX1VTRV9BUk5fUkVHSU9OX0NPTkZJR19PUFRJT05TOiBMb2FkZWRDb25maWdTZWxlY3RvcnM8Ym9vbGVhbj4gPSB7XG4gIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudjogTm9kZUpTLlByb2Nlc3NFbnYpID0+IHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlbnYsIE5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChlbnZbTk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRV0gPT09IFwidHJ1ZVwiKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoZW52W05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUVdID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGxvYWQgZW52ICR7Tk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7ZW52W05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUVdfS5gXG4gICAgKTtcbiAgfSxcbiAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4ge1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb2ZpbGUsIE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9maWxlW05PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUVdID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XG4gICAgaWYgKHByb2ZpbGVbTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRV0gPT09IFwiZmFsc2VcIikgcmV0dXJuIGZhbHNlO1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBDYW5ub3QgbG9hZCBzaGFyZWQgY29uZmlnIGVudHJ5ICR7Tk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7cHJvZmlsZVtOT0RFX1VTRV9BUk5fUkVHSU9OX0lOSV9OQU1FXX0uYFxuICAgICk7XG4gIH0sXG4gIGRlZmF1bHQ6IGZhbHNlLFxufTtcbiJdfQ==","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Credentials, Logger, getAmplifyUserAgent, } from '@aws-amplify/core';\nimport { S3Client } from '@aws-sdk/client-s3';\nimport { AxiosHttpHandler } from '../providers/axios-http-handler';\nimport { localTestingStorageEndpoint, SET_CONTENT_LENGTH_HEADER, } from './StorageConstants';\nvar logger = new Logger('S3ClientUtils');\n// placeholder credentials in order to satisfy type requirement, always results in 403 when used\nvar INVALID_CRED = { accessKeyId: '', secretAccessKey: '' };\nexport var getPrefix = function (config) {\n var credentials = config.credentials, level = config.level, customPrefix = config.customPrefix, identityId = config.identityId;\n var resolvedCustomPrefix = customPrefix || {};\n var resolvedIdentityId = identityId || credentials.identityId;\n var privatePath = (resolvedCustomPrefix.private !== undefined\n ? resolvedCustomPrefix.private\n : 'private/') +\n resolvedIdentityId +\n '/';\n var protectedPath = (resolvedCustomPrefix.protected !== undefined\n ? resolvedCustomPrefix.protected\n : 'protected/') +\n resolvedIdentityId +\n '/';\n var publicPath = resolvedCustomPrefix.public !== undefined\n ? resolvedCustomPrefix.public\n : 'public/';\n switch (level) {\n case 'private':\n return privatePath;\n case 'protected':\n return protectedPath;\n default:\n return publicPath;\n }\n};\nexport var createPrefixMiddleware = function (opt, key) { return function (next, _context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var credentials, cred, prefix, clonedInput, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Credentials.get()];\n case 1:\n credentials = _a.sent();\n cred = Credentials.shear(credentials);\n prefix = getPrefix(__assign(__assign({}, opt), { credentials: cred }));\n clonedInput = Object.assign({}, args.input);\n if (Object.prototype.hasOwnProperty.call(args.input, 'Key')) {\n clonedInput.Key = prefix + key;\n args.input = clonedInput;\n }\n else if (Object.prototype.hasOwnProperty.call(args.input, 'Prefix')) {\n clonedInput.Prefix = prefix + key;\n args.input = clonedInput;\n }\n result = next(args);\n return [2 /*return*/, result];\n }\n });\n}); }; }; };\nvar isTimeSkewedError = function (err) {\n return err.ServerTime &&\n typeof err.Code === 'string' &&\n err.Code === 'RequestTimeTooSkewed';\n};\n// we want to take the S3Client config in parameter so we can modify it's systemClockOffset\nexport var autoAdjustClockskewMiddleware = function (config) { return function (next, _context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var err_1, serverDate;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, next(args)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n err_1 = _a.sent();\n if (isTimeSkewedError(err_1)) {\n serverDate = new Date(err_1.ServerTime);\n config.systemClockOffset = serverDate.getTime() - Date.now();\n }\n throw err_1;\n case 3: return [2 /*return*/];\n }\n });\n}); }; }; };\nexport var autoAdjustClockskewMiddlewareOptions = {\n step: 'finalizeRequest',\n name: 'autoAdjustClockskewMiddleware',\n};\nexport var prefixMiddlewareOptions = {\n step: 'initialize',\n name: 'addPrefixMiddleware',\n};\nexport var credentialsProvider = function () { return __awaiter(void 0, void 0, void 0, function () {\n var credentials, cred, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Credentials.get()];\n case 1:\n credentials = _a.sent();\n if (!credentials)\n return [2 /*return*/, INVALID_CRED];\n cred = Credentials.shear(credentials);\n logger.debug('credentials provider get credentials', cred);\n return [2 /*return*/, cred];\n case 2:\n error_1 = _a.sent();\n logger.warn('credentials provider error', error_1);\n return [2 /*return*/, INVALID_CRED];\n case 3: return [2 /*return*/];\n }\n });\n}); };\nexport var createS3Client = function (config, emitter) {\n var region = config.region, cancelTokenSource = config.cancelTokenSource, dangerouslyConnectToHttpEndpointForTesting = config.dangerouslyConnectToHttpEndpointForTesting, useAccelerateEndpoint = config.useAccelerateEndpoint;\n var localTestingConfig = {};\n if (dangerouslyConnectToHttpEndpointForTesting) {\n localTestingConfig = {\n endpoint: localTestingStorageEndpoint,\n tls: false,\n bucketEndpoint: false,\n forcePathStyle: true,\n };\n }\n var s3client = new S3Client(__assign(__assign({ region: region, \n // Using provider instead of a static credentials, so that if an upload task was in progress, but credentials gets\n // changed or invalidated (e.g user signed out), the subsequent requests will fail.\n credentials: credentialsProvider, customUserAgent: getAmplifyUserAgent() }, localTestingConfig), { requestHandler: new AxiosHttpHandler({}, emitter, cancelTokenSource), useAccelerateEndpoint: useAccelerateEndpoint }));\n s3client.middlewareStack.remove(SET_CONTENT_LENGTH_HEADER);\n return s3client;\n};\n//# sourceMappingURL=S3ClientUtils.js.map","import { __extends } from \"tslib\";\nimport { PutObjectOutput, PutObjectRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlPutObjectCommand, serializeAws_restXmlPutObjectCommand } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object\n * to it.

\n *\n *\n *

Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the\n * entire object to the bucket.

\n *\n *

Amazon S3 is a distributed system. If it receives multiple write requests for the same object\n * simultaneously, it overwrites all but the last object written. Amazon S3 does not provide object\n * locking; if you need this, make sure to build it into your application layer or use\n * versioning instead.

\n *\n *

To ensure that data is not corrupted traversing the network, use the\n * Content-MD5 header. When you use this header, Amazon S3 checks the object\n * against the provided MD5 value and, if they do not match, returns an error. Additionally,\n * you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to\n * the calculated MD5 value.

\n * \n *

The Content-MD5 header is required for any request to upload an object\n * with a retention period configured using Amazon S3 Object Lock. For more information about\n * Amazon S3 Object Lock, see Amazon S3 Object Lock Overview\n * in the Amazon Simple Storage Service Developer Guide.

\n *
\n *\n *\n *

\n * Server-side Encryption\n *

\n *

You can optionally request server-side encryption. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data\n * when you access it. You have the option to provide your own encryption key or use AWS\n * managed encryption keys (SSE-S3 or SSE-KMS). For more information, see Using Server-Side\n * Encryption.

\n *

If you request server-side encryption using AWS Key Management Service (SSE-KMS), you can enable an S3 Bucket Key at the object-level. For more information, see Amazon S3 Bucket Keys in the Amazon Simple Storage Service Developer Guide.

\n *

\n * Access Control List (ACL)-Specific Request\n * Headers\n *

\n *

You can use headers to grant ACL- based permissions. By default, all objects are\n * private. Only the owner has full access control. When adding a new object, you can grant\n * permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These\n * permissions are then added to the ACL on the object. For more information, see Access Control List\n * (ACL) Overview and Managing ACLs Using the REST\n * API.

\n *\n *

\n * Storage Class Options\n *

\n *

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The\n * STANDARD storage class provides high durability and high availability. Depending on\n * performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses\n * the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3\n * Service Developer Guide.

\n *\n *\n *

\n * Versioning\n *

\n *

If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID\n * for the object being stored. Amazon S3 returns this ID in the response. When you enable\n * versioning for a bucket, if Amazon S3 receives multiple write requests for the same object\n * simultaneously, it stores all of the objects.

\n *

For more information about versioning, see Adding Objects to\n * Versioning Enabled Buckets. For information about returning the versioning state\n * of a bucket, see GetBucketVersioning.

\n *\n *\n *

\n * Related Resources\n *

\n * \n */\nvar PutObjectCommand = /** @class */ (function (_super) {\n __extends(PutObjectCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function PutObjectCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n PutObjectCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"PutObjectCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: PutObjectRequest.filterSensitiveLog,\n outputFilterSensitiveLog: PutObjectOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n PutObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlPutObjectCommand(input, context);\n };\n PutObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlPutObjectCommand(output, context);\n };\n return PutObjectCommand;\n}($Command));\nexport { PutObjectCommand };\n//# sourceMappingURL=PutObjectCommand.js.map","import { __extends } from \"tslib\";\nimport { CreateMultipartUploadOutput, CreateMultipartUploadRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlCreateMultipartUploadCommand, serializeAws_restXmlCreateMultipartUploadCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

This operation initiates a multipart upload and returns an upload ID. This upload ID is\n * used to associate all of the parts in the specific multipart upload. You specify this\n * upload ID in each of your subsequent upload part requests (see UploadPart). You also include this\n * upload ID in the final request to either complete or abort the multipart upload\n * request.

\n *\n *

For more information about multipart uploads, see Multipart Upload Overview.

\n *\n *

If you have configured a lifecycle rule to abort incomplete multipart uploads, the\n * upload must complete within the number of days specified in the bucket lifecycle\n * configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort\n * operation and Amazon S3 aborts the multipart upload. For more information, see Aborting\n * Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

\n *\n *

For information about the permissions required to use the multipart upload API, see\n * Multipart Upload API and\n * Permissions.

\n *\n *

For request signing, multipart upload is just a series of regular requests. You initiate\n * a multipart upload, send one or more requests to upload parts, and then complete the\n * multipart upload process. You sign each request individually. There is nothing special\n * about signing multipart upload requests. For more information about signing, see Authenticating\n * Requests (AWS Signature Version 4).

\n *\n * \n *

After you initiate a multipart upload and upload one or more parts, to stop being\n * charged for storing the uploaded parts, you must either complete or abort the multipart\n * upload. Amazon S3 frees up the space used to store the parts and stop charging you for\n * storing them only after you either complete or abort a multipart upload.

\n *
\n *\n *

You can optionally request server-side encryption. For server-side encryption, Amazon S3\n * encrypts your data as it writes it to disks in its data centers and decrypts it when you\n * access it. You can provide your own encryption key, or use AWS Key Management Service (AWS\n * KMS) customer master keys (CMKs) or Amazon S3-managed encryption keys. If you choose to provide\n * your own encryption key, the request headers you provide in UploadPart and UploadPartCopy requests must match the headers you used in the request to\n * initiate the upload by using CreateMultipartUpload.

\n *

To perform a multipart upload with encryption using an AWS KMS CMK, the requester must\n * have permission to the kms:Encrypt, kms:Decrypt,\n * kms:ReEncrypt*, kms:GenerateDataKey*, and\n * kms:DescribeKey actions on the key. These permissions are required because\n * Amazon S3 must decrypt and read data from the encrypted file parts before it completes the\n * multipart upload.

\n *\n *

If your AWS Identity and Access Management (IAM) user or role is in the same AWS account\n * as the AWS KMS CMK, then you must have these permissions on the key policy. If your IAM\n * user or role belongs to a different account than the key, then you must have the\n * permissions on both the key policy and your IAM user or role.

\n *\n *\n *

For more information, see Protecting\n * Data Using Server-Side Encryption.

\n *\n *
\n *
Access Permissions
\n *
\n *

When copying an object, you can optionally specify the accounts or groups that\n * should be granted specific permissions on the new object. There are two ways to\n * grant the permissions using the request headers:

\n *
    \n *
  • \n *

    Specify a canned ACL with the x-amz-acl request header. For\n * more information, see Canned ACL.

    \n *
  • \n *
  • \n *

    Specify access permissions explicitly with the\n * x-amz-grant-read, x-amz-grant-read-acp,\n * x-amz-grant-write-acp, and\n * x-amz-grant-full-control headers. These parameters map to\n * the set of permissions that Amazon S3 supports in an ACL. For more information,\n * see Access Control List (ACL)\n * Overview.

    \n *
  • \n *
\n *

You can use either a canned ACL or specify access permissions explicitly. You\n * cannot do both.

\n *
\n *
Server-Side- Encryption-Specific Request Headers
\n *
\n *

You can optionally tell Amazon S3 to encrypt data at rest using server-side\n * encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts\n * your data as it writes it to disks in its data centers and decrypts it when you\n * access it. The option you use depends on whether you want to use AWS managed\n * encryption keys or provide your own encryption key.

\n *
    \n *
  • \n *

    Use encryption keys managed by Amazon S3 or customer master keys (CMKs) stored\n * in AWS Key Management Service (AWS KMS) – If you want AWS to manage the keys\n * used to encrypt data, specify the following headers in the request.

    \n *
      \n *
    • \n *

      x-amz-server-side-encryption

      \n *
    • \n *
    • \n *

      x-amz-server-side-encryption-aws-kms-key-id

      \n *
    • \n *
    • \n *

      x-amz-server-side-encryption-context

      \n *
    • \n *
    \n * \n *

    If you specify x-amz-server-side-encryption:aws:kms, but\n * don't provide x-amz-server-side-encryption-aws-kms-key-id,\n * Amazon S3 uses the AWS managed CMK in AWS KMS to protect the data.

    \n *
    \n * \n *

    All GET and PUT requests for an object protected by AWS KMS fail if\n * you don't make them with SSL or by using SigV4.

    \n *
    \n *

    For more information about server-side encryption with CMKs stored in AWS\n * KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS\n * KMS.

    \n *
  • \n *
  • \n *

    Use customer-provided encryption keys – If you want to manage your own\n * encryption keys, provide all the following headers in the request.

    \n *
      \n *
    • \n *

      x-amz-server-side-encryption-customer-algorithm

      \n *
    • \n *
    • \n *

      x-amz-server-side-encryption-customer-key

      \n *
    • \n *
    • \n *

      x-amz-server-side-encryption-customer-key-MD5

      \n *
    • \n *
    \n *

    For more information about server-side encryption with CMKs stored in AWS\n * KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS\n * KMS.

    \n *
  • \n *
\n *
\n *
Access-Control-List (ACL)-Specific Request Headers
\n *
\n *

You also can use the following access control–related headers with this\n * operation. By default, all objects are private. Only the owner has full access\n * control. When adding a new object, you can grant permissions to individual AWS\n * accounts or to predefined groups defined by Amazon S3. These permissions are then added\n * to the access control list (ACL) on the object. For more information, see Using ACLs. With this\n * operation, you can grant access permissions using one of the following two\n * methods:

\n *
    \n *
  • \n *

    Specify a canned ACL (x-amz-acl) — Amazon S3 supports a set of\n * predefined ACLs, known as canned ACLs. Each canned ACL\n * has a predefined set of grantees and permissions. For more information, see\n * Canned\n * ACL.

    \n *
  • \n *
  • \n *

    Specify access permissions explicitly — To explicitly grant access\n * permissions to specific AWS accounts or groups, use the following headers.\n * Each header maps to specific permissions that Amazon S3 supports in an ACL. For\n * more information, see Access\n * Control List (ACL) Overview. In the header, you specify a list of\n * grantees who get the specific permission. To grant permissions explicitly,\n * use:

    \n *
      \n *
    • \n *

      x-amz-grant-read

      \n *
    • \n *
    • \n *

      x-amz-grant-write

      \n *
    • \n *
    • \n *

      x-amz-grant-read-acp

      \n *
    • \n *
    • \n *

      x-amz-grant-write-acp

      \n *
    • \n *
    • \n *

      x-amz-grant-full-control

      \n *
    • \n *
    \n *

    You specify each grantee as a type=value pair, where the type is one of\n * the following:

    \n *
      \n *
    • \n *

      \n * id – if the value specified is the canonical user ID\n * of an AWS account

      \n *
    • \n *
    • \n *

      \n * uri – if you are granting permissions to a predefined\n * group

      \n *
    • \n *
    • \n *

      \n * emailAddress – if the value specified is the email\n * address of an AWS account

      \n * \n *

      Using email addresses to specify a grantee is only supported in the following AWS Regions:

      \n *
        \n *
      • \n *

        US East (N. Virginia)

        \n *
      • \n *
      • \n *

        US West (N. California)

        \n *
      • \n *
      • \n *

        US West (Oregon)

        \n *
      • \n *
      • \n *

        Asia Pacific (Singapore)

        \n *
      • \n *
      • \n *

        Asia Pacific (Sydney)

        \n *
      • \n *
      • \n *

        Asia Pacific (Tokyo)

        \n *
      • \n *
      • \n *

        Europe (Ireland)

        \n *
      • \n *
      • \n *

        South America (São Paulo)

        \n *
      • \n *
      \n *

      For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the AWS General Reference.

      \n *
      \n *
    • \n *
    \n *

    For example, the following x-amz-grant-read header grants the AWS accounts identified by account IDs permissions to read object data and its metadata:

    \n *

    \n * x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n *

    \n *
  • \n *
\n *\n *
\n *
\n *\n *

The following operations are related to CreateMultipartUpload:

\n * \n */\nvar CreateMultipartUploadCommand = /** @class */ (function (_super) {\n __extends(CreateMultipartUploadCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function CreateMultipartUploadCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n CreateMultipartUploadCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"CreateMultipartUploadCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: CreateMultipartUploadRequest.filterSensitiveLog,\n outputFilterSensitiveLog: CreateMultipartUploadOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n CreateMultipartUploadCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlCreateMultipartUploadCommand(input, context);\n };\n CreateMultipartUploadCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlCreateMultipartUploadCommand(output, context);\n };\n return CreateMultipartUploadCommand;\n}($Command));\nexport { CreateMultipartUploadCommand };\n//# sourceMappingURL=CreateMultipartUploadCommand.js.map","import { __extends } from \"tslib\";\nimport { UploadPartOutput, UploadPartRequest } from \"../models/models_1\";\nimport { deserializeAws_restXmlUploadPartCommand, serializeAws_restXmlUploadPartCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Uploads a part in a multipart upload.

\n * \n *

In this operation, you provide part data in your request. However, you have an option\n * to specify your existing Amazon S3 object as a data source for the part you are uploading. To\n * upload a part from an existing object, you use the UploadPartCopy operation.\n *

\n *
\n *\n *

You must initiate a multipart upload (see CreateMultipartUpload)\n * before you can upload any part. In response to your initiate request, Amazon S3 returns an\n * upload ID, a unique identifier, that you must include in your upload part request.

\n *

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely\n * identifies a part and also defines its position within the object being created. If you\n * upload a new part using the same part number that was used with a previous part, the\n * previously uploaded part is overwritten. Each part must be at least 5 MB in size, except\n * the last part. There is no size limit on the last part of your multipart upload.

\n *

To ensure that data is not corrupted when traversing the network, specify the\n * Content-MD5 header in the upload part request. Amazon S3 checks the part data\n * against the provided MD5 value. If they do not match, Amazon S3 returns an error.

\n *\n *

If the upload request is signed with Signature Version 4, then AWS S3 uses the\n * x-amz-content-sha256 header as a checksum instead of\n * Content-MD5. For more information see Authenticating Requests: Using the Authorization Header (AWS Signature Version\n * 4).

\n *\n *\n *\n *

\n * Note: After you initiate multipart upload and upload\n * one or more parts, you must either complete or abort multipart upload in order to stop\n * getting charged for storage of the uploaded parts. Only after you either complete or abort\n * multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts\n * storage.

\n *\n *

For more information on multipart uploads, go to Multipart Upload Overview in the\n * Amazon Simple Storage Service Developer Guide .

\n *

For information on the permissions required to use the multipart upload API, go to\n * Multipart Upload API and\n * Permissions in the Amazon Simple Storage Service Developer Guide.

\n *\n *

You can optionally request server-side encryption where Amazon S3 encrypts your data as it\n * writes it to disks in its data centers and decrypts it for you when you access it. You have\n * the option of providing your own encryption key, or you can use the AWS managed encryption\n * keys. If you choose to provide your own encryption key, the request headers you provide in\n * the request must match the headers you used in the request to initiate the upload by using\n * CreateMultipartUpload. For more information, go to Using Server-Side Encryption in\n * the Amazon Simple Storage Service Developer Guide.

\n *\n *

Server-side encryption is supported by the S3 Multipart Upload actions. Unless you are\n * using a customer-provided encryption key, you don't need to specify the encryption\n * parameters in each UploadPart request. Instead, you only need to specify the server-side\n * encryption parameters in the initial Initiate Multipart request. For more information, see\n * CreateMultipartUpload.

\n *\n *

If you requested server-side encryption using a customer-provided encryption key in your\n * initiate multipart upload request, you must provide identical encryption information in\n * each part upload using the following headers.

\n *\n *\n *
    \n *
  • \n *

    x-amz-server-side-encryption-customer-algorithm

    \n *
  • \n *
  • \n *

    x-amz-server-side-encryption-customer-key

    \n *
  • \n *
  • \n *

    x-amz-server-side-encryption-customer-key-MD5

    \n *
  • \n *
\n *\n *

\n * Special Errors\n *

\n *
    \n *
  • \n *
      \n *
    • \n *

      \n * Code: NoSuchUpload\n *

      \n *
    • \n *
    • \n *

      \n * Cause: The specified multipart upload does not exist. The upload\n * ID might be invalid, or the multipart upload might have been aborted or\n * completed.\n *

      \n *
    • \n *
    • \n *

      \n * HTTP Status Code: 404 Not Found \n *

      \n *
    • \n *
    • \n *

      \n * SOAP Fault Code Prefix: Client\n *

      \n *
    • \n *
    \n *
  • \n *
\n *\n *\n *\n *\n *\n *\n *

\n * Related Resources\n *

\n * \n */\nvar UploadPartCommand = /** @class */ (function (_super) {\n __extends(UploadPartCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function UploadPartCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n UploadPartCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"UploadPartCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: UploadPartRequest.filterSensitiveLog,\n outputFilterSensitiveLog: UploadPartOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n UploadPartCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlUploadPartCommand(input, context);\n };\n UploadPartCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlUploadPartCommand(output, context);\n };\n return UploadPartCommand;\n}($Command));\nexport { UploadPartCommand };\n//# sourceMappingURL=UploadPartCommand.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { UploadPartCommand, CompleteMultipartUploadCommand, AbortMultipartUploadCommand, ListPartsCommand, CreateMultipartUploadCommand, ListObjectsV2Command, } from '@aws-sdk/client-s3';\nimport axios from 'axios';\nimport { Logger } from '@aws-amplify/core';\nimport { byteLength, isFile } from '../common/StorageUtils';\nimport { AWSS3ProviderUploadErrorStrings } from '../common/StorageErrorStrings';\nimport { SET_CONTENT_LENGTH_HEADER, UPLOADS_STORAGE_KEY, } from '../common/StorageConstants';\nvar logger = new Logger('AWSS3UploadTask');\nexport var AWSS3UploadTaskState;\n(function (AWSS3UploadTaskState) {\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"INIT\"] = 0] = \"INIT\";\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"IN_PROGRESS\"] = 1] = \"IN_PROGRESS\";\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"PAUSED\"] = 2] = \"PAUSED\";\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"CANCELLED\"] = 3] = \"CANCELLED\";\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"COMPLETED\"] = 4] = \"COMPLETED\";\n})(AWSS3UploadTaskState || (AWSS3UploadTaskState = {}));\nexport var TaskEvents;\n(function (TaskEvents) {\n TaskEvents[\"CANCEL\"] = \"cancel\";\n TaskEvents[\"UPLOAD_COMPLETE\"] = \"uploadComplete\";\n TaskEvents[\"UPLOAD_PROGRESS\"] = \"uploadPartProgress\";\n TaskEvents[\"ERROR\"] = \"error\";\n})(TaskEvents || (TaskEvents = {}));\n// maximum number of parts per upload request according the S3 spec,\n// see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html\nvar MAX_PARTS = 10000;\n// 5MB in bytes\nvar PART_SIZE = 5 * 1024 * 1024;\nvar DEFAULT_QUEUE_SIZE = 4;\nfunction comparePartNumber(a, b) {\n return a.PartNumber - b.PartNumber;\n}\nvar AWSS3UploadTask = /** @class */ (function () {\n function AWSS3UploadTask(_a) {\n var s3Client = _a.s3Client, file = _a.file, emitter = _a.emitter, storage = _a.storage, params = _a.params, level = _a.level, prefixPromise = _a.prefixPromise;\n this.partSize = PART_SIZE;\n this.queueSize = DEFAULT_QUEUE_SIZE;\n this.inProgress = [];\n this.completedParts = [];\n this.queued = [];\n this.bytesUploaded = 0;\n this.totalBytes = 0;\n this.state = AWSS3UploadTaskState.INIT;\n this.prefixPromise = prefixPromise;\n this.s3client = s3Client;\n this.s3client.middlewareStack.remove(SET_CONTENT_LENGTH_HEADER);\n this.storage = storage;\n this.storageSync = Promise.resolve();\n if (typeof this.storage['sync'] === 'function') {\n this.storageSync = this.storage['sync']();\n }\n this.params = params;\n this.file = file;\n this.totalBytes = this.file.size;\n this.bytesUploaded = 0;\n this.emitter = emitter;\n this.queued = [];\n this.fileId = this._getFileId(level);\n this._validateParams();\n // event emitter will re-throw an error if an event emits an error unless there's a listener, attaching a no-op\n // function to it unless user adds their own onError callback\n this.emitter.on(TaskEvents.ERROR, function () { });\n }\n Object.defineProperty(AWSS3UploadTask.prototype, \"percent\", {\n get: function () {\n return (this.bytesUploaded / this.totalBytes) * 100;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AWSS3UploadTask.prototype, \"isInProgress\", {\n get: function () {\n return this.state === AWSS3UploadTaskState.IN_PROGRESS;\n },\n enumerable: true,\n configurable: true\n });\n AWSS3UploadTask.prototype._listSingleFile = function (_a) {\n var key = _a.key, bucket = _a.bucket;\n return __awaiter(this, void 0, void 0, function () {\n var listObjectRes, _b, Contents, prefix, obj;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this.s3client.send(new ListObjectsV2Command({\n Bucket: bucket,\n Prefix: key,\n }))];\n case 1:\n listObjectRes = _c.sent();\n _b = listObjectRes.Contents, Contents = _b === void 0 ? [] : _b;\n return [4 /*yield*/, this.prefixPromise];\n case 2:\n prefix = _c.sent();\n obj = Contents.find(function (o) { return o.Key === \"\" + prefix + key; });\n return [2 /*return*/, obj];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._getFileId = function (level) {\n // We should check if it's a File first because File is also instance of a Blob\n if (isFile(this.file)) {\n return [\n this.file.name,\n this.file.lastModified,\n this.file.size,\n this.file.type,\n this.params.Bucket,\n level,\n this.params.Key,\n ].join('-');\n }\n else {\n return [\n this.file.size,\n this.file.type,\n this.params.Bucket,\n level,\n this.params.Key,\n ].join('-');\n }\n };\n AWSS3UploadTask.prototype._findCachedUploadParts = function () {\n return __awaiter(this, void 0, void 0, function () {\n var uploadRequests, cachedUploadFileData, listPartsOutput;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._listCachedUploadTasks()];\n case 1:\n uploadRequests = _a.sent();\n if (Object.keys(uploadRequests).length === 0 ||\n !Object.prototype.hasOwnProperty.call(uploadRequests, this.fileId)) {\n return [2 /*return*/, { parts: [], uploadId: null }];\n }\n cachedUploadFileData = uploadRequests[this.fileId];\n cachedUploadFileData.lastTouched = Date.now();\n this.storage.setItem(UPLOADS_STORAGE_KEY, JSON.stringify(uploadRequests));\n return [4 /*yield*/, this.s3client.send(new ListPartsCommand({\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: cachedUploadFileData.uploadId,\n }))];\n case 2:\n listPartsOutput = _a.sent();\n return [2 /*return*/, {\n parts: listPartsOutput.Parts || [],\n uploadId: cachedUploadFileData.uploadId,\n }];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._emitEvent = function (event, payload) {\n this.emitter.emit(event, payload);\n };\n AWSS3UploadTask.prototype._validateParams = function () {\n if (this.file.size / this.partSize > MAX_PARTS) {\n throw new Error(\"Too many parts. Number of parts is \" + this.file.size /\n this.partSize + \", maximum is \" + MAX_PARTS + \".\");\n }\n };\n AWSS3UploadTask.prototype._listCachedUploadTasks = function () {\n return __awaiter(this, void 0, void 0, function () {\n var tasks;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.storageSync];\n case 1:\n _a.sent();\n tasks = this.storage.getItem(UPLOADS_STORAGE_KEY) || '{}';\n return [2 /*return*/, JSON.parse(tasks)];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._cache = function (fileMetadata) {\n return __awaiter(this, void 0, void 0, function () {\n var uploadRequests;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._listCachedUploadTasks()];\n case 1:\n uploadRequests = _a.sent();\n uploadRequests[this.fileId] = fileMetadata;\n this.storage.setItem(UPLOADS_STORAGE_KEY, JSON.stringify(uploadRequests));\n return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._isCached = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _b = (_a = Object.prototype.hasOwnProperty).call;\n return [4 /*yield*/, this._listCachedUploadTasks()];\n case 1: return [2 /*return*/, _b.apply(_a, [_c.sent(),\n this.fileId])];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._removeFromCache = function () {\n return __awaiter(this, void 0, void 0, function () {\n var uploadRequests;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._listCachedUploadTasks()];\n case 1:\n uploadRequests = _a.sent();\n delete uploadRequests[this.fileId];\n this.storage.setItem(UPLOADS_STORAGE_KEY, JSON.stringify(uploadRequests));\n return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._onPartUploadCompletion = function (_a) {\n var eTag = _a.eTag, partNumber = _a.partNumber, chunk = _a.chunk;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n this.completedParts.push({\n ETag: eTag,\n PartNumber: partNumber,\n });\n this.bytesUploaded += byteLength(chunk);\n this._emitEvent(TaskEvents.UPLOAD_PROGRESS, {\n loaded: this.bytesUploaded,\n total: this.totalBytes,\n });\n // Remove the completed item from the inProgress array\n this.inProgress = this.inProgress.filter(function (job) { return job.uploadPartInput.PartNumber !== partNumber; });\n if (this.queued.length && this.state !== AWSS3UploadTaskState.PAUSED)\n this._startNextPart();\n if (this._isDone())\n this._completeUpload();\n return [2 /*return*/];\n });\n });\n };\n AWSS3UploadTask.prototype._completeUpload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.s3client.send(new CompleteMultipartUploadCommand({\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: this.uploadId,\n MultipartUpload: {\n // Parts are not always completed in order, we need to manually sort them\n Parts: this.completedParts.sort(comparePartNumber),\n },\n }))];\n case 1:\n _a.sent();\n this._verifyFileSize();\n this._emitEvent(TaskEvents.UPLOAD_COMPLETE, {\n key: this.params.Bucket + \"/\" + this.params.Key,\n });\n this._removeFromCache();\n this.state = AWSS3UploadTaskState.COMPLETED;\n return [3 /*break*/, 3];\n case 2:\n err_1 = _a.sent();\n logger.error('error completing upload', err_1);\n this._emitEvent(TaskEvents.ERROR, err_1);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._makeUploadPartRequest = function (input, cancelTokenSource) {\n return __awaiter(this, void 0, void 0, function () {\n var res, err_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n return [4 /*yield*/, this.s3client.send(new UploadPartCommand(input), {\n cancelTokenSource: cancelTokenSource,\n })];\n case 1:\n res = _a.sent();\n return [4 /*yield*/, this._onPartUploadCompletion({\n eTag: res.ETag,\n partNumber: input.PartNumber,\n chunk: input.Body,\n })];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n err_2 = _a.sent();\n if (this.state === AWSS3UploadTaskState.PAUSED) {\n logger.log('upload paused');\n }\n else if (this.state === AWSS3UploadTaskState.CANCELLED) {\n logger.log('upload aborted');\n }\n else {\n logger.error('error starting next part of upload: ', err_2);\n }\n // axios' cancel will also throw an error, however we don't need to emit an event in that case as it's an\n // expected behavior\n if (!axios.isCancel(err_2) &&\n err_2.message !== AWSS3ProviderUploadErrorStrings.UPLOAD_PAUSED_MESSAGE) {\n this._emitEvent(TaskEvents.ERROR, err_2);\n this.pause();\n }\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._startNextPart = function () {\n if (this.queued.length > 0 && this.state !== AWSS3UploadTaskState.PAUSED) {\n var cancelTokenSource = axios.CancelToken.source();\n var nextPart = this.queued.shift();\n this.inProgress.push({\n uploadPartInput: nextPart,\n s3Request: this._makeUploadPartRequest(nextPart, cancelTokenSource),\n cancel: cancelTokenSource.cancel,\n });\n }\n };\n /**\n * Verify on S3 side that the file size matches the one on the client side.\n *\n * @async\n * @throws throws an error if the file size does not match between local copy of the file and the file on s3.\n */\n AWSS3UploadTask.prototype._verifyFileSize = function () {\n return __awaiter(this, void 0, void 0, function () {\n var obj, valid;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._listSingleFile({\n key: this.params.Key,\n bucket: this.params.Bucket,\n })];\n case 1:\n obj = _a.sent();\n valid = Boolean(obj && obj.Size === this.file.size);\n if (!valid) {\n throw new Error('File size does not match between local file and file on s3');\n }\n return [2 /*return*/, valid];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._isDone = function () {\n return (!this.queued.length &&\n !this.inProgress.length &&\n this.bytesUploaded === this.totalBytes);\n };\n AWSS3UploadTask.prototype._createParts = function () {\n var size = this.file.size;\n var parts = [];\n for (var bodyStart = 0; bodyStart < size;) {\n var bodyEnd = Math.min(bodyStart + this.partSize, size);\n parts.push({\n Body: this.file.slice(bodyStart, bodyEnd),\n Key: this.params.Key,\n Bucket: this.params.Bucket,\n PartNumber: parts.length + 1,\n UploadId: this.uploadId,\n });\n bodyStart += this.partSize;\n }\n return parts;\n };\n AWSS3UploadTask.prototype._initCachedUploadParts = function (cachedParts) {\n this.bytesUploaded += cachedParts.reduce(function (acc, part) { return acc + part.Size; }, 0);\n // Find the set of part numbers that have already been uploaded\n var uploadedPartNumSet = new Set(cachedParts.map(function (part) { return part.PartNumber; }));\n this.queued = this.queued.filter(function (part) { return !uploadedPartNumSet.has(part.PartNumber); });\n this.completedParts = cachedParts.map(function (part) { return ({\n PartNumber: part.PartNumber,\n ETag: part.ETag,\n }); });\n this._emitEvent(TaskEvents.UPLOAD_PROGRESS, {\n loaded: this.bytesUploaded,\n total: this.totalBytes,\n });\n };\n AWSS3UploadTask.prototype._initMultipartUpload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.s3client.send(new CreateMultipartUploadCommand(this.params))];\n case 1:\n res = _a.sent();\n this._cache({\n uploadId: res.UploadId,\n lastTouched: Date.now(),\n bucket: this.params.Bucket,\n key: this.params.Key,\n fileName: this.file instanceof File ? this.file.name : '',\n });\n return [2 /*return*/, res.UploadId];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._initializeUploadTask = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, parts, uploadId, uploadId, err_3;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.state = AWSS3UploadTaskState.IN_PROGRESS;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 7, , 8]);\n return [4 /*yield*/, this._isCached()];\n case 2:\n if (!_b.sent()) return [3 /*break*/, 4];\n return [4 /*yield*/, this._findCachedUploadParts()];\n case 3:\n _a = _b.sent(), parts = _a.parts, uploadId = _a.uploadId;\n this.uploadId = uploadId;\n this.queued = this._createParts();\n this._initCachedUploadParts(parts);\n this._startUpload();\n return [3 /*break*/, 6];\n case 4:\n if (!!this.uploadId) return [3 /*break*/, 6];\n return [4 /*yield*/, this._initMultipartUpload()];\n case 5:\n uploadId = _b.sent();\n this.uploadId = uploadId;\n this.queued = this._createParts();\n this._startUpload();\n _b.label = 6;\n case 6: return [3 /*break*/, 8];\n case 7:\n err_3 = _b.sent();\n if (!axios.isCancel(err_3)) {\n logger.error('Error initializing the upload task', err_3);\n }\n return [3 /*break*/, 8];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype.resume = function () {\n if (this.state === AWSS3UploadTaskState.CANCELLED) {\n logger.warn('This task has already been cancelled');\n }\n else if (this.state === AWSS3UploadTaskState.COMPLETED) {\n logger.warn('This task has already been completed');\n }\n else if (this.state === AWSS3UploadTaskState.IN_PROGRESS) {\n logger.warn('Upload task already in progress');\n // first time running resume, find any cached parts on s3 or start a new multipart upload request before\n // starting the upload\n }\n else if (!this.uploadId) {\n this._initializeUploadTask();\n }\n else {\n this._startUpload();\n }\n };\n AWSS3UploadTask.prototype._startUpload = function () {\n this.state = AWSS3UploadTaskState.IN_PROGRESS;\n for (var i = 0; i < this.queueSize; i++) {\n this._startNextPart();\n }\n };\n AWSS3UploadTask.prototype._cancel = function () {\n return __awaiter(this, void 0, void 0, function () {\n var err_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this.state === AWSS3UploadTaskState.CANCELLED)) return [3 /*break*/, 1];\n logger.warn('This task has already been cancelled');\n return [2 /*return*/, false];\n case 1:\n if (!(this.state === AWSS3UploadTaskState.COMPLETED)) return [3 /*break*/, 2];\n logger.warn('This task has already been completed');\n return [2 /*return*/, false];\n case 2:\n this.pause();\n this.queued = [];\n this.completedParts = [];\n this.bytesUploaded = 0;\n this.state = AWSS3UploadTaskState.CANCELLED;\n _a.label = 3;\n case 3:\n _a.trys.push([3, 6, , 7]);\n return [4 /*yield*/, this.s3client.send(new AbortMultipartUploadCommand({\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: this.uploadId,\n }))];\n case 4:\n _a.sent();\n return [4 /*yield*/, this._removeFromCache()];\n case 5:\n _a.sent();\n return [2 /*return*/, true];\n case 6:\n err_4 = _a.sent();\n logger.error('Error cancelling upload task', err_4);\n return [2 /*return*/, false];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * pause this particular upload task\n **/\n AWSS3UploadTask.prototype.pause = function () {\n var _a;\n if (this.state === AWSS3UploadTaskState.CANCELLED) {\n logger.warn('This task has already been cancelled');\n }\n else if (this.state === AWSS3UploadTaskState.COMPLETED) {\n logger.warn('This task has already been completed');\n }\n else if (this.state === AWSS3UploadTaskState.PAUSED) {\n logger.warn('This task is already paused');\n }\n this.state = AWSS3UploadTaskState.PAUSED;\n // Use axios cancel token to abort the part request immediately\n // Add the inProgress parts back to pending\n var removedInProgressReq = this.inProgress.splice(0, this.inProgress.length);\n removedInProgressReq.forEach(function (req) {\n req.cancel(AWSS3ProviderUploadErrorStrings.UPLOAD_PAUSED_MESSAGE);\n });\n // Put all removed in progress parts back into the queue\n (_a = this.queued).unshift.apply(_a, __spread(removedInProgressReq.map(function (req) { return req.uploadPartInput; })));\n };\n return AWSS3UploadTask;\n}());\nexport { AWSS3UploadTask };\n//# sourceMappingURL=AWSS3UploadTask.js.map","import { __extends } from \"tslib\";\nimport { CompleteMultipartUploadOutput, CompleteMultipartUploadRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlCompleteMultipartUploadCommand, serializeAws_restXmlCompleteMultipartUploadCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Completes a multipart upload by assembling previously uploaded parts.

\n *

You first initiate the multipart upload and then upload all parts using the UploadPart\n * operation. After successfully uploading all relevant parts of an upload, you call this\n * operation to complete the upload. Upon receiving this request, Amazon S3 concatenates all\n * the parts in ascending order by part number to create a new object. In the Complete\n * Multipart Upload request, you must provide the parts list. You must ensure that the parts\n * list is complete. This operation concatenates the parts that you provide in the list. For\n * each part in the list, you must provide the part number and the ETag value,\n * returned after that part was uploaded.

\n *

Processing of a Complete Multipart Upload request could take several minutes to\n * complete. After Amazon S3 begins processing the request, it sends an HTTP response header that\n * specifies a 200 OK response. While processing is in progress, Amazon S3 periodically sends white\n * space characters to keep the connection from timing out. Because a request could fail after\n * the initial 200 OK response has been sent, it is important that you check the response body\n * to determine whether the request succeeded.

\n *

Note that if CompleteMultipartUpload fails, applications should be prepared\n * to retry the failed requests. For more information, see Amazon S3 Error Best Practices.

\n *

For more information about multipart uploads, see Uploading Objects Using Multipart\n * Upload.

\n *

For information about permissions required to use the multipart upload API, see Multipart Upload API and\n * Permissions.

\n *\n *\n *

\n * CompleteMultipartUpload has the following special errors:

\n *
    \n *
  • \n *

    Error code: EntityTooSmall\n *

    \n *
      \n *
    • \n *

      Description: Your proposed upload is smaller than the minimum allowed object\n * size. Each part must be at least 5 MB in size, except the last part.

      \n *
    • \n *
    • \n *

      400 Bad Request

      \n *
    • \n *
    \n *
  • \n *
  • \n *

    Error code: InvalidPart\n *

    \n *
      \n *
    • \n *

      Description: One or more of the specified parts could not be found. The part\n * might not have been uploaded, or the specified entity tag might not have\n * matched the part's entity tag.

      \n *
    • \n *
    • \n *

      400 Bad Request

      \n *
    • \n *
    \n *
  • \n *
  • \n *

    Error code: InvalidPartOrder\n *

    \n *
      \n *
    • \n *

      Description: The list of parts was not in ascending order. The parts list\n * must be specified in order by part number.

      \n *
    • \n *
    • \n *

      400 Bad Request

      \n *
    • \n *
    \n *
  • \n *
  • \n *

    Error code: NoSuchUpload\n *

    \n *
      \n *
    • \n *

      Description: The specified multipart upload does not exist. The upload ID\n * might be invalid, or the multipart upload might have been aborted or\n * completed.

      \n *
    • \n *
    • \n *

      404 Not Found

      \n *
    • \n *
    \n *
  • \n *
\n *\n *

The following operations are related to CompleteMultipartUpload:

\n * \n */\nvar CompleteMultipartUploadCommand = /** @class */ (function (_super) {\n __extends(CompleteMultipartUploadCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function CompleteMultipartUploadCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n CompleteMultipartUploadCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getThrow200ExceptionsPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"CompleteMultipartUploadCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: CompleteMultipartUploadRequest.filterSensitiveLog,\n outputFilterSensitiveLog: CompleteMultipartUploadOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n CompleteMultipartUploadCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlCompleteMultipartUploadCommand(input, context);\n };\n CompleteMultipartUploadCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlCompleteMultipartUploadCommand(output, context);\n };\n return CompleteMultipartUploadCommand;\n}($Command));\nexport { CompleteMultipartUploadCommand };\n//# sourceMappingURL=CompleteMultipartUploadCommand.js.map","import { __extends } from \"tslib\";\nimport { AbortMultipartUploadOutput, AbortMultipartUploadRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlAbortMultipartUploadCommand, serializeAws_restXmlAbortMultipartUploadCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

This operation aborts a multipart upload. After a multipart upload is aborted, no\n * additional parts can be uploaded using that upload ID. The storage consumed by any\n * previously uploaded parts will be freed. However, if any part uploads are currently in\n * progress, those part uploads might or might not succeed. As a result, it might be necessary\n * to abort a given multipart upload multiple times in order to completely free all storage\n * consumed by all parts.

\n *

To verify that all parts have been removed, so you don't get charged for the part\n * storage, you should call the ListParts operation and ensure that\n * the parts list is empty.

\n *

For information about permissions required to use the multipart upload API, see Multipart Upload API and\n * Permissions.

\n *

The following operations are related to AbortMultipartUpload:

\n * \n */\nvar AbortMultipartUploadCommand = /** @class */ (function (_super) {\n __extends(AbortMultipartUploadCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function AbortMultipartUploadCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n AbortMultipartUploadCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"AbortMultipartUploadCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: AbortMultipartUploadRequest.filterSensitiveLog,\n outputFilterSensitiveLog: AbortMultipartUploadOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n AbortMultipartUploadCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlAbortMultipartUploadCommand(input, context);\n };\n AbortMultipartUploadCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlAbortMultipartUploadCommand(output, context);\n };\n return AbortMultipartUploadCommand;\n}($Command));\nexport { AbortMultipartUploadCommand };\n//# sourceMappingURL=AbortMultipartUploadCommand.js.map","import { __extends } from \"tslib\";\nimport { ListPartsOutput, ListPartsRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlListPartsCommand, serializeAws_restXmlListPartsCommand } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Lists the parts that have been uploaded for a specific multipart upload. This operation\n * must include the upload ID, which you obtain by sending the initiate multipart upload\n * request (see CreateMultipartUpload).\n * This request returns a maximum of 1,000 uploaded parts. The default number of parts\n * returned is 1,000 parts. You can restrict the number of parts returned by specifying the\n * max-parts request parameter. If your multipart upload consists of more than\n * 1,000 parts, the response returns an IsTruncated field with the value of true,\n * and a NextPartNumberMarker element. In subsequent ListParts\n * requests you can include the part-number-marker query string parameter and set its value to\n * the NextPartNumberMarker field value from the previous response.

\n *\n *

For more information on multipart uploads, see Uploading Objects Using Multipart\n * Upload.

\n *\n *

For information on permissions required to use the multipart upload API, see Multipart Upload API and\n * Permissions.

\n *\n *

The following operations are related to ListParts:

\n * \n */\nvar ListPartsCommand = /** @class */ (function (_super) {\n __extends(ListPartsCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function ListPartsCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n ListPartsCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"ListPartsCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: ListPartsRequest.filterSensitiveLog,\n outputFilterSensitiveLog: ListPartsOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n ListPartsCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlListPartsCommand(input, context);\n };\n ListPartsCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlListPartsCommand(output, context);\n };\n return ListPartsCommand;\n}($Command));\nexport { ListPartsCommand };\n//# sourceMappingURL=ListPartsCommand.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { PutObjectCommand, CreateMultipartUploadCommand, UploadPartCommand, CompleteMultipartUploadCommand, ListPartsCommand, AbortMultipartUploadCommand, } from '@aws-sdk/client-s3';\nimport { SEND_UPLOAD_PROGRESS_EVENT, SEND_DOWNLOAD_PROGRESS_EVENT, } from './axios-http-handler';\nimport * as events from 'events';\nimport { createPrefixMiddleware, prefixMiddlewareOptions, autoAdjustClockskewMiddleware, autoAdjustClockskewMiddlewareOptions, createS3Client, } from '../common/S3ClientUtils';\nvar logger = new Logger('AWSS3ProviderManagedUpload');\nvar AWSS3ProviderManagedUpload = /** @class */ (function () {\n function AWSS3ProviderManagedUpload(params, opts, emitter) {\n // Defaults\n this.minPartSize = 5 * 1024 * 1024; // in MB\n this.queueSize = 4;\n // Data for current upload\n this.body = null;\n this.params = null;\n this.opts = null;\n this.completedParts = [];\n this.uploadId = null;\n // Progress reporting\n this.bytesUploaded = 0;\n this.totalBytesToUpload = 0;\n this.emitter = null;\n this.params = params;\n this.opts = opts;\n this.emitter = emitter;\n this.s3client = this._createNewS3Client(opts, emitter);\n }\n AWSS3ProviderManagedUpload.prototype.upload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, putObjectCommand, _b, numberOfPartsToUpload, parts, start, error_1;\n var _this = this;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 10, , 12]);\n _a = this;\n return [4 /*yield*/, this.validateAndSanitizeBody(this.params.Body)];\n case 1:\n _a.body = _c.sent();\n this.totalBytesToUpload = this.byteLength(this.body);\n if (!(this.totalBytesToUpload <= this.minPartSize)) return [3 /*break*/, 2];\n // Multipart upload is not required. Upload the sanitized body as is\n this.params.Body = this.body;\n putObjectCommand = new PutObjectCommand(this.params);\n return [2 /*return*/, this.s3client.send(putObjectCommand)];\n case 2:\n // Step 1: Initiate the multi part upload\n _b = this;\n return [4 /*yield*/, this.createMultiPartUpload()];\n case 3:\n // Step 1: Initiate the multi part upload\n _b.uploadId = _c.sent();\n numberOfPartsToUpload = Math.ceil(this.totalBytesToUpload / this.minPartSize);\n parts = this.createParts();\n start = 0;\n _c.label = 4;\n case 4:\n if (!(start < numberOfPartsToUpload)) return [3 /*break*/, 7];\n // Upload as many as `queueSize` parts simultaneously\n return [4 /*yield*/, this.uploadParts(this.uploadId, parts.slice(start, start + this.queueSize))];\n case 5:\n // Upload as many as `queueSize` parts simultaneously\n _c.sent();\n _c.label = 6;\n case 6:\n start += this.queueSize;\n return [3 /*break*/, 4];\n case 7:\n parts.map(function (part) {\n _this.removeEventListener(part);\n });\n return [4 /*yield*/, this.finishMultiPartUpload(this.uploadId)];\n case 8: \n // Step 3: Finalize the upload such that S3 can recreate the file\n return [2 /*return*/, _c.sent()];\n case 9: return [3 /*break*/, 12];\n case 10:\n error_1 = _c.sent();\n // if any error is thrown, call cleanup\n return [4 /*yield*/, this.cleanup(this.uploadId)];\n case 11:\n // if any error is thrown, call cleanup\n _c.sent();\n logger.error('Error. Cancelling the multipart upload.');\n throw error_1;\n case 12: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3ProviderManagedUpload.prototype.createParts = function () {\n try {\n var parts = [];\n for (var bodyStart = 0; bodyStart < this.totalBytesToUpload;) {\n var bodyEnd = Math.min(bodyStart + this.minPartSize, this.totalBytesToUpload);\n parts.push({\n bodyPart: this.body.slice(bodyStart, bodyEnd),\n partNumber: parts.length + 1,\n emitter: new events.EventEmitter(),\n _lastUploadedBytes: 0,\n });\n bodyStart += this.minPartSize;\n }\n return parts;\n }\n catch (error) {\n logger.error(error);\n throw error;\n }\n };\n AWSS3ProviderManagedUpload.prototype.createMultiPartUpload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var createMultiPartUploadCommand, response, error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n createMultiPartUploadCommand = new CreateMultipartUploadCommand(this.params);\n return [4 /*yield*/, this.s3client.send(createMultiPartUploadCommand)];\n case 1:\n response = _a.sent();\n logger.debug(response.UploadId);\n return [2 /*return*/, response.UploadId];\n case 2:\n error_2 = _a.sent();\n logger.error(error_2);\n throw error_2;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @private Not to be extended outside of tests\n * @VisibleFotTesting\n */\n AWSS3ProviderManagedUpload.prototype.uploadParts = function (uploadId, parts) {\n return __awaiter(this, void 0, void 0, function () {\n var allResults, i, error_3;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Promise.all(parts.map(function (part) { return __awaiter(_this, void 0, void 0, function () {\n var options, _a, Key, Bucket, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, res;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.setupEventListener(part);\n options = { emitter: part.emitter };\n _a = this.params, Key = _a.Key, Bucket = _a.Bucket, SSECustomerAlgorithm = _a.SSECustomerAlgorithm, SSECustomerKey = _a.SSECustomerKey, SSECustomerKeyMD5 = _a.SSECustomerKeyMD5;\n return [4 /*yield*/, this.s3client.send(new UploadPartCommand(__assign(__assign(__assign({ PartNumber: part.partNumber, Body: part.bodyPart, UploadId: uploadId, Key: Key,\n Bucket: Bucket }, (SSECustomerAlgorithm && { SSECustomerAlgorithm: SSECustomerAlgorithm })), (SSECustomerKey && { SSECustomerKey: SSECustomerKey })), (SSECustomerKeyMD5 && { SSECustomerKeyMD5: SSECustomerKeyMD5 }))), options)];\n case 1:\n res = _b.sent();\n return [2 /*return*/, res];\n }\n });\n }); }))];\n case 1:\n allResults = _a.sent();\n // The order of resolved promises is the same as input promise order.\n for (i = 0; i < allResults.length; i++) {\n this.completedParts.push({\n PartNumber: parts[i].partNumber,\n ETag: allResults[i].ETag,\n });\n }\n return [3 /*break*/, 3];\n case 2:\n error_3 = _a.sent();\n logger.error('Error happened while uploading a part. Cancelling the multipart upload');\n throw error_3;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3ProviderManagedUpload.prototype.finishMultiPartUpload = function (uploadId) {\n return __awaiter(this, void 0, void 0, function () {\n var input, completeUploadCommand, data, error_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n input = {\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: uploadId,\n MultipartUpload: { Parts: this.completedParts },\n };\n completeUploadCommand = new CompleteMultipartUploadCommand(input);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.s3client.send(completeUploadCommand)];\n case 2:\n data = _a.sent();\n return [2 /*return*/, data.Key];\n case 3:\n error_4 = _a.sent();\n logger.error('Error happened while finishing the upload.');\n throw error_4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3ProviderManagedUpload.prototype.cleanup = function (uploadId) {\n return __awaiter(this, void 0, void 0, function () {\n var input, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // Reset this's state\n this.body = null;\n this.completedParts = [];\n this.bytesUploaded = 0;\n this.totalBytesToUpload = 0;\n input = {\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: uploadId,\n };\n return [4 /*yield*/, this.s3client.send(new AbortMultipartUploadCommand(input))];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.s3client.send(new ListPartsCommand(input))];\n case 2:\n data = _a.sent();\n if (data && data.Parts && data.Parts.length > 0) {\n throw new Error('Multipart upload clean up failed.');\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AWSS3ProviderManagedUpload.prototype.removeEventListener = function (part) {\n part.emitter.removeAllListeners(SEND_UPLOAD_PROGRESS_EVENT);\n part.emitter.removeAllListeners(SEND_DOWNLOAD_PROGRESS_EVENT);\n };\n AWSS3ProviderManagedUpload.prototype.setupEventListener = function (part) {\n var _this = this;\n part.emitter.on(SEND_UPLOAD_PROGRESS_EVENT, function (progress) {\n _this.progressChanged(part.partNumber, progress.loaded - part._lastUploadedBytes);\n part._lastUploadedBytes = progress.loaded;\n });\n };\n AWSS3ProviderManagedUpload.prototype.progressChanged = function (partNumber, incrementalUpdate) {\n this.bytesUploaded += incrementalUpdate;\n this.emitter.emit(SEND_UPLOAD_PROGRESS_EVENT, {\n loaded: this.bytesUploaded,\n total: this.totalBytesToUpload,\n part: partNumber,\n key: this.params.Key,\n });\n };\n AWSS3ProviderManagedUpload.prototype.byteLength = function (input) {\n if (input === null || input === undefined)\n return 0;\n if (typeof input.byteLength === 'number') {\n return input.byteLength;\n }\n else if (typeof input.length === 'number') {\n return input.length;\n }\n else if (typeof input.size === 'number') {\n return input.size;\n }\n else if (typeof input.path === 'string') {\n /* NodeJs Support\n return require('fs').lstatSync(input.path).size;\n */\n }\n else {\n throw new Error('Cannot determine length of ' + input);\n }\n };\n AWSS3ProviderManagedUpload.prototype.validateAndSanitizeBody = function (body) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.isGenericObject(body)) {\n // Any javascript object\n return [2 /*return*/, JSON.stringify(body)];\n }\n else {\n // Files, arrayBuffer etc\n return [2 /*return*/, body];\n }\n return [2 /*return*/];\n });\n });\n };\n AWSS3ProviderManagedUpload.prototype.isGenericObject = function (body) {\n if (body !== null && typeof body === 'object') {\n try {\n return !(this.byteLength(body) >= 0);\n }\n catch (error) {\n // If we cannot determine the length of the body, consider it\n // as a generic object and upload a stringified version of it\n return true;\n }\n }\n return false;\n };\n AWSS3ProviderManagedUpload.prototype._createNewS3Client = function (config, emitter) {\n var s3client = createS3Client(config, emitter);\n s3client.middlewareStack.add(createPrefixMiddleware(this.opts, this.params.Key), prefixMiddlewareOptions);\n s3client.middlewareStack.add(autoAdjustClockskewMiddleware(s3client.config), autoAdjustClockskewMiddlewareOptions);\n return s3client;\n };\n return AWSS3ProviderManagedUpload;\n}());\nexport { AWSS3ProviderManagedUpload };\n//# sourceMappingURL=AWSS3ProviderManagedUpload.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\n/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger, Credentials, Parser, StorageHelper, Hub, } from '@aws-amplify/core';\nimport { GetObjectCommand, DeleteObjectCommand, ListObjectsV2Command, CopyObjectCommand, } from '@aws-sdk/client-s3';\nimport { formatUrl } from '@aws-sdk/util-format-url';\nimport { createRequest } from '@aws-sdk/util-create-request';\nimport { S3RequestPresigner } from '@aws-sdk/s3-request-presigner';\nimport { SEND_DOWNLOAD_PROGRESS_EVENT, SEND_UPLOAD_PROGRESS_EVENT, } from './axios-http-handler';\nimport { StorageErrorStrings } from '../common/StorageErrorStrings';\nimport { dispatchStorageEvent } from '../common/StorageUtils';\nimport { createPrefixMiddleware, prefixMiddlewareOptions, getPrefix, autoAdjustClockskewMiddleware, autoAdjustClockskewMiddlewareOptions, createS3Client, } from '../common/S3ClientUtils';\nimport { AWSS3ProviderManagedUpload } from './AWSS3ProviderManagedUpload';\nimport { AWSS3UploadTask, TaskEvents } from './AWSS3UploadTask';\nimport { UPLOADS_STORAGE_KEY } from '../common/StorageConstants';\nimport * as events from 'events';\nvar logger = new Logger('AWSS3Provider');\nvar DEFAULT_STORAGE_LEVEL = 'public';\nvar DEFAULT_PRESIGN_EXPIRATION = 900;\n/**\n * Provide storage methods to use AWS S3\n */\nvar AWSS3Provider = /** @class */ (function () {\n /**\n * Initialize Storage with AWS configurations\n * @param {Object} config - Configuration object for storage\n */\n function AWSS3Provider(config) {\n var _this = this;\n this._config = config ? config : {};\n this._storage = new StorageHelper().getStorage();\n Hub.listen('auth', function (data) {\n var payload = data.payload;\n if (payload.event === 'signOut' || payload.event === 'signIn') {\n _this._storage.removeItem(UPLOADS_STORAGE_KEY);\n }\n });\n logger.debug('Storage Options', this._config);\n }\n /**\n * get the category of the plugin\n */\n AWSS3Provider.prototype.getCategory = function () {\n return AWSS3Provider.CATEGORY;\n };\n /**\n * get provider name of the plugin\n */\n AWSS3Provider.prototype.getProviderName = function () {\n return AWSS3Provider.PROVIDER_NAME;\n };\n /**\n * Configure Storage part with aws configuration\n * @param {Object} config - Configuration of the Storage\n * @return {Object} - Current configuration\n */\n AWSS3Provider.prototype.configure = function (config) {\n logger.debug('configure Storage', config);\n if (!config)\n return this._config;\n var amplifyConfig = Parser.parseMobilehubConfig(config);\n this._config = Object.assign({}, this._config, amplifyConfig.Storage);\n if (!this._config.bucket) {\n logger.debug('Do not have bucket yet');\n }\n return this._config;\n };\n AWSS3Provider.prototype.startResumableUpload = function (addTaskInput, config) {\n var s3Client = addTaskInput.s3Client, emitter = addTaskInput.emitter, key = addTaskInput.key, file = addTaskInput.file, params = addTaskInput.params;\n var progressCallback = config.progressCallback, completeCallback = config.completeCallback, errorCallback = config.errorCallback, _a = config.track, track = _a === void 0 ? false : _a;\n if (!(file instanceof Blob)) {\n throw new Error(StorageErrorStrings.INVALID_BLOB);\n }\n emitter.on(TaskEvents.UPLOAD_PROGRESS, function (event) {\n if (progressCallback) {\n if (typeof progressCallback === 'function') {\n progressCallback(event);\n }\n else {\n logger.warn('progressCallback should be a function, not a ' +\n typeof progressCallback);\n }\n }\n });\n emitter.on(TaskEvents.UPLOAD_COMPLETE, function (event) {\n if (completeCallback) {\n if (typeof completeCallback === 'function') {\n completeCallback(event);\n }\n else {\n logger.warn('completeCallback should be a function, not a ' +\n typeof completeCallback);\n }\n }\n });\n emitter.on(TaskEvents.ERROR, function (err) {\n if (errorCallback) {\n if (typeof errorCallback === 'function') {\n errorCallback(err);\n }\n else {\n logger.warn('errorCallback should be a function, not a ' + typeof errorCallback);\n }\n }\n });\n // we want to keep this function sync so we defer this promise to AWSS3UploadTask to resolve when it's needed\n // when its doing a final check with _listSingleFile function\n var prefixPromise = Credentials.get().then(function (credentials) {\n var cred = Credentials.shear(credentials);\n return getPrefix(__assign(__assign({}, config), { credentials: cred }));\n });\n var task = new AWSS3UploadTask({\n s3Client: s3Client,\n file: file,\n emitter: emitter,\n level: config.level,\n storage: this._storage,\n params: params,\n prefixPromise: prefixPromise,\n });\n dispatchStorageEvent(track, 'upload', { method: 'put', result: 'success' }, null, \"Upload Task created successfully for \" + key);\n // automatically start the upload task\n task.resume();\n return task;\n };\n /**\n * Copy an object from a source object to a new object within the same bucket. Can optionally copy files across\n * different level or identityId (if source object's level is 'protected').\n *\n * @async\n * @param {S3CopySource} src - Key and optionally access level and identityId of the source object.\n * @param {S3CopyDestination} dest - Key and optionally access level of the destination object.\n * @param {S3ProviderCopyConfig} [config] - Optional configuration for s3 commands.\n * @return {Promise} The key of the copied object.\n */\n AWSS3Provider.prototype.copy = function (src, dest, config) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, opt, acl, bucket, cacheControl, expires, track, serverSideEncryption, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, SSEKMSKeyId, _a, srcLevel, srcIdentityId, srcKey, _b, destLevel, destKey, srcPrefix, destPrefix, finalSrcKey, finalDestKey, params, s3, error_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _c.sent();\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\n opt = Object.assign({}, this._config, config);\n acl = opt.acl, bucket = opt.bucket, cacheControl = opt.cacheControl, expires = opt.expires, track = opt.track, serverSideEncryption = opt.serverSideEncryption, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5, SSEKMSKeyId = opt.SSEKMSKeyId;\n _a = src.level, srcLevel = _a === void 0 ? DEFAULT_STORAGE_LEVEL : _a, srcIdentityId = src.identityId, srcKey = src.key;\n _b = dest.level, destLevel = _b === void 0 ? DEFAULT_STORAGE_LEVEL : _b, destKey = dest.key;\n if (!srcKey || typeof srcKey !== 'string') {\n throw new Error(StorageErrorStrings.NO_SRC_KEY);\n }\n if (!destKey || typeof destKey !== 'string') {\n throw new Error(StorageErrorStrings.NO_DEST_KEY);\n }\n if (srcLevel !== 'protected' && srcIdentityId) {\n logger.warn(\"You may copy files from another user if the source level is \\\"protected\\\", currently it's \" + srcLevel);\n }\n srcPrefix = this._prefix(__assign(__assign(__assign({}, opt), { level: srcLevel }), (srcIdentityId && { identityId: srcIdentityId })));\n destPrefix = this._prefix(__assign(__assign({}, opt), { level: destLevel }));\n finalSrcKey = bucket + \"/\" + srcPrefix + srcKey;\n finalDestKey = \"\" + destPrefix + destKey;\n logger.debug(\"copying \" + finalSrcKey + \" to \" + finalDestKey);\n params = {\n Bucket: bucket,\n CopySource: finalSrcKey,\n Key: finalDestKey,\n // Copies over metadata like contentType as well\n MetadataDirective: 'COPY',\n };\n if (cacheControl)\n params.CacheControl = cacheControl;\n if (expires)\n params.Expires = expires;\n if (serverSideEncryption) {\n params.ServerSideEncryption = serverSideEncryption;\n }\n if (SSECustomerAlgorithm) {\n params.SSECustomerAlgorithm = SSECustomerAlgorithm;\n }\n if (SSECustomerKey) {\n params.SSECustomerKey = SSECustomerKey;\n }\n if (SSECustomerKeyMD5) {\n params.SSECustomerKeyMD5 = SSECustomerKeyMD5;\n }\n if (SSEKMSKeyId) {\n params.SSEKMSKeyId = SSEKMSKeyId;\n }\n if (acl)\n params.ACL = acl;\n s3 = this._createNewS3Client(opt);\n _c.label = 2;\n case 2:\n _c.trys.push([2, 4, , 5]);\n return [4 /*yield*/, s3.send(new CopyObjectCommand(params))];\n case 3:\n _c.sent();\n dispatchStorageEvent(track, 'copy', {\n method: 'copy',\n result: 'success',\n }, null, \"Copy success from \" + srcKey + \" to \" + destKey);\n return [2 /*return*/, {\n key: destKey,\n }];\n case 4:\n error_1 = _c.sent();\n dispatchStorageEvent(track, 'copy', {\n method: 'copy',\n result: 'failed',\n }, null, \"Copy failed from \" + srcKey + \" to \" + destKey);\n throw error_1;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3Provider.prototype.get = function (key, config) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, opt, bucket, download, cacheControl, contentDisposition, contentEncoding, contentLanguage, contentType, expires, track, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, progressCallback, prefix, final_key, emitter, s3, params, getObjectCommand, response, error_2, signer, request, url, _a, error_3;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _b.sent();\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\n opt = Object.assign({}, this._config, config);\n bucket = opt.bucket, download = opt.download, cacheControl = opt.cacheControl, contentDisposition = opt.contentDisposition, contentEncoding = opt.contentEncoding, contentLanguage = opt.contentLanguage, contentType = opt.contentType, expires = opt.expires, track = opt.track, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5, progressCallback = opt.progressCallback;\n prefix = this._prefix(opt);\n final_key = prefix + key;\n emitter = new events.EventEmitter();\n s3 = this._createNewS3Client(opt, emitter);\n logger.debug('get ' + key + ' from ' + final_key);\n params = {\n Bucket: bucket,\n Key: final_key,\n };\n // See: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property\n if (cacheControl)\n params.ResponseCacheControl = cacheControl;\n if (contentDisposition)\n params.ResponseContentDisposition = contentDisposition;\n if (contentEncoding)\n params.ResponseContentEncoding = contentEncoding;\n if (contentLanguage)\n params.ResponseContentLanguage = contentLanguage;\n if (contentType)\n params.ResponseContentType = contentType;\n if (SSECustomerAlgorithm) {\n params.SSECustomerAlgorithm = SSECustomerAlgorithm;\n }\n if (SSECustomerKey) {\n params.SSECustomerKey = SSECustomerKey;\n }\n if (SSECustomerKeyMD5) {\n params.SSECustomerKeyMD5 = SSECustomerKeyMD5;\n }\n if (!(download === true)) return [3 /*break*/, 5];\n getObjectCommand = new GetObjectCommand(params);\n _b.label = 2;\n case 2:\n _b.trys.push([2, 4, , 5]);\n if (progressCallback) {\n if (typeof progressCallback === 'function') {\n emitter.on(SEND_DOWNLOAD_PROGRESS_EVENT, function (progress) {\n progressCallback(progress);\n });\n }\n else {\n logger.warn('progressCallback should be a function, not a ' +\n typeof progressCallback);\n }\n }\n return [4 /*yield*/, s3.send(getObjectCommand)];\n case 3:\n response = _b.sent();\n emitter.removeAllListeners(SEND_DOWNLOAD_PROGRESS_EVENT);\n dispatchStorageEvent(track, 'download', { method: 'get', result: 'success' }, {\n fileSize: Number(response.Body['size'] || response.Body['length']),\n }, \"Download success for \" + key);\n return [2 /*return*/, response];\n case 4:\n error_2 = _b.sent();\n dispatchStorageEvent(track, 'download', {\n method: 'get',\n result: 'failed',\n }, null, \"Download failed with \" + error_2.message);\n throw error_2;\n case 5:\n _b.trys.push([5, 8, , 9]);\n signer = new S3RequestPresigner(__assign({}, s3.config));\n return [4 /*yield*/, createRequest(s3, new GetObjectCommand(params))];\n case 6:\n request = _b.sent();\n _a = formatUrl;\n return [4 /*yield*/, signer.presign(request, {\n expiresIn: expires || DEFAULT_PRESIGN_EXPIRATION,\n })];\n case 7:\n url = _a.apply(void 0, [_b.sent()]);\n dispatchStorageEvent(track, 'getSignedUrl', { method: 'get', result: 'success' }, null, \"Signed URL: \" + url);\n return [2 /*return*/, url];\n case 8:\n error_3 = _b.sent();\n logger.warn('get signed url error', error_3);\n dispatchStorageEvent(track, 'getSignedUrl', { method: 'get', result: 'failed' }, null, \"Could not get a signed URL for \" + key);\n throw error_3;\n case 9: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Put a file in S3 bucket specified to configure method\n * @param key - key of the object\n * @param object - File to be put in Amazon S3 bucket\n * @param [config] - Optional configuration for the underlying S3 command\n * @return an instance of AWSS3UploadTask or a promise that resolves to an object with the new object's key on\n * success.\n */\n AWSS3Provider.prototype.put = function (key, object, config) {\n var opt = Object.assign({}, this._config, config);\n var bucket = opt.bucket, track = opt.track, progressCallback = opt.progressCallback, level = opt.level, resumable = opt.resumable;\n var contentType = opt.contentType, contentDisposition = opt.contentDisposition, contentEncoding = opt.contentEncoding, cacheControl = opt.cacheControl, expires = opt.expires, metadata = opt.metadata, tagging = opt.tagging, acl = opt.acl;\n var serverSideEncryption = opt.serverSideEncryption, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5, SSEKMSKeyId = opt.SSEKMSKeyId;\n var type = contentType ? contentType : 'binary/octet-stream';\n var params = {\n Bucket: bucket,\n Key: key,\n Body: object,\n ContentType: type,\n };\n if (cacheControl) {\n params.CacheControl = cacheControl;\n }\n if (contentDisposition) {\n params.ContentDisposition = contentDisposition;\n }\n if (contentEncoding) {\n params.ContentEncoding = contentEncoding;\n }\n if (expires) {\n params.Expires = expires;\n }\n if (metadata) {\n params.Metadata = metadata;\n }\n if (tagging) {\n params.Tagging = tagging;\n }\n if (serverSideEncryption) {\n params.ServerSideEncryption = serverSideEncryption;\n }\n if (SSECustomerAlgorithm) {\n params.SSECustomerAlgorithm = SSECustomerAlgorithm;\n }\n if (SSECustomerKey) {\n params.SSECustomerKey = SSECustomerKey;\n }\n if (SSECustomerKeyMD5) {\n params.SSECustomerKeyMD5 = SSECustomerKeyMD5;\n }\n if (SSEKMSKeyId) {\n params.SSEKMSKeyId = SSEKMSKeyId;\n }\n var emitter = new events.EventEmitter();\n var uploader = new AWSS3ProviderManagedUpload(params, opt, emitter);\n if (acl) {\n params.ACL = acl;\n }\n if (resumable === true) {\n var s3Client = this._createNewS3Client(opt);\n // we are using aws sdk middleware to inject the prefix to key, this way we don't have to call\n // this._ensureCredentials() which allows us to make this function sync so we can return non-Promise like UploadTask\n s3Client.middlewareStack.add(createPrefixMiddleware(opt, key), prefixMiddlewareOptions);\n var addTaskInput = {\n bucket: bucket,\n key: key,\n s3Client: s3Client,\n file: object,\n emitter: emitter,\n accessLevel: level,\n params: params,\n };\n // explicitly asserting the type here as Typescript could not infer that resumable is of type true\n return this.startResumableUpload(addTaskInput, config);\n }\n try {\n if (progressCallback) {\n if (typeof progressCallback === 'function') {\n emitter.on(SEND_UPLOAD_PROGRESS_EVENT, function (progress) {\n progressCallback(progress);\n });\n }\n else {\n logger.warn('progressCallback should be a function, not a ' +\n typeof progressCallback);\n }\n }\n return uploader.upload().then(function (response) {\n logger.debug('upload result', response);\n dispatchStorageEvent(track, 'upload', { method: 'put', result: 'success' }, null, \"Upload success for \" + key);\n return { key: key };\n });\n }\n catch (error) {\n logger.warn('error uploading', error);\n dispatchStorageEvent(track, 'upload', { method: 'put', result: 'failed' }, null, \"Error uploading \" + key);\n throw error;\n }\n };\n /**\n * Remove the object for specified key\n * @param {string} key - key of the object\n * @param {S3ProviderRemoveConfig} [config] - Optional configuration for the underlying S3 command\n * @return {Promise} - Promise resolves upon successful removal of the object\n */\n AWSS3Provider.prototype.remove = function (key, config) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, opt, bucket, track, prefix, final_key, s3, params, deleteObjectCommand, response, error_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\n opt = Object.assign({}, this._config, config);\n bucket = opt.bucket, track = opt.track;\n prefix = this._prefix(opt);\n final_key = prefix + key;\n s3 = this._createNewS3Client(opt);\n logger.debug('remove ' + key + ' from ' + final_key);\n params = {\n Bucket: bucket,\n Key: final_key,\n };\n deleteObjectCommand = new DeleteObjectCommand(params);\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, s3.send(deleteObjectCommand)];\n case 3:\n response = _a.sent();\n dispatchStorageEvent(track, 'delete', { method: 'remove', result: 'success' }, null, \"Deleted \" + key + \" successfully\");\n return [2 /*return*/, response];\n case 4:\n error_4 = _a.sent();\n dispatchStorageEvent(track, 'delete', { method: 'remove', result: 'failed' }, null, \"Deletion of \" + key + \" failed with \" + error_4);\n throw error_4;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3Provider.prototype._list = function (params, opt, prefix) {\n return __awaiter(this, void 0, void 0, function () {\n var result, s3, listObjectsV2Command, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n result = {\n contents: [],\n nextToken: '',\n };\n s3 = this._createNewS3Client(opt);\n listObjectsV2Command = new ListObjectsV2Command(__assign({}, params));\n return [4 /*yield*/, s3.send(listObjectsV2Command)];\n case 1:\n response = _a.sent();\n if (response && response.Contents) {\n result.contents = response.Contents.map(function (item) {\n return {\n key: item.Key.substr(prefix.length),\n eTag: item.ETag,\n lastModified: item.LastModified,\n size: item.Size,\n };\n });\n result.nextToken = response.NextContinuationToken;\n }\n return [2 /*return*/, result];\n }\n });\n });\n };\n /**\n * List bucket objects relative to the level and prefix specified\n * @param {string} path - the path that contains objects\n * @param {S3ProviderListConfig} [config] - Optional configuration for the underlying S3 command\n * @return {Promise} - Promise resolves to list of keys, eTags, lastModified and file size for\n * all objects in path\n */\n AWSS3Provider.prototype.list = function (path, config) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, opt, bucket, track, maxKeys, prefix, final_path, list, token, listResult, params, error_5;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\n opt = Object.assign({}, this._config, config);\n bucket = opt.bucket, track = opt.track, maxKeys = opt.maxKeys;\n prefix = this._prefix(opt);\n final_path = prefix + path;\n logger.debug('list ' + path + ' from ' + final_path);\n _a.label = 2;\n case 2:\n _a.trys.push([2, 10, , 11]);\n list = [];\n token = void 0;\n listResult = void 0;\n params = {\n Bucket: bucket,\n Prefix: final_path,\n MaxKeys: 1000,\n };\n if (!(maxKeys === 'ALL')) return [3 /*break*/, 7];\n _a.label = 3;\n case 3:\n params.ContinuationToken = token;\n params.MaxKeys = 1000;\n return [4 /*yield*/, this._list(params, opt, prefix)];\n case 4:\n listResult = _a.sent();\n list.push.apply(list, __spread(listResult.contents));\n if (listResult.nextToken)\n token = listResult.nextToken;\n _a.label = 5;\n case 5:\n if (listResult.nextToken) return [3 /*break*/, 3];\n _a.label = 6;\n case 6: return [3 /*break*/, 9];\n case 7:\n maxKeys < 1000 || typeof maxKeys === 'string'\n ? (params.MaxKeys = maxKeys)\n : (params.MaxKeys = 1000);\n return [4 /*yield*/, this._list(params, opt, prefix)];\n case 8:\n listResult = _a.sent();\n list.push.apply(list, __spread(listResult.contents));\n if (maxKeys > 1000)\n logger.warn(\"maxkeys can be from 0 - 1000 or 'ALL'. To list all files you can set maxKeys to 'ALL'.\");\n _a.label = 9;\n case 9:\n dispatchStorageEvent(track, 'list', { method: 'list', result: 'success' }, null, list.length + \" items returned from list operation\");\n logger.debug('list', list);\n return [2 /*return*/, list];\n case 10:\n error_5 = _a.sent();\n logger.warn('list error', error_5);\n dispatchStorageEvent(track, 'list', { method: 'list', result: 'failed' }, null, \"Listing items failed: \" + error_5.message);\n throw error_5;\n case 11: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3Provider.prototype._ensureCredentials = function () {\n return __awaiter(this, void 0, void 0, function () {\n var credentials, cred, error_6;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Credentials.get()];\n case 1:\n credentials = _a.sent();\n if (!credentials)\n return [2 /*return*/, false];\n cred = Credentials.shear(credentials);\n logger.debug('set credentials for storage', cred);\n this._config.credentials = cred;\n return [2 /*return*/, true];\n case 2:\n error_6 = _a.sent();\n logger.warn('ensure credentials error', error_6);\n return [2 /*return*/, false];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3Provider.prototype._isWithCredentials = function (config) {\n return typeof config === 'object' && config.hasOwnProperty('credentials');\n };\n AWSS3Provider.prototype._prefix = function (config) {\n var credentials = config.credentials, level = config.level;\n var customPrefix = config.customPrefix || {};\n var identityId = config.identityId || credentials.identityId;\n var privatePath = (customPrefix.private !== undefined ? customPrefix.private : 'private/') +\n identityId +\n '/';\n var protectedPath = (customPrefix.protected !== undefined\n ? customPrefix.protected\n : 'protected/') +\n identityId +\n '/';\n var publicPath = customPrefix.public !== undefined ? customPrefix.public : 'public/';\n switch (level) {\n case 'private':\n return privatePath;\n case 'protected':\n return protectedPath;\n default:\n return publicPath;\n }\n };\n /**\n * Creates an S3 client with new V3 aws sdk\n */\n AWSS3Provider.prototype._createNewS3Client = function (config, emitter) {\n var s3client = createS3Client(config, emitter);\n s3client.middlewareStack.add(autoAdjustClockskewMiddleware(s3client.config), autoAdjustClockskewMiddlewareOptions);\n return s3client;\n };\n AWSS3Provider.CATEGORY = 'Storage';\n AWSS3Provider.PROVIDER_NAME = 'AWSS3';\n return AWSS3Provider;\n}());\nexport { AWSS3Provider };\n/**\n * @deprecated use named import\n */\nexport default AWSS3Provider;\n//# sourceMappingURL=AWSS3Provider.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { ConsoleLogger as Logger, Parser } from '@aws-amplify/core';\nimport { AWSS3Provider } from './providers';\nimport axios from 'axios';\nimport { AWSS3UploadTask } from './providers/AWSS3UploadTask';\nvar logger = new Logger('StorageClass');\nvar DEFAULT_PROVIDER = 'AWSS3';\n/**\n * Provide storage methods to use AWS S3\n */\nvar Storage = /** @class */ (function () {\n /**\n * Initialize Storage\n * @param {Object} config - Configuration object for storage\n */\n function Storage() {\n this._config = {};\n this._pluggables = [];\n this._cancelTokenSourceMap = new WeakMap();\n logger.debug('Storage Options', this._config);\n this.get = this.get.bind(this);\n this.put = this.put.bind(this);\n this.remove = this.remove.bind(this);\n this.list = this.list.bind(this);\n }\n Storage.prototype.getModuleName = function () {\n return 'Storage';\n };\n /**\n * add plugin into Storage category\n * @param {Object} pluggable - an instance of the plugin\n */\n Storage.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable.getCategory() === 'Storage') {\n this._pluggables.push(pluggable);\n var config = {};\n config = pluggable.configure(this._config[pluggable.getProviderName()]);\n return config;\n }\n };\n /**\n * Get the plugin object\n * @param providerName - the name of the plugin\n */\n Storage.prototype.getPluggable = function (providerName) {\n var pluggable = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === providerName; });\n if (pluggable === undefined) {\n logger.debug('No plugin found with providerName', providerName);\n return null;\n }\n else\n return pluggable;\n };\n /**\n * Remove the plugin object\n * @param providerName - the name of the plugin\n */\n Storage.prototype.removePluggable = function (providerName) {\n this._pluggables = this._pluggables.filter(function (pluggable) { return pluggable.getProviderName() !== providerName; });\n return;\n };\n /**\n * Configure Storage\n * @param {Object} config - Configuration object for storage\n * @return {Object} - Current configuration\n */\n Storage.prototype.configure = function (config) {\n var _this = this;\n logger.debug('configure Storage');\n if (!config)\n return this._config;\n var amplifyConfig = Parser.parseMobilehubConfig(config);\n var storageKeysFromConfig = Object.keys(amplifyConfig.Storage);\n var storageArrayKeys = [\n 'bucket',\n 'region',\n 'level',\n 'track',\n 'customPrefix',\n 'serverSideEncryption',\n 'SSECustomerAlgorithm',\n 'SSECustomerKey',\n 'SSECustomerKeyMD5',\n 'SSEKMSKeyId',\n ];\n var isInStorageArrayKeys = function (k) {\n return storageArrayKeys.some(function (x) { return x === k; });\n };\n var checkConfigKeysFromArray = function (k) {\n return k.find(function (k) { return isInStorageArrayKeys(k); });\n };\n if (storageKeysFromConfig &&\n checkConfigKeysFromArray(storageKeysFromConfig) &&\n !amplifyConfig.Storage[DEFAULT_PROVIDER]) {\n amplifyConfig.Storage[DEFAULT_PROVIDER] = {};\n }\n Object.entries(amplifyConfig.Storage).map(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n if (key && isInStorageArrayKeys(key) && value !== undefined) {\n amplifyConfig.Storage[DEFAULT_PROVIDER][key] = value;\n delete amplifyConfig.Storage[key];\n }\n });\n // only update new values for each provider\n Object.keys(amplifyConfig.Storage).forEach(function (providerName) {\n if (typeof amplifyConfig.Storage[providerName] !== 'string') {\n _this._config[providerName] = __assign(__assign({}, _this._config[providerName]), amplifyConfig.Storage[providerName]);\n }\n });\n this._pluggables.forEach(function (pluggable) {\n pluggable.configure(_this._config[pluggable.getProviderName()]);\n });\n if (this._pluggables.length === 0) {\n this.addPluggable(new AWSS3Provider());\n }\n return this._config;\n };\n Storage.prototype.getCancellableTokenSource = function () {\n return axios.CancelToken.source();\n };\n Storage.prototype.updateRequestToBeCancellable = function (request, cancelTokenSource) {\n this._cancelTokenSourceMap.set(request, cancelTokenSource);\n };\n Storage.prototype.isUploadTask = function (x) {\n return (typeof x !== 'undefined' &&\n typeof x['pause'] === 'function' &&\n typeof x['resume'] === 'function');\n };\n Storage.prototype.cancel = function (request, message) {\n if (request instanceof AWSS3UploadTask) {\n return request._cancel();\n }\n var cancelTokenSource = this._cancelTokenSourceMap.get(request);\n if (cancelTokenSource) {\n cancelTokenSource.cancel(message);\n }\n else {\n logger.debug('The request does not map to any cancel token');\n }\n };\n Storage.prototype.copy = function (src, dest, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n var cancelTokenSource = this.getCancellableTokenSource();\n if (typeof prov.copy !== 'function') {\n return Promise.reject(\".copy is not implemented on provider \" + prov.getProviderName());\n }\n var responsePromise = prov.copy(src, dest, __assign(__assign({}, config), { cancelTokenSource: cancelTokenSource }));\n this.updateRequestToBeCancellable(responsePromise, cancelTokenSource);\n return responsePromise;\n };\n Storage.prototype.get = function (key, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n var cancelTokenSource = this.getCancellableTokenSource();\n var responsePromise = prov.get(key, __assign(__assign({}, config), { cancelTokenSource: cancelTokenSource }));\n this.updateRequestToBeCancellable(responsePromise, cancelTokenSource);\n return responsePromise;\n };\n Storage.prototype.isCancelError = function (error) {\n return axios.isCancel(error);\n };\n Storage.prototype.put = function (key, object, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n var cancelTokenSource = this.getCancellableTokenSource();\n var response = prov.put(key, object, __assign(__assign({}, config), { cancelTokenSource: cancelTokenSource }));\n if (!this.isUploadTask(response)) {\n this.updateRequestToBeCancellable(response, cancelTokenSource);\n }\n return response;\n };\n Storage.prototype.remove = function (key, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n return prov.remove(key, config);\n };\n Storage.prototype.list = function (path, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n return prov.list(path, config);\n };\n return Storage;\n}());\nexport { Storage };\n/**\n * @deprecated use named import\n */\nexport default Storage;\n//# sourceMappingURL=Storage.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { Storage as StorageClass } from './Storage';\nimport { Amplify, ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('Storage');\nvar _instance = null;\nvar getInstance = function () {\n if (_instance) {\n return _instance;\n }\n logger.debug('Create Storage Instance, debug');\n _instance = new StorageClass();\n _instance.vault = new StorageClass();\n var old_configure = _instance.configure;\n _instance.configure = function (options) {\n logger.debug('storage configure called');\n var vaultConfig = __assign({}, old_configure.call(_instance, options));\n // set level private for each provider for the vault\n Object.keys(vaultConfig).forEach(function (providerName) {\n if (typeof vaultConfig[providerName] !== 'string') {\n vaultConfig[providerName] = __assign(__assign({}, vaultConfig[providerName]), { level: 'private' });\n }\n });\n logger.debug('storage vault configure called');\n _instance.vault.configure(vaultConfig);\n };\n return _instance;\n};\nexport var Storage = getInstance();\nAmplify.register(Storage);\n/**\n * @deprecated use named import\n */\nexport default Storage;\nexport { StorageClass };\nexport * from './providers';\n//# sourceMappingURL=index.js.map","/**\n * Copyright (c) Nicolas Gallagher.\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 * useLayoutEffect throws an error on the server. On the few occasions where is\n * problematic, use this hook.\n *\n * \n */\nimport { useEffect, useLayoutEffect } from 'react';\nimport canUseDOM from '../canUseDom';\nvar useLayoutEffectImpl = canUseDOM ? useLayoutEffect : useEffect;\nexport default useLayoutEffectImpl;","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Kind } from \"./kinds.mjs\";\nimport { Location } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { Source, isSource } from \"./source.mjs\";\nimport { DirectiveLocation } from \"./directiveLocation.mjs\";\nimport { Lexer, isPunctuatorTokenKind } from \"./lexer.mjs\";\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\nexport function parse(source, options) {\n var parser = new Parser(source, options);\n return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var value = parser.parseValueLiteral(false);\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var type = parser.parseTypeReference();\n parser.expectToken(TokenKind.EOF);\n return type;\n}\n/**\n * This class is exported only to assist people in implementing their own parsers\n * without duplicating too much code and should be used only as last resort for cases\n * such as experimental syntax or if certain features could not be contributed upstream.\n *\n * It is still part of the internal API and is versioned, so any changes to it are never\n * considered breaking changes. If you still need to support multiple versions of the\n * library, please use the `versionInfo` variable for version detection.\n *\n * @internal\n */\n\nexport var Parser = /*#__PURE__*/function () {\n function Parser(source, options) {\n var sourceObj = isSource(source) ? source : new Source(source);\n this._lexer = new Lexer(sourceObj);\n this._options = options;\n }\n /**\n * Converts a name lex token into a name parse node.\n */\n\n\n var _proto = Parser.prototype;\n\n _proto.parseName = function parseName() {\n var token = this.expectToken(TokenKind.NAME);\n return {\n kind: Kind.NAME,\n value: token.value,\n loc: this.loc(token)\n };\n } // Implements the parsing rules in the Document section.\n\n /**\n * Document : Definition+\n */\n ;\n\n _proto.parseDocument = function parseDocument() {\n var start = this._lexer.token;\n return {\n kind: Kind.DOCUMENT,\n definitions: this.many(TokenKind.SOF, this.parseDefinition, TokenKind.EOF),\n loc: this.loc(start)\n };\n }\n /**\n * Definition :\n * - ExecutableDefinition\n * - TypeSystemDefinition\n * - TypeSystemExtension\n *\n * ExecutableDefinition :\n * - OperationDefinition\n * - FragmentDefinition\n */\n ;\n\n _proto.parseDefinition = function parseDefinition() {\n if (this.peek(TokenKind.NAME)) {\n switch (this._lexer.token.value) {\n case 'query':\n case 'mutation':\n case 'subscription':\n return this.parseOperationDefinition();\n\n case 'fragment':\n return this.parseFragmentDefinition();\n\n case 'schema':\n case 'scalar':\n case 'type':\n case 'interface':\n case 'union':\n case 'enum':\n case 'input':\n case 'directive':\n return this.parseTypeSystemDefinition();\n\n case 'extend':\n return this.parseTypeSystemExtension();\n }\n } else if (this.peek(TokenKind.BRACE_L)) {\n return this.parseOperationDefinition();\n } else if (this.peekDescription()) {\n return this.parseTypeSystemDefinition();\n }\n\n throw this.unexpected();\n } // Implements the parsing rules in the Operations section.\n\n /**\n * OperationDefinition :\n * - SelectionSet\n * - OperationType Name? VariableDefinitions? Directives? SelectionSet\n */\n ;\n\n _proto.parseOperationDefinition = function parseOperationDefinition() {\n var start = this._lexer.token;\n\n if (this.peek(TokenKind.BRACE_L)) {\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: 'query',\n name: undefined,\n variableDefinitions: [],\n directives: [],\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n var operation = this.parseOperationType();\n var name;\n\n if (this.peek(TokenKind.NAME)) {\n name = this.parseName();\n }\n\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: operation,\n name: name,\n variableDefinitions: this.parseVariableDefinitions(),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * OperationType : one of query mutation subscription\n */\n ;\n\n _proto.parseOperationType = function parseOperationType() {\n var operationToken = this.expectToken(TokenKind.NAME);\n\n switch (operationToken.value) {\n case 'query':\n return 'query';\n\n case 'mutation':\n return 'mutation';\n\n case 'subscription':\n return 'subscription';\n }\n\n throw this.unexpected(operationToken);\n }\n /**\n * VariableDefinitions : ( VariableDefinition+ )\n */\n ;\n\n _proto.parseVariableDefinitions = function parseVariableDefinitions() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseVariableDefinition, TokenKind.PAREN_R);\n }\n /**\n * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseVariableDefinition = function parseVariableDefinition() {\n var start = this._lexer.token;\n return {\n kind: Kind.VARIABLE_DEFINITION,\n variable: this.parseVariable(),\n type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n defaultValue: this.expectOptionalToken(TokenKind.EQUALS) ? this.parseValueLiteral(true) : undefined,\n directives: this.parseDirectives(true),\n loc: this.loc(start)\n };\n }\n /**\n * Variable : $ Name\n */\n ;\n\n _proto.parseVariable = function parseVariable() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.DOLLAR);\n return {\n kind: Kind.VARIABLE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n }\n /**\n * SelectionSet : { Selection+ }\n */\n ;\n\n _proto.parseSelectionSet = function parseSelectionSet() {\n var start = this._lexer.token;\n return {\n kind: Kind.SELECTION_SET,\n selections: this.many(TokenKind.BRACE_L, this.parseSelection, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * Selection :\n * - Field\n * - FragmentSpread\n * - InlineFragment\n */\n ;\n\n _proto.parseSelection = function parseSelection() {\n return this.peek(TokenKind.SPREAD) ? this.parseFragment() : this.parseField();\n }\n /**\n * Field : Alias? Name Arguments? Directives? SelectionSet?\n *\n * Alias : Name :\n */\n ;\n\n _proto.parseField = function parseField() {\n var start = this._lexer.token;\n var nameOrAlias = this.parseName();\n var alias;\n var name;\n\n if (this.expectOptionalToken(TokenKind.COLON)) {\n alias = nameOrAlias;\n name = this.parseName();\n } else {\n name = nameOrAlias;\n }\n\n return {\n kind: Kind.FIELD,\n alias: alias,\n name: name,\n arguments: this.parseArguments(false),\n directives: this.parseDirectives(false),\n selectionSet: this.peek(TokenKind.BRACE_L) ? this.parseSelectionSet() : undefined,\n loc: this.loc(start)\n };\n }\n /**\n * Arguments[Const] : ( Argument[?Const]+ )\n */\n ;\n\n _proto.parseArguments = function parseArguments(isConst) {\n var item = isConst ? this.parseConstArgument : this.parseArgument;\n return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n }\n /**\n * Argument[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseArgument = function parseArgument() {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.ARGUMENT,\n name: name,\n value: this.parseValueLiteral(false),\n loc: this.loc(start)\n };\n };\n\n _proto.parseConstArgument = function parseConstArgument() {\n var start = this._lexer.token;\n return {\n kind: Kind.ARGUMENT,\n name: this.parseName(),\n value: (this.expectToken(TokenKind.COLON), this.parseValueLiteral(true)),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Fragments section.\n\n /**\n * Corresponds to both FragmentSpread and InlineFragment in the spec.\n *\n * FragmentSpread : ... FragmentName Directives?\n *\n * InlineFragment : ... TypeCondition? Directives? SelectionSet\n */\n ;\n\n _proto.parseFragment = function parseFragment() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.SPREAD);\n var hasTypeCondition = this.expectOptionalKeyword('on');\n\n if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n return {\n kind: Kind.FRAGMENT_SPREAD,\n name: this.parseFragmentName(),\n directives: this.parseDirectives(false),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentDefinition :\n * - fragment FragmentName on TypeCondition Directives? SelectionSet\n *\n * TypeCondition : NamedType\n */\n ;\n\n _proto.parseFragmentDefinition = function parseFragmentDefinition() {\n var _this$_options;\n\n var start = this._lexer.token;\n this.expectKeyword('fragment'); // Experimental support for defining variables within fragments changes\n // the grammar of FragmentDefinition:\n // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n if (((_this$_options = this._options) === null || _this$_options === void 0 ? void 0 : _this$_options.experimentalFragmentVariables) === true) {\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n variableDefinitions: this.parseVariableDefinitions(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentName : Name but not `on`\n */\n ;\n\n _proto.parseFragmentName = function parseFragmentName() {\n if (this._lexer.token.value === 'on') {\n throw this.unexpected();\n }\n\n return this.parseName();\n } // Implements the parsing rules in the Values section.\n\n /**\n * Value[Const] :\n * - [~Const] Variable\n * - IntValue\n * - FloatValue\n * - StringValue\n * - BooleanValue\n * - NullValue\n * - EnumValue\n * - ListValue[?Const]\n * - ObjectValue[?Const]\n *\n * BooleanValue : one of `true` `false`\n *\n * NullValue : `null`\n *\n * EnumValue : Name but not `true`, `false` or `null`\n */\n ;\n\n _proto.parseValueLiteral = function parseValueLiteral(isConst) {\n var token = this._lexer.token;\n\n switch (token.kind) {\n case TokenKind.BRACKET_L:\n return this.parseList(isConst);\n\n case TokenKind.BRACE_L:\n return this.parseObject(isConst);\n\n case TokenKind.INT:\n this._lexer.advance();\n\n return {\n kind: Kind.INT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.FLOAT:\n this._lexer.advance();\n\n return {\n kind: Kind.FLOAT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.STRING:\n case TokenKind.BLOCK_STRING:\n return this.parseStringLiteral();\n\n case TokenKind.NAME:\n this._lexer.advance();\n\n switch (token.value) {\n case 'true':\n return {\n kind: Kind.BOOLEAN,\n value: true,\n loc: this.loc(token)\n };\n\n case 'false':\n return {\n kind: Kind.BOOLEAN,\n value: false,\n loc: this.loc(token)\n };\n\n case 'null':\n return {\n kind: Kind.NULL,\n loc: this.loc(token)\n };\n\n default:\n return {\n kind: Kind.ENUM,\n value: token.value,\n loc: this.loc(token)\n };\n }\n\n case TokenKind.DOLLAR:\n if (!isConst) {\n return this.parseVariable();\n }\n\n break;\n }\n\n throw this.unexpected();\n };\n\n _proto.parseStringLiteral = function parseStringLiteral() {\n var token = this._lexer.token;\n\n this._lexer.advance();\n\n return {\n kind: Kind.STRING,\n value: token.value,\n block: token.kind === TokenKind.BLOCK_STRING,\n loc: this.loc(token)\n };\n }\n /**\n * ListValue[Const] :\n * - [ ]\n * - [ Value[?Const]+ ]\n */\n ;\n\n _proto.parseList = function parseList(isConst) {\n var _this = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this.parseValueLiteral(isConst);\n };\n\n return {\n kind: Kind.LIST,\n values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectValue[Const] :\n * - { }\n * - { ObjectField[?Const]+ }\n */\n ;\n\n _proto.parseObject = function parseObject(isConst) {\n var _this2 = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this2.parseObjectField(isConst);\n };\n\n return {\n kind: Kind.OBJECT,\n fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectField[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseObjectField = function parseObjectField(isConst) {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.OBJECT_FIELD,\n name: name,\n value: this.parseValueLiteral(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Directives section.\n\n /**\n * Directives[Const] : Directive[?Const]+\n */\n ;\n\n _proto.parseDirectives = function parseDirectives(isConst) {\n var directives = [];\n\n while (this.peek(TokenKind.AT)) {\n directives.push(this.parseDirective(isConst));\n }\n\n return directives;\n }\n /**\n * Directive[Const] : @ Name Arguments[?Const]?\n */\n ;\n\n _proto.parseDirective = function parseDirective(isConst) {\n var start = this._lexer.token;\n this.expectToken(TokenKind.AT);\n return {\n kind: Kind.DIRECTIVE,\n name: this.parseName(),\n arguments: this.parseArguments(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Types section.\n\n /**\n * Type :\n * - NamedType\n * - ListType\n * - NonNullType\n */\n ;\n\n _proto.parseTypeReference = function parseTypeReference() {\n var start = this._lexer.token;\n var type;\n\n if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n type = this.parseTypeReference();\n this.expectToken(TokenKind.BRACKET_R);\n type = {\n kind: Kind.LIST_TYPE,\n type: type,\n loc: this.loc(start)\n };\n } else {\n type = this.parseNamedType();\n }\n\n if (this.expectOptionalToken(TokenKind.BANG)) {\n return {\n kind: Kind.NON_NULL_TYPE,\n type: type,\n loc: this.loc(start)\n };\n }\n\n return type;\n }\n /**\n * NamedType : Name\n */\n ;\n\n _proto.parseNamedType = function parseNamedType() {\n var start = this._lexer.token;\n return {\n kind: Kind.NAMED_TYPE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Type Definition section.\n\n /**\n * TypeSystemDefinition :\n * - SchemaDefinition\n * - TypeDefinition\n * - DirectiveDefinition\n *\n * TypeDefinition :\n * - ScalarTypeDefinition\n * - ObjectTypeDefinition\n * - InterfaceTypeDefinition\n * - UnionTypeDefinition\n * - EnumTypeDefinition\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemDefinition = function parseTypeSystemDefinition() {\n // Many definitions begin with a description and require a lookahead.\n var keywordToken = this.peekDescription() ? this._lexer.lookahead() : this._lexer.token;\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaDefinition();\n\n case 'scalar':\n return this.parseScalarTypeDefinition();\n\n case 'type':\n return this.parseObjectTypeDefinition();\n\n case 'interface':\n return this.parseInterfaceTypeDefinition();\n\n case 'union':\n return this.parseUnionTypeDefinition();\n\n case 'enum':\n return this.parseEnumTypeDefinition();\n\n case 'input':\n return this.parseInputObjectTypeDefinition();\n\n case 'directive':\n return this.parseDirectiveDefinition();\n }\n }\n\n throw this.unexpected(keywordToken);\n };\n\n _proto.peekDescription = function peekDescription() {\n return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n }\n /**\n * Description : StringValue\n */\n ;\n\n _proto.parseDescription = function parseDescription() {\n if (this.peekDescription()) {\n return this.parseStringLiteral();\n }\n }\n /**\n * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n */\n ;\n\n _proto.parseSchemaDefinition = function parseSchemaDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.many(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n return {\n kind: Kind.SCHEMA_DEFINITION,\n description: description,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * OperationTypeDefinition : OperationType : NamedType\n */\n ;\n\n _proto.parseOperationTypeDefinition = function parseOperationTypeDefinition() {\n var start = this._lexer.token;\n var operation = this.parseOperationType();\n this.expectToken(TokenKind.COLON);\n var type = this.parseNamedType();\n return {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation: operation,\n type: type,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n */\n ;\n\n _proto.parseScalarTypeDefinition = function parseScalarTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeDefinition :\n * Description?\n * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseObjectTypeDefinition = function parseObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * ImplementsInterfaces :\n * - implements `&`? NamedType\n * - ImplementsInterfaces & NamedType\n */\n ;\n\n _proto.parseImplementsInterfaces = function parseImplementsInterfaces() {\n var _this$_options2;\n\n if (!this.expectOptionalKeyword('implements')) {\n return [];\n }\n\n if (((_this$_options2 = this._options) === null || _this$_options2 === void 0 ? void 0 : _this$_options2.allowLegacySDLImplementsInterfaces) === true) {\n var types = []; // Optional leading ampersand\n\n this.expectOptionalToken(TokenKind.AMP);\n\n do {\n types.push(this.parseNamedType());\n } while (this.expectOptionalToken(TokenKind.AMP) || this.peek(TokenKind.NAME));\n\n return types;\n }\n\n return this.delimitedMany(TokenKind.AMP, this.parseNamedType);\n }\n /**\n * FieldsDefinition : { FieldDefinition+ }\n */\n ;\n\n _proto.parseFieldsDefinition = function parseFieldsDefinition() {\n var _this$_options3;\n\n // Legacy support for the SDL?\n if (((_this$_options3 = this._options) === null || _this$_options3 === void 0 ? void 0 : _this$_options3.allowLegacySDLEmptyFields) === true && this.peek(TokenKind.BRACE_L) && this._lexer.lookahead().kind === TokenKind.BRACE_R) {\n this._lexer.advance();\n\n this._lexer.advance();\n\n return [];\n }\n\n return this.optionalMany(TokenKind.BRACE_L, this.parseFieldDefinition, TokenKind.BRACE_R);\n }\n /**\n * FieldDefinition :\n * - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n */\n ;\n\n _proto.parseFieldDefinition = function parseFieldDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.FIELD_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n type: type,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ArgumentsDefinition : ( InputValueDefinition+ )\n */\n ;\n\n _proto.parseArgumentDefs = function parseArgumentDefs() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseInputValueDef, TokenKind.PAREN_R);\n }\n /**\n * InputValueDefinition :\n * - Description? Name : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseInputValueDef = function parseInputValueDef() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var defaultValue;\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n defaultValue = this.parseValueLiteral(true);\n }\n\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description: description,\n name: name,\n type: type,\n defaultValue: defaultValue,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeDefinition :\n * - Description? interface Name Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseInterfaceTypeDefinition = function parseInterfaceTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeDefinition :\n * - Description? union Name Directives[Const]? UnionMemberTypes?\n */\n ;\n\n _proto.parseUnionTypeDefinition = function parseUnionTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * UnionMemberTypes :\n * - = `|`? NamedType\n * - UnionMemberTypes | NamedType\n */\n ;\n\n _proto.parseUnionMemberTypes = function parseUnionMemberTypes() {\n return this.expectOptionalToken(TokenKind.EQUALS) ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType) : [];\n }\n /**\n * EnumTypeDefinition :\n * - Description? enum Name Directives[Const]? EnumValuesDefinition?\n */\n ;\n\n _proto.parseEnumTypeDefinition = function parseEnumTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * EnumValuesDefinition : { EnumValueDefinition+ }\n */\n ;\n\n _proto.parseEnumValuesDefinition = function parseEnumValuesDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseEnumValueDefinition, TokenKind.BRACE_R);\n }\n /**\n * EnumValueDefinition : Description? EnumValue Directives[Const]?\n *\n * EnumValue : Name\n */\n ;\n\n _proto.parseEnumValueDefinition = function parseEnumValueDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeDefinition :\n * - Description? input Name Directives[Const]? InputFieldsDefinition?\n */\n ;\n\n _proto.parseInputObjectTypeDefinition = function parseInputObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InputFieldsDefinition : { InputValueDefinition+ }\n */\n ;\n\n _proto.parseInputFieldsDefinition = function parseInputFieldsDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseInputValueDef, TokenKind.BRACE_R);\n }\n /**\n * TypeSystemExtension :\n * - SchemaExtension\n * - TypeExtension\n *\n * TypeExtension :\n * - ScalarTypeExtension\n * - ObjectTypeExtension\n * - InterfaceTypeExtension\n * - UnionTypeExtension\n * - EnumTypeExtension\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemExtension = function parseTypeSystemExtension() {\n var keywordToken = this._lexer.lookahead();\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaExtension();\n\n case 'scalar':\n return this.parseScalarTypeExtension();\n\n case 'type':\n return this.parseObjectTypeExtension();\n\n case 'interface':\n return this.parseInterfaceTypeExtension();\n\n case 'union':\n return this.parseUnionTypeExtension();\n\n case 'enum':\n return this.parseEnumTypeExtension();\n\n case 'input':\n return this.parseInputObjectTypeExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n }\n /**\n * SchemaExtension :\n * - extend schema Directives[Const]? { OperationTypeDefinition+ }\n * - extend schema Directives[Const]\n */\n ;\n\n _proto.parseSchemaExtension = function parseSchemaExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.optionalMany(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n\n if (directives.length === 0 && operationTypes.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCHEMA_EXTENSION,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeExtension :\n * - extend scalar Name Directives[Const]\n */\n ;\n\n _proto.parseScalarTypeExtension = function parseScalarTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n\n if (directives.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCALAR_TYPE_EXTENSION,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeExtension :\n * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend type Name ImplementsInterfaces? Directives[Const]\n * - extend type Name ImplementsInterfaces\n */\n ;\n\n _proto.parseObjectTypeExtension = function parseObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.OBJECT_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeExtension :\n * - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend interface Name ImplementsInterfaces? Directives[Const]\n * - extend interface Name ImplementsInterfaces\n */\n ;\n\n _proto.parseInterfaceTypeExtension = function parseInterfaceTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeExtension :\n * - extend union Name Directives[Const]? UnionMemberTypes\n * - extend union Name Directives[Const]\n */\n ;\n\n _proto.parseUnionTypeExtension = function parseUnionTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n\n if (directives.length === 0 && types.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.UNION_TYPE_EXTENSION,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * EnumTypeExtension :\n * - extend enum Name Directives[Const]? EnumValuesDefinition\n * - extend enum Name Directives[Const]\n */\n ;\n\n _proto.parseEnumTypeExtension = function parseEnumTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n\n if (directives.length === 0 && values.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.ENUM_TYPE_EXTENSION,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeExtension :\n * - extend input Name Directives[Const]? InputFieldsDefinition\n * - extend input Name Directives[Const]\n */\n ;\n\n _proto.parseInputObjectTypeExtension = function parseInputObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveDefinition :\n * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n */\n ;\n\n _proto.parseDirectiveDefinition = function parseDirectiveDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('directive');\n this.expectToken(TokenKind.AT);\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n var repeatable = this.expectOptionalKeyword('repeatable');\n this.expectKeyword('on');\n var locations = this.parseDirectiveLocations();\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n repeatable: repeatable,\n locations: locations,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveLocations :\n * - `|`? DirectiveLocation\n * - DirectiveLocations | DirectiveLocation\n */\n ;\n\n _proto.parseDirectiveLocations = function parseDirectiveLocations() {\n return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation);\n }\n /*\n * DirectiveLocation :\n * - ExecutableDirectiveLocation\n * - TypeSystemDirectiveLocation\n *\n * ExecutableDirectiveLocation : one of\n * `QUERY`\n * `MUTATION`\n * `SUBSCRIPTION`\n * `FIELD`\n * `FRAGMENT_DEFINITION`\n * `FRAGMENT_SPREAD`\n * `INLINE_FRAGMENT`\n *\n * TypeSystemDirectiveLocation : one of\n * `SCHEMA`\n * `SCALAR`\n * `OBJECT`\n * `FIELD_DEFINITION`\n * `ARGUMENT_DEFINITION`\n * `INTERFACE`\n * `UNION`\n * `ENUM`\n * `ENUM_VALUE`\n * `INPUT_OBJECT`\n * `INPUT_FIELD_DEFINITION`\n */\n ;\n\n _proto.parseDirectiveLocation = function parseDirectiveLocation() {\n var start = this._lexer.token;\n var name = this.parseName();\n\n if (DirectiveLocation[name.value] !== undefined) {\n return name;\n }\n\n throw this.unexpected(start);\n } // Core parsing utility functions\n\n /**\n * Returns a location object, used to identify the place in the source that created a given parsed object.\n */\n ;\n\n _proto.loc = function loc(startToken) {\n var _this$_options4;\n\n if (((_this$_options4 = this._options) === null || _this$_options4 === void 0 ? void 0 : _this$_options4.noLocation) !== true) {\n return new Location(startToken, this._lexer.lastToken, this._lexer.source);\n }\n }\n /**\n * Determines if the next token is of a given kind\n */\n ;\n\n _proto.peek = function peek(kind) {\n return this._lexer.token.kind === kind;\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectToken = function expectToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n throw syntaxError(this._lexer.source, token.start, \"Expected \".concat(getTokenKindDesc(kind), \", found \").concat(getTokenDesc(token), \".\"));\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and return undefined.\n */\n ;\n\n _proto.expectOptionalToken = function expectOptionalToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n return undefined;\n }\n /**\n * If the next token is a given keyword, advance the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectKeyword = function expectKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n } else {\n throw syntaxError(this._lexer.source, token.start, \"Expected \\\"\".concat(value, \"\\\", found \").concat(getTokenDesc(token), \".\"));\n }\n }\n /**\n * If the next token is a given keyword, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n ;\n\n _proto.expectOptionalKeyword = function expectOptionalKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n\n return true;\n }\n\n return false;\n }\n /**\n * Helper function for creating an error when an unexpected lexed token is encountered.\n */\n ;\n\n _proto.unexpected = function unexpected(atToken) {\n var token = atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n return syntaxError(this._lexer.source, token.start, \"Unexpected \".concat(getTokenDesc(token), \".\"));\n }\n /**\n * Returns a possibly empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.any = function any(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n while (!this.expectOptionalToken(closeKind)) {\n nodes.push(parseFn.call(this));\n }\n\n return nodes;\n }\n /**\n * Returns a list of parse nodes, determined by the parseFn.\n * It can be empty only if open token is missing otherwise it will always return non-empty list\n * that begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.optionalMany = function optionalMany(openKind, parseFn, closeKind) {\n if (this.expectOptionalToken(openKind)) {\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n\n return [];\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.many = function many(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.\n * Advances the parser to the next lex token after last item in the list.\n */\n ;\n\n _proto.delimitedMany = function delimitedMany(delimiterKind, parseFn) {\n this.expectOptionalToken(delimiterKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (this.expectOptionalToken(delimiterKind));\n\n return nodes;\n };\n\n return Parser;\n}();\n/**\n * A helper function to describe a token as a string for debugging.\n */\n\nfunction getTokenDesc(token) {\n var value = token.value;\n return getTokenKindDesc(token.kind) + (value != null ? \" \\\"\".concat(value, \"\\\"\") : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging.\n */\n\n\nfunction getTokenKindDesc(kind) {\n return isPunctuatorTokenKind(kind) ? \"\\\"\".concat(kind, \"\\\"\") : kind;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\n/**\n * Used to find the indices of the frames that overlap the given offsets. Useful for finding the\n * items that bound different windows of content, such as the visible area or the buffered overscan\n * area.\n */\n\nexport function elementsThatOverlapOffsets(offsets, itemCount, getFrameMetrics) {\n var out = [];\n var outLength = 0;\n\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = getFrameMetrics(ii);\n var trailingOffset = frame.offset + frame.length;\n\n for (var kk = 0; kk < offsets.length; kk++) {\n if (out[kk] == null && trailingOffset >= offsets[kk]) {\n out[kk] = ii;\n outLength++;\n\n if (kk === offsets.length - 1) {\n invariant(outLength === offsets.length, 'bad offsets input, should be in increasing order: %s', JSON.stringify(offsets));\n return out;\n }\n }\n }\n }\n\n return out;\n}\n/**\n * Computes the number of elements in the `next` range that are new compared to the `prev` range.\n * Handy for calculating how many new items will be rendered when the render window changes so we\n * can restrict the number of new items render at once so that content can appear on the screen\n * faster.\n */\n\nexport function newRangeCount(prev, next) {\n return next.last - next.first + 1 - Math.max(0, 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first));\n}\n/**\n * Custom logic for determining which items should be rendered given the current frame and scroll\n * metrics, as well as the previous render state. The algorithm may evolve over time, but generally\n * prioritizes the visible area first, then expands that with overscan regions ahead and behind,\n * biased in the direction of scroll.\n */\n\nexport function computeWindowedRenderLimits(data, getItemCount, maxToRenderPerBatch, windowSize, prev, getFrameMetricsApprox, scrollMetrics) {\n var itemCount = getItemCount(data);\n\n if (itemCount === 0) {\n return prev;\n }\n\n var offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength; // Start with visible area, then compute maximum overscan region by expanding from there, biased\n // in the direction of scroll. Total overscan area is capped, which should cap memory consumption\n // too.\n\n var visibleBegin = Math.max(0, offset);\n var visibleEnd = visibleBegin + visibleLength;\n var overscanLength = (windowSize - 1) * visibleLength; // Considering velocity seems to introduce more churn than it's worth.\n\n var leadFactor = 0.5; // Math.max(0, Math.min(1, velocity / 25 + 0.5));\n\n var fillPreference = velocity > 1 ? 'after' : velocity < -1 ? 'before' : 'none';\n var overscanBegin = Math.max(0, visibleBegin - (1 - leadFactor) * overscanLength);\n var overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n var lastItemOffset = getFrameMetricsApprox(itemCount - 1).offset;\n\n if (lastItemOffset < overscanBegin) {\n // Entire list is before our overscan window\n return {\n first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n last: itemCount - 1\n };\n } // Find the indices that correspond to the items at the render boundaries we're targeting.\n\n\n var _elementsThatOverlapO = elementsThatOverlapOffsets([overscanBegin, visibleBegin, visibleEnd, overscanEnd], itemCount, getFrameMetricsApprox),\n overscanFirst = _elementsThatOverlapO[0],\n first = _elementsThatOverlapO[1],\n last = _elementsThatOverlapO[2],\n overscanLast = _elementsThatOverlapO[3];\n\n overscanFirst = overscanFirst == null ? 0 : overscanFirst;\n first = first == null ? Math.max(0, overscanFirst) : first;\n overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;\n last = last == null ? Math.min(overscanLast, first + maxToRenderPerBatch - 1) : last;\n var visible = {\n first,\n last\n }; // We want to limit the number of new cells we're rendering per batch so that we can fill the\n // content on the screen quickly. If we rendered the entire overscan window at once, the user\n // could be staring at white space for a long time waiting for a bunch of offscreen content to\n // render.\n\n var newCellCount = newRangeCount(prev, visible);\n\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n // If we fill the entire overscan range, we're done.\n break;\n }\n\n var maxNewCells = newCellCount >= maxToRenderPerBatch;\n var firstWillAddMore = first <= prev.first || first > prev.last;\n var firstShouldIncrement = first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n var lastWillAddMore = last >= prev.last || last < prev.first;\n var lastShouldIncrement = last < overscanLast && (!maxNewCells || !lastWillAddMore);\n\n if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n // We only want to stop if we've hit maxNewCells AND we cannot increment first or last\n // without rendering new items. This let's us preserve as many already rendered items as\n // possible, reducing render churn and keeping the rendered overscan range as large as\n // possible.\n break;\n }\n\n if (firstShouldIncrement && !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n\n first--;\n }\n\n if (lastShouldIncrement && !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n\n last++;\n }\n }\n\n if (!(last >= first && first >= 0 && last < itemCount && first >= overscanFirst && last <= overscanLast && first <= visible.first && last >= visible.last)) {\n throw new Error('Bad window calculation ' + JSON.stringify({\n first,\n last,\n itemCount,\n overscanFirst,\n overscanLast,\n visible\n }));\n }\n\n return {\n first,\n last\n };\n}\nexport function keyExtractor(item, index) {\n if (typeof item === 'object' && (item == null ? void 0 : item.key) != null) {\n return item.key;\n }\n\n if (typeof item === 'object' && (item == null ? void 0 : item.id) != null) {\n return item.id;\n }\n\n return String(index);\n}","import { invariant } from \"../../utilities/globals/index.js\";\nexport var DocumentType;\n(function (DocumentType) {\n DocumentType[DocumentType[\"Query\"] = 0] = \"Query\";\n DocumentType[DocumentType[\"Mutation\"] = 1] = \"Mutation\";\n DocumentType[DocumentType[\"Subscription\"] = 2] = \"Subscription\";\n})(DocumentType || (DocumentType = {}));\nvar cache = new Map();\nexport function operationName(type) {\n var name;\n switch (type) {\n case DocumentType.Query:\n name = 'Query';\n break;\n case DocumentType.Mutation:\n name = 'Mutation';\n break;\n case DocumentType.Subscription:\n name = 'Subscription';\n break;\n }\n return name;\n}\nexport function parser(document) {\n var cached = cache.get(document);\n if (cached)\n return cached;\n var variables, type, name;\n __DEV__ ? invariant(!!document && !!document.kind, \"Argument of \" + document + \" passed to parser was not a valid GraphQL \" +\n \"DocumentNode. You may need to use 'graphql-tag' or another method \" +\n \"to convert your operation into a document\") : invariant(!!document && !!document.kind, 34);\n var fragments = document.definitions.filter(function (x) { return x.kind === 'FragmentDefinition'; });\n var queries = document.definitions.filter(function (x) {\n return x.kind === 'OperationDefinition' && x.operation === 'query';\n });\n var mutations = document.definitions.filter(function (x) {\n return x.kind === 'OperationDefinition' && x.operation === 'mutation';\n });\n var subscriptions = document.definitions.filter(function (x) {\n return x.kind === 'OperationDefinition' && x.operation === 'subscription';\n });\n __DEV__ ? invariant(!fragments.length ||\n (queries.length || mutations.length || subscriptions.length), \"Passing only a fragment to 'graphql' is not yet supported. \" +\n \"You must include a query, subscription or mutation as well\") : invariant(!fragments.length ||\n (queries.length || mutations.length || subscriptions.length), 35);\n __DEV__ ? invariant(queries.length + mutations.length + subscriptions.length <= 1, \"react-apollo only supports a query, subscription, or a mutation per HOC. \" +\n (document + \" had \" + queries.length + \" queries, \" + subscriptions.length + \" \") +\n (\"subscriptions and \" + mutations.length + \" mutations. \") +\n \"You can use 'compose' to join multiple operation types to a component\") : invariant(queries.length + mutations.length + subscriptions.length <= 1, 36);\n type = queries.length ? DocumentType.Query : DocumentType.Mutation;\n if (!queries.length && !mutations.length)\n type = DocumentType.Subscription;\n var definitions = queries.length\n ? queries\n : mutations.length\n ? mutations\n : subscriptions;\n __DEV__ ? invariant(definitions.length === 1, \"react-apollo only supports one definition per HOC. \" + document + \" had \" +\n (definitions.length + \" definitions. \") +\n \"You can use 'compose' to join multiple operation types to a component\") : invariant(definitions.length === 1, 37);\n var definition = definitions[0];\n variables = definition.variableDefinitions || [];\n if (definition.name && definition.name.kind === 'Name') {\n name = definition.name.value;\n }\n else {\n name = 'data';\n }\n var payload = { name: name, type: type, variables: variables };\n cache.set(document, payload);\n return payload;\n}\n//# sourceMappingURL=index.js.map","export const ActionType = {\n REANIMATED_WORKLET: 1,\n NATIVE_ANIMATED_EVENT: 2,\n JS_FUNCTION_OLD_API: 3,\n JS_FUNCTION_NEW_API: 4,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\nexport type ActionType = typeof ActionType[keyof typeof ActionType];\n","import NativeReanimatedModule from './NativeReanimated';\nfunction jsListener(eventName, handler) {\n return (evt) => {\n handler(Object.assign(Object.assign({}, evt.nativeEvent), { eventName }));\n };\n}\nexport default class WorkletEventHandler {\n constructor(worklet, eventNames = []) {\n this.worklet = worklet;\n this.eventNames = eventNames;\n this.reattachNeeded = false;\n this.listeners = {};\n this.viewTag = undefined;\n this.registrations = [];\n if (!NativeReanimatedModule.native) {\n this.listeners = eventNames.reduce((acc, eventName) => {\n acc[eventName] = jsListener(eventName, worklet);\n return acc;\n }, {});\n }\n }\n updateWorklet(newWorklet) {\n this.worklet = newWorklet;\n this.reattachNeeded = true;\n }\n registerForEvents(viewTag, fallbackEventName) {\n this.viewTag = viewTag;\n this.registrations = this.eventNames.map((eventName) => NativeReanimatedModule.registerEventHandler(viewTag + eventName, this.worklet));\n if (this.registrations.length === 0 && fallbackEventName) {\n this.registrations.push(NativeReanimatedModule.registerEventHandler(viewTag + fallbackEventName, this.worklet));\n }\n }\n unregisterFromEvents() {\n this.registrations.forEach((id) => NativeReanimatedModule.unregisterEventHandler(id));\n this.registrations = [];\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport EventEmitter from './_EventEmitter';\nexport default EventEmitter;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\nimport EventEmitter from '../emitter/EventEmitter'; // FIXME: use typed events\n\n/**\n * Global EventEmitter used by the native platform to emit events to JavaScript.\n * Events are identified by globally unique event names.\n *\n * NativeModules that emit events should instead subclass `NativeEventEmitter`.\n */\nexport default new EventEmitter();","export class Serializable {\n\n constructor(props) {\n this.properties = props || {};\n }\n\n toObject() {\n return this.properties;\n }\n\n toString() {\n return JSON.stringify(this.toObject());\n }\n\n toJSON() {\n return JSON.stringify(this.properties);\n }\n\n toQueryString() {\n var str = [];\n var obj = this.toObject();\n for (var p in obj) {\n if (obj.hasOwnProperty(p) && obj[p]) {\n str.push(encodeURIComponent(p) + '=' + encodeURIComponent(obj[p]));\n }\n }\n return str.join('&');\n }\n}\n\nclass Hit extends Serializable {\n \n sent = false\n\n constructor(props){\n super(props);\n }\n}\n\n\nexport class PageHit extends Hit {\n constructor(screenName, screenTitle) {\n super({ dt: screenName, dp: screenTitle || screenName, t: 'pageview' });\n }\n}\n\nexport class ScreenHit extends Hit {\n constructor(screenName) {\n super({ cd: screenName, t: 'screenview' });\n }\n}\n\nexport class Event extends Hit {\n constructor(category, action, label, value) {\n super({ ec: category, ea: action, el: label, ev: value, t: 'event' });\n }\n}\n\nexport class Transaction extends Hit {\n constructor(id, affiliation, revenue, shipping, tax) {\n super({ ti: id, ta: affiliation, tr: revenue, tt: tax, t: 'transaction' });\n }\n}\n\nexport class AddItem extends Hit {\n constructor(id, name, price, quantity, sku, category) {\n super({ti: id, in: name, ip: price, iq: quantity, ic: sku, iv: category, t: 'item' });\n }\n}\n","import Constants from 'expo-constants';\nimport { Dimensions, Platform } from 'react-native';\n\nimport { Serializable } from './hits';\n\nconst { width, height } = Dimensions.get('window');\n\nlet defaultOptions = { debug: false };\n\nlet webViewUserAgent = null;\nconst getWebViewUserAgent = async (options) => {\n return new Promise((resolve) => {\n if (options.userAgent) {\n webViewUserAgent = options.userAgent;\n return resolve(options.userAgent);\n }\n if (webViewUserAgent) return resolve(webViewUserAgent);\n Constants.getWebViewUserAgentAsync()\n .then(userAgent => {\n webViewUserAgent = userAgent;\n resolve(userAgent);\n })\n .catch(() => resolve('unknown user agent'))\n });\n}\n\nexport default class Analytics {\n customDimensions = []\n customMetrics = []\n\n constructor(propertyId, additionalParameters = {}, options = defaultOptions){\n this.propertyId = propertyId;\n this.options = options;\n this.clientId = Constants.installationId;\n this.parameters = {\n // an: Constants.manifest.name,\n // aid: Constants.manifest.slug,\n // av: Constants.manifest.version,\n sr: `${width}x${height}`,\n ...additionalParameters\n };\n\n this.promiseGetWebViewUserAgentAsync = getWebViewUserAgent(options)\n .then(userAgent => {\n this.userAgent = userAgent;\n if(this.options.debug){\n console.log(`[expo-analytics] UserAgent=${userAgent}`);\n console.log(`[expo-analytics] Additional parameters=`, this.parameters);\n }\n });\n }\n\n hit(hit){\n // send only after the user agent is saved\n return this.promiseGetWebViewUserAgentAsync\n .then(() => this.send(hit));\n }\n\n event(event){\n // send only after the user agent is saved\n return this.promiseGetWebViewUserAgentAsync\n .then(() => this.send(event));\n }\n\n addParameter(name, value){\n this.parameters[name] = value;\n }\n\n addCustomDimension(index, value){\n this.customDimensions[index] = value;\n }\n\n removeCustomDimension(index){\n delete this.customDimensions[index];\n }\n\n addCustomMetric(index, value) {\n this.customMetrics[index] = value;\n }\n\n removeCustomMetric(index) {\n delete this.customMetrics[index];\n }\n\n send(hit) {\n /* format: https://www.google-analytics.com/collect? +\n * &tid= GA property ID (required)\n * &v= GA protocol version (always 1) (required)\n * &t= hit type (pageview / screenview)\n * &dp= page name (if hit type is pageview)\n * &cd= screen name (if hit type is screenview)\n * &cid= anonymous client ID (optional if uid is given)\n * &uid= user id (optional if cid is given)\n * &ua= user agent override\n * &an= app name (required for any of the other app parameters to work)\n * &aid= app id\n * &av= app version\n * &sr= screen resolution\n * &cd{n}= custom dimensions\n * &cm{n}= custom metrics\n * &z= cache buster (prevent browsers from caching GET requests -- should always be last)\n *\n * Ecommerce track support (transaction)\n * &ti= transaction The transaction ID. (e.g. 1234)\n * &ta= The store or affiliation from which this transaction occurred (e.g. Acme Clothing).\n * &tr= Specifies the total revenue or grand total associated with the transaction (e.g. 11.99). This value may include shipping, tax costs, or other adjustments to total revenue that you want to include as part of your revenue calculations.\n * &tt= Specifies the total shipping cost of the transaction. (e.g. 5)\n *\n * Ecommerce track support (addItem)\n * &ti= transaction The transaction ID. (e.g. 1234)\n * &in= The item name. (e.g. Fluffy Pink Bunnies)\n * &ip= The individual, unit, price for each item. (e.g. 11.99)\n * &iq= The number of units purchased in the transaction. If a non-integer value is passed into this field (e.g. 1.5), it will be rounded to the closest integer value.\n * &ic= TSpecifies the SKU or item code. (e.g. SKU47)\n * &iv= The category to which the item belongs (e.g. Party Toys)\n */\n\n const customDimensions = this.customDimensions.map((value, index) => `cd${index}=${value}`).join('&');\n const customMetrics = this.customMetrics.map((value, index) => `cm${index}=${value}`).join('&');\n\n const params = new Serializable(this.parameters).toQueryString();\n\n const url = `https://www.google-analytics.com/collect?tid=${this.propertyId}&v=1&cid=${this.clientId}&${hit.toQueryString()}&${params}&${customDimensions}&${customMetrics}&z=${Math.round(Math.random() * 1e8)}`;\n\n //Keep original options if on mobile\n let options = {\n method: 'get',\n headers: {\n 'User-Agent': this.userAgent,\n }\n };\n\n if (Platform.OS === 'web') {\n //Request opaque resources to avoid preflight CORS error in Safari\n options.mode = 'no-cors';\n }\n\n if(this.options.debug){\n console.log(`[expo-analytics] Sending GET request to ${url}`);\n }\n\n return fetch(url, options);\n }\n\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // 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\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // 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.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/**\n * Note: This file is autogenerated using \"resources/gen-version.js\" script and\n * automatically updated by \"npm version\" command.\n */\n\n/**\n * A string containing the version of the GraphQL.js library\n */\nexport var version = '15.8.0';\n/**\n * An object containing the components of the GraphQL.js version string\n */\n\nexport var versionInfo = Object.freeze({\n major: 15,\n minor: 8,\n patch: 0,\n preReleaseTag: null\n});\n","/**\n * Returns true if the value acts like a Promise, i.e. has a \"then\" function,\n * otherwise returns false.\n */\n// eslint-disable-next-line no-redeclare\nexport default function isPromise(value) {\n return typeof (value === null || value === void 0 ? void 0 : value.then) === 'function';\n}\n","/* eslint-disable no-redeclare */\n// $FlowFixMe[name-already-bound]\nvar find = Array.prototype.find ? function (list, predicate) {\n return Array.prototype.find.call(list, predicate);\n} : function (list, predicate) {\n for (var _i2 = 0; _i2 < list.length; _i2++) {\n var value = list[_i2];\n\n if (predicate(value)) {\n return value;\n }\n }\n};\nexport default find;\n","/* eslint-disable no-redeclare */\n// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441\nvar objectValues = Object.values || function (obj) {\n return Object.keys(obj).map(function (key) {\n return obj[key];\n });\n};\n\nexport default objectValues;\n","import inspect from \"../jsutils/inspect.mjs\";\nimport { GraphQLError } from \"./GraphQLError.mjs\";\n/**\n * Given an arbitrary value, presumably thrown while attempting to execute a\n * GraphQL operation, produce a new GraphQLError aware of the location in the\n * document responsible for the original Error.\n */\n\nexport function locatedError(rawOriginalError, nodes, path) {\n var _nodes;\n\n // Sometimes a non-error is thrown, wrap it as an Error instance to ensure a consistent Error interface.\n var originalError = rawOriginalError instanceof Error ? rawOriginalError : new Error('Unexpected error value: ' + inspect(rawOriginalError)); // Note: this uses a brand-check to support GraphQL errors originating from other contexts.\n\n if (Array.isArray(originalError.path)) {\n return originalError;\n }\n\n return new GraphQLError(originalError.message, (_nodes = originalError.nodes) !== null && _nodes !== void 0 ? _nodes : nodes, originalError.source, originalError.positions, path, originalError);\n}\n","import devAssert from \"../jsutils/devAssert.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nvar NAME_RX = /^[_a-zA-Z][_a-zA-Z0-9]*$/;\n/**\n * Upholds the spec rules about naming.\n */\n\nexport function assertValidName(name) {\n var error = isValidNameError(name);\n\n if (error) {\n throw error;\n }\n\n return name;\n}\n/**\n * Returns an Error if a name is invalid.\n */\n\nexport function isValidNameError(name) {\n typeof name === 'string' || devAssert(0, 'Expected name to be a string.');\n\n if (name.length > 1 && name[0] === '_' && name[1] === '_') {\n return new GraphQLError(\"Name \\\"\".concat(name, \"\\\" must not begin with \\\"__\\\", which is reserved by GraphQL introspection.\"));\n }\n\n if (!NAME_RX.test(name)) {\n return new GraphQLError(\"Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but \\\"\".concat(name, \"\\\" does not.\"));\n }\n}\n","/* eslint-disable no-redeclare */\n// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441\nvar objectEntries = Object.entries || function (obj) {\n return Object.keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n};\n\nexport default objectEntries;\n","/**\n * Creates a keyed JS object from an array, given a function to produce the keys\n * for each value in the array.\n *\n * This provides a convenient lookup for the array items if the key function\n * produces unique results.\n *\n * const phoneBook = [\n * { name: 'Jon', num: '555-1234' },\n * { name: 'Jenny', num: '867-5309' }\n * ]\n *\n * // { Jon: { name: 'Jon', num: '555-1234' },\n * // Jenny: { name: 'Jenny', num: '867-5309' } }\n * const entriesByName = keyMap(\n * phoneBook,\n * entry => entry.name\n * )\n *\n * // { name: 'Jenny', num: '857-6309' }\n * const jennyEntry = entriesByName['Jenny']\n *\n */\nexport default function keyMap(list, keyFn) {\n return list.reduce(function (map, item) {\n map[keyFn(item)] = item;\n return map;\n }, Object.create(null));\n}\n","import objectEntries from \"../polyfills/objectEntries.mjs\";\n\n/**\n * Creates an object map with the same keys as `map` and values generated by\n * running each value of `map` thru `fn`.\n */\nexport default function mapValue(map, fn) {\n var result = Object.create(null);\n\n for (var _i2 = 0, _objectEntries2 = objectEntries(map); _i2 < _objectEntries2.length; _i2++) {\n var _ref2 = _objectEntries2[_i2];\n var _key = _ref2[0];\n var _value = _ref2[1];\n result[_key] = fn(_value, _key);\n }\n\n return result;\n}\n","import objectEntries from \"../polyfills/objectEntries.mjs\";\nexport default function toObjMap(obj) {\n /* eslint-enable no-redeclare */\n if (Object.getPrototypeOf(obj) === null) {\n return obj;\n }\n\n var map = Object.create(null);\n\n for (var _i2 = 0, _objectEntries2 = objectEntries(obj); _i2 < _objectEntries2.length; _i2++) {\n var _ref2 = _objectEntries2[_i2];\n var key = _ref2[0];\n var value = _ref2[1];\n map[key] = value;\n }\n\n return map;\n}\n","/**\n * Creates a keyed JS object from an array, given a function to produce the keys\n * and a function to produce the values from each item in the array.\n *\n * const phoneBook = [\n * { name: 'Jon', num: '555-1234' },\n * { name: 'Jenny', num: '867-5309' }\n * ]\n *\n * // { Jon: '555-1234', Jenny: '867-5309' }\n * const phonesByName = keyValMap(\n * phoneBook,\n * entry => entry.name,\n * entry => entry.num\n * )\n *\n */\nexport default function keyValMap(list, keyFn, valFn) {\n return list.reduce(function (map, item) {\n map[keyFn(item)] = valFn(item);\n return map;\n }, Object.create(null));\n}\n","var MAX_SUGGESTIONS = 5;\n/**\n * Given [ A, B, C ] return ' Did you mean A, B, or C?'.\n */\n\n// eslint-disable-next-line no-redeclare\nexport default function didYouMean(firstArg, secondArg) {\n var _ref = typeof firstArg === 'string' ? [firstArg, secondArg] : [undefined, firstArg],\n subMessage = _ref[0],\n suggestionsArg = _ref[1];\n\n var message = ' Did you mean ';\n\n if (subMessage) {\n message += subMessage + ' ';\n }\n\n var suggestions = suggestionsArg.map(function (x) {\n return \"\\\"\".concat(x, \"\\\"\");\n });\n\n switch (suggestions.length) {\n case 0:\n return '';\n\n case 1:\n return message + suggestions[0] + '?';\n\n case 2:\n return message + suggestions[0] + ' or ' + suggestions[1] + '?';\n }\n\n var selected = suggestions.slice(0, MAX_SUGGESTIONS);\n var lastItem = selected.pop();\n return message + selected.join(', ') + ', or ' + lastItem + '?';\n}\n","/**\n * Returns the first argument it receives.\n */\nexport default function identityFunc(x) {\n return x;\n}\n","/**\n * Returns a number indicating whether a reference string comes before, or after,\n * or is the same as the given string in natural sort order.\n *\n * See: https://en.wikipedia.org/wiki/Natural_sort_order\n *\n */\nexport default function naturalCompare(aStr, bStr) {\n var aIdx = 0;\n var bIdx = 0;\n\n while (aIdx < aStr.length && bIdx < bStr.length) {\n var aChar = aStr.charCodeAt(aIdx);\n var bChar = bStr.charCodeAt(bIdx);\n\n if (isDigit(aChar) && isDigit(bChar)) {\n var aNum = 0;\n\n do {\n ++aIdx;\n aNum = aNum * 10 + aChar - DIGIT_0;\n aChar = aStr.charCodeAt(aIdx);\n } while (isDigit(aChar) && aNum > 0);\n\n var bNum = 0;\n\n do {\n ++bIdx;\n bNum = bNum * 10 + bChar - DIGIT_0;\n bChar = bStr.charCodeAt(bIdx);\n } while (isDigit(bChar) && bNum > 0);\n\n if (aNum < bNum) {\n return -1;\n }\n\n if (aNum > bNum) {\n return 1;\n }\n } else {\n if (aChar < bChar) {\n return -1;\n }\n\n if (aChar > bChar) {\n return 1;\n }\n\n ++aIdx;\n ++bIdx;\n }\n }\n\n return aStr.length - bStr.length;\n}\nvar DIGIT_0 = 48;\nvar DIGIT_9 = 57;\n\nfunction isDigit(code) {\n return !isNaN(code) && DIGIT_0 <= code && code <= DIGIT_9;\n}\n","import naturalCompare from \"./naturalCompare.mjs\";\n/**\n * Given an invalid input string and a list of valid options, returns a filtered\n * list of valid options sorted based on their similarity with the input.\n */\n\nexport default function suggestionList(input, options) {\n var optionsByDistance = Object.create(null);\n var lexicalDistance = new LexicalDistance(input);\n var threshold = Math.floor(input.length * 0.4) + 1;\n\n for (var _i2 = 0; _i2 < options.length; _i2++) {\n var option = options[_i2];\n var distance = lexicalDistance.measure(option, threshold);\n\n if (distance !== undefined) {\n optionsByDistance[option] = distance;\n }\n }\n\n return Object.keys(optionsByDistance).sort(function (a, b) {\n var distanceDiff = optionsByDistance[a] - optionsByDistance[b];\n return distanceDiff !== 0 ? distanceDiff : naturalCompare(a, b);\n });\n}\n/**\n * Computes the lexical distance between strings A and B.\n *\n * The \"distance\" between two strings is given by counting the minimum number\n * of edits needed to transform string A into string B. An edit can be an\n * insertion, deletion, or substitution of a single character, or a swap of two\n * adjacent characters.\n *\n * Includes a custom alteration from Damerau-Levenshtein to treat case changes\n * as a single edit which helps identify mis-cased values with an edit distance\n * of 1.\n *\n * This distance can be useful for detecting typos in input or sorting\n */\n\nvar LexicalDistance = /*#__PURE__*/function () {\n function LexicalDistance(input) {\n this._input = input;\n this._inputLowerCase = input.toLowerCase();\n this._inputArray = stringToArray(this._inputLowerCase);\n this._rows = [new Array(input.length + 1).fill(0), new Array(input.length + 1).fill(0), new Array(input.length + 1).fill(0)];\n }\n\n var _proto = LexicalDistance.prototype;\n\n _proto.measure = function measure(option, threshold) {\n if (this._input === option) {\n return 0;\n }\n\n var optionLowerCase = option.toLowerCase(); // Any case change counts as a single edit\n\n if (this._inputLowerCase === optionLowerCase) {\n return 1;\n }\n\n var a = stringToArray(optionLowerCase);\n var b = this._inputArray;\n\n if (a.length < b.length) {\n var tmp = a;\n a = b;\n b = tmp;\n }\n\n var aLength = a.length;\n var bLength = b.length;\n\n if (aLength - bLength > threshold) {\n return undefined;\n }\n\n var rows = this._rows;\n\n for (var j = 0; j <= bLength; j++) {\n rows[0][j] = j;\n }\n\n for (var i = 1; i <= aLength; i++) {\n var upRow = rows[(i - 1) % 3];\n var currentRow = rows[i % 3];\n var smallestCell = currentRow[0] = i;\n\n for (var _j = 1; _j <= bLength; _j++) {\n var cost = a[i - 1] === b[_j - 1] ? 0 : 1;\n var currentCell = Math.min(upRow[_j] + 1, // delete\n currentRow[_j - 1] + 1, // insert\n upRow[_j - 1] + cost // substitute\n );\n\n if (i > 1 && _j > 1 && a[i - 1] === b[_j - 2] && a[i - 2] === b[_j - 1]) {\n // transposition\n var doubleDiagonalCell = rows[(i - 2) % 3][_j - 2];\n currentCell = Math.min(currentCell, doubleDiagonalCell + 1);\n }\n\n if (currentCell < smallestCell) {\n smallestCell = currentCell;\n }\n\n currentRow[_j] = currentCell;\n } // Early exit, since distance can't go smaller than smallest element of the previous row.\n\n\n if (smallestCell > threshold) {\n return undefined;\n }\n }\n\n var distance = rows[aLength % 3][bLength];\n return distance <= threshold ? distance : undefined;\n };\n\n return LexicalDistance;\n}();\n\nfunction stringToArray(str) {\n var strLength = str.length;\n var array = new Array(strLength);\n\n for (var i = 0; i < strLength; ++i) {\n array[i] = str.charCodeAt(i);\n }\n\n return array;\n}\n","import inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport keyValMap from \"../jsutils/keyValMap.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\n\n/**\n * Produces a JavaScript value given a GraphQL Value AST.\n *\n * Unlike `valueFromAST()`, no type is provided. The resulting JavaScript value\n * will reflect the provided GraphQL value AST.\n *\n * | GraphQL Value | JavaScript Value |\n * | -------------------- | ---------------- |\n * | Input Object | Object |\n * | List | Array |\n * | Boolean | Boolean |\n * | String / Enum | String |\n * | Int / Float | Number |\n * | Null | null |\n *\n */\nexport function valueFromASTUntyped(valueNode, variables) {\n switch (valueNode.kind) {\n case Kind.NULL:\n return null;\n\n case Kind.INT:\n return parseInt(valueNode.value, 10);\n\n case Kind.FLOAT:\n return parseFloat(valueNode.value);\n\n case Kind.STRING:\n case Kind.ENUM:\n case Kind.BOOLEAN:\n return valueNode.value;\n\n case Kind.LIST:\n return valueNode.values.map(function (node) {\n return valueFromASTUntyped(node, variables);\n });\n\n case Kind.OBJECT:\n return keyValMap(valueNode.fields, function (field) {\n return field.name.value;\n }, function (field) {\n return valueFromASTUntyped(field.value, variables);\n });\n\n case Kind.VARIABLE:\n return variables === null || variables === void 0 ? void 0 : variables[valueNode.name.value];\n } // istanbul ignore next (Not reachable. All possible value nodes have been considered)\n\n\n false || invariant(0, 'Unexpected value node: ' + inspect(valueNode));\n}\n","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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport objectEntries from \"../polyfills/objectEntries.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport keyMap from \"../jsutils/keyMap.mjs\";\nimport mapValue from \"../jsutils/mapValue.mjs\";\nimport toObjMap from \"../jsutils/toObjMap.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport keyValMap from \"../jsutils/keyValMap.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\nimport didYouMean from \"../jsutils/didYouMean.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport identityFunc from \"../jsutils/identityFunc.mjs\";\nimport defineInspect from \"../jsutils/defineInspect.mjs\";\nimport suggestionList from \"../jsutils/suggestionList.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { print } from \"../language/printer.mjs\";\nimport { valueFromASTUntyped } from \"../utilities/valueFromASTUntyped.mjs\";\nexport function isType(type) {\n return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isInputObjectType(type) || isListType(type) || isNonNullType(type);\n}\nexport function assertType(type) {\n if (!isType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL type.\"));\n }\n\n return type;\n}\n/**\n * There are predicates for each kind of GraphQL type.\n */\n\n// eslint-disable-next-line no-redeclare\nexport function isScalarType(type) {\n return instanceOf(type, GraphQLScalarType);\n}\nexport function assertScalarType(type) {\n if (!isScalarType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Scalar type.\"));\n }\n\n return type;\n}\n// eslint-disable-next-line no-redeclare\nexport function isObjectType(type) {\n return instanceOf(type, GraphQLObjectType);\n}\nexport function assertObjectType(type) {\n if (!isObjectType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Object type.\"));\n }\n\n return type;\n}\n// eslint-disable-next-line no-redeclare\nexport function isInterfaceType(type) {\n return instanceOf(type, GraphQLInterfaceType);\n}\nexport function assertInterfaceType(type) {\n if (!isInterfaceType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Interface type.\"));\n }\n\n return type;\n}\n// eslint-disable-next-line no-redeclare\nexport function isUnionType(type) {\n return instanceOf(type, GraphQLUnionType);\n}\nexport function assertUnionType(type) {\n if (!isUnionType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Union type.\"));\n }\n\n return type;\n}\n// eslint-disable-next-line no-redeclare\nexport function isEnumType(type) {\n return instanceOf(type, GraphQLEnumType);\n}\nexport function assertEnumType(type) {\n if (!isEnumType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Enum type.\"));\n }\n\n return type;\n}\n// eslint-disable-next-line no-redeclare\nexport function isInputObjectType(type) {\n return instanceOf(type, GraphQLInputObjectType);\n}\nexport function assertInputObjectType(type) {\n if (!isInputObjectType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Input Object type.\"));\n }\n\n return type;\n}\n// eslint-disable-next-line no-redeclare\nexport function isListType(type) {\n return instanceOf(type, GraphQLList);\n}\nexport function assertListType(type) {\n if (!isListType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL List type.\"));\n }\n\n return type;\n}\n// eslint-disable-next-line no-redeclare\nexport function isNonNullType(type) {\n return instanceOf(type, GraphQLNonNull);\n}\nexport function assertNonNullType(type) {\n if (!isNonNullType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Non-Null type.\"));\n }\n\n return type;\n}\n/**\n * These types may be used as input types for arguments and directives.\n */\n\nexport function isInputType(type) {\n return isScalarType(type) || isEnumType(type) || isInputObjectType(type) || isWrappingType(type) && isInputType(type.ofType);\n}\nexport function assertInputType(type) {\n if (!isInputType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL input type.\"));\n }\n\n return type;\n}\n/**\n * These types may be used as output types as the result of fields.\n */\n\nexport function isOutputType(type) {\n return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isWrappingType(type) && isOutputType(type.ofType);\n}\nexport function assertOutputType(type) {\n if (!isOutputType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL output type.\"));\n }\n\n return type;\n}\n/**\n * These types may describe types which may be leaf values.\n */\n\nexport function isLeafType(type) {\n return isScalarType(type) || isEnumType(type);\n}\nexport function assertLeafType(type) {\n if (!isLeafType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL leaf type.\"));\n }\n\n return type;\n}\n/**\n * These types may describe the parent context of a selection set.\n */\n\nexport function isCompositeType(type) {\n return isObjectType(type) || isInterfaceType(type) || isUnionType(type);\n}\nexport function assertCompositeType(type) {\n if (!isCompositeType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL composite type.\"));\n }\n\n return type;\n}\n/**\n * These types may describe the parent context of a selection set.\n */\n\nexport function isAbstractType(type) {\n return isInterfaceType(type) || isUnionType(type);\n}\nexport function assertAbstractType(type) {\n if (!isAbstractType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL abstract type.\"));\n }\n\n return type;\n}\n/**\n * List Type Wrapper\n *\n * A list is a wrapping type which points to another type.\n * Lists are often created within the context of defining the fields of\n * an object type.\n *\n * Example:\n *\n * const PersonType = new GraphQLObjectType({\n * name: 'Person',\n * fields: () => ({\n * parents: { type: new GraphQLList(PersonType) },\n * children: { type: new GraphQLList(PersonType) },\n * })\n * })\n *\n */\n// FIXME: workaround to fix issue with Babel parser\n\n/* ::\ndeclare class GraphQLList<+T: GraphQLType> {\n +ofType: T;\n static (ofType: T): GraphQLList;\n // Note: constructors cannot be used for covariant types. Drop the \"new\".\n constructor(ofType: GraphQLType): void;\n}\n*/\n\nexport function GraphQLList(ofType) {\n // istanbul ignore else (to be removed in v16.0.0)\n if (this instanceof GraphQLList) {\n this.ofType = assertType(ofType);\n } else {\n return new GraphQLList(ofType);\n }\n} // Need to cast through any to alter the prototype.\n\nGraphQLList.prototype.toString = function toString() {\n return '[' + String(this.ofType) + ']';\n};\n\nGraphQLList.prototype.toJSON = function toJSON() {\n return this.toString();\n};\n\nObject.defineProperty(GraphQLList.prototype, SYMBOL_TO_STRING_TAG, {\n get: function get() {\n return 'GraphQLList';\n }\n}); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLList);\n/**\n * Non-Null Type Wrapper\n *\n * A non-null is a wrapping type which points to another type.\n * Non-null types enforce that their values are never null and can ensure\n * an error is raised if this ever occurs during a request. It is useful for\n * fields which you can make a strong guarantee on non-nullability, for example\n * usually the id field of a database row will never be null.\n *\n * Example:\n *\n * const RowType = new GraphQLObjectType({\n * name: 'Row',\n * fields: () => ({\n * id: { type: new GraphQLNonNull(GraphQLString) },\n * })\n * })\n *\n * Note: the enforcement of non-nullability occurs within the executor.\n */\n// FIXME: workaround to fix issue with Babel parser\n\n/* ::\ndeclare class GraphQLNonNull<+T: GraphQLNullableType> {\n +ofType: T;\n static (ofType: T): GraphQLNonNull;\n // Note: constructors cannot be used for covariant types. Drop the \"new\".\n constructor(ofType: GraphQLType): void;\n}\n*/\n\nexport function GraphQLNonNull(ofType) {\n // istanbul ignore else (to be removed in v16.0.0)\n if (this instanceof GraphQLNonNull) {\n this.ofType = assertNullableType(ofType);\n } else {\n return new GraphQLNonNull(ofType);\n }\n} // Need to cast through any to alter the prototype.\n\nGraphQLNonNull.prototype.toString = function toString() {\n return String(this.ofType) + '!';\n};\n\nGraphQLNonNull.prototype.toJSON = function toJSON() {\n return this.toString();\n};\n\nObject.defineProperty(GraphQLNonNull.prototype, SYMBOL_TO_STRING_TAG, {\n get: function get() {\n return 'GraphQLNonNull';\n }\n}); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLNonNull);\n/**\n * These types wrap and modify other types\n */\n\nexport function isWrappingType(type) {\n return isListType(type) || isNonNullType(type);\n}\nexport function assertWrappingType(type) {\n if (!isWrappingType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL wrapping type.\"));\n }\n\n return type;\n}\n/**\n * These types can all accept null as a value.\n */\n\nexport function isNullableType(type) {\n return isType(type) && !isNonNullType(type);\n}\nexport function assertNullableType(type) {\n if (!isNullableType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL nullable type.\"));\n }\n\n return type;\n}\n/* eslint-disable no-redeclare */\n\nexport function getNullableType(type) {\n /* eslint-enable no-redeclare */\n if (type) {\n return isNonNullType(type) ? type.ofType : type;\n }\n}\n/**\n * These named types do not include modifiers like List or NonNull.\n */\n\nexport function isNamedType(type) {\n return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isInputObjectType(type);\n}\nexport function assertNamedType(type) {\n if (!isNamedType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL named type.\"));\n }\n\n return type;\n}\n/* eslint-disable no-redeclare */\n\nexport function getNamedType(type) {\n /* eslint-enable no-redeclare */\n if (type) {\n var unwrappedType = type;\n\n while (isWrappingType(unwrappedType)) {\n unwrappedType = unwrappedType.ofType;\n }\n\n return unwrappedType;\n }\n}\n/**\n * Used while defining GraphQL types to allow for circular references in\n * otherwise immutable type definitions.\n */\n\nfunction resolveThunk(thunk) {\n // $FlowFixMe[incompatible-use]\n return typeof thunk === 'function' ? thunk() : thunk;\n}\n\nfunction undefineIfEmpty(arr) {\n return arr && arr.length > 0 ? arr : undefined;\n}\n/**\n * Scalar Type Definition\n *\n * The leaf values of any request and input values to arguments are\n * Scalars (or Enums) and are defined with a name and a series of functions\n * used to parse input from ast or variables and to ensure validity.\n *\n * If a type's serialize function does not return a value (i.e. it returns\n * `undefined`) then an error will be raised and a `null` value will be returned\n * in the response. If the serialize function returns `null`, then no error will\n * be included in the response.\n *\n * Example:\n *\n * const OddType = new GraphQLScalarType({\n * name: 'Odd',\n * serialize(value) {\n * if (value % 2 === 1) {\n * return value;\n * }\n * }\n * });\n *\n */\n\n\nexport var GraphQLScalarType = /*#__PURE__*/function () {\n function GraphQLScalarType(config) {\n var _config$parseValue, _config$serialize, _config$parseLiteral;\n\n var parseValue = (_config$parseValue = config.parseValue) !== null && _config$parseValue !== void 0 ? _config$parseValue : identityFunc;\n this.name = config.name;\n this.description = config.description;\n this.specifiedByUrl = config.specifiedByUrl;\n this.serialize = (_config$serialize = config.serialize) !== null && _config$serialize !== void 0 ? _config$serialize : identityFunc;\n this.parseValue = parseValue;\n this.parseLiteral = (_config$parseLiteral = config.parseLiteral) !== null && _config$parseLiteral !== void 0 ? _config$parseLiteral : function (node, variables) {\n return parseValue(valueFromASTUntyped(node, variables));\n };\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n config.specifiedByUrl == null || typeof config.specifiedByUrl === 'string' || devAssert(0, \"\".concat(this.name, \" must provide \\\"specifiedByUrl\\\" as a string, \") + \"but got: \".concat(inspect(config.specifiedByUrl), \".\"));\n config.serialize == null || typeof config.serialize === 'function' || devAssert(0, \"\".concat(this.name, \" must provide \\\"serialize\\\" function. If this custom Scalar is also used as an input type, ensure \\\"parseValue\\\" and \\\"parseLiteral\\\" functions are also provided.\"));\n\n if (config.parseLiteral) {\n typeof config.parseValue === 'function' && typeof config.parseLiteral === 'function' || devAssert(0, \"\".concat(this.name, \" must provide both \\\"parseValue\\\" and \\\"parseLiteral\\\" functions.\"));\n }\n }\n\n var _proto = GraphQLScalarType.prototype;\n\n _proto.toConfig = function toConfig() {\n var _this$extensionASTNod;\n\n return {\n name: this.name,\n description: this.description,\n specifiedByUrl: this.specifiedByUrl,\n serialize: this.serialize,\n parseValue: this.parseValue,\n parseLiteral: this.parseLiteral,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: (_this$extensionASTNod = this.extensionASTNodes) !== null && _this$extensionASTNod !== void 0 ? _this$extensionASTNod : []\n };\n };\n\n _proto.toString = function toString() {\n return this.name;\n };\n\n _proto.toJSON = function toJSON() {\n return this.toString();\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLScalarType, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLScalarType';\n }\n }]);\n\n return GraphQLScalarType;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLScalarType);\n\n/**\n * Object Type Definition\n *\n * Almost all of the GraphQL types you define will be object types. Object types\n * have a name, but most importantly describe their fields.\n *\n * Example:\n *\n * const AddressType = new GraphQLObjectType({\n * name: 'Address',\n * fields: {\n * street: { type: GraphQLString },\n * number: { type: GraphQLInt },\n * formatted: {\n * type: GraphQLString,\n * resolve(obj) {\n * return obj.number + ' ' + obj.street\n * }\n * }\n * }\n * });\n *\n * When two types need to refer to each other, or a type needs to refer to\n * itself in a field, you can use a function expression (aka a closure or a\n * thunk) to supply the fields lazily.\n *\n * Example:\n *\n * const PersonType = new GraphQLObjectType({\n * name: 'Person',\n * fields: () => ({\n * name: { type: GraphQLString },\n * bestFriend: { type: PersonType },\n * })\n * });\n *\n */\nexport var GraphQLObjectType = /*#__PURE__*/function () {\n function GraphQLObjectType(config) {\n this.name = config.name;\n this.description = config.description;\n this.isTypeOf = config.isTypeOf;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._fields = defineFieldMap.bind(undefined, config);\n this._interfaces = defineInterfaces.bind(undefined, config);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n config.isTypeOf == null || typeof config.isTypeOf === 'function' || devAssert(0, \"\".concat(this.name, \" must provide \\\"isTypeOf\\\" as a function, \") + \"but got: \".concat(inspect(config.isTypeOf), \".\"));\n }\n\n var _proto2 = GraphQLObjectType.prototype;\n\n _proto2.getFields = function getFields() {\n if (typeof this._fields === 'function') {\n this._fields = this._fields();\n }\n\n return this._fields;\n };\n\n _proto2.getInterfaces = function getInterfaces() {\n if (typeof this._interfaces === 'function') {\n this._interfaces = this._interfaces();\n }\n\n return this._interfaces;\n };\n\n _proto2.toConfig = function toConfig() {\n return {\n name: this.name,\n description: this.description,\n interfaces: this.getInterfaces(),\n fields: fieldsToFieldsConfig(this.getFields()),\n isTypeOf: this.isTypeOf,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: this.extensionASTNodes || []\n };\n };\n\n _proto2.toString = function toString() {\n return this.name;\n };\n\n _proto2.toJSON = function toJSON() {\n return this.toString();\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLObjectType, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLObjectType';\n }\n }]);\n\n return GraphQLObjectType;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLObjectType);\n\nfunction defineInterfaces(config) {\n var _resolveThunk;\n\n var interfaces = (_resolveThunk = resolveThunk(config.interfaces)) !== null && _resolveThunk !== void 0 ? _resolveThunk : [];\n Array.isArray(interfaces) || devAssert(0, \"\".concat(config.name, \" interfaces must be an Array or a function which returns an Array.\"));\n return interfaces;\n}\n\nfunction defineFieldMap(config) {\n var fieldMap = resolveThunk(config.fields);\n isPlainObj(fieldMap) || devAssert(0, \"\".concat(config.name, \" fields must be an object with field names as keys or a function which returns such an object.\"));\n return mapValue(fieldMap, function (fieldConfig, fieldName) {\n var _fieldConfig$args;\n\n isPlainObj(fieldConfig) || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" field config must be an object.\"));\n !('isDeprecated' in fieldConfig) || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" should provide \\\"deprecationReason\\\" instead of \\\"isDeprecated\\\".\"));\n fieldConfig.resolve == null || typeof fieldConfig.resolve === 'function' || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" field resolver must be a function if \") + \"provided, but got: \".concat(inspect(fieldConfig.resolve), \".\"));\n var argsConfig = (_fieldConfig$args = fieldConfig.args) !== null && _fieldConfig$args !== void 0 ? _fieldConfig$args : {};\n isPlainObj(argsConfig) || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" args must be an object with argument names as keys.\"));\n var args = objectEntries(argsConfig).map(function (_ref) {\n var argName = _ref[0],\n argConfig = _ref[1];\n return {\n name: argName,\n description: argConfig.description,\n type: argConfig.type,\n defaultValue: argConfig.defaultValue,\n deprecationReason: argConfig.deprecationReason,\n extensions: argConfig.extensions && toObjMap(argConfig.extensions),\n astNode: argConfig.astNode\n };\n });\n return {\n name: fieldName,\n description: fieldConfig.description,\n type: fieldConfig.type,\n args: args,\n resolve: fieldConfig.resolve,\n subscribe: fieldConfig.subscribe,\n isDeprecated: fieldConfig.deprecationReason != null,\n deprecationReason: fieldConfig.deprecationReason,\n extensions: fieldConfig.extensions && toObjMap(fieldConfig.extensions),\n astNode: fieldConfig.astNode\n };\n });\n}\n\nfunction isPlainObj(obj) {\n return isObjectLike(obj) && !Array.isArray(obj);\n}\n\nfunction fieldsToFieldsConfig(fields) {\n return mapValue(fields, function (field) {\n return {\n description: field.description,\n type: field.type,\n args: argsToArgsConfig(field.args),\n resolve: field.resolve,\n subscribe: field.subscribe,\n deprecationReason: field.deprecationReason,\n extensions: field.extensions,\n astNode: field.astNode\n };\n });\n}\n/**\n * @internal\n */\n\n\nexport function argsToArgsConfig(args) {\n return keyValMap(args, function (arg) {\n return arg.name;\n }, function (arg) {\n return {\n description: arg.description,\n type: arg.type,\n defaultValue: arg.defaultValue,\n deprecationReason: arg.deprecationReason,\n extensions: arg.extensions,\n astNode: arg.astNode\n };\n });\n}\nexport function isRequiredArgument(arg) {\n return isNonNullType(arg.type) && arg.defaultValue === undefined;\n}\n\n/**\n * Interface Type Definition\n *\n * When a field can return one of a heterogeneous set of types, a Interface type\n * is used to describe what types are possible, what fields are in common across\n * all types, as well as a function to determine which type is actually used\n * when the field is resolved.\n *\n * Example:\n *\n * const EntityType = new GraphQLInterfaceType({\n * name: 'Entity',\n * fields: {\n * name: { type: GraphQLString }\n * }\n * });\n *\n */\nexport var GraphQLInterfaceType = /*#__PURE__*/function () {\n function GraphQLInterfaceType(config) {\n this.name = config.name;\n this.description = config.description;\n this.resolveType = config.resolveType;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._fields = defineFieldMap.bind(undefined, config);\n this._interfaces = defineInterfaces.bind(undefined, config);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n config.resolveType == null || typeof config.resolveType === 'function' || devAssert(0, \"\".concat(this.name, \" must provide \\\"resolveType\\\" as a function, \") + \"but got: \".concat(inspect(config.resolveType), \".\"));\n }\n\n var _proto3 = GraphQLInterfaceType.prototype;\n\n _proto3.getFields = function getFields() {\n if (typeof this._fields === 'function') {\n this._fields = this._fields();\n }\n\n return this._fields;\n };\n\n _proto3.getInterfaces = function getInterfaces() {\n if (typeof this._interfaces === 'function') {\n this._interfaces = this._interfaces();\n }\n\n return this._interfaces;\n };\n\n _proto3.toConfig = function toConfig() {\n var _this$extensionASTNod2;\n\n return {\n name: this.name,\n description: this.description,\n interfaces: this.getInterfaces(),\n fields: fieldsToFieldsConfig(this.getFields()),\n resolveType: this.resolveType,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: (_this$extensionASTNod2 = this.extensionASTNodes) !== null && _this$extensionASTNod2 !== void 0 ? _this$extensionASTNod2 : []\n };\n };\n\n _proto3.toString = function toString() {\n return this.name;\n };\n\n _proto3.toJSON = function toJSON() {\n return this.toString();\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLInterfaceType, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLInterfaceType';\n }\n }]);\n\n return GraphQLInterfaceType;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLInterfaceType);\n\n/**\n * Union Type Definition\n *\n * When a field can return one of a heterogeneous set of types, a Union type\n * is used to describe what types are possible as well as providing a function\n * to determine which type is actually used when the field is resolved.\n *\n * Example:\n *\n * const PetType = new GraphQLUnionType({\n * name: 'Pet',\n * types: [ DogType, CatType ],\n * resolveType(value) {\n * if (value instanceof Dog) {\n * return DogType;\n * }\n * if (value instanceof Cat) {\n * return CatType;\n * }\n * }\n * });\n *\n */\nexport var GraphQLUnionType = /*#__PURE__*/function () {\n function GraphQLUnionType(config) {\n this.name = config.name;\n this.description = config.description;\n this.resolveType = config.resolveType;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._types = defineTypes.bind(undefined, config);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n config.resolveType == null || typeof config.resolveType === 'function' || devAssert(0, \"\".concat(this.name, \" must provide \\\"resolveType\\\" as a function, \") + \"but got: \".concat(inspect(config.resolveType), \".\"));\n }\n\n var _proto4 = GraphQLUnionType.prototype;\n\n _proto4.getTypes = function getTypes() {\n if (typeof this._types === 'function') {\n this._types = this._types();\n }\n\n return this._types;\n };\n\n _proto4.toConfig = function toConfig() {\n var _this$extensionASTNod3;\n\n return {\n name: this.name,\n description: this.description,\n types: this.getTypes(),\n resolveType: this.resolveType,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: (_this$extensionASTNod3 = this.extensionASTNodes) !== null && _this$extensionASTNod3 !== void 0 ? _this$extensionASTNod3 : []\n };\n };\n\n _proto4.toString = function toString() {\n return this.name;\n };\n\n _proto4.toJSON = function toJSON() {\n return this.toString();\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLUnionType, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLUnionType';\n }\n }]);\n\n return GraphQLUnionType;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLUnionType);\n\nfunction defineTypes(config) {\n var types = resolveThunk(config.types);\n Array.isArray(types) || devAssert(0, \"Must provide Array of types or a function which returns such an array for Union \".concat(config.name, \".\"));\n return types;\n}\n\n/**\n * Enum Type Definition\n *\n * Some leaf values of requests and input values are Enums. GraphQL serializes\n * Enum values as strings, however internally Enums can be represented by any\n * kind of type, often integers.\n *\n * Example:\n *\n * const RGBType = new GraphQLEnumType({\n * name: 'RGB',\n * values: {\n * RED: { value: 0 },\n * GREEN: { value: 1 },\n * BLUE: { value: 2 }\n * }\n * });\n *\n * Note: If a value is not provided in a definition, the name of the enum value\n * will be used as its internal value.\n */\nexport var GraphQLEnumType\n/* */\n= /*#__PURE__*/function () {\n function GraphQLEnumType(config) {\n this.name = config.name;\n this.description = config.description;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._values = defineEnumValues(this.name, config.values);\n this._valueLookup = new Map(this._values.map(function (enumValue) {\n return [enumValue.value, enumValue];\n }));\n this._nameLookup = keyMap(this._values, function (value) {\n return value.name;\n });\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n }\n\n var _proto5 = GraphQLEnumType.prototype;\n\n _proto5.getValues = function getValues() {\n return this._values;\n };\n\n _proto5.getValue = function getValue(name) {\n return this._nameLookup[name];\n };\n\n _proto5.serialize = function serialize(outputValue) {\n var enumValue = this._valueLookup.get(outputValue);\n\n if (enumValue === undefined) {\n throw new GraphQLError(\"Enum \\\"\".concat(this.name, \"\\\" cannot represent value: \").concat(inspect(outputValue)));\n }\n\n return enumValue.name;\n };\n\n _proto5.parseValue = function parseValue(inputValue)\n /* T */\n {\n if (typeof inputValue !== 'string') {\n var valueStr = inspect(inputValue);\n throw new GraphQLError(\"Enum \\\"\".concat(this.name, \"\\\" cannot represent non-string value: \").concat(valueStr, \".\") + didYouMeanEnumValue(this, valueStr));\n }\n\n var enumValue = this.getValue(inputValue);\n\n if (enumValue == null) {\n throw new GraphQLError(\"Value \\\"\".concat(inputValue, \"\\\" does not exist in \\\"\").concat(this.name, \"\\\" enum.\") + didYouMeanEnumValue(this, inputValue));\n }\n\n return enumValue.value;\n };\n\n _proto5.parseLiteral = function parseLiteral(valueNode, _variables)\n /* T */\n {\n // Note: variables will be resolved to a value before calling this function.\n if (valueNode.kind !== Kind.ENUM) {\n var valueStr = print(valueNode);\n throw new GraphQLError(\"Enum \\\"\".concat(this.name, \"\\\" cannot represent non-enum value: \").concat(valueStr, \".\") + didYouMeanEnumValue(this, valueStr), valueNode);\n }\n\n var enumValue = this.getValue(valueNode.value);\n\n if (enumValue == null) {\n var _valueStr = print(valueNode);\n\n throw new GraphQLError(\"Value \\\"\".concat(_valueStr, \"\\\" does not exist in \\\"\").concat(this.name, \"\\\" enum.\") + didYouMeanEnumValue(this, _valueStr), valueNode);\n }\n\n return enumValue.value;\n };\n\n _proto5.toConfig = function toConfig() {\n var _this$extensionASTNod4;\n\n var values = keyValMap(this.getValues(), function (value) {\n return value.name;\n }, function (value) {\n return {\n description: value.description,\n value: value.value,\n deprecationReason: value.deprecationReason,\n extensions: value.extensions,\n astNode: value.astNode\n };\n });\n return {\n name: this.name,\n description: this.description,\n values: values,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: (_this$extensionASTNod4 = this.extensionASTNodes) !== null && _this$extensionASTNod4 !== void 0 ? _this$extensionASTNod4 : []\n };\n };\n\n _proto5.toString = function toString() {\n return this.name;\n };\n\n _proto5.toJSON = function toJSON() {\n return this.toString();\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLEnumType, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLEnumType';\n }\n }]);\n\n return GraphQLEnumType;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLEnumType);\n\nfunction didYouMeanEnumValue(enumType, unknownValueStr) {\n var allNames = enumType.getValues().map(function (value) {\n return value.name;\n });\n var suggestedValues = suggestionList(unknownValueStr, allNames);\n return didYouMean('the enum value', suggestedValues);\n}\n\nfunction defineEnumValues(typeName, valueMap) {\n isPlainObj(valueMap) || devAssert(0, \"\".concat(typeName, \" values must be an object with value names as keys.\"));\n return objectEntries(valueMap).map(function (_ref2) {\n var valueName = _ref2[0],\n valueConfig = _ref2[1];\n isPlainObj(valueConfig) || devAssert(0, \"\".concat(typeName, \".\").concat(valueName, \" must refer to an object with a \\\"value\\\" key \") + \"representing an internal value but got: \".concat(inspect(valueConfig), \".\"));\n !('isDeprecated' in valueConfig) || devAssert(0, \"\".concat(typeName, \".\").concat(valueName, \" should provide \\\"deprecationReason\\\" instead of \\\"isDeprecated\\\".\"));\n return {\n name: valueName,\n description: valueConfig.description,\n value: valueConfig.value !== undefined ? valueConfig.value : valueName,\n isDeprecated: valueConfig.deprecationReason != null,\n deprecationReason: valueConfig.deprecationReason,\n extensions: valueConfig.extensions && toObjMap(valueConfig.extensions),\n astNode: valueConfig.astNode\n };\n });\n}\n\n/**\n * Input Object Type Definition\n *\n * An input object defines a structured collection of fields which may be\n * supplied to a field argument.\n *\n * Using `NonNull` will ensure that a value must be provided by the query\n *\n * Example:\n *\n * const GeoPoint = new GraphQLInputObjectType({\n * name: 'GeoPoint',\n * fields: {\n * lat: { type: new GraphQLNonNull(GraphQLFloat) },\n * lon: { type: new GraphQLNonNull(GraphQLFloat) },\n * alt: { type: GraphQLFloat, defaultValue: 0 },\n * }\n * });\n *\n */\nexport var GraphQLInputObjectType = /*#__PURE__*/function () {\n function GraphQLInputObjectType(config) {\n this.name = config.name;\n this.description = config.description;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._fields = defineInputFieldMap.bind(undefined, config);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n }\n\n var _proto6 = GraphQLInputObjectType.prototype;\n\n _proto6.getFields = function getFields() {\n if (typeof this._fields === 'function') {\n this._fields = this._fields();\n }\n\n return this._fields;\n };\n\n _proto6.toConfig = function toConfig() {\n var _this$extensionASTNod5;\n\n var fields = mapValue(this.getFields(), function (field) {\n return {\n description: field.description,\n type: field.type,\n defaultValue: field.defaultValue,\n deprecationReason: field.deprecationReason,\n extensions: field.extensions,\n astNode: field.astNode\n };\n });\n return {\n name: this.name,\n description: this.description,\n fields: fields,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: (_this$extensionASTNod5 = this.extensionASTNodes) !== null && _this$extensionASTNod5 !== void 0 ? _this$extensionASTNod5 : []\n };\n };\n\n _proto6.toString = function toString() {\n return this.name;\n };\n\n _proto6.toJSON = function toJSON() {\n return this.toString();\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLInputObjectType, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLInputObjectType';\n }\n }]);\n\n return GraphQLInputObjectType;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLInputObjectType);\n\nfunction defineInputFieldMap(config) {\n var fieldMap = resolveThunk(config.fields);\n isPlainObj(fieldMap) || devAssert(0, \"\".concat(config.name, \" fields must be an object with field names as keys or a function which returns such an object.\"));\n return mapValue(fieldMap, function (fieldConfig, fieldName) {\n !('resolve' in fieldConfig) || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" field has a resolve property, but Input Types cannot define resolvers.\"));\n return {\n name: fieldName,\n description: fieldConfig.description,\n type: fieldConfig.type,\n defaultValue: fieldConfig.defaultValue,\n deprecationReason: fieldConfig.deprecationReason,\n extensions: fieldConfig.extensions && toObjMap(fieldConfig.extensions),\n astNode: fieldConfig.astNode\n };\n });\n}\n\nexport function isRequiredInputField(field) {\n return isNonNullType(field.type) && field.defaultValue === undefined;\n}\n","import { isInterfaceType, isObjectType, isListType, isNonNullType, isAbstractType } from \"../type/definition.mjs\";\n/**\n * Provided two types, return true if the types are equal (invariant).\n */\n\nexport function isEqualType(typeA, typeB) {\n // Equivalent types are equal.\n if (typeA === typeB) {\n return true;\n } // If either type is non-null, the other must also be non-null.\n\n\n if (isNonNullType(typeA) && isNonNullType(typeB)) {\n return isEqualType(typeA.ofType, typeB.ofType);\n } // If either type is a list, the other must also be a list.\n\n\n if (isListType(typeA) && isListType(typeB)) {\n return isEqualType(typeA.ofType, typeB.ofType);\n } // Otherwise the types are not equal.\n\n\n return false;\n}\n/**\n * Provided a type and a super type, return true if the first type is either\n * equal or a subset of the second super type (covariant).\n */\n\nexport function isTypeSubTypeOf(schema, maybeSubType, superType) {\n // Equivalent type is a valid subtype\n if (maybeSubType === superType) {\n return true;\n } // If superType is non-null, maybeSubType must also be non-null.\n\n\n if (isNonNullType(superType)) {\n if (isNonNullType(maybeSubType)) {\n return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);\n }\n\n return false;\n }\n\n if (isNonNullType(maybeSubType)) {\n // If superType is nullable, maybeSubType may be non-null or nullable.\n return isTypeSubTypeOf(schema, maybeSubType.ofType, superType);\n } // If superType type is a list, maybeSubType type must also be a list.\n\n\n if (isListType(superType)) {\n if (isListType(maybeSubType)) {\n return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);\n }\n\n return false;\n }\n\n if (isListType(maybeSubType)) {\n // If superType is not a list, maybeSubType must also be not a list.\n return false;\n } // If superType type is an abstract type, check if it is super type of maybeSubType.\n // Otherwise, the child type is not a valid subtype of the parent type.\n\n\n return isAbstractType(superType) && (isInterfaceType(maybeSubType) || isObjectType(maybeSubType)) && schema.isSubType(superType, maybeSubType);\n}\n/**\n * Provided two composite types, determine if they \"overlap\". Two composite\n * types overlap when the Sets of possible concrete types for each intersect.\n *\n * This is often used to determine if a fragment of a given type could possibly\n * be visited in a context of another type.\n *\n * This function is commutative.\n */\n\nexport function doTypesOverlap(schema, typeA, typeB) {\n // Equivalent types overlap\n if (typeA === typeB) {\n return true;\n }\n\n if (isAbstractType(typeA)) {\n if (isAbstractType(typeB)) {\n // If both types are abstract, then determine if there is any intersection\n // between possible concrete types of each.\n return schema.getPossibleTypes(typeA).some(function (type) {\n return schema.isSubType(typeB, type);\n });\n } // Determine if the latter type is a possible concrete type of the former.\n\n\n return schema.isSubType(typeA, typeB);\n }\n\n if (isAbstractType(typeB)) {\n // Determine if the former type is a possible concrete type of the latter.\n return schema.isSubType(typeB, typeA);\n } // Otherwise the types do not overlap.\n\n\n return false;\n}\n","import { SYMBOL_ITERATOR } from \"./symbols.mjs\";\n\n/* eslint-disable no-redeclare */\n// $FlowFixMe[name-already-bound]\nvar arrayFrom = Array.from || function (obj, mapFn, thisArg) {\n if (obj == null) {\n throw new TypeError('Array.from requires an array-like object - not null or undefined');\n } // Is Iterable?\n\n\n var iteratorMethod = obj[SYMBOL_ITERATOR];\n\n if (typeof iteratorMethod === 'function') {\n var iterator = iteratorMethod.call(obj);\n var result = [];\n var step;\n\n for (var i = 0; !(step = iterator.next()).done; ++i) {\n result.push(mapFn.call(thisArg, step.value, i)); // Infinite Iterators could cause forEach to run forever.\n // After a very large number of iterations, produce an error.\n // istanbul ignore if (Too big to actually test)\n\n if (i > 9999999) {\n throw new TypeError('Near-infinite iteration.');\n }\n }\n\n return result;\n } // Is Array like?\n\n\n var length = obj.length;\n\n if (typeof length === 'number' && length >= 0 && length % 1 === 0) {\n var _result = [];\n\n for (var _i = 0; _i < length; ++_i) {\n if (Object.prototype.hasOwnProperty.call(obj, _i)) {\n _result.push(mapFn.call(thisArg, obj[_i], _i));\n }\n }\n\n return _result;\n }\n\n return [];\n};\n\nexport default arrayFrom;\n","/* eslint-disable no-redeclare */\n// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441\nvar isFinitePolyfill = Number.isFinite || function (value) {\n return typeof value === 'number' && isFinite(value);\n};\n\nexport default isFinitePolyfill;\n","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); }\n\nimport { SYMBOL_ITERATOR } from \"../polyfills/symbols.mjs\";\n/**\n * Safer version of `Array.from` that return `null` if value isn't convertible to array.\n * Also protects against Array-like objects without items.\n *\n * @example\n *\n * safeArrayFrom([ 1, 2, 3 ]) // [1, 2, 3]\n * safeArrayFrom('ABC') // null\n * safeArrayFrom({ length: 1 }) // null\n * safeArrayFrom({ length: 1, 0: 'Alpha' }) // ['Alpha']\n * safeArrayFrom({ key: 'value' }) // null\n * safeArrayFrom(new Map()) // []\n *\n */\n\nexport default function safeArrayFrom(collection) {\n var mapFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (item) {\n return item;\n };\n\n if (collection == null || _typeof(collection) !== 'object') {\n return null;\n }\n\n if (Array.isArray(collection)) {\n return collection.map(mapFn);\n } // Is Iterable?\n\n\n var iteratorMethod = collection[SYMBOL_ITERATOR];\n\n if (typeof iteratorMethod === 'function') {\n // $FlowFixMe[incompatible-use]\n var iterator = iteratorMethod.call(collection);\n var result = [];\n var step;\n\n for (var i = 0; !(step = iterator.next()).done; ++i) {\n result.push(mapFn(step.value, i));\n }\n\n return result;\n } // Is Array like?\n\n\n var length = collection.length;\n\n if (typeof length === 'number' && length >= 0 && length % 1 === 0) {\n var _result = [];\n\n for (var _i = 0; _i < length; ++_i) {\n if (!Object.prototype.hasOwnProperty.call(collection, _i)) {\n return null;\n }\n\n _result.push(mapFn(collection[String(_i)], _i));\n }\n\n return _result;\n }\n\n return null;\n}\n","/* eslint-disable no-redeclare */\n// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441\nvar isInteger = Number.isInteger || function (value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n};\n\nexport default isInteger;\n","import isFinite from \"../polyfills/isFinite.mjs\";\nimport isInteger from \"../polyfills/isInteger.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { print } from \"../language/printer.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { GraphQLScalarType } from \"./definition.mjs\"; // As per the GraphQL Spec, Integers are only treated as valid when a valid\n// 32-bit signed integer, providing the broadest support across platforms.\n//\n// n.b. JavaScript's integers are safe between -(2^53 - 1) and 2^53 - 1 because\n// they are internally represented as IEEE 754 doubles.\n\nvar MAX_INT = 2147483647;\nvar MIN_INT = -2147483648;\n\nfunction serializeInt(outputValue) {\n var coercedValue = serializeObject(outputValue);\n\n if (typeof coercedValue === 'boolean') {\n return coercedValue ? 1 : 0;\n }\n\n var num = coercedValue;\n\n if (typeof coercedValue === 'string' && coercedValue !== '') {\n num = Number(coercedValue);\n }\n\n if (!isInteger(num)) {\n throw new GraphQLError(\"Int cannot represent non-integer value: \".concat(inspect(coercedValue)));\n }\n\n if (num > MAX_INT || num < MIN_INT) {\n throw new GraphQLError('Int cannot represent non 32-bit signed integer value: ' + inspect(coercedValue));\n }\n\n return num;\n}\n\nfunction coerceInt(inputValue) {\n if (!isInteger(inputValue)) {\n throw new GraphQLError(\"Int cannot represent non-integer value: \".concat(inspect(inputValue)));\n }\n\n if (inputValue > MAX_INT || inputValue < MIN_INT) {\n throw new GraphQLError(\"Int cannot represent non 32-bit signed integer value: \".concat(inputValue));\n }\n\n return inputValue;\n}\n\nexport var GraphQLInt = new GraphQLScalarType({\n name: 'Int',\n description: 'The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.',\n serialize: serializeInt,\n parseValue: coerceInt,\n parseLiteral: function parseLiteral(valueNode) {\n if (valueNode.kind !== Kind.INT) {\n throw new GraphQLError(\"Int cannot represent non-integer value: \".concat(print(valueNode)), valueNode);\n }\n\n var num = parseInt(valueNode.value, 10);\n\n if (num > MAX_INT || num < MIN_INT) {\n throw new GraphQLError(\"Int cannot represent non 32-bit signed integer value: \".concat(valueNode.value), valueNode);\n }\n\n return num;\n }\n});\n\nfunction serializeFloat(outputValue) {\n var coercedValue = serializeObject(outputValue);\n\n if (typeof coercedValue === 'boolean') {\n return coercedValue ? 1 : 0;\n }\n\n var num = coercedValue;\n\n if (typeof coercedValue === 'string' && coercedValue !== '') {\n num = Number(coercedValue);\n }\n\n if (!isFinite(num)) {\n throw new GraphQLError(\"Float cannot represent non numeric value: \".concat(inspect(coercedValue)));\n }\n\n return num;\n}\n\nfunction coerceFloat(inputValue) {\n if (!isFinite(inputValue)) {\n throw new GraphQLError(\"Float cannot represent non numeric value: \".concat(inspect(inputValue)));\n }\n\n return inputValue;\n}\n\nexport var GraphQLFloat = new GraphQLScalarType({\n name: 'Float',\n description: 'The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).',\n serialize: serializeFloat,\n parseValue: coerceFloat,\n parseLiteral: function parseLiteral(valueNode) {\n if (valueNode.kind !== Kind.FLOAT && valueNode.kind !== Kind.INT) {\n throw new GraphQLError(\"Float cannot represent non numeric value: \".concat(print(valueNode)), valueNode);\n }\n\n return parseFloat(valueNode.value);\n }\n}); // Support serializing objects with custom valueOf() or toJSON() functions -\n// a common way to represent a complex value which can be represented as\n// a string (ex: MongoDB id objects).\n\nfunction serializeObject(outputValue) {\n if (isObjectLike(outputValue)) {\n if (typeof outputValue.valueOf === 'function') {\n var valueOfResult = outputValue.valueOf();\n\n if (!isObjectLike(valueOfResult)) {\n return valueOfResult;\n }\n }\n\n if (typeof outputValue.toJSON === 'function') {\n // $FlowFixMe[incompatible-use]\n return outputValue.toJSON();\n }\n }\n\n return outputValue;\n}\n\nfunction serializeString(outputValue) {\n var coercedValue = serializeObject(outputValue); // Serialize string, boolean and number values to a string, but do not\n // attempt to coerce object, function, symbol, or other types as strings.\n\n if (typeof coercedValue === 'string') {\n return coercedValue;\n }\n\n if (typeof coercedValue === 'boolean') {\n return coercedValue ? 'true' : 'false';\n }\n\n if (isFinite(coercedValue)) {\n return coercedValue.toString();\n }\n\n throw new GraphQLError(\"String cannot represent value: \".concat(inspect(outputValue)));\n}\n\nfunction coerceString(inputValue) {\n if (typeof inputValue !== 'string') {\n throw new GraphQLError(\"String cannot represent a non string value: \".concat(inspect(inputValue)));\n }\n\n return inputValue;\n}\n\nexport var GraphQLString = new GraphQLScalarType({\n name: 'String',\n description: 'The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.',\n serialize: serializeString,\n parseValue: coerceString,\n parseLiteral: function parseLiteral(valueNode) {\n if (valueNode.kind !== Kind.STRING) {\n throw new GraphQLError(\"String cannot represent a non string value: \".concat(print(valueNode)), valueNode);\n }\n\n return valueNode.value;\n }\n});\n\nfunction serializeBoolean(outputValue) {\n var coercedValue = serializeObject(outputValue);\n\n if (typeof coercedValue === 'boolean') {\n return coercedValue;\n }\n\n if (isFinite(coercedValue)) {\n return coercedValue !== 0;\n }\n\n throw new GraphQLError(\"Boolean cannot represent a non boolean value: \".concat(inspect(coercedValue)));\n}\n\nfunction coerceBoolean(inputValue) {\n if (typeof inputValue !== 'boolean') {\n throw new GraphQLError(\"Boolean cannot represent a non boolean value: \".concat(inspect(inputValue)));\n }\n\n return inputValue;\n}\n\nexport var GraphQLBoolean = new GraphQLScalarType({\n name: 'Boolean',\n description: 'The `Boolean` scalar type represents `true` or `false`.',\n serialize: serializeBoolean,\n parseValue: coerceBoolean,\n parseLiteral: function parseLiteral(valueNode) {\n if (valueNode.kind !== Kind.BOOLEAN) {\n throw new GraphQLError(\"Boolean cannot represent a non boolean value: \".concat(print(valueNode)), valueNode);\n }\n\n return valueNode.value;\n }\n});\n\nfunction serializeID(outputValue) {\n var coercedValue = serializeObject(outputValue);\n\n if (typeof coercedValue === 'string') {\n return coercedValue;\n }\n\n if (isInteger(coercedValue)) {\n return String(coercedValue);\n }\n\n throw new GraphQLError(\"ID cannot represent value: \".concat(inspect(outputValue)));\n}\n\nfunction coerceID(inputValue) {\n if (typeof inputValue === 'string') {\n return inputValue;\n }\n\n if (isInteger(inputValue)) {\n return inputValue.toString();\n }\n\n throw new GraphQLError(\"ID cannot represent value: \".concat(inspect(inputValue)));\n}\n\nexport var GraphQLID = new GraphQLScalarType({\n name: 'ID',\n description: 'The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `\"4\"`) or integer (such as `4`) input value will be accepted as an ID.',\n serialize: serializeID,\n parseValue: coerceID,\n parseLiteral: function parseLiteral(valueNode) {\n if (valueNode.kind !== Kind.STRING && valueNode.kind !== Kind.INT) {\n throw new GraphQLError('ID cannot represent a non-string and non-integer value: ' + print(valueNode), valueNode);\n }\n\n return valueNode.value;\n }\n});\nexport var specifiedScalarTypes = Object.freeze([GraphQLString, GraphQLInt, GraphQLFloat, GraphQLBoolean, GraphQLID]);\nexport function isSpecifiedScalarType(type) {\n return specifiedScalarTypes.some(function (_ref) {\n var name = _ref.name;\n return type.name === name;\n });\n}\n","import isFinite from \"../polyfills/isFinite.mjs\";\nimport objectValues from \"../polyfills/objectValues.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport safeArrayFrom from \"../jsutils/safeArrayFrom.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { GraphQLID } from \"../type/scalars.mjs\";\nimport { isLeafType, isEnumType, isInputObjectType, isListType, isNonNullType } from \"../type/definition.mjs\";\n/**\n * Produces a GraphQL Value AST given a JavaScript object.\n * Function will match JavaScript/JSON values to GraphQL AST schema format\n * by using suggested GraphQLInputType. For example:\n *\n * astFromValue(\"value\", GraphQLString)\n *\n * A GraphQL type must be provided, which will be used to interpret different\n * JavaScript values.\n *\n * | JSON Value | GraphQL Value |\n * | ------------- | -------------------- |\n * | Object | Input Object |\n * | Array | List |\n * | Boolean | Boolean |\n * | String | String / Enum Value |\n * | Number | Int / Float |\n * | Mixed | Enum Value |\n * | null | NullValue |\n *\n */\n\nexport function astFromValue(value, type) {\n if (isNonNullType(type)) {\n var astValue = astFromValue(value, type.ofType);\n\n if ((astValue === null || astValue === void 0 ? void 0 : astValue.kind) === Kind.NULL) {\n return null;\n }\n\n return astValue;\n } // only explicit null, not undefined, NaN\n\n\n if (value === null) {\n return {\n kind: Kind.NULL\n };\n } // undefined\n\n\n if (value === undefined) {\n return null;\n } // Convert JavaScript array to GraphQL list. If the GraphQLType is a list, but\n // the value is not an array, convert the value using the list's item type.\n\n\n if (isListType(type)) {\n var itemType = type.ofType;\n var items = safeArrayFrom(value);\n\n if (items != null) {\n var valuesNodes = [];\n\n for (var _i2 = 0; _i2 < items.length; _i2++) {\n var item = items[_i2];\n var itemNode = astFromValue(item, itemType);\n\n if (itemNode != null) {\n valuesNodes.push(itemNode);\n }\n }\n\n return {\n kind: Kind.LIST,\n values: valuesNodes\n };\n }\n\n return astFromValue(value, itemType);\n } // Populate the fields of the input object by creating ASTs from each value\n // in the JavaScript object according to the fields in the input type.\n\n\n if (isInputObjectType(type)) {\n if (!isObjectLike(value)) {\n return null;\n }\n\n var fieldNodes = [];\n\n for (var _i4 = 0, _objectValues2 = objectValues(type.getFields()); _i4 < _objectValues2.length; _i4++) {\n var field = _objectValues2[_i4];\n var fieldValue = astFromValue(value[field.name], field.type);\n\n if (fieldValue) {\n fieldNodes.push({\n kind: Kind.OBJECT_FIELD,\n name: {\n kind: Kind.NAME,\n value: field.name\n },\n value: fieldValue\n });\n }\n }\n\n return {\n kind: Kind.OBJECT,\n fields: fieldNodes\n };\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isLeafType(type)) {\n // Since value is an internally represented value, it must be serialized\n // to an externally represented value before converting into an AST.\n var serialized = type.serialize(value);\n\n if (serialized == null) {\n return null;\n } // Others serialize based on their corresponding JavaScript scalar types.\n\n\n if (typeof serialized === 'boolean') {\n return {\n kind: Kind.BOOLEAN,\n value: serialized\n };\n } // JavaScript numbers can be Int or Float values.\n\n\n if (typeof serialized === 'number' && isFinite(serialized)) {\n var stringNum = String(serialized);\n return integerStringRegExp.test(stringNum) ? {\n kind: Kind.INT,\n value: stringNum\n } : {\n kind: Kind.FLOAT,\n value: stringNum\n };\n }\n\n if (typeof serialized === 'string') {\n // Enum types use Enum literals.\n if (isEnumType(type)) {\n return {\n kind: Kind.ENUM,\n value: serialized\n };\n } // ID types can use Int literals.\n\n\n if (type === GraphQLID && integerStringRegExp.test(serialized)) {\n return {\n kind: Kind.INT,\n value: serialized\n };\n }\n\n return {\n kind: Kind.STRING,\n value: serialized\n };\n }\n\n throw new TypeError(\"Cannot convert value to AST: \".concat(inspect(serialized), \".\"));\n } // istanbul ignore next (Not reachable. All possible input types have been considered)\n\n\n false || invariant(0, 'Unexpected input type: ' + inspect(type));\n}\n/**\n * IntValue:\n * - NegativeSign? 0\n * - NegativeSign? NonZeroDigit ( Digit+ )?\n */\n\nvar integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/;\n","import objectValues from \"../polyfills/objectValues.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport { print } from \"../language/printer.mjs\";\nimport { DirectiveLocation } from \"../language/directiveLocation.mjs\";\nimport { astFromValue } from \"../utilities/astFromValue.mjs\";\nimport { GraphQLString, GraphQLBoolean } from \"./scalars.mjs\";\nimport { GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLEnumType, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isListType, isNonNullType, isAbstractType } from \"./definition.mjs\";\nexport var __Schema = new GraphQLObjectType({\n name: '__Schema',\n description: 'A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.',\n fields: function fields() {\n return {\n description: {\n type: GraphQLString,\n resolve: function resolve(schema) {\n return schema.description;\n }\n },\n types: {\n description: 'A list of all types supported by this server.',\n type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(__Type))),\n resolve: function resolve(schema) {\n return objectValues(schema.getTypeMap());\n }\n },\n queryType: {\n description: 'The type that query operations will be rooted at.',\n type: new GraphQLNonNull(__Type),\n resolve: function resolve(schema) {\n return schema.getQueryType();\n }\n },\n mutationType: {\n description: 'If this server supports mutation, the type that mutation operations will be rooted at.',\n type: __Type,\n resolve: function resolve(schema) {\n return schema.getMutationType();\n }\n },\n subscriptionType: {\n description: 'If this server support subscription, the type that subscription operations will be rooted at.',\n type: __Type,\n resolve: function resolve(schema) {\n return schema.getSubscriptionType();\n }\n },\n directives: {\n description: 'A list of all directives supported by this server.',\n type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(__Directive))),\n resolve: function resolve(schema) {\n return schema.getDirectives();\n }\n }\n };\n }\n});\nexport var __Directive = new GraphQLObjectType({\n name: '__Directive',\n description: \"A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\\n\\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.\",\n fields: function fields() {\n return {\n name: {\n type: new GraphQLNonNull(GraphQLString),\n resolve: function resolve(directive) {\n return directive.name;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(directive) {\n return directive.description;\n }\n },\n isRepeatable: {\n type: new GraphQLNonNull(GraphQLBoolean),\n resolve: function resolve(directive) {\n return directive.isRepeatable;\n }\n },\n locations: {\n type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(__DirectiveLocation))),\n resolve: function resolve(directive) {\n return directive.locations;\n }\n },\n args: {\n type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(__InputValue))),\n args: {\n includeDeprecated: {\n type: GraphQLBoolean,\n defaultValue: false\n }\n },\n resolve: function resolve(field, _ref) {\n var includeDeprecated = _ref.includeDeprecated;\n return includeDeprecated ? field.args : field.args.filter(function (arg) {\n return arg.deprecationReason == null;\n });\n }\n }\n };\n }\n});\nexport var __DirectiveLocation = new GraphQLEnumType({\n name: '__DirectiveLocation',\n description: 'A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.',\n values: {\n QUERY: {\n value: DirectiveLocation.QUERY,\n description: 'Location adjacent to a query operation.'\n },\n MUTATION: {\n value: DirectiveLocation.MUTATION,\n description: 'Location adjacent to a mutation operation.'\n },\n SUBSCRIPTION: {\n value: DirectiveLocation.SUBSCRIPTION,\n description: 'Location adjacent to a subscription operation.'\n },\n FIELD: {\n value: DirectiveLocation.FIELD,\n description: 'Location adjacent to a field.'\n },\n FRAGMENT_DEFINITION: {\n value: DirectiveLocation.FRAGMENT_DEFINITION,\n description: 'Location adjacent to a fragment definition.'\n },\n FRAGMENT_SPREAD: {\n value: DirectiveLocation.FRAGMENT_SPREAD,\n description: 'Location adjacent to a fragment spread.'\n },\n INLINE_FRAGMENT: {\n value: DirectiveLocation.INLINE_FRAGMENT,\n description: 'Location adjacent to an inline fragment.'\n },\n VARIABLE_DEFINITION: {\n value: DirectiveLocation.VARIABLE_DEFINITION,\n description: 'Location adjacent to a variable definition.'\n },\n SCHEMA: {\n value: DirectiveLocation.SCHEMA,\n description: 'Location adjacent to a schema definition.'\n },\n SCALAR: {\n value: DirectiveLocation.SCALAR,\n description: 'Location adjacent to a scalar definition.'\n },\n OBJECT: {\n value: DirectiveLocation.OBJECT,\n description: 'Location adjacent to an object type definition.'\n },\n FIELD_DEFINITION: {\n value: DirectiveLocation.FIELD_DEFINITION,\n description: 'Location adjacent to a field definition.'\n },\n ARGUMENT_DEFINITION: {\n value: DirectiveLocation.ARGUMENT_DEFINITION,\n description: 'Location adjacent to an argument definition.'\n },\n INTERFACE: {\n value: DirectiveLocation.INTERFACE,\n description: 'Location adjacent to an interface definition.'\n },\n UNION: {\n value: DirectiveLocation.UNION,\n description: 'Location adjacent to a union definition.'\n },\n ENUM: {\n value: DirectiveLocation.ENUM,\n description: 'Location adjacent to an enum definition.'\n },\n ENUM_VALUE: {\n value: DirectiveLocation.ENUM_VALUE,\n description: 'Location adjacent to an enum value definition.'\n },\n INPUT_OBJECT: {\n value: DirectiveLocation.INPUT_OBJECT,\n description: 'Location adjacent to an input object type definition.'\n },\n INPUT_FIELD_DEFINITION: {\n value: DirectiveLocation.INPUT_FIELD_DEFINITION,\n description: 'Location adjacent to an input object field definition.'\n }\n }\n});\nexport var __Type = new GraphQLObjectType({\n name: '__Type',\n description: 'The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\\n\\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByUrl`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.',\n fields: function fields() {\n return {\n kind: {\n type: new GraphQLNonNull(__TypeKind),\n resolve: function resolve(type) {\n if (isScalarType(type)) {\n return TypeKind.SCALAR;\n }\n\n if (isObjectType(type)) {\n return TypeKind.OBJECT;\n }\n\n if (isInterfaceType(type)) {\n return TypeKind.INTERFACE;\n }\n\n if (isUnionType(type)) {\n return TypeKind.UNION;\n }\n\n if (isEnumType(type)) {\n return TypeKind.ENUM;\n }\n\n if (isInputObjectType(type)) {\n return TypeKind.INPUT_OBJECT;\n }\n\n if (isListType(type)) {\n return TypeKind.LIST;\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isNonNullType(type)) {\n return TypeKind.NON_NULL;\n } // istanbul ignore next (Not reachable. All possible types have been considered)\n\n\n false || invariant(0, \"Unexpected type: \\\"\".concat(inspect(type), \"\\\".\"));\n }\n },\n name: {\n type: GraphQLString,\n resolve: function resolve(type) {\n return type.name !== undefined ? type.name : undefined;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(type) {\n return type.description !== undefined ? type.description : undefined;\n }\n },\n specifiedByUrl: {\n type: GraphQLString,\n resolve: function resolve(obj) {\n return obj.specifiedByUrl !== undefined ? obj.specifiedByUrl : undefined;\n }\n },\n fields: {\n type: new GraphQLList(new GraphQLNonNull(__Field)),\n args: {\n includeDeprecated: {\n type: GraphQLBoolean,\n defaultValue: false\n }\n },\n resolve: function resolve(type, _ref2) {\n var includeDeprecated = _ref2.includeDeprecated;\n\n if (isObjectType(type) || isInterfaceType(type)) {\n var fields = objectValues(type.getFields());\n return includeDeprecated ? fields : fields.filter(function (field) {\n return field.deprecationReason == null;\n });\n }\n }\n },\n interfaces: {\n type: new GraphQLList(new GraphQLNonNull(__Type)),\n resolve: function resolve(type) {\n if (isObjectType(type) || isInterfaceType(type)) {\n return type.getInterfaces();\n }\n }\n },\n possibleTypes: {\n type: new GraphQLList(new GraphQLNonNull(__Type)),\n resolve: function resolve(type, _args, _context, _ref3) {\n var schema = _ref3.schema;\n\n if (isAbstractType(type)) {\n return schema.getPossibleTypes(type);\n }\n }\n },\n enumValues: {\n type: new GraphQLList(new GraphQLNonNull(__EnumValue)),\n args: {\n includeDeprecated: {\n type: GraphQLBoolean,\n defaultValue: false\n }\n },\n resolve: function resolve(type, _ref4) {\n var includeDeprecated = _ref4.includeDeprecated;\n\n if (isEnumType(type)) {\n var values = type.getValues();\n return includeDeprecated ? values : values.filter(function (field) {\n return field.deprecationReason == null;\n });\n }\n }\n },\n inputFields: {\n type: new GraphQLList(new GraphQLNonNull(__InputValue)),\n args: {\n includeDeprecated: {\n type: GraphQLBoolean,\n defaultValue: false\n }\n },\n resolve: function resolve(type, _ref5) {\n var includeDeprecated = _ref5.includeDeprecated;\n\n if (isInputObjectType(type)) {\n var values = objectValues(type.getFields());\n return includeDeprecated ? values : values.filter(function (field) {\n return field.deprecationReason == null;\n });\n }\n }\n },\n ofType: {\n type: __Type,\n resolve: function resolve(type) {\n return type.ofType !== undefined ? type.ofType : undefined;\n }\n }\n };\n }\n});\nexport var __Field = new GraphQLObjectType({\n name: '__Field',\n description: 'Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.',\n fields: function fields() {\n return {\n name: {\n type: new GraphQLNonNull(GraphQLString),\n resolve: function resolve(field) {\n return field.name;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(field) {\n return field.description;\n }\n },\n args: {\n type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(__InputValue))),\n args: {\n includeDeprecated: {\n type: GraphQLBoolean,\n defaultValue: false\n }\n },\n resolve: function resolve(field, _ref6) {\n var includeDeprecated = _ref6.includeDeprecated;\n return includeDeprecated ? field.args : field.args.filter(function (arg) {\n return arg.deprecationReason == null;\n });\n }\n },\n type: {\n type: new GraphQLNonNull(__Type),\n resolve: function resolve(field) {\n return field.type;\n }\n },\n isDeprecated: {\n type: new GraphQLNonNull(GraphQLBoolean),\n resolve: function resolve(field) {\n return field.deprecationReason != null;\n }\n },\n deprecationReason: {\n type: GraphQLString,\n resolve: function resolve(field) {\n return field.deprecationReason;\n }\n }\n };\n }\n});\nexport var __InputValue = new GraphQLObjectType({\n name: '__InputValue',\n description: 'Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.',\n fields: function fields() {\n return {\n name: {\n type: new GraphQLNonNull(GraphQLString),\n resolve: function resolve(inputValue) {\n return inputValue.name;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(inputValue) {\n return inputValue.description;\n }\n },\n type: {\n type: new GraphQLNonNull(__Type),\n resolve: function resolve(inputValue) {\n return inputValue.type;\n }\n },\n defaultValue: {\n type: GraphQLString,\n description: 'A GraphQL-formatted string representing the default value for this input value.',\n resolve: function resolve(inputValue) {\n var type = inputValue.type,\n defaultValue = inputValue.defaultValue;\n var valueAST = astFromValue(defaultValue, type);\n return valueAST ? print(valueAST) : null;\n }\n },\n isDeprecated: {\n type: new GraphQLNonNull(GraphQLBoolean),\n resolve: function resolve(field) {\n return field.deprecationReason != null;\n }\n },\n deprecationReason: {\n type: GraphQLString,\n resolve: function resolve(obj) {\n return obj.deprecationReason;\n }\n }\n };\n }\n});\nexport var __EnumValue = new GraphQLObjectType({\n name: '__EnumValue',\n description: 'One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.',\n fields: function fields() {\n return {\n name: {\n type: new GraphQLNonNull(GraphQLString),\n resolve: function resolve(enumValue) {\n return enumValue.name;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(enumValue) {\n return enumValue.description;\n }\n },\n isDeprecated: {\n type: new GraphQLNonNull(GraphQLBoolean),\n resolve: function resolve(enumValue) {\n return enumValue.deprecationReason != null;\n }\n },\n deprecationReason: {\n type: GraphQLString,\n resolve: function resolve(enumValue) {\n return enumValue.deprecationReason;\n }\n }\n };\n }\n});\nexport var TypeKind = Object.freeze({\n SCALAR: 'SCALAR',\n OBJECT: 'OBJECT',\n INTERFACE: 'INTERFACE',\n UNION: 'UNION',\n ENUM: 'ENUM',\n INPUT_OBJECT: 'INPUT_OBJECT',\n LIST: 'LIST',\n NON_NULL: 'NON_NULL'\n});\nexport var __TypeKind = new GraphQLEnumType({\n name: '__TypeKind',\n description: 'An enum describing what kind of type a given `__Type` is.',\n values: {\n SCALAR: {\n value: TypeKind.SCALAR,\n description: 'Indicates this type is a scalar.'\n },\n OBJECT: {\n value: TypeKind.OBJECT,\n description: 'Indicates this type is an object. `fields` and `interfaces` are valid fields.'\n },\n INTERFACE: {\n value: TypeKind.INTERFACE,\n description: 'Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields.'\n },\n UNION: {\n value: TypeKind.UNION,\n description: 'Indicates this type is a union. `possibleTypes` is a valid field.'\n },\n ENUM: {\n value: TypeKind.ENUM,\n description: 'Indicates this type is an enum. `enumValues` is a valid field.'\n },\n INPUT_OBJECT: {\n value: TypeKind.INPUT_OBJECT,\n description: 'Indicates this type is an input object. `inputFields` is a valid field.'\n },\n LIST: {\n value: TypeKind.LIST,\n description: 'Indicates this type is a list. `ofType` is a valid field.'\n },\n NON_NULL: {\n value: TypeKind.NON_NULL,\n description: 'Indicates this type is a non-null. `ofType` is a valid field.'\n }\n }\n});\n/**\n * Note that these are GraphQLField and not GraphQLFieldConfig,\n * so the format for args is different.\n */\n\nexport var SchemaMetaFieldDef = {\n name: '__schema',\n type: new GraphQLNonNull(__Schema),\n description: 'Access the current type schema of this server.',\n args: [],\n resolve: function resolve(_source, _args, _context, _ref7) {\n var schema = _ref7.schema;\n return schema;\n },\n isDeprecated: false,\n deprecationReason: undefined,\n extensions: undefined,\n astNode: undefined\n};\nexport var TypeMetaFieldDef = {\n name: '__type',\n type: __Type,\n description: 'Request the type information of a single type.',\n args: [{\n name: 'name',\n description: undefined,\n type: new GraphQLNonNull(GraphQLString),\n defaultValue: undefined,\n deprecationReason: undefined,\n extensions: undefined,\n astNode: undefined\n }],\n resolve: function resolve(_source, _ref8, _context, _ref9) {\n var name = _ref8.name;\n var schema = _ref9.schema;\n return schema.getType(name);\n },\n isDeprecated: false,\n deprecationReason: undefined,\n extensions: undefined,\n astNode: undefined\n};\nexport var TypeNameMetaFieldDef = {\n name: '__typename',\n type: new GraphQLNonNull(GraphQLString),\n description: 'The name of the current Object type at runtime.',\n args: [],\n resolve: function resolve(_source, _args, _context, _ref10) {\n var parentType = _ref10.parentType;\n return parentType.name;\n },\n isDeprecated: false,\n deprecationReason: undefined,\n extensions: undefined,\n astNode: undefined\n};\nexport var introspectionTypes = Object.freeze([__Schema, __Directive, __DirectiveLocation, __Type, __Field, __InputValue, __EnumValue, __TypeKind]);\nexport function isIntrospectionType(type) {\n return introspectionTypes.some(function (_ref11) {\n var name = _ref11.name;\n return type.name === name;\n });\n}\n","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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport objectEntries from \"../polyfills/objectEntries.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport toObjMap from \"../jsutils/toObjMap.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport defineInspect from \"../jsutils/defineInspect.mjs\";\nimport { DirectiveLocation } from \"../language/directiveLocation.mjs\";\nimport { GraphQLString, GraphQLBoolean } from \"./scalars.mjs\";\nimport { argsToArgsConfig, GraphQLNonNull } from \"./definition.mjs\";\n/**\n * Test if the given value is a GraphQL directive.\n */\n\n// eslint-disable-next-line no-redeclare\nexport function isDirective(directive) {\n return instanceOf(directive, GraphQLDirective);\n}\nexport function assertDirective(directive) {\n if (!isDirective(directive)) {\n throw new Error(\"Expected \".concat(inspect(directive), \" to be a GraphQL directive.\"));\n }\n\n return directive;\n}\n/**\n * Directives are used by the GraphQL runtime as a way of modifying execution\n * behavior. Type system creators will usually not create these directly.\n */\n\nexport var GraphQLDirective = /*#__PURE__*/function () {\n function GraphQLDirective(config) {\n var _config$isRepeatable, _config$args;\n\n this.name = config.name;\n this.description = config.description;\n this.locations = config.locations;\n this.isRepeatable = (_config$isRepeatable = config.isRepeatable) !== null && _config$isRepeatable !== void 0 ? _config$isRepeatable : false;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n config.name || devAssert(0, 'Directive must be named.');\n Array.isArray(config.locations) || devAssert(0, \"@\".concat(config.name, \" locations must be an Array.\"));\n var args = (_config$args = config.args) !== null && _config$args !== void 0 ? _config$args : {};\n isObjectLike(args) && !Array.isArray(args) || devAssert(0, \"@\".concat(config.name, \" args must be an object with argument names as keys.\"));\n this.args = objectEntries(args).map(function (_ref) {\n var argName = _ref[0],\n argConfig = _ref[1];\n return {\n name: argName,\n description: argConfig.description,\n type: argConfig.type,\n defaultValue: argConfig.defaultValue,\n deprecationReason: argConfig.deprecationReason,\n extensions: argConfig.extensions && toObjMap(argConfig.extensions),\n astNode: argConfig.astNode\n };\n });\n }\n\n var _proto = GraphQLDirective.prototype;\n\n _proto.toConfig = function toConfig() {\n return {\n name: this.name,\n description: this.description,\n locations: this.locations,\n args: argsToArgsConfig(this.args),\n isRepeatable: this.isRepeatable,\n extensions: this.extensions,\n astNode: this.astNode\n };\n };\n\n _proto.toString = function toString() {\n return '@' + this.name;\n };\n\n _proto.toJSON = function toJSON() {\n return this.toString();\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLDirective, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLDirective';\n }\n }]);\n\n return GraphQLDirective;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(GraphQLDirective);\n\n/**\n * Used to conditionally include fields or fragments.\n */\nexport var GraphQLIncludeDirective = new GraphQLDirective({\n name: 'include',\n description: 'Directs the executor to include this field or fragment only when the `if` argument is true.',\n locations: [DirectiveLocation.FIELD, DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT],\n args: {\n if: {\n type: new GraphQLNonNull(GraphQLBoolean),\n description: 'Included when true.'\n }\n }\n});\n/**\n * Used to conditionally skip (exclude) fields or fragments.\n */\n\nexport var GraphQLSkipDirective = new GraphQLDirective({\n name: 'skip',\n description: 'Directs the executor to skip this field or fragment when the `if` argument is true.',\n locations: [DirectiveLocation.FIELD, DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT],\n args: {\n if: {\n type: new GraphQLNonNull(GraphQLBoolean),\n description: 'Skipped when true.'\n }\n }\n});\n/**\n * Constant string used for default reason for a deprecation.\n */\n\nexport var DEFAULT_DEPRECATION_REASON = 'No longer supported';\n/**\n * Used to declare element of a GraphQL schema as deprecated.\n */\n\nexport var GraphQLDeprecatedDirective = new GraphQLDirective({\n name: 'deprecated',\n description: 'Marks an element of a GraphQL schema as no longer supported.',\n locations: [DirectiveLocation.FIELD_DEFINITION, DirectiveLocation.ARGUMENT_DEFINITION, DirectiveLocation.INPUT_FIELD_DEFINITION, DirectiveLocation.ENUM_VALUE],\n args: {\n reason: {\n type: GraphQLString,\n description: 'Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).',\n defaultValue: DEFAULT_DEPRECATION_REASON\n }\n }\n});\n/**\n * Used to provide a URL for specifying the behaviour of custom scalar definitions.\n */\n\nexport var GraphQLSpecifiedByDirective = new GraphQLDirective({\n name: 'specifiedBy',\n description: 'Exposes a URL that specifies the behaviour of this scalar.',\n locations: [DirectiveLocation.SCALAR],\n args: {\n url: {\n type: new GraphQLNonNull(GraphQLString),\n description: 'The URL that specifies the behaviour of this scalar.'\n }\n }\n});\n/**\n * The full list of specified directives.\n */\n\nexport var specifiedDirectives = Object.freeze([GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective, GraphQLSpecifiedByDirective]);\nexport function isSpecifiedDirective(directive) {\n return specifiedDirectives.some(function (_ref2) {\n var name = _ref2.name;\n return name === directive.name;\n });\n}\n","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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport find from \"../polyfills/find.mjs\";\nimport arrayFrom from \"../polyfills/arrayFrom.mjs\";\nimport objectValues from \"../polyfills/objectValues.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport toObjMap from \"../jsutils/toObjMap.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { __Schema } from \"./introspection.mjs\";\nimport { GraphQLDirective, isDirective, specifiedDirectives } from \"./directives.mjs\";\nimport { isObjectType, isInterfaceType, isUnionType, isInputObjectType, getNamedType } from \"./definition.mjs\";\n/**\n * Test if the given value is a GraphQL schema.\n */\n\n// eslint-disable-next-line no-redeclare\nexport function isSchema(schema) {\n return instanceOf(schema, GraphQLSchema);\n}\nexport function assertSchema(schema) {\n if (!isSchema(schema)) {\n throw new Error(\"Expected \".concat(inspect(schema), \" to be a GraphQL schema.\"));\n }\n\n return schema;\n}\n/**\n * Schema Definition\n *\n * A Schema is created by supplying the root types of each type of operation,\n * query and mutation (optional). A schema definition is then supplied to the\n * validator and executor.\n *\n * Example:\n *\n * const MyAppSchema = new GraphQLSchema({\n * query: MyAppQueryRootType,\n * mutation: MyAppMutationRootType,\n * })\n *\n * Note: When the schema is constructed, by default only the types that are\n * reachable by traversing the root types are included, other types must be\n * explicitly referenced.\n *\n * Example:\n *\n * const characterInterface = new GraphQLInterfaceType({\n * name: 'Character',\n * ...\n * });\n *\n * const humanType = new GraphQLObjectType({\n * name: 'Human',\n * interfaces: [characterInterface],\n * ...\n * });\n *\n * const droidType = new GraphQLObjectType({\n * name: 'Droid',\n * interfaces: [characterInterface],\n * ...\n * });\n *\n * const schema = new GraphQLSchema({\n * query: new GraphQLObjectType({\n * name: 'Query',\n * fields: {\n * hero: { type: characterInterface, ... },\n * }\n * }),\n * ...\n * // Since this schema references only the `Character` interface it's\n * // necessary to explicitly list the types that implement it if\n * // you want them to be included in the final schema.\n * types: [humanType, droidType],\n * })\n *\n * Note: If an array of `directives` are provided to GraphQLSchema, that will be\n * the exact list of directives represented and allowed. If `directives` is not\n * provided then a default set of the specified directives (e.g. @include and\n * @skip) will be used. If you wish to provide *additional* directives to these\n * specified directives, you must explicitly declare them. Example:\n *\n * const MyAppSchema = new GraphQLSchema({\n * ...\n * directives: specifiedDirectives.concat([ myCustomDirective ]),\n * })\n *\n */\n\nexport var GraphQLSchema = /*#__PURE__*/function () {\n // Used as a cache for validateSchema().\n function GraphQLSchema(config) {\n var _config$directives;\n\n // If this schema was built from a source known to be valid, then it may be\n // marked with assumeValid to avoid an additional type system validation.\n this.__validationErrors = config.assumeValid === true ? [] : undefined; // Check for common mistakes during construction to produce early errors.\n\n isObjectLike(config) || devAssert(0, 'Must provide configuration object.');\n !config.types || Array.isArray(config.types) || devAssert(0, \"\\\"types\\\" must be Array if provided but got: \".concat(inspect(config.types), \".\"));\n !config.directives || Array.isArray(config.directives) || devAssert(0, '\"directives\" must be Array if provided but got: ' + \"\".concat(inspect(config.directives), \".\"));\n this.description = config.description;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = config.extensionASTNodes;\n this._queryType = config.query;\n this._mutationType = config.mutation;\n this._subscriptionType = config.subscription; // Provide specified directives (e.g. @include and @skip) by default.\n\n this._directives = (_config$directives = config.directives) !== null && _config$directives !== void 0 ? _config$directives : specifiedDirectives; // To preserve order of user-provided types, we add first to add them to\n // the set of \"collected\" types, so `collectReferencedTypes` ignore them.\n\n var allReferencedTypes = new Set(config.types);\n\n if (config.types != null) {\n for (var _i2 = 0, _config$types2 = config.types; _i2 < _config$types2.length; _i2++) {\n var type = _config$types2[_i2];\n // When we ready to process this type, we remove it from \"collected\" types\n // and then add it together with all dependent types in the correct position.\n allReferencedTypes.delete(type);\n collectReferencedTypes(type, allReferencedTypes);\n }\n }\n\n if (this._queryType != null) {\n collectReferencedTypes(this._queryType, allReferencedTypes);\n }\n\n if (this._mutationType != null) {\n collectReferencedTypes(this._mutationType, allReferencedTypes);\n }\n\n if (this._subscriptionType != null) {\n collectReferencedTypes(this._subscriptionType, allReferencedTypes);\n }\n\n for (var _i4 = 0, _this$_directives2 = this._directives; _i4 < _this$_directives2.length; _i4++) {\n var directive = _this$_directives2[_i4];\n\n // Directives are not validated until validateSchema() is called.\n if (isDirective(directive)) {\n for (var _i6 = 0, _directive$args2 = directive.args; _i6 < _directive$args2.length; _i6++) {\n var arg = _directive$args2[_i6];\n collectReferencedTypes(arg.type, allReferencedTypes);\n }\n }\n }\n\n collectReferencedTypes(__Schema, allReferencedTypes); // Storing the resulting map for reference by the schema.\n\n this._typeMap = Object.create(null);\n this._subTypeMap = Object.create(null); // Keep track of all implementations by interface name.\n\n this._implementationsMap = Object.create(null);\n\n for (var _i8 = 0, _arrayFrom2 = arrayFrom(allReferencedTypes); _i8 < _arrayFrom2.length; _i8++) {\n var namedType = _arrayFrom2[_i8];\n\n if (namedType == null) {\n continue;\n }\n\n var typeName = namedType.name;\n typeName || devAssert(0, 'One of the provided types for building the Schema is missing a name.');\n\n if (this._typeMap[typeName] !== undefined) {\n throw new Error(\"Schema must contain uniquely named types but contains multiple types named \\\"\".concat(typeName, \"\\\".\"));\n }\n\n this._typeMap[typeName] = namedType;\n\n if (isInterfaceType(namedType)) {\n // Store implementations by interface.\n for (var _i10 = 0, _namedType$getInterfa2 = namedType.getInterfaces(); _i10 < _namedType$getInterfa2.length; _i10++) {\n var iface = _namedType$getInterfa2[_i10];\n\n if (isInterfaceType(iface)) {\n var implementations = this._implementationsMap[iface.name];\n\n if (implementations === undefined) {\n implementations = this._implementationsMap[iface.name] = {\n objects: [],\n interfaces: []\n };\n }\n\n implementations.interfaces.push(namedType);\n }\n }\n } else if (isObjectType(namedType)) {\n // Store implementations by objects.\n for (var _i12 = 0, _namedType$getInterfa4 = namedType.getInterfaces(); _i12 < _namedType$getInterfa4.length; _i12++) {\n var _iface = _namedType$getInterfa4[_i12];\n\n if (isInterfaceType(_iface)) {\n var _implementations = this._implementationsMap[_iface.name];\n\n if (_implementations === undefined) {\n _implementations = this._implementationsMap[_iface.name] = {\n objects: [],\n interfaces: []\n };\n }\n\n _implementations.objects.push(namedType);\n }\n }\n }\n }\n }\n\n var _proto = GraphQLSchema.prototype;\n\n _proto.getQueryType = function getQueryType() {\n return this._queryType;\n };\n\n _proto.getMutationType = function getMutationType() {\n return this._mutationType;\n };\n\n _proto.getSubscriptionType = function getSubscriptionType() {\n return this._subscriptionType;\n };\n\n _proto.getTypeMap = function getTypeMap() {\n return this._typeMap;\n };\n\n _proto.getType = function getType(name) {\n return this.getTypeMap()[name];\n };\n\n _proto.getPossibleTypes = function getPossibleTypes(abstractType) {\n return isUnionType(abstractType) ? abstractType.getTypes() : this.getImplementations(abstractType).objects;\n };\n\n _proto.getImplementations = function getImplementations(interfaceType) {\n var implementations = this._implementationsMap[interfaceType.name];\n return implementations !== null && implementations !== void 0 ? implementations : {\n objects: [],\n interfaces: []\n };\n } // @deprecated: use isSubType instead - will be removed in v16.\n ;\n\n _proto.isPossibleType = function isPossibleType(abstractType, possibleType) {\n return this.isSubType(abstractType, possibleType);\n };\n\n _proto.isSubType = function isSubType(abstractType, maybeSubType) {\n var map = this._subTypeMap[abstractType.name];\n\n if (map === undefined) {\n map = Object.create(null);\n\n if (isUnionType(abstractType)) {\n for (var _i14 = 0, _abstractType$getType2 = abstractType.getTypes(); _i14 < _abstractType$getType2.length; _i14++) {\n var type = _abstractType$getType2[_i14];\n map[type.name] = true;\n }\n } else {\n var implementations = this.getImplementations(abstractType);\n\n for (var _i16 = 0, _implementations$obje2 = implementations.objects; _i16 < _implementations$obje2.length; _i16++) {\n var _type = _implementations$obje2[_i16];\n map[_type.name] = true;\n }\n\n for (var _i18 = 0, _implementations$inte2 = implementations.interfaces; _i18 < _implementations$inte2.length; _i18++) {\n var _type2 = _implementations$inte2[_i18];\n map[_type2.name] = true;\n }\n }\n\n this._subTypeMap[abstractType.name] = map;\n }\n\n return map[maybeSubType.name] !== undefined;\n };\n\n _proto.getDirectives = function getDirectives() {\n return this._directives;\n };\n\n _proto.getDirective = function getDirective(name) {\n return find(this.getDirectives(), function (directive) {\n return directive.name === name;\n });\n };\n\n _proto.toConfig = function toConfig() {\n var _this$extensionASTNod;\n\n return {\n description: this.description,\n query: this.getQueryType(),\n mutation: this.getMutationType(),\n subscription: this.getSubscriptionType(),\n types: objectValues(this.getTypeMap()),\n directives: this.getDirectives().slice(),\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: (_this$extensionASTNod = this.extensionASTNodes) !== null && _this$extensionASTNod !== void 0 ? _this$extensionASTNod : [],\n assumeValid: this.__validationErrors !== undefined\n };\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n ;\n\n _createClass(GraphQLSchema, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'GraphQLSchema';\n }\n }]);\n\n return GraphQLSchema;\n}();\n\nfunction collectReferencedTypes(type, typeSet) {\n var namedType = getNamedType(type);\n\n if (!typeSet.has(namedType)) {\n typeSet.add(namedType);\n\n if (isUnionType(namedType)) {\n for (var _i20 = 0, _namedType$getTypes2 = namedType.getTypes(); _i20 < _namedType$getTypes2.length; _i20++) {\n var memberType = _namedType$getTypes2[_i20];\n collectReferencedTypes(memberType, typeSet);\n }\n } else if (isObjectType(namedType) || isInterfaceType(namedType)) {\n for (var _i22 = 0, _namedType$getInterfa6 = namedType.getInterfaces(); _i22 < _namedType$getInterfa6.length; _i22++) {\n var interfaceType = _namedType$getInterfa6[_i22];\n collectReferencedTypes(interfaceType, typeSet);\n }\n\n for (var _i24 = 0, _objectValues2 = objectValues(namedType.getFields()); _i24 < _objectValues2.length; _i24++) {\n var field = _objectValues2[_i24];\n collectReferencedTypes(field.type, typeSet);\n\n for (var _i26 = 0, _field$args2 = field.args; _i26 < _field$args2.length; _i26++) {\n var arg = _field$args2[_i26];\n collectReferencedTypes(arg.type, typeSet);\n }\n }\n } else if (isInputObjectType(namedType)) {\n for (var _i28 = 0, _objectValues4 = objectValues(namedType.getFields()); _i28 < _objectValues4.length; _i28++) {\n var _field = _objectValues4[_i28];\n collectReferencedTypes(_field.type, typeSet);\n }\n }\n }\n\n return typeSet;\n}\n","import find from \"../polyfills/find.mjs\";\nimport objectValues from \"../polyfills/objectValues.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { locatedError } from \"../error/locatedError.mjs\";\nimport { isValidNameError } from \"../utilities/assertValidName.mjs\";\nimport { isEqualType, isTypeSubTypeOf } from \"../utilities/typeComparators.mjs\";\nimport { assertSchema } from \"./schema.mjs\";\nimport { isIntrospectionType } from \"./introspection.mjs\";\nimport { isDirective, GraphQLDeprecatedDirective } from \"./directives.mjs\";\nimport { isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isNamedType, isNonNullType, isInputType, isOutputType, isRequiredArgument, isRequiredInputField } from \"./definition.mjs\";\n/**\n * Implements the \"Type Validation\" sub-sections of the specification's\n * \"Type System\" section.\n *\n * Validation runs synchronously, returning an array of encountered errors, or\n * an empty array if no errors were encountered and the Schema is valid.\n */\n\nexport function validateSchema(schema) {\n // First check to ensure the provided value is in fact a GraphQLSchema.\n assertSchema(schema); // If this Schema has already been validated, return the previous results.\n\n if (schema.__validationErrors) {\n return schema.__validationErrors;\n } // Validate the schema, producing a list of errors.\n\n\n var context = new SchemaValidationContext(schema);\n validateRootTypes(context);\n validateDirectives(context);\n validateTypes(context); // Persist the results of validation before returning to ensure validation\n // does not run multiple times for this schema.\n\n var errors = context.getErrors();\n schema.__validationErrors = errors;\n return errors;\n}\n/**\n * Utility function which asserts a schema is valid by throwing an error if\n * it is invalid.\n */\n\nexport function assertValidSchema(schema) {\n var errors = validateSchema(schema);\n\n if (errors.length !== 0) {\n throw new Error(errors.map(function (error) {\n return error.message;\n }).join('\\n\\n'));\n }\n}\n\nvar SchemaValidationContext = /*#__PURE__*/function () {\n function SchemaValidationContext(schema) {\n this._errors = [];\n this.schema = schema;\n }\n\n var _proto = SchemaValidationContext.prototype;\n\n _proto.reportError = function reportError(message, nodes) {\n var _nodes = Array.isArray(nodes) ? nodes.filter(Boolean) : nodes;\n\n this.addError(new GraphQLError(message, _nodes));\n };\n\n _proto.addError = function addError(error) {\n this._errors.push(error);\n };\n\n _proto.getErrors = function getErrors() {\n return this._errors;\n };\n\n return SchemaValidationContext;\n}();\n\nfunction validateRootTypes(context) {\n var schema = context.schema;\n var queryType = schema.getQueryType();\n\n if (!queryType) {\n context.reportError('Query root type must be provided.', schema.astNode);\n } else if (!isObjectType(queryType)) {\n var _getOperationTypeNode;\n\n context.reportError(\"Query root type must be Object type, it cannot be \".concat(inspect(queryType), \".\"), (_getOperationTypeNode = getOperationTypeNode(schema, 'query')) !== null && _getOperationTypeNode !== void 0 ? _getOperationTypeNode : queryType.astNode);\n }\n\n var mutationType = schema.getMutationType();\n\n if (mutationType && !isObjectType(mutationType)) {\n var _getOperationTypeNode2;\n\n context.reportError('Mutation root type must be Object type if provided, it cannot be ' + \"\".concat(inspect(mutationType), \".\"), (_getOperationTypeNode2 = getOperationTypeNode(schema, 'mutation')) !== null && _getOperationTypeNode2 !== void 0 ? _getOperationTypeNode2 : mutationType.astNode);\n }\n\n var subscriptionType = schema.getSubscriptionType();\n\n if (subscriptionType && !isObjectType(subscriptionType)) {\n var _getOperationTypeNode3;\n\n context.reportError('Subscription root type must be Object type if provided, it cannot be ' + \"\".concat(inspect(subscriptionType), \".\"), (_getOperationTypeNode3 = getOperationTypeNode(schema, 'subscription')) !== null && _getOperationTypeNode3 !== void 0 ? _getOperationTypeNode3 : subscriptionType.astNode);\n }\n}\n\nfunction getOperationTypeNode(schema, operation) {\n var operationNodes = getAllSubNodes(schema, function (node) {\n return node.operationTypes;\n });\n\n for (var _i2 = 0; _i2 < operationNodes.length; _i2++) {\n var node = operationNodes[_i2];\n\n if (node.operation === operation) {\n return node.type;\n }\n }\n\n return undefined;\n}\n\nfunction validateDirectives(context) {\n for (var _i4 = 0, _context$schema$getDi2 = context.schema.getDirectives(); _i4 < _context$schema$getDi2.length; _i4++) {\n var directive = _context$schema$getDi2[_i4];\n\n // Ensure all directives are in fact GraphQL directives.\n if (!isDirective(directive)) {\n context.reportError(\"Expected directive but got: \".concat(inspect(directive), \".\"), directive === null || directive === void 0 ? void 0 : directive.astNode);\n continue;\n } // Ensure they are named correctly.\n\n\n validateName(context, directive); // TODO: Ensure proper locations.\n // Ensure the arguments are valid.\n\n for (var _i6 = 0, _directive$args2 = directive.args; _i6 < _directive$args2.length; _i6++) {\n var arg = _directive$args2[_i6];\n // Ensure they are named correctly.\n validateName(context, arg); // Ensure the type is an input type.\n\n if (!isInputType(arg.type)) {\n context.reportError(\"The type of @\".concat(directive.name, \"(\").concat(arg.name, \":) must be Input Type \") + \"but got: \".concat(inspect(arg.type), \".\"), arg.astNode);\n }\n\n if (isRequiredArgument(arg) && arg.deprecationReason != null) {\n var _arg$astNode;\n\n context.reportError(\"Required argument @\".concat(directive.name, \"(\").concat(arg.name, \":) cannot be deprecated.\"), [getDeprecatedDirectiveNode(arg.astNode), // istanbul ignore next (TODO need to write coverage tests)\n (_arg$astNode = arg.astNode) === null || _arg$astNode === void 0 ? void 0 : _arg$astNode.type]);\n }\n }\n }\n}\n\nfunction validateName(context, node) {\n // Ensure names are valid, however introspection types opt out.\n var error = isValidNameError(node.name);\n\n if (error) {\n context.addError(locatedError(error, node.astNode));\n }\n}\n\nfunction validateTypes(context) {\n var validateInputObjectCircularRefs = createInputObjectCircularRefsValidator(context);\n var typeMap = context.schema.getTypeMap();\n\n for (var _i8 = 0, _objectValues2 = objectValues(typeMap); _i8 < _objectValues2.length; _i8++) {\n var type = _objectValues2[_i8];\n\n // Ensure all provided types are in fact GraphQL type.\n if (!isNamedType(type)) {\n context.reportError(\"Expected GraphQL named type but got: \".concat(inspect(type), \".\"), type.astNode);\n continue;\n } // Ensure it is named correctly (excluding introspection types).\n\n\n if (!isIntrospectionType(type)) {\n validateName(context, type);\n }\n\n if (isObjectType(type)) {\n // Ensure fields are valid\n validateFields(context, type); // Ensure objects implement the interfaces they claim to.\n\n validateInterfaces(context, type);\n } else if (isInterfaceType(type)) {\n // Ensure fields are valid.\n validateFields(context, type); // Ensure interfaces implement the interfaces they claim to.\n\n validateInterfaces(context, type);\n } else if (isUnionType(type)) {\n // Ensure Unions include valid member types.\n validateUnionMembers(context, type);\n } else if (isEnumType(type)) {\n // Ensure Enums have valid values.\n validateEnumValues(context, type);\n } else if (isInputObjectType(type)) {\n // Ensure Input Object fields are valid.\n validateInputFields(context, type); // Ensure Input Objects do not contain non-nullable circular references\n\n validateInputObjectCircularRefs(type);\n }\n }\n}\n\nfunction validateFields(context, type) {\n var fields = objectValues(type.getFields()); // Objects and Interfaces both must define one or more fields.\n\n if (fields.length === 0) {\n context.reportError(\"Type \".concat(type.name, \" must define one or more fields.\"), getAllNodes(type));\n }\n\n for (var _i10 = 0; _i10 < fields.length; _i10++) {\n var field = fields[_i10];\n // Ensure they are named correctly.\n validateName(context, field); // Ensure the type is an output type\n\n if (!isOutputType(field.type)) {\n var _field$astNode;\n\n context.reportError(\"The type of \".concat(type.name, \".\").concat(field.name, \" must be Output Type \") + \"but got: \".concat(inspect(field.type), \".\"), (_field$astNode = field.astNode) === null || _field$astNode === void 0 ? void 0 : _field$astNode.type);\n } // Ensure the arguments are valid\n\n\n for (var _i12 = 0, _field$args2 = field.args; _i12 < _field$args2.length; _i12++) {\n var arg = _field$args2[_i12];\n var argName = arg.name; // Ensure they are named correctly.\n\n validateName(context, arg); // Ensure the type is an input type\n\n if (!isInputType(arg.type)) {\n var _arg$astNode2;\n\n context.reportError(\"The type of \".concat(type.name, \".\").concat(field.name, \"(\").concat(argName, \":) must be Input \") + \"Type but got: \".concat(inspect(arg.type), \".\"), (_arg$astNode2 = arg.astNode) === null || _arg$astNode2 === void 0 ? void 0 : _arg$astNode2.type);\n }\n\n if (isRequiredArgument(arg) && arg.deprecationReason != null) {\n var _arg$astNode3;\n\n context.reportError(\"Required argument \".concat(type.name, \".\").concat(field.name, \"(\").concat(argName, \":) cannot be deprecated.\"), [getDeprecatedDirectiveNode(arg.astNode), // istanbul ignore next (TODO need to write coverage tests)\n (_arg$astNode3 = arg.astNode) === null || _arg$astNode3 === void 0 ? void 0 : _arg$astNode3.type]);\n }\n }\n }\n}\n\nfunction validateInterfaces(context, type) {\n var ifaceTypeNames = Object.create(null);\n\n for (var _i14 = 0, _type$getInterfaces2 = type.getInterfaces(); _i14 < _type$getInterfaces2.length; _i14++) {\n var iface = _type$getInterfaces2[_i14];\n\n if (!isInterfaceType(iface)) {\n context.reportError(\"Type \".concat(inspect(type), \" must only implement Interface types, \") + \"it cannot implement \".concat(inspect(iface), \".\"), getAllImplementsInterfaceNodes(type, iface));\n continue;\n }\n\n if (type === iface) {\n context.reportError(\"Type \".concat(type.name, \" cannot implement itself because it would create a circular reference.\"), getAllImplementsInterfaceNodes(type, iface));\n continue;\n }\n\n if (ifaceTypeNames[iface.name]) {\n context.reportError(\"Type \".concat(type.name, \" can only implement \").concat(iface.name, \" once.\"), getAllImplementsInterfaceNodes(type, iface));\n continue;\n }\n\n ifaceTypeNames[iface.name] = true;\n validateTypeImplementsAncestors(context, type, iface);\n validateTypeImplementsInterface(context, type, iface);\n }\n}\n\nfunction validateTypeImplementsInterface(context, type, iface) {\n var typeFieldMap = type.getFields(); // Assert each interface field is implemented.\n\n for (var _i16 = 0, _objectValues4 = objectValues(iface.getFields()); _i16 < _objectValues4.length; _i16++) {\n var ifaceField = _objectValues4[_i16];\n var fieldName = ifaceField.name;\n var typeField = typeFieldMap[fieldName]; // Assert interface field exists on type.\n\n if (!typeField) {\n context.reportError(\"Interface field \".concat(iface.name, \".\").concat(fieldName, \" expected but \").concat(type.name, \" does not provide it.\"), [ifaceField.astNode].concat(getAllNodes(type)));\n continue;\n } // Assert interface field type is satisfied by type field type, by being\n // a valid subtype. (covariant)\n\n\n if (!isTypeSubTypeOf(context.schema, typeField.type, ifaceField.type)) {\n var _ifaceField$astNode, _typeField$astNode;\n\n context.reportError(\"Interface field \".concat(iface.name, \".\").concat(fieldName, \" expects type \") + \"\".concat(inspect(ifaceField.type), \" but \").concat(type.name, \".\").concat(fieldName, \" \") + \"is type \".concat(inspect(typeField.type), \".\"), [// istanbul ignore next (TODO need to write coverage tests)\n (_ifaceField$astNode = ifaceField.astNode) === null || _ifaceField$astNode === void 0 ? void 0 : _ifaceField$astNode.type, // istanbul ignore next (TODO need to write coverage tests)\n (_typeField$astNode = typeField.astNode) === null || _typeField$astNode === void 0 ? void 0 : _typeField$astNode.type]);\n } // Assert each interface field arg is implemented.\n\n\n var _loop = function _loop(_i18, _ifaceField$args2) {\n var ifaceArg = _ifaceField$args2[_i18];\n var argName = ifaceArg.name;\n var typeArg = find(typeField.args, function (arg) {\n return arg.name === argName;\n }); // Assert interface field arg exists on object field.\n\n if (!typeArg) {\n context.reportError(\"Interface field argument \".concat(iface.name, \".\").concat(fieldName, \"(\").concat(argName, \":) expected but \").concat(type.name, \".\").concat(fieldName, \" does not provide it.\"), [ifaceArg.astNode, typeField.astNode]);\n return \"continue\";\n } // Assert interface field arg type matches object field arg type.\n // (invariant)\n // TODO: change to contravariant?\n\n\n if (!isEqualType(ifaceArg.type, typeArg.type)) {\n var _ifaceArg$astNode, _typeArg$astNode;\n\n context.reportError(\"Interface field argument \".concat(iface.name, \".\").concat(fieldName, \"(\").concat(argName, \":) \") + \"expects type \".concat(inspect(ifaceArg.type), \" but \") + \"\".concat(type.name, \".\").concat(fieldName, \"(\").concat(argName, \":) is type \") + \"\".concat(inspect(typeArg.type), \".\"), [// istanbul ignore next (TODO need to write coverage tests)\n (_ifaceArg$astNode = ifaceArg.astNode) === null || _ifaceArg$astNode === void 0 ? void 0 : _ifaceArg$astNode.type, // istanbul ignore next (TODO need to write coverage tests)\n (_typeArg$astNode = typeArg.astNode) === null || _typeArg$astNode === void 0 ? void 0 : _typeArg$astNode.type]);\n } // TODO: validate default values?\n\n };\n\n for (var _i18 = 0, _ifaceField$args2 = ifaceField.args; _i18 < _ifaceField$args2.length; _i18++) {\n var _ret = _loop(_i18, _ifaceField$args2);\n\n if (_ret === \"continue\") continue;\n } // Assert additional arguments must not be required.\n\n\n var _loop2 = function _loop2(_i20, _typeField$args2) {\n var typeArg = _typeField$args2[_i20];\n var argName = typeArg.name;\n var ifaceArg = find(ifaceField.args, function (arg) {\n return arg.name === argName;\n });\n\n if (!ifaceArg && isRequiredArgument(typeArg)) {\n context.reportError(\"Object field \".concat(type.name, \".\").concat(fieldName, \" includes required argument \").concat(argName, \" that is missing from the Interface field \").concat(iface.name, \".\").concat(fieldName, \".\"), [typeArg.astNode, ifaceField.astNode]);\n }\n };\n\n for (var _i20 = 0, _typeField$args2 = typeField.args; _i20 < _typeField$args2.length; _i20++) {\n _loop2(_i20, _typeField$args2);\n }\n }\n}\n\nfunction validateTypeImplementsAncestors(context, type, iface) {\n var ifaceInterfaces = type.getInterfaces();\n\n for (var _i22 = 0, _iface$getInterfaces2 = iface.getInterfaces(); _i22 < _iface$getInterfaces2.length; _i22++) {\n var transitive = _iface$getInterfaces2[_i22];\n\n if (ifaceInterfaces.indexOf(transitive) === -1) {\n context.reportError(transitive === type ? \"Type \".concat(type.name, \" cannot implement \").concat(iface.name, \" because it would create a circular reference.\") : \"Type \".concat(type.name, \" must implement \").concat(transitive.name, \" because it is implemented by \").concat(iface.name, \".\"), [].concat(getAllImplementsInterfaceNodes(iface, transitive), getAllImplementsInterfaceNodes(type, iface)));\n }\n }\n}\n\nfunction validateUnionMembers(context, union) {\n var memberTypes = union.getTypes();\n\n if (memberTypes.length === 0) {\n context.reportError(\"Union type \".concat(union.name, \" must define one or more member types.\"), getAllNodes(union));\n }\n\n var includedTypeNames = Object.create(null);\n\n for (var _i24 = 0; _i24 < memberTypes.length; _i24++) {\n var memberType = memberTypes[_i24];\n\n if (includedTypeNames[memberType.name]) {\n context.reportError(\"Union type \".concat(union.name, \" can only include type \").concat(memberType.name, \" once.\"), getUnionMemberTypeNodes(union, memberType.name));\n continue;\n }\n\n includedTypeNames[memberType.name] = true;\n\n if (!isObjectType(memberType)) {\n context.reportError(\"Union type \".concat(union.name, \" can only include Object types, \") + \"it cannot include \".concat(inspect(memberType), \".\"), getUnionMemberTypeNodes(union, String(memberType)));\n }\n }\n}\n\nfunction validateEnumValues(context, enumType) {\n var enumValues = enumType.getValues();\n\n if (enumValues.length === 0) {\n context.reportError(\"Enum type \".concat(enumType.name, \" must define one or more values.\"), getAllNodes(enumType));\n }\n\n for (var _i26 = 0; _i26 < enumValues.length; _i26++) {\n var enumValue = enumValues[_i26];\n var valueName = enumValue.name; // Ensure valid name.\n\n validateName(context, enumValue);\n\n if (valueName === 'true' || valueName === 'false' || valueName === 'null') {\n context.reportError(\"Enum type \".concat(enumType.name, \" cannot include value: \").concat(valueName, \".\"), enumValue.astNode);\n }\n }\n}\n\nfunction validateInputFields(context, inputObj) {\n var fields = objectValues(inputObj.getFields());\n\n if (fields.length === 0) {\n context.reportError(\"Input Object type \".concat(inputObj.name, \" must define one or more fields.\"), getAllNodes(inputObj));\n } // Ensure the arguments are valid\n\n\n for (var _i28 = 0; _i28 < fields.length; _i28++) {\n var field = fields[_i28];\n // Ensure they are named correctly.\n validateName(context, field); // Ensure the type is an input type\n\n if (!isInputType(field.type)) {\n var _field$astNode2;\n\n context.reportError(\"The type of \".concat(inputObj.name, \".\").concat(field.name, \" must be Input Type \") + \"but got: \".concat(inspect(field.type), \".\"), (_field$astNode2 = field.astNode) === null || _field$astNode2 === void 0 ? void 0 : _field$astNode2.type);\n }\n\n if (isRequiredInputField(field) && field.deprecationReason != null) {\n var _field$astNode3;\n\n context.reportError(\"Required input field \".concat(inputObj.name, \".\").concat(field.name, \" cannot be deprecated.\"), [getDeprecatedDirectiveNode(field.astNode), // istanbul ignore next (TODO need to write coverage tests)\n (_field$astNode3 = field.astNode) === null || _field$astNode3 === void 0 ? void 0 : _field$astNode3.type]);\n }\n }\n}\n\nfunction createInputObjectCircularRefsValidator(context) {\n // Modified copy of algorithm from 'src/validation/rules/NoFragmentCycles.js'.\n // Tracks already visited types to maintain O(N) and to ensure that cycles\n // are not redundantly reported.\n var visitedTypes = Object.create(null); // Array of types nodes used to produce meaningful errors\n\n var fieldPath = []; // Position in the type path\n\n var fieldPathIndexByTypeName = Object.create(null);\n return detectCycleRecursive; // This does a straight-forward DFS to find cycles.\n // It does not terminate when a cycle was found but continues to explore\n // the graph to find all possible cycles.\n\n function detectCycleRecursive(inputObj) {\n if (visitedTypes[inputObj.name]) {\n return;\n }\n\n visitedTypes[inputObj.name] = true;\n fieldPathIndexByTypeName[inputObj.name] = fieldPath.length;\n var fields = objectValues(inputObj.getFields());\n\n for (var _i30 = 0; _i30 < fields.length; _i30++) {\n var field = fields[_i30];\n\n if (isNonNullType(field.type) && isInputObjectType(field.type.ofType)) {\n var fieldType = field.type.ofType;\n var cycleIndex = fieldPathIndexByTypeName[fieldType.name];\n fieldPath.push(field);\n\n if (cycleIndex === undefined) {\n detectCycleRecursive(fieldType);\n } else {\n var cyclePath = fieldPath.slice(cycleIndex);\n var pathStr = cyclePath.map(function (fieldObj) {\n return fieldObj.name;\n }).join('.');\n context.reportError(\"Cannot reference Input Object \\\"\".concat(fieldType.name, \"\\\" within itself through a series of non-null fields: \\\"\").concat(pathStr, \"\\\".\"), cyclePath.map(function (fieldObj) {\n return fieldObj.astNode;\n }));\n }\n\n fieldPath.pop();\n }\n }\n\n fieldPathIndexByTypeName[inputObj.name] = undefined;\n }\n}\n\nfunction getAllNodes(object) {\n var astNode = object.astNode,\n extensionASTNodes = object.extensionASTNodes;\n return astNode ? extensionASTNodes ? [astNode].concat(extensionASTNodes) : [astNode] : extensionASTNodes !== null && extensionASTNodes !== void 0 ? extensionASTNodes : [];\n}\n\nfunction getAllSubNodes(object, getter) {\n var subNodes = [];\n\n for (var _i32 = 0, _getAllNodes2 = getAllNodes(object); _i32 < _getAllNodes2.length; _i32++) {\n var _getter;\n\n var node = _getAllNodes2[_i32];\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n subNodes = subNodes.concat((_getter = getter(node)) !== null && _getter !== void 0 ? _getter : []);\n }\n\n return subNodes;\n}\n\nfunction getAllImplementsInterfaceNodes(type, iface) {\n return getAllSubNodes(type, function (typeNode) {\n return typeNode.interfaces;\n }).filter(function (ifaceNode) {\n return ifaceNode.name.value === iface.name;\n });\n}\n\nfunction getUnionMemberTypeNodes(union, typeName) {\n return getAllSubNodes(union, function (unionNode) {\n return unionNode.types;\n }).filter(function (typeNode) {\n return typeNode.name.value === typeName;\n });\n}\n\nfunction getDeprecatedDirectiveNode(definitionNode) {\n var _definitionNode$direc;\n\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n return definitionNode === null || definitionNode === void 0 ? void 0 : (_definitionNode$direc = definitionNode.directives) === null || _definitionNode$direc === void 0 ? void 0 : _definitionNode$direc.find(function (node) {\n return node.name.value === GraphQLDeprecatedDirective.name;\n });\n}\n","import inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { GraphQLList, GraphQLNonNull } from \"../type/definition.mjs\";\n/**\n * Given a Schema and an AST node describing a type, return a GraphQLType\n * definition which applies to that type. For example, if provided the parsed\n * AST node for `[User]`, a GraphQLList instance will be returned, containing\n * the type called \"User\" found in the schema. If a type called \"User\" is not\n * found in the schema, then undefined will be returned.\n */\n\n/* eslint-disable no-redeclare */\n\nexport function typeFromAST(schema, typeNode) {\n /* eslint-enable no-redeclare */\n var innerType;\n\n if (typeNode.kind === Kind.LIST_TYPE) {\n innerType = typeFromAST(schema, typeNode.type);\n return innerType && new GraphQLList(innerType);\n }\n\n if (typeNode.kind === Kind.NON_NULL_TYPE) {\n innerType = typeFromAST(schema, typeNode.type);\n return innerType && new GraphQLNonNull(innerType);\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (typeNode.kind === Kind.NAMED_TYPE) {\n return schema.getType(typeNode.name.value);\n } // istanbul ignore next (Not reachable. All possible type nodes have been considered)\n\n\n false || invariant(0, 'Unexpected type node: ' + inspect(typeNode));\n}\n","import find from \"../polyfills/find.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { isNode } from \"../language/ast.mjs\";\nimport { getVisitFn } from \"../language/visitor.mjs\";\nimport { isObjectType, isInterfaceType, isEnumType, isInputObjectType, isListType, isCompositeType, isInputType, isOutputType, getNullableType, getNamedType } from \"../type/definition.mjs\";\nimport { SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef } from \"../type/introspection.mjs\";\nimport { typeFromAST } from \"./typeFromAST.mjs\";\n/**\n * TypeInfo is a utility class which, given a GraphQL schema, can keep track\n * of the current field and type definitions at any point in a GraphQL document\n * AST during a recursive descent by calling `enter(node)` and `leave(node)`.\n */\n\nexport var TypeInfo = /*#__PURE__*/function () {\n function TypeInfo(schema, // NOTE: this experimental optional second parameter is only needed in order\n // to support non-spec-compliant code bases. You should never need to use it.\n // It may disappear in the future.\n getFieldDefFn, // Initial type may be provided in rare cases to facilitate traversals\n // beginning somewhere other than documents.\n initialType) {\n this._schema = schema;\n this._typeStack = [];\n this._parentTypeStack = [];\n this._inputTypeStack = [];\n this._fieldDefStack = [];\n this._defaultValueStack = [];\n this._directive = null;\n this._argument = null;\n this._enumValue = null;\n this._getFieldDef = getFieldDefFn !== null && getFieldDefFn !== void 0 ? getFieldDefFn : getFieldDef;\n\n if (initialType) {\n if (isInputType(initialType)) {\n this._inputTypeStack.push(initialType);\n }\n\n if (isCompositeType(initialType)) {\n this._parentTypeStack.push(initialType);\n }\n\n if (isOutputType(initialType)) {\n this._typeStack.push(initialType);\n }\n }\n }\n\n var _proto = TypeInfo.prototype;\n\n _proto.getType = function getType() {\n if (this._typeStack.length > 0) {\n return this._typeStack[this._typeStack.length - 1];\n }\n };\n\n _proto.getParentType = function getParentType() {\n if (this._parentTypeStack.length > 0) {\n return this._parentTypeStack[this._parentTypeStack.length - 1];\n }\n };\n\n _proto.getInputType = function getInputType() {\n if (this._inputTypeStack.length > 0) {\n return this._inputTypeStack[this._inputTypeStack.length - 1];\n }\n };\n\n _proto.getParentInputType = function getParentInputType() {\n if (this._inputTypeStack.length > 1) {\n return this._inputTypeStack[this._inputTypeStack.length - 2];\n }\n };\n\n _proto.getFieldDef = function getFieldDef() {\n if (this._fieldDefStack.length > 0) {\n return this._fieldDefStack[this._fieldDefStack.length - 1];\n }\n };\n\n _proto.getDefaultValue = function getDefaultValue() {\n if (this._defaultValueStack.length > 0) {\n return this._defaultValueStack[this._defaultValueStack.length - 1];\n }\n };\n\n _proto.getDirective = function getDirective() {\n return this._directive;\n };\n\n _proto.getArgument = function getArgument() {\n return this._argument;\n };\n\n _proto.getEnumValue = function getEnumValue() {\n return this._enumValue;\n };\n\n _proto.enter = function enter(node) {\n var schema = this._schema; // Note: many of the types below are explicitly typed as \"mixed\" to drop\n // any assumptions of a valid schema to ensure runtime types are properly\n // checked before continuing since TypeInfo is used as part of validation\n // which occurs before guarantees of schema and document validity.\n\n switch (node.kind) {\n case Kind.SELECTION_SET:\n {\n var namedType = getNamedType(this.getType());\n\n this._parentTypeStack.push(isCompositeType(namedType) ? namedType : undefined);\n\n break;\n }\n\n case Kind.FIELD:\n {\n var parentType = this.getParentType();\n var fieldDef;\n var fieldType;\n\n if (parentType) {\n fieldDef = this._getFieldDef(schema, parentType, node);\n\n if (fieldDef) {\n fieldType = fieldDef.type;\n }\n }\n\n this._fieldDefStack.push(fieldDef);\n\n this._typeStack.push(isOutputType(fieldType) ? fieldType : undefined);\n\n break;\n }\n\n case Kind.DIRECTIVE:\n this._directive = schema.getDirective(node.name.value);\n break;\n\n case Kind.OPERATION_DEFINITION:\n {\n var type;\n\n switch (node.operation) {\n case 'query':\n type = schema.getQueryType();\n break;\n\n case 'mutation':\n type = schema.getMutationType();\n break;\n\n case 'subscription':\n type = schema.getSubscriptionType();\n break;\n }\n\n this._typeStack.push(isObjectType(type) ? type : undefined);\n\n break;\n }\n\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION:\n {\n var typeConditionAST = node.typeCondition;\n var outputType = typeConditionAST ? typeFromAST(schema, typeConditionAST) : getNamedType(this.getType());\n\n this._typeStack.push(isOutputType(outputType) ? outputType : undefined);\n\n break;\n }\n\n case Kind.VARIABLE_DEFINITION:\n {\n var inputType = typeFromAST(schema, node.type);\n\n this._inputTypeStack.push(isInputType(inputType) ? inputType : undefined);\n\n break;\n }\n\n case Kind.ARGUMENT:\n {\n var _this$getDirective;\n\n var argDef;\n var argType;\n var fieldOrDirective = (_this$getDirective = this.getDirective()) !== null && _this$getDirective !== void 0 ? _this$getDirective : this.getFieldDef();\n\n if (fieldOrDirective) {\n argDef = find(fieldOrDirective.args, function (arg) {\n return arg.name === node.name.value;\n });\n\n if (argDef) {\n argType = argDef.type;\n }\n }\n\n this._argument = argDef;\n\n this._defaultValueStack.push(argDef ? argDef.defaultValue : undefined);\n\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n\n break;\n }\n\n case Kind.LIST:\n {\n var listType = getNullableType(this.getInputType());\n var itemType = isListType(listType) ? listType.ofType : listType; // List positions never have a default value.\n\n this._defaultValueStack.push(undefined);\n\n this._inputTypeStack.push(isInputType(itemType) ? itemType : undefined);\n\n break;\n }\n\n case Kind.OBJECT_FIELD:\n {\n var objectType = getNamedType(this.getInputType());\n var inputFieldType;\n var inputField;\n\n if (isInputObjectType(objectType)) {\n inputField = objectType.getFields()[node.name.value];\n\n if (inputField) {\n inputFieldType = inputField.type;\n }\n }\n\n this._defaultValueStack.push(inputField ? inputField.defaultValue : undefined);\n\n this._inputTypeStack.push(isInputType(inputFieldType) ? inputFieldType : undefined);\n\n break;\n }\n\n case Kind.ENUM:\n {\n var enumType = getNamedType(this.getInputType());\n var enumValue;\n\n if (isEnumType(enumType)) {\n enumValue = enumType.getValue(node.value);\n }\n\n this._enumValue = enumValue;\n break;\n }\n }\n };\n\n _proto.leave = function leave(node) {\n switch (node.kind) {\n case Kind.SELECTION_SET:\n this._parentTypeStack.pop();\n\n break;\n\n case Kind.FIELD:\n this._fieldDefStack.pop();\n\n this._typeStack.pop();\n\n break;\n\n case Kind.DIRECTIVE:\n this._directive = null;\n break;\n\n case Kind.OPERATION_DEFINITION:\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION:\n this._typeStack.pop();\n\n break;\n\n case Kind.VARIABLE_DEFINITION:\n this._inputTypeStack.pop();\n\n break;\n\n case Kind.ARGUMENT:\n this._argument = null;\n\n this._defaultValueStack.pop();\n\n this._inputTypeStack.pop();\n\n break;\n\n case Kind.LIST:\n case Kind.OBJECT_FIELD:\n this._defaultValueStack.pop();\n\n this._inputTypeStack.pop();\n\n break;\n\n case Kind.ENUM:\n this._enumValue = null;\n break;\n }\n };\n\n return TypeInfo;\n}();\n/**\n * Not exactly the same as the executor's definition of getFieldDef, in this\n * statically evaluated environment we do not always have an Object type,\n * and need to handle Interface and Union types.\n */\n\nfunction getFieldDef(schema, parentType, fieldNode) {\n var name = fieldNode.name.value;\n\n if (name === SchemaMetaFieldDef.name && schema.getQueryType() === parentType) {\n return SchemaMetaFieldDef;\n }\n\n if (name === TypeMetaFieldDef.name && schema.getQueryType() === parentType) {\n return TypeMetaFieldDef;\n }\n\n if (name === TypeNameMetaFieldDef.name && isCompositeType(parentType)) {\n return TypeNameMetaFieldDef;\n }\n\n if (isObjectType(parentType) || isInterfaceType(parentType)) {\n return parentType.getFields()[name];\n }\n}\n/**\n * Creates a new visitor instance which maintains a provided TypeInfo instance\n * along with visiting visitor.\n */\n\n\nexport function visitWithTypeInfo(typeInfo, visitor) {\n return {\n enter: function enter(node) {\n typeInfo.enter(node);\n var fn = getVisitFn(visitor, node.kind,\n /* isLeaving */\n false);\n\n if (fn) {\n var result = fn.apply(visitor, arguments);\n\n if (result !== undefined) {\n typeInfo.leave(node);\n\n if (isNode(result)) {\n typeInfo.enter(result);\n }\n }\n\n return result;\n }\n },\n leave: function leave(node) {\n var fn = getVisitFn(visitor, node.kind,\n /* isLeaving */\n true);\n var result;\n\n if (fn) {\n result = fn.apply(visitor, arguments);\n }\n\n typeInfo.leave(node);\n return result;\n }\n };\n}\n","import { Kind } from \"./kinds.mjs\";\nexport function isDefinitionNode(node) {\n return isExecutableDefinitionNode(node) || isTypeSystemDefinitionNode(node) || isTypeSystemExtensionNode(node);\n}\nexport function isExecutableDefinitionNode(node) {\n return node.kind === Kind.OPERATION_DEFINITION || node.kind === Kind.FRAGMENT_DEFINITION;\n}\nexport function isSelectionNode(node) {\n return node.kind === Kind.FIELD || node.kind === Kind.FRAGMENT_SPREAD || node.kind === Kind.INLINE_FRAGMENT;\n}\nexport function isValueNode(node) {\n return node.kind === Kind.VARIABLE || node.kind === Kind.INT || node.kind === Kind.FLOAT || node.kind === Kind.STRING || node.kind === Kind.BOOLEAN || node.kind === Kind.NULL || node.kind === Kind.ENUM || node.kind === Kind.LIST || node.kind === Kind.OBJECT;\n}\nexport function isTypeNode(node) {\n return node.kind === Kind.NAMED_TYPE || node.kind === Kind.LIST_TYPE || node.kind === Kind.NON_NULL_TYPE;\n}\nexport function isTypeSystemDefinitionNode(node) {\n return node.kind === Kind.SCHEMA_DEFINITION || isTypeDefinitionNode(node) || node.kind === Kind.DIRECTIVE_DEFINITION;\n}\nexport function isTypeDefinitionNode(node) {\n return node.kind === Kind.SCALAR_TYPE_DEFINITION || node.kind === Kind.OBJECT_TYPE_DEFINITION || node.kind === Kind.INTERFACE_TYPE_DEFINITION || node.kind === Kind.UNION_TYPE_DEFINITION || node.kind === Kind.ENUM_TYPE_DEFINITION || node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION;\n}\nexport function isTypeSystemExtensionNode(node) {\n return node.kind === Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);\n}\nexport function isTypeExtensionNode(node) {\n return node.kind === Kind.SCALAR_TYPE_EXTENSION || node.kind === Kind.OBJECT_TYPE_EXTENSION || node.kind === Kind.INTERFACE_TYPE_EXTENSION || node.kind === Kind.UNION_TYPE_EXTENSION || node.kind === Kind.ENUM_TYPE_EXTENSION || node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION;\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { isExecutableDefinitionNode } from \"../../language/predicates.mjs\";\n\n/**\n * Executable definitions\n *\n * A GraphQL document is only valid for execution if all definitions are either\n * operation or fragment definitions.\n */\nexport function ExecutableDefinitionsRule(context) {\n return {\n Document: function Document(node) {\n for (var _i2 = 0, _node$definitions2 = node.definitions; _i2 < _node$definitions2.length; _i2++) {\n var definition = _node$definitions2[_i2];\n\n if (!isExecutableDefinitionNode(definition)) {\n var defName = definition.kind === Kind.SCHEMA_DEFINITION || definition.kind === Kind.SCHEMA_EXTENSION ? 'schema' : '\"' + definition.name.value + '\"';\n context.reportError(new GraphQLError(\"The \".concat(defName, \" definition is not executable.\"), definition));\n }\n }\n\n return false;\n }\n };\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n\n/**\n * Unique operation names\n *\n * A GraphQL document is only valid if all defined operations have unique names.\n */\nexport function UniqueOperationNamesRule(context) {\n var knownOperationNames = Object.create(null);\n return {\n OperationDefinition: function OperationDefinition(node) {\n var operationName = node.name;\n\n if (operationName) {\n if (knownOperationNames[operationName.value]) {\n context.reportError(new GraphQLError(\"There can be only one operation named \\\"\".concat(operationName.value, \"\\\".\"), [knownOperationNames[operationName.value], operationName]));\n } else {\n knownOperationNames[operationName.value] = operationName;\n }\n }\n\n return false;\n },\n FragmentDefinition: function FragmentDefinition() {\n return false;\n }\n };\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\n\n/**\n * Lone anonymous operation\n *\n * A GraphQL document is only valid if when it contains an anonymous operation\n * (the query short-hand) that it contains only that one operation definition.\n */\nexport function LoneAnonymousOperationRule(context) {\n var operationCount = 0;\n return {\n Document: function Document(node) {\n operationCount = node.definitions.filter(function (definition) {\n return definition.kind === Kind.OPERATION_DEFINITION;\n }).length;\n },\n OperationDefinition: function OperationDefinition(node) {\n if (!node.name && operationCount > 1) {\n context.reportError(new GraphQLError('This anonymous operation must be the only defined operation.', node));\n }\n }\n };\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n\n/**\n * Subscriptions must only include one field.\n *\n * A GraphQL subscription is valid only if it contains a single root field.\n */\nexport function SingleFieldSubscriptionsRule(context) {\n return {\n OperationDefinition: function OperationDefinition(node) {\n if (node.operation === 'subscription') {\n if (node.selectionSet.selections.length !== 1) {\n context.reportError(new GraphQLError(node.name ? \"Subscription \\\"\".concat(node.name.value, \"\\\" must select only one top level field.\") : 'Anonymous Subscription must select only one top level field.', node.selectionSet.selections.slice(1)));\n }\n }\n }\n };\n}\n","import didYouMean from \"../../jsutils/didYouMean.mjs\";\nimport suggestionList from \"../../jsutils/suggestionList.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { isTypeDefinitionNode, isTypeSystemDefinitionNode, isTypeSystemExtensionNode } from \"../../language/predicates.mjs\";\nimport { specifiedScalarTypes } from \"../../type/scalars.mjs\";\nimport { introspectionTypes } from \"../../type/introspection.mjs\";\n\n/**\n * Known type names\n *\n * A GraphQL document is only valid if referenced types (specifically\n * variable definitions and fragment conditions) are defined by the type schema.\n */\nexport function KnownTypeNamesRule(context) {\n var schema = context.getSchema();\n var existingTypesMap = schema ? schema.getTypeMap() : Object.create(null);\n var definedTypes = Object.create(null);\n\n for (var _i2 = 0, _context$getDocument$2 = context.getDocument().definitions; _i2 < _context$getDocument$2.length; _i2++) {\n var def = _context$getDocument$2[_i2];\n\n if (isTypeDefinitionNode(def)) {\n definedTypes[def.name.value] = true;\n }\n }\n\n var typeNames = Object.keys(existingTypesMap).concat(Object.keys(definedTypes));\n return {\n NamedType: function NamedType(node, _1, parent, _2, ancestors) {\n var typeName = node.name.value;\n\n if (!existingTypesMap[typeName] && !definedTypes[typeName]) {\n var _ancestors$;\n\n var definitionNode = (_ancestors$ = ancestors[2]) !== null && _ancestors$ !== void 0 ? _ancestors$ : parent;\n var isSDL = definitionNode != null && isSDLNode(definitionNode);\n\n if (isSDL && isStandardTypeName(typeName)) {\n return;\n }\n\n var suggestedTypes = suggestionList(typeName, isSDL ? standardTypeNames.concat(typeNames) : typeNames);\n context.reportError(new GraphQLError(\"Unknown type \\\"\".concat(typeName, \"\\\".\") + didYouMean(suggestedTypes), node));\n }\n }\n };\n}\nvar standardTypeNames = [].concat(specifiedScalarTypes, introspectionTypes).map(function (type) {\n return type.name;\n});\n\nfunction isStandardTypeName(typeName) {\n return standardTypeNames.indexOf(typeName) !== -1;\n}\n\nfunction isSDLNode(value) {\n return !Array.isArray(value) && (isTypeSystemDefinitionNode(value) || isTypeSystemExtensionNode(value));\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { print } from \"../../language/printer.mjs\";\nimport { isCompositeType } from \"../../type/definition.mjs\";\nimport { typeFromAST } from \"../../utilities/typeFromAST.mjs\";\n\n/**\n * Fragments on composite type\n *\n * Fragments use a type condition to determine if they apply, since fragments\n * can only be spread into a composite type (object, interface, or union), the\n * type condition must also be a composite type.\n */\nexport function FragmentsOnCompositeTypesRule(context) {\n return {\n InlineFragment: function InlineFragment(node) {\n var typeCondition = node.typeCondition;\n\n if (typeCondition) {\n var type = typeFromAST(context.getSchema(), typeCondition);\n\n if (type && !isCompositeType(type)) {\n var typeStr = print(typeCondition);\n context.reportError(new GraphQLError(\"Fragment cannot condition on non composite type \\\"\".concat(typeStr, \"\\\".\"), typeCondition));\n }\n }\n },\n FragmentDefinition: function FragmentDefinition(node) {\n var type = typeFromAST(context.getSchema(), node.typeCondition);\n\n if (type && !isCompositeType(type)) {\n var typeStr = print(node.typeCondition);\n context.reportError(new GraphQLError(\"Fragment \\\"\".concat(node.name.value, \"\\\" cannot condition on non composite type \\\"\").concat(typeStr, \"\\\".\"), node.typeCondition));\n }\n }\n };\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { print } from \"../../language/printer.mjs\";\nimport { isInputType } from \"../../type/definition.mjs\";\nimport { typeFromAST } from \"../../utilities/typeFromAST.mjs\";\n\n/**\n * Variables are input types\n *\n * A GraphQL operation is only valid if all the variables it defines are of\n * input types (scalar, enum, or input object).\n */\nexport function VariablesAreInputTypesRule(context) {\n return {\n VariableDefinition: function VariableDefinition(node) {\n var type = typeFromAST(context.getSchema(), node.type);\n\n if (type && !isInputType(type)) {\n var variableName = node.variable.name.value;\n var typeName = print(node.type);\n context.reportError(new GraphQLError(\"Variable \\\"$\".concat(variableName, \"\\\" cannot be non-input type \\\"\").concat(typeName, \"\\\".\"), node.type));\n }\n }\n };\n}\n","import inspect from \"../../jsutils/inspect.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { getNamedType, isLeafType } from \"../../type/definition.mjs\";\n\n/**\n * Scalar leafs\n *\n * A GraphQL document is valid only if all leaf fields (fields without\n * sub selections) are of scalar or enum types.\n */\nexport function ScalarLeafsRule(context) {\n return {\n Field: function Field(node) {\n var type = context.getType();\n var selectionSet = node.selectionSet;\n\n if (type) {\n if (isLeafType(getNamedType(type))) {\n if (selectionSet) {\n var fieldName = node.name.value;\n var typeStr = inspect(type);\n context.reportError(new GraphQLError(\"Field \\\"\".concat(fieldName, \"\\\" must not have a selection since type \\\"\").concat(typeStr, \"\\\" has no subfields.\"), selectionSet));\n }\n } else if (!selectionSet) {\n var _fieldName = node.name.value;\n\n var _typeStr = inspect(type);\n\n context.reportError(new GraphQLError(\"Field \\\"\".concat(_fieldName, \"\\\" of type \\\"\").concat(_typeStr, \"\\\" must have a selection of subfields. Did you mean \\\"\").concat(_fieldName, \" { ... }\\\"?\"), node));\n }\n }\n }\n };\n}\n","import arrayFrom from \"../../polyfills/arrayFrom.mjs\";\nimport didYouMean from \"../../jsutils/didYouMean.mjs\";\nimport suggestionList from \"../../jsutils/suggestionList.mjs\";\nimport naturalCompare from \"../../jsutils/naturalCompare.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { isObjectType, isInterfaceType, isAbstractType } from \"../../type/definition.mjs\";\n\n/**\n * Fields on correct type\n *\n * A GraphQL document is only valid if all fields selected are defined by the\n * parent type, or are an allowed meta field such as __typename.\n */\nexport function FieldsOnCorrectTypeRule(context) {\n return {\n Field: function Field(node) {\n var type = context.getParentType();\n\n if (type) {\n var fieldDef = context.getFieldDef();\n\n if (!fieldDef) {\n // This field doesn't exist, lets look for suggestions.\n var schema = context.getSchema();\n var fieldName = node.name.value; // First determine if there are any suggested types to condition on.\n\n var suggestion = didYouMean('to use an inline fragment on', getSuggestedTypeNames(schema, type, fieldName)); // If there are no suggested types, then perhaps this was a typo?\n\n if (suggestion === '') {\n suggestion = didYouMean(getSuggestedFieldNames(type, fieldName));\n } // Report an error, including helpful suggestions.\n\n\n context.reportError(new GraphQLError(\"Cannot query field \\\"\".concat(fieldName, \"\\\" on type \\\"\").concat(type.name, \"\\\".\") + suggestion, node));\n }\n }\n }\n };\n}\n/**\n * Go through all of the implementations of type, as well as the interfaces that\n * they implement. If any of those types include the provided field, suggest them,\n * sorted by how often the type is referenced.\n */\n\nfunction getSuggestedTypeNames(schema, type, fieldName) {\n if (!isAbstractType(type)) {\n // Must be an Object type, which does not have possible fields.\n return [];\n }\n\n var suggestedTypes = new Set();\n var usageCount = Object.create(null);\n\n for (var _i2 = 0, _schema$getPossibleTy2 = schema.getPossibleTypes(type); _i2 < _schema$getPossibleTy2.length; _i2++) {\n var possibleType = _schema$getPossibleTy2[_i2];\n\n if (!possibleType.getFields()[fieldName]) {\n continue;\n } // This object type defines this field.\n\n\n suggestedTypes.add(possibleType);\n usageCount[possibleType.name] = 1;\n\n for (var _i4 = 0, _possibleType$getInte2 = possibleType.getInterfaces(); _i4 < _possibleType$getInte2.length; _i4++) {\n var _usageCount$possibleI;\n\n var possibleInterface = _possibleType$getInte2[_i4];\n\n if (!possibleInterface.getFields()[fieldName]) {\n continue;\n } // This interface type defines this field.\n\n\n suggestedTypes.add(possibleInterface);\n usageCount[possibleInterface.name] = ((_usageCount$possibleI = usageCount[possibleInterface.name]) !== null && _usageCount$possibleI !== void 0 ? _usageCount$possibleI : 0) + 1;\n }\n }\n\n return arrayFrom(suggestedTypes).sort(function (typeA, typeB) {\n // Suggest both interface and object types based on how common they are.\n var usageCountDiff = usageCount[typeB.name] - usageCount[typeA.name];\n\n if (usageCountDiff !== 0) {\n return usageCountDiff;\n } // Suggest super types first followed by subtypes\n\n\n if (isInterfaceType(typeA) && schema.isSubType(typeA, typeB)) {\n return -1;\n }\n\n if (isInterfaceType(typeB) && schema.isSubType(typeB, typeA)) {\n return 1;\n }\n\n return naturalCompare(typeA.name, typeB.name);\n }).map(function (x) {\n return x.name;\n });\n}\n/**\n * For the field name provided, determine if there are any similar field names\n * that may be the result of a typo.\n */\n\n\nfunction getSuggestedFieldNames(type, fieldName) {\n if (isObjectType(type) || isInterfaceType(type)) {\n var possibleFieldNames = Object.keys(type.getFields());\n return suggestionList(fieldName, possibleFieldNames);\n } // Otherwise, must be a Union type, which does not define fields.\n\n\n return [];\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n\n/**\n * Unique fragment names\n *\n * A GraphQL document is only valid if all defined fragments have unique names.\n */\nexport function UniqueFragmentNamesRule(context) {\n var knownFragmentNames = Object.create(null);\n return {\n OperationDefinition: function OperationDefinition() {\n return false;\n },\n FragmentDefinition: function FragmentDefinition(node) {\n var fragmentName = node.name.value;\n\n if (knownFragmentNames[fragmentName]) {\n context.reportError(new GraphQLError(\"There can be only one fragment named \\\"\".concat(fragmentName, \"\\\".\"), [knownFragmentNames[fragmentName], node.name]));\n } else {\n knownFragmentNames[fragmentName] = node.name;\n }\n\n return false;\n }\n };\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n\n/**\n * Known fragment names\n *\n * A GraphQL document is only valid if all `...Fragment` fragment spreads refer\n * to fragments defined in the same document.\n */\nexport function KnownFragmentNamesRule(context) {\n return {\n FragmentSpread: function FragmentSpread(node) {\n var fragmentName = node.name.value;\n var fragment = context.getFragment(fragmentName);\n\n if (!fragment) {\n context.reportError(new GraphQLError(\"Unknown fragment \\\"\".concat(fragmentName, \"\\\".\"), node.name));\n }\n }\n };\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n\n/**\n * No unused fragments\n *\n * A GraphQL document is only valid if all fragment definitions are spread\n * within operations, or spread within other fragments spread within operations.\n */\nexport function NoUnusedFragmentsRule(context) {\n var operationDefs = [];\n var fragmentDefs = [];\n return {\n OperationDefinition: function OperationDefinition(node) {\n operationDefs.push(node);\n return false;\n },\n FragmentDefinition: function FragmentDefinition(node) {\n fragmentDefs.push(node);\n return false;\n },\n Document: {\n leave: function leave() {\n var fragmentNameUsed = Object.create(null);\n\n for (var _i2 = 0; _i2 < operationDefs.length; _i2++) {\n var operation = operationDefs[_i2];\n\n for (var _i4 = 0, _context$getRecursive2 = context.getRecursivelyReferencedFragments(operation); _i4 < _context$getRecursive2.length; _i4++) {\n var fragment = _context$getRecursive2[_i4];\n fragmentNameUsed[fragment.name.value] = true;\n }\n }\n\n for (var _i6 = 0; _i6 < fragmentDefs.length; _i6++) {\n var fragmentDef = fragmentDefs[_i6];\n var fragName = fragmentDef.name.value;\n\n if (fragmentNameUsed[fragName] !== true) {\n context.reportError(new GraphQLError(\"Fragment \\\"\".concat(fragName, \"\\\" is never used.\"), fragmentDef));\n }\n }\n }\n }\n };\n}\n","import inspect from \"../../jsutils/inspect.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { isCompositeType } from \"../../type/definition.mjs\";\nimport { typeFromAST } from \"../../utilities/typeFromAST.mjs\";\nimport { doTypesOverlap } from \"../../utilities/typeComparators.mjs\";\n\n/**\n * Possible fragment spread\n *\n * A fragment spread is only valid if the type condition could ever possibly\n * be true: if there is a non-empty intersection of the possible parent types,\n * and possible types which pass the type condition.\n */\nexport function PossibleFragmentSpreadsRule(context) {\n return {\n InlineFragment: function InlineFragment(node) {\n var fragType = context.getType();\n var parentType = context.getParentType();\n\n if (isCompositeType(fragType) && isCompositeType(parentType) && !doTypesOverlap(context.getSchema(), fragType, parentType)) {\n var parentTypeStr = inspect(parentType);\n var fragTypeStr = inspect(fragType);\n context.reportError(new GraphQLError(\"Fragment cannot be spread here as objects of type \\\"\".concat(parentTypeStr, \"\\\" can never be of type \\\"\").concat(fragTypeStr, \"\\\".\"), node));\n }\n },\n FragmentSpread: function FragmentSpread(node) {\n var fragName = node.name.value;\n var fragType = getFragmentType(context, fragName);\n var parentType = context.getParentType();\n\n if (fragType && parentType && !doTypesOverlap(context.getSchema(), fragType, parentType)) {\n var parentTypeStr = inspect(parentType);\n var fragTypeStr = inspect(fragType);\n context.reportError(new GraphQLError(\"Fragment \\\"\".concat(fragName, \"\\\" cannot be spread here as objects of type \\\"\").concat(parentTypeStr, \"\\\" can never be of type \\\"\").concat(fragTypeStr, \"\\\".\"), node));\n }\n }\n };\n}\n\nfunction getFragmentType(context, name) {\n var frag = context.getFragment(name);\n\n if (frag) {\n var type = typeFromAST(context.getSchema(), frag.typeCondition);\n\n if (isCompositeType(type)) {\n return type;\n }\n }\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nexport function NoFragmentCyclesRule(context) {\n // Tracks already visited fragments to maintain O(N) and to ensure that cycles\n // are not redundantly reported.\n var visitedFrags = Object.create(null); // Array of AST nodes used to produce meaningful errors\n\n var spreadPath = []; // Position in the spread path\n\n var spreadPathIndexByName = Object.create(null);\n return {\n OperationDefinition: function OperationDefinition() {\n return false;\n },\n FragmentDefinition: function FragmentDefinition(node) {\n detectCycleRecursive(node);\n return false;\n }\n }; // This does a straight-forward DFS to find cycles.\n // It does not terminate when a cycle was found but continues to explore\n // the graph to find all possible cycles.\n\n function detectCycleRecursive(fragment) {\n if (visitedFrags[fragment.name.value]) {\n return;\n }\n\n var fragmentName = fragment.name.value;\n visitedFrags[fragmentName] = true;\n var spreadNodes = context.getFragmentSpreads(fragment.selectionSet);\n\n if (spreadNodes.length === 0) {\n return;\n }\n\n spreadPathIndexByName[fragmentName] = spreadPath.length;\n\n for (var _i2 = 0; _i2 < spreadNodes.length; _i2++) {\n var spreadNode = spreadNodes[_i2];\n var spreadName = spreadNode.name.value;\n var cycleIndex = spreadPathIndexByName[spreadName];\n spreadPath.push(spreadNode);\n\n if (cycleIndex === undefined) {\n var spreadFragment = context.getFragment(spreadName);\n\n if (spreadFragment) {\n detectCycleRecursive(spreadFragment);\n }\n } else {\n var cyclePath = spreadPath.slice(cycleIndex);\n var viaPath = cyclePath.slice(0, -1).map(function (s) {\n return '\"' + s.name.value + '\"';\n }).join(', ');\n context.reportError(new GraphQLError(\"Cannot spread fragment \\\"\".concat(spreadName, \"\\\" within itself\") + (viaPath !== '' ? \" via \".concat(viaPath, \".\") : '.'), cyclePath));\n }\n\n spreadPath.pop();\n }\n\n spreadPathIndexByName[fragmentName] = undefined;\n }\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n\n/**\n * Unique variable names\n *\n * A GraphQL operation is only valid if all its variables are uniquely named.\n */\nexport function UniqueVariableNamesRule(context) {\n var knownVariableNames = Object.create(null);\n return {\n OperationDefinition: function OperationDefinition() {\n knownVariableNames = Object.create(null);\n },\n VariableDefinition: function VariableDefinition(node) {\n var variableName = node.variable.name.value;\n\n if (knownVariableNames[variableName]) {\n context.reportError(new GraphQLError(\"There can be only one variable named \\\"$\".concat(variableName, \"\\\".\"), [knownVariableNames[variableName], node.variable.name]));\n } else {\n knownVariableNames[variableName] = node.variable.name;\n }\n }\n };\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n\n/**\n * No undefined variables\n *\n * A GraphQL operation is only valid if all variables encountered, both directly\n * and via fragment spreads, are defined by that operation.\n */\nexport function NoUndefinedVariablesRule(context) {\n var variableNameDefined = Object.create(null);\n return {\n OperationDefinition: {\n enter: function enter() {\n variableNameDefined = Object.create(null);\n },\n leave: function leave(operation) {\n var usages = context.getRecursiveVariableUsages(operation);\n\n for (var _i2 = 0; _i2 < usages.length; _i2++) {\n var _ref2 = usages[_i2];\n var node = _ref2.node;\n var varName = node.name.value;\n\n if (variableNameDefined[varName] !== true) {\n context.reportError(new GraphQLError(operation.name ? \"Variable \\\"$\".concat(varName, \"\\\" is not defined by operation \\\"\").concat(operation.name.value, \"\\\".\") : \"Variable \\\"$\".concat(varName, \"\\\" is not defined.\"), [node, operation]));\n }\n }\n }\n },\n VariableDefinition: function VariableDefinition(node) {\n variableNameDefined[node.variable.name.value] = true;\n }\n };\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n\n/**\n * No unused variables\n *\n * A GraphQL operation is only valid if all variables defined by an operation\n * are used, either directly or within a spread fragment.\n */\nexport function NoUnusedVariablesRule(context) {\n var variableDefs = [];\n return {\n OperationDefinition: {\n enter: function enter() {\n variableDefs = [];\n },\n leave: function leave(operation) {\n var variableNameUsed = Object.create(null);\n var usages = context.getRecursiveVariableUsages(operation);\n\n for (var _i2 = 0; _i2 < usages.length; _i2++) {\n var _ref2 = usages[_i2];\n var node = _ref2.node;\n variableNameUsed[node.name.value] = true;\n }\n\n for (var _i4 = 0, _variableDefs2 = variableDefs; _i4 < _variableDefs2.length; _i4++) {\n var variableDef = _variableDefs2[_i4];\n var variableName = variableDef.variable.name.value;\n\n if (variableNameUsed[variableName] !== true) {\n context.reportError(new GraphQLError(operation.name ? \"Variable \\\"$\".concat(variableName, \"\\\" is never used in operation \\\"\").concat(operation.name.value, \"\\\".\") : \"Variable \\\"$\".concat(variableName, \"\\\" is never used.\"), variableDef));\n }\n }\n }\n },\n VariableDefinition: function VariableDefinition(def) {\n variableDefs.push(def);\n }\n };\n}\n","import inspect from \"../../jsutils/inspect.mjs\";\nimport invariant from \"../../jsutils/invariant.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { DirectiveLocation } from \"../../language/directiveLocation.mjs\";\nimport { specifiedDirectives } from \"../../type/directives.mjs\";\n\n/**\n * Known directives\n *\n * A GraphQL document is only valid if all `@directives` are known by the\n * schema and legally positioned.\n */\nexport function KnownDirectivesRule(context) {\n var locationsMap = Object.create(null);\n var schema = context.getSchema();\n var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;\n\n for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {\n var directive = definedDirectives[_i2];\n locationsMap[directive.name] = directive.locations;\n }\n\n var astDefinitions = context.getDocument().definitions;\n\n for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {\n var def = astDefinitions[_i4];\n\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n locationsMap[def.name.value] = def.locations.map(function (name) {\n return name.value;\n });\n }\n }\n\n return {\n Directive: function Directive(node, _key, _parent, _path, ancestors) {\n var name = node.name.value;\n var locations = locationsMap[name];\n\n if (!locations) {\n context.reportError(new GraphQLError(\"Unknown directive \\\"@\".concat(name, \"\\\".\"), node));\n return;\n }\n\n var candidateLocation = getDirectiveLocationForASTPath(ancestors);\n\n if (candidateLocation && locations.indexOf(candidateLocation) === -1) {\n context.reportError(new GraphQLError(\"Directive \\\"@\".concat(name, \"\\\" may not be used on \").concat(candidateLocation, \".\"), node));\n }\n }\n };\n}\n\nfunction getDirectiveLocationForASTPath(ancestors) {\n var appliedTo = ancestors[ancestors.length - 1];\n !Array.isArray(appliedTo) || invariant(0);\n\n switch (appliedTo.kind) {\n case Kind.OPERATION_DEFINITION:\n return getDirectiveLocationForOperation(appliedTo.operation);\n\n case Kind.FIELD:\n return DirectiveLocation.FIELD;\n\n case Kind.FRAGMENT_SPREAD:\n return DirectiveLocation.FRAGMENT_SPREAD;\n\n case Kind.INLINE_FRAGMENT:\n return DirectiveLocation.INLINE_FRAGMENT;\n\n case Kind.FRAGMENT_DEFINITION:\n return DirectiveLocation.FRAGMENT_DEFINITION;\n\n case Kind.VARIABLE_DEFINITION:\n return DirectiveLocation.VARIABLE_DEFINITION;\n\n case Kind.SCHEMA_DEFINITION:\n case Kind.SCHEMA_EXTENSION:\n return DirectiveLocation.SCHEMA;\n\n case Kind.SCALAR_TYPE_DEFINITION:\n case Kind.SCALAR_TYPE_EXTENSION:\n return DirectiveLocation.SCALAR;\n\n case Kind.OBJECT_TYPE_DEFINITION:\n case Kind.OBJECT_TYPE_EXTENSION:\n return DirectiveLocation.OBJECT;\n\n case Kind.FIELD_DEFINITION:\n return DirectiveLocation.FIELD_DEFINITION;\n\n case Kind.INTERFACE_TYPE_DEFINITION:\n case Kind.INTERFACE_TYPE_EXTENSION:\n return DirectiveLocation.INTERFACE;\n\n case Kind.UNION_TYPE_DEFINITION:\n case Kind.UNION_TYPE_EXTENSION:\n return DirectiveLocation.UNION;\n\n case Kind.ENUM_TYPE_DEFINITION:\n case Kind.ENUM_TYPE_EXTENSION:\n return DirectiveLocation.ENUM;\n\n case Kind.ENUM_VALUE_DEFINITION:\n return DirectiveLocation.ENUM_VALUE;\n\n case Kind.INPUT_OBJECT_TYPE_DEFINITION:\n case Kind.INPUT_OBJECT_TYPE_EXTENSION:\n return DirectiveLocation.INPUT_OBJECT;\n\n case Kind.INPUT_VALUE_DEFINITION:\n {\n var parentNode = ancestors[ancestors.length - 3];\n return parentNode.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION ? DirectiveLocation.INPUT_FIELD_DEFINITION : DirectiveLocation.ARGUMENT_DEFINITION;\n }\n }\n}\n\nfunction getDirectiveLocationForOperation(operation) {\n switch (operation) {\n case 'query':\n return DirectiveLocation.QUERY;\n\n case 'mutation':\n return DirectiveLocation.MUTATION;\n\n case 'subscription':\n return DirectiveLocation.SUBSCRIPTION;\n } // istanbul ignore next (Not reachable. All possible types have been considered)\n\n\n false || invariant(0, 'Unexpected operation: ' + inspect(operation));\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { isTypeDefinitionNode, isTypeExtensionNode } from \"../../language/predicates.mjs\";\nimport { specifiedDirectives } from \"../../type/directives.mjs\";\n\n/**\n * Unique directive names per location\n *\n * A GraphQL document is only valid if all non-repeatable directives at\n * a given location are uniquely named.\n */\nexport function UniqueDirectivesPerLocationRule(context) {\n var uniqueDirectiveMap = Object.create(null);\n var schema = context.getSchema();\n var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;\n\n for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {\n var directive = definedDirectives[_i2];\n uniqueDirectiveMap[directive.name] = !directive.isRepeatable;\n }\n\n var astDefinitions = context.getDocument().definitions;\n\n for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {\n var def = astDefinitions[_i4];\n\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n uniqueDirectiveMap[def.name.value] = !def.repeatable;\n }\n }\n\n var schemaDirectives = Object.create(null);\n var typeDirectivesMap = Object.create(null);\n return {\n // Many different AST nodes may contain directives. Rather than listing\n // them all, just listen for entering any node, and check to see if it\n // defines any directives.\n enter: function enter(node) {\n if (node.directives == null) {\n return;\n }\n\n var seenDirectives;\n\n if (node.kind === Kind.SCHEMA_DEFINITION || node.kind === Kind.SCHEMA_EXTENSION) {\n seenDirectives = schemaDirectives;\n } else if (isTypeDefinitionNode(node) || isTypeExtensionNode(node)) {\n var typeName = node.name.value;\n seenDirectives = typeDirectivesMap[typeName];\n\n if (seenDirectives === undefined) {\n typeDirectivesMap[typeName] = seenDirectives = Object.create(null);\n }\n } else {\n seenDirectives = Object.create(null);\n }\n\n for (var _i6 = 0, _node$directives2 = node.directives; _i6 < _node$directives2.length; _i6++) {\n var _directive = _node$directives2[_i6];\n var directiveName = _directive.name.value;\n\n if (uniqueDirectiveMap[directiveName]) {\n if (seenDirectives[directiveName]) {\n context.reportError(new GraphQLError(\"The directive \\\"@\".concat(directiveName, \"\\\" can only be used once at this location.\"), [seenDirectives[directiveName], _directive]));\n } else {\n seenDirectives[directiveName] = _directive;\n }\n }\n }\n }\n };\n}\n","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; }\n\nfunction _objectSpread(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; }\n\nfunction _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; }\n\nimport didYouMean from \"../../jsutils/didYouMean.mjs\";\nimport suggestionList from \"../../jsutils/suggestionList.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { specifiedDirectives } from \"../../type/directives.mjs\";\n\n/**\n * Known argument names\n *\n * A GraphQL field is only valid if all supplied arguments are defined by\n * that field.\n */\nexport function KnownArgumentNamesRule(context) {\n return _objectSpread(_objectSpread({}, KnownArgumentNamesOnDirectivesRule(context)), {}, {\n Argument: function Argument(argNode) {\n var argDef = context.getArgument();\n var fieldDef = context.getFieldDef();\n var parentType = context.getParentType();\n\n if (!argDef && fieldDef && parentType) {\n var argName = argNode.name.value;\n var knownArgsNames = fieldDef.args.map(function (arg) {\n return arg.name;\n });\n var suggestions = suggestionList(argName, knownArgsNames);\n context.reportError(new GraphQLError(\"Unknown argument \\\"\".concat(argName, \"\\\" on field \\\"\").concat(parentType.name, \".\").concat(fieldDef.name, \"\\\".\") + didYouMean(suggestions), argNode));\n }\n }\n });\n}\n/**\n * @internal\n */\n\nexport function KnownArgumentNamesOnDirectivesRule(context) {\n var directiveArgs = Object.create(null);\n var schema = context.getSchema();\n var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;\n\n for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {\n var directive = definedDirectives[_i2];\n directiveArgs[directive.name] = directive.args.map(function (arg) {\n return arg.name;\n });\n }\n\n var astDefinitions = context.getDocument().definitions;\n\n for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {\n var def = astDefinitions[_i4];\n\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n var _def$arguments;\n\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n var argsNodes = (_def$arguments = def.arguments) !== null && _def$arguments !== void 0 ? _def$arguments : [];\n directiveArgs[def.name.value] = argsNodes.map(function (arg) {\n return arg.name.value;\n });\n }\n }\n\n return {\n Directive: function Directive(directiveNode) {\n var directiveName = directiveNode.name.value;\n var knownArgs = directiveArgs[directiveName];\n\n if (directiveNode.arguments && knownArgs) {\n for (var _i6 = 0, _directiveNode$argume2 = directiveNode.arguments; _i6 < _directiveNode$argume2.length; _i6++) {\n var argNode = _directiveNode$argume2[_i6];\n var argName = argNode.name.value;\n\n if (knownArgs.indexOf(argName) === -1) {\n var suggestions = suggestionList(argName, knownArgs);\n context.reportError(new GraphQLError(\"Unknown argument \\\"\".concat(argName, \"\\\" on directive \\\"@\").concat(directiveName, \"\\\".\") + didYouMean(suggestions), argNode));\n }\n }\n }\n\n return false;\n }\n };\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n\n/**\n * Unique argument names\n *\n * A GraphQL field or directive is only valid if all supplied arguments are\n * uniquely named.\n */\nexport function UniqueArgumentNamesRule(context) {\n var knownArgNames = Object.create(null);\n return {\n Field: function Field() {\n knownArgNames = Object.create(null);\n },\n Directive: function Directive() {\n knownArgNames = Object.create(null);\n },\n Argument: function Argument(node) {\n var argName = node.name.value;\n\n if (knownArgNames[argName]) {\n context.reportError(new GraphQLError(\"There can be only one argument named \\\"\".concat(argName, \"\\\".\"), [knownArgNames[argName], node.name]));\n } else {\n knownArgNames[argName] = node.name;\n }\n\n return false;\n }\n };\n}\n","import objectValues from \"../../polyfills/objectValues.mjs\";\nimport keyMap from \"../../jsutils/keyMap.mjs\";\nimport inspect from \"../../jsutils/inspect.mjs\";\nimport didYouMean from \"../../jsutils/didYouMean.mjs\";\nimport suggestionList from \"../../jsutils/suggestionList.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { print } from \"../../language/printer.mjs\";\nimport { isLeafType, isInputObjectType, isListType, isNonNullType, isRequiredInputField, getNullableType, getNamedType } from \"../../type/definition.mjs\";\n\n/**\n * Value literals of correct type\n *\n * A GraphQL document is only valid if all value literals are of the type\n * expected at their position.\n */\nexport function ValuesOfCorrectTypeRule(context) {\n return {\n ListValue: function ListValue(node) {\n // Note: TypeInfo will traverse into a list's item type, so look to the\n // parent input type to check if it is a list.\n var type = getNullableType(context.getParentInputType());\n\n if (!isListType(type)) {\n isValidValueNode(context, node);\n return false; // Don't traverse further.\n }\n },\n ObjectValue: function ObjectValue(node) {\n var type = getNamedType(context.getInputType());\n\n if (!isInputObjectType(type)) {\n isValidValueNode(context, node);\n return false; // Don't traverse further.\n } // Ensure every required field exists.\n\n\n var fieldNodeMap = keyMap(node.fields, function (field) {\n return field.name.value;\n });\n\n for (var _i2 = 0, _objectValues2 = objectValues(type.getFields()); _i2 < _objectValues2.length; _i2++) {\n var fieldDef = _objectValues2[_i2];\n var fieldNode = fieldNodeMap[fieldDef.name];\n\n if (!fieldNode && isRequiredInputField(fieldDef)) {\n var typeStr = inspect(fieldDef.type);\n context.reportError(new GraphQLError(\"Field \\\"\".concat(type.name, \".\").concat(fieldDef.name, \"\\\" of required type \\\"\").concat(typeStr, \"\\\" was not provided.\"), node));\n }\n }\n },\n ObjectField: function ObjectField(node) {\n var parentType = getNamedType(context.getParentInputType());\n var fieldType = context.getInputType();\n\n if (!fieldType && isInputObjectType(parentType)) {\n var suggestions = suggestionList(node.name.value, Object.keys(parentType.getFields()));\n context.reportError(new GraphQLError(\"Field \\\"\".concat(node.name.value, \"\\\" is not defined by type \\\"\").concat(parentType.name, \"\\\".\") + didYouMean(suggestions), node));\n }\n },\n NullValue: function NullValue(node) {\n var type = context.getInputType();\n\n if (isNonNullType(type)) {\n context.reportError(new GraphQLError(\"Expected value of type \\\"\".concat(inspect(type), \"\\\", found \").concat(print(node), \".\"), node));\n }\n },\n EnumValue: function EnumValue(node) {\n return isValidValueNode(context, node);\n },\n IntValue: function IntValue(node) {\n return isValidValueNode(context, node);\n },\n FloatValue: function FloatValue(node) {\n return isValidValueNode(context, node);\n },\n StringValue: function StringValue(node) {\n return isValidValueNode(context, node);\n },\n BooleanValue: function BooleanValue(node) {\n return isValidValueNode(context, node);\n }\n };\n}\n/**\n * Any value literal may be a valid representation of a Scalar, depending on\n * that scalar type.\n */\n\nfunction isValidValueNode(context, node) {\n // Report any error at the full type expected by the location.\n var locationType = context.getInputType();\n\n if (!locationType) {\n return;\n }\n\n var type = getNamedType(locationType);\n\n if (!isLeafType(type)) {\n var typeStr = inspect(locationType);\n context.reportError(new GraphQLError(\"Expected value of type \\\"\".concat(typeStr, \"\\\", found \").concat(print(node), \".\"), node));\n return;\n } // Scalars and Enums determine if a literal value is valid via parseLiteral(),\n // which may throw or return an invalid value to indicate failure.\n\n\n try {\n var parseResult = type.parseLiteral(node, undefined\n /* variables */\n );\n\n if (parseResult === undefined) {\n var _typeStr = inspect(locationType);\n\n context.reportError(new GraphQLError(\"Expected value of type \\\"\".concat(_typeStr, \"\\\", found \").concat(print(node), \".\"), node));\n }\n } catch (error) {\n var _typeStr2 = inspect(locationType);\n\n if (error instanceof GraphQLError) {\n context.reportError(error);\n } else {\n context.reportError(new GraphQLError(\"Expected value of type \\\"\".concat(_typeStr2, \"\\\", found \").concat(print(node), \"; \") + error.message, node, undefined, undefined, undefined, error));\n }\n }\n}\n","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; }\n\nfunction _objectSpread(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; }\n\nfunction _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; }\n\nimport inspect from \"../../jsutils/inspect.mjs\";\nimport keyMap from \"../../jsutils/keyMap.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { print } from \"../../language/printer.mjs\";\nimport { specifiedDirectives } from \"../../type/directives.mjs\";\nimport { isType, isRequiredArgument } from \"../../type/definition.mjs\";\n\n/**\n * Provided required arguments\n *\n * A field or directive is only valid if all required (non-null without a\n * default value) field arguments have been provided.\n */\nexport function ProvidedRequiredArgumentsRule(context) {\n return _objectSpread(_objectSpread({}, ProvidedRequiredArgumentsOnDirectivesRule(context)), {}, {\n Field: {\n // Validate on leave to allow for deeper errors to appear first.\n leave: function leave(fieldNode) {\n var _fieldNode$arguments;\n\n var fieldDef = context.getFieldDef();\n\n if (!fieldDef) {\n return false;\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n var argNodes = (_fieldNode$arguments = fieldNode.arguments) !== null && _fieldNode$arguments !== void 0 ? _fieldNode$arguments : [];\n var argNodeMap = keyMap(argNodes, function (arg) {\n return arg.name.value;\n });\n\n for (var _i2 = 0, _fieldDef$args2 = fieldDef.args; _i2 < _fieldDef$args2.length; _i2++) {\n var argDef = _fieldDef$args2[_i2];\n var argNode = argNodeMap[argDef.name];\n\n if (!argNode && isRequiredArgument(argDef)) {\n var argTypeStr = inspect(argDef.type);\n context.reportError(new GraphQLError(\"Field \\\"\".concat(fieldDef.name, \"\\\" argument \\\"\").concat(argDef.name, \"\\\" of type \\\"\").concat(argTypeStr, \"\\\" is required, but it was not provided.\"), fieldNode));\n }\n }\n }\n }\n });\n}\n/**\n * @internal\n */\n\nexport function ProvidedRequiredArgumentsOnDirectivesRule(context) {\n var requiredArgsMap = Object.create(null);\n var schema = context.getSchema();\n var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;\n\n for (var _i4 = 0; _i4 < definedDirectives.length; _i4++) {\n var directive = definedDirectives[_i4];\n requiredArgsMap[directive.name] = keyMap(directive.args.filter(isRequiredArgument), function (arg) {\n return arg.name;\n });\n }\n\n var astDefinitions = context.getDocument().definitions;\n\n for (var _i6 = 0; _i6 < astDefinitions.length; _i6++) {\n var def = astDefinitions[_i6];\n\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n var _def$arguments;\n\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n var argNodes = (_def$arguments = def.arguments) !== null && _def$arguments !== void 0 ? _def$arguments : [];\n requiredArgsMap[def.name.value] = keyMap(argNodes.filter(isRequiredArgumentNode), function (arg) {\n return arg.name.value;\n });\n }\n }\n\n return {\n Directive: {\n // Validate on leave to allow for deeper errors to appear first.\n leave: function leave(directiveNode) {\n var directiveName = directiveNode.name.value;\n var requiredArgs = requiredArgsMap[directiveName];\n\n if (requiredArgs) {\n var _directiveNode$argume;\n\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n var _argNodes = (_directiveNode$argume = directiveNode.arguments) !== null && _directiveNode$argume !== void 0 ? _directiveNode$argume : [];\n\n var argNodeMap = keyMap(_argNodes, function (arg) {\n return arg.name.value;\n });\n\n for (var _i8 = 0, _Object$keys2 = Object.keys(requiredArgs); _i8 < _Object$keys2.length; _i8++) {\n var argName = _Object$keys2[_i8];\n\n if (!argNodeMap[argName]) {\n var argType = requiredArgs[argName].type;\n var argTypeStr = isType(argType) ? inspect(argType) : print(argType);\n context.reportError(new GraphQLError(\"Directive \\\"@\".concat(directiveName, \"\\\" argument \\\"\").concat(argName, \"\\\" of type \\\"\").concat(argTypeStr, \"\\\" is required, but it was not provided.\"), directiveNode));\n }\n }\n }\n }\n }\n };\n}\n\nfunction isRequiredArgumentNode(arg) {\n return arg.type.kind === Kind.NON_NULL_TYPE && arg.defaultValue == null;\n}\n","import inspect from \"../../jsutils/inspect.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { isNonNullType } from \"../../type/definition.mjs\";\nimport { typeFromAST } from \"../../utilities/typeFromAST.mjs\";\nimport { isTypeSubTypeOf } from \"../../utilities/typeComparators.mjs\";\n\n/**\n * Variables passed to field arguments conform to type\n */\nexport function VariablesInAllowedPositionRule(context) {\n var varDefMap = Object.create(null);\n return {\n OperationDefinition: {\n enter: function enter() {\n varDefMap = Object.create(null);\n },\n leave: function leave(operation) {\n var usages = context.getRecursiveVariableUsages(operation);\n\n for (var _i2 = 0; _i2 < usages.length; _i2++) {\n var _ref2 = usages[_i2];\n var node = _ref2.node;\n var type = _ref2.type;\n var defaultValue = _ref2.defaultValue;\n var varName = node.name.value;\n var varDef = varDefMap[varName];\n\n if (varDef && type) {\n // A var type is allowed if it is the same or more strict (e.g. is\n // a subtype of) than the expected type. It can be more strict if\n // the variable type is non-null when the expected type is nullable.\n // If both are list types, the variable item type can be more strict\n // than the expected item type (contravariant).\n var schema = context.getSchema();\n var varType = typeFromAST(schema, varDef.type);\n\n if (varType && !allowedVariableUsage(schema, varType, varDef.defaultValue, type, defaultValue)) {\n var varTypeStr = inspect(varType);\n var typeStr = inspect(type);\n context.reportError(new GraphQLError(\"Variable \\\"$\".concat(varName, \"\\\" of type \\\"\").concat(varTypeStr, \"\\\" used in position expecting type \\\"\").concat(typeStr, \"\\\".\"), [varDef, node]));\n }\n }\n }\n }\n },\n VariableDefinition: function VariableDefinition(node) {\n varDefMap[node.variable.name.value] = node;\n }\n };\n}\n/**\n * Returns true if the variable is allowed in the location it was found,\n * which includes considering if default values exist for either the variable\n * or the location at which it is located.\n */\n\nfunction allowedVariableUsage(schema, varType, varDefaultValue, locationType, locationDefaultValue) {\n if (isNonNullType(locationType) && !isNonNullType(varType)) {\n var hasNonNullVariableDefaultValue = varDefaultValue != null && varDefaultValue.kind !== Kind.NULL;\n var hasLocationDefaultValue = locationDefaultValue !== undefined;\n\n if (!hasNonNullVariableDefaultValue && !hasLocationDefaultValue) {\n return false;\n }\n\n var nullableLocationType = locationType.ofType;\n return isTypeSubTypeOf(schema, varType, nullableLocationType);\n }\n\n return isTypeSubTypeOf(schema, varType, locationType);\n}\n","import find from \"../../polyfills/find.mjs\";\nimport objectEntries from \"../../polyfills/objectEntries.mjs\";\nimport inspect from \"../../jsutils/inspect.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { print } from \"../../language/printer.mjs\";\nimport { getNamedType, isNonNullType, isLeafType, isObjectType, isListType, isInterfaceType } from \"../../type/definition.mjs\";\nimport { typeFromAST } from \"../../utilities/typeFromAST.mjs\";\n\nfunction reasonMessage(reason) {\n if (Array.isArray(reason)) {\n return reason.map(function (_ref) {\n var responseName = _ref[0],\n subReason = _ref[1];\n return \"subfields \\\"\".concat(responseName, \"\\\" conflict because \") + reasonMessage(subReason);\n }).join(' and ');\n }\n\n return reason;\n}\n/**\n * Overlapping fields can be merged\n *\n * A selection set is only valid if all fields (including spreading any\n * fragments) either correspond to distinct response names or can be merged\n * without ambiguity.\n */\n\n\nexport function OverlappingFieldsCanBeMergedRule(context) {\n // A memoization for when two fragments are compared \"between\" each other for\n // conflicts. Two fragments may be compared many times, so memoizing this can\n // dramatically improve the performance of this validator.\n var comparedFragmentPairs = new PairSet(); // A cache for the \"field map\" and list of fragment names found in any given\n // selection set. Selection sets may be asked for this information multiple\n // times, so this improves the performance of this validator.\n\n var cachedFieldsAndFragmentNames = new Map();\n return {\n SelectionSet: function SelectionSet(selectionSet) {\n var conflicts = findConflictsWithinSelectionSet(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, context.getParentType(), selectionSet);\n\n for (var _i2 = 0; _i2 < conflicts.length; _i2++) {\n var _ref3 = conflicts[_i2];\n var _ref2$ = _ref3[0];\n var responseName = _ref2$[0];\n var reason = _ref2$[1];\n var fields1 = _ref3[1];\n var fields2 = _ref3[2];\n var reasonMsg = reasonMessage(reason);\n context.reportError(new GraphQLError(\"Fields \\\"\".concat(responseName, \"\\\" conflict because \").concat(reasonMsg, \". Use different aliases on the fields to fetch both if this was intentional.\"), fields1.concat(fields2)));\n }\n }\n };\n}\n\n/**\n * Algorithm:\n *\n * Conflicts occur when two fields exist in a query which will produce the same\n * response name, but represent differing values, thus creating a conflict.\n * The algorithm below finds all conflicts via making a series of comparisons\n * between fields. In order to compare as few fields as possible, this makes\n * a series of comparisons \"within\" sets of fields and \"between\" sets of fields.\n *\n * Given any selection set, a collection produces both a set of fields by\n * also including all inline fragments, as well as a list of fragments\n * referenced by fragment spreads.\n *\n * A) Each selection set represented in the document first compares \"within\" its\n * collected set of fields, finding any conflicts between every pair of\n * overlapping fields.\n * Note: This is the *only time* that a the fields \"within\" a set are compared\n * to each other. After this only fields \"between\" sets are compared.\n *\n * B) Also, if any fragment is referenced in a selection set, then a\n * comparison is made \"between\" the original set of fields and the\n * referenced fragment.\n *\n * C) Also, if multiple fragments are referenced, then comparisons\n * are made \"between\" each referenced fragment.\n *\n * D) When comparing \"between\" a set of fields and a referenced fragment, first\n * a comparison is made between each field in the original set of fields and\n * each field in the the referenced set of fields.\n *\n * E) Also, if any fragment is referenced in the referenced selection set,\n * then a comparison is made \"between\" the original set of fields and the\n * referenced fragment (recursively referring to step D).\n *\n * F) When comparing \"between\" two fragments, first a comparison is made between\n * each field in the first referenced set of fields and each field in the the\n * second referenced set of fields.\n *\n * G) Also, any fragments referenced by the first must be compared to the\n * second, and any fragments referenced by the second must be compared to the\n * first (recursively referring to step F).\n *\n * H) When comparing two fields, if both have selection sets, then a comparison\n * is made \"between\" both selection sets, first comparing the set of fields in\n * the first selection set with the set of fields in the second.\n *\n * I) Also, if any fragment is referenced in either selection set, then a\n * comparison is made \"between\" the other set of fields and the\n * referenced fragment.\n *\n * J) Also, if two fragments are referenced in both selection sets, then a\n * comparison is made \"between\" the two fragments.\n *\n */\n// Find all conflicts found \"within\" a selection set, including those found\n// via spreading in fragments. Called when visiting each SelectionSet in the\n// GraphQL Document.\nfunction findConflictsWithinSelectionSet(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentType, selectionSet) {\n var conflicts = [];\n\n var _getFieldsAndFragment = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType, selectionSet),\n fieldMap = _getFieldsAndFragment[0],\n fragmentNames = _getFieldsAndFragment[1]; // (A) Find find all conflicts \"within\" the fields of this selection set.\n // Note: this is the *only place* `collectConflictsWithin` is called.\n\n\n collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, fieldMap);\n\n if (fragmentNames.length !== 0) {\n // (B) Then collect conflicts between these fields and those represented by\n // each spread fragment name found.\n for (var i = 0; i < fragmentNames.length; i++) {\n collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, fieldMap, fragmentNames[i]); // (C) Then compare this fragment with all other fragments found in this\n // selection set to collect conflicts between fragments spread together.\n // This compares each item in the list of fragment names to every other\n // item in that same list (except for itself).\n\n for (var j = i + 1; j < fragmentNames.length; j++) {\n collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, fragmentNames[i], fragmentNames[j]);\n }\n }\n }\n\n return conflicts;\n} // Collect all conflicts found between a set of fields and a fragment reference\n// including via spreading in any nested fragments.\n\n\nfunction collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fragmentName) {\n var fragment = context.getFragment(fragmentName);\n\n if (!fragment) {\n return;\n }\n\n var _getReferencedFieldsA = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment),\n fieldMap2 = _getReferencedFieldsA[0],\n fragmentNames2 = _getReferencedFieldsA[1]; // Do not compare a fragment's fieldMap to itself.\n\n\n if (fieldMap === fieldMap2) {\n return;\n } // (D) First collect any conflicts between the provided collection of fields\n // and the collection of fields represented by the given fragment.\n\n\n collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fieldMap2); // (E) Then collect any conflicts between the provided collection of fields\n // and any fragment names found in the given fragment.\n\n for (var i = 0; i < fragmentNames2.length; i++) {\n collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fragmentNames2[i]);\n }\n} // Collect all conflicts found between two fragments, including via spreading in\n// any nested fragments.\n\n\nfunction collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentName1, fragmentName2) {\n // No need to compare a fragment to itself.\n if (fragmentName1 === fragmentName2) {\n return;\n } // Memoize so two fragments are not compared for conflicts more than once.\n\n\n if (comparedFragmentPairs.has(fragmentName1, fragmentName2, areMutuallyExclusive)) {\n return;\n }\n\n comparedFragmentPairs.add(fragmentName1, fragmentName2, areMutuallyExclusive);\n var fragment1 = context.getFragment(fragmentName1);\n var fragment2 = context.getFragment(fragmentName2);\n\n if (!fragment1 || !fragment2) {\n return;\n }\n\n var _getReferencedFieldsA2 = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment1),\n fieldMap1 = _getReferencedFieldsA2[0],\n fragmentNames1 = _getReferencedFieldsA2[1];\n\n var _getReferencedFieldsA3 = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment2),\n fieldMap2 = _getReferencedFieldsA3[0],\n fragmentNames2 = _getReferencedFieldsA3[1]; // (F) First, collect all conflicts between these two collections of fields\n // (not including any nested fragments).\n\n\n collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fieldMap2); // (G) Then collect conflicts between the first fragment and any nested\n // fragments spread in the second fragment.\n\n for (var j = 0; j < fragmentNames2.length; j++) {\n collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentName1, fragmentNames2[j]);\n } // (G) Then collect conflicts between the second fragment and any nested\n // fragments spread in the first fragment.\n\n\n for (var i = 0; i < fragmentNames1.length; i++) {\n collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentNames1[i], fragmentName2);\n }\n} // Find all conflicts found between two selection sets, including those found\n// via spreading in fragments. Called when determining if conflicts exist\n// between the sub-fields of two overlapping fields.\n\n\nfunction findConflictsBetweenSubSelectionSets(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, parentType1, selectionSet1, parentType2, selectionSet2) {\n var conflicts = [];\n\n var _getFieldsAndFragment2 = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType1, selectionSet1),\n fieldMap1 = _getFieldsAndFragment2[0],\n fragmentNames1 = _getFieldsAndFragment2[1];\n\n var _getFieldsAndFragment3 = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType2, selectionSet2),\n fieldMap2 = _getFieldsAndFragment3[0],\n fragmentNames2 = _getFieldsAndFragment3[1]; // (H) First, collect all conflicts between these two collections of field.\n\n\n collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fieldMap2); // (I) Then collect conflicts between the first collection of fields and\n // those referenced by each fragment name associated with the second.\n\n if (fragmentNames2.length !== 0) {\n for (var j = 0; j < fragmentNames2.length; j++) {\n collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fragmentNames2[j]);\n }\n } // (I) Then collect conflicts between the second collection of fields and\n // those referenced by each fragment name associated with the first.\n\n\n if (fragmentNames1.length !== 0) {\n for (var i = 0; i < fragmentNames1.length; i++) {\n collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap2, fragmentNames1[i]);\n }\n } // (J) Also collect conflicts between any fragment names by the first and\n // fragment names by the second. This compares each item in the first set of\n // names to each item in the second set of names.\n\n\n for (var _i3 = 0; _i3 < fragmentNames1.length; _i3++) {\n for (var _j = 0; _j < fragmentNames2.length; _j++) {\n collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentNames1[_i3], fragmentNames2[_j]);\n }\n }\n\n return conflicts;\n} // Collect all Conflicts \"within\" one collection of fields.\n\n\nfunction collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, fieldMap) {\n // A field map is a keyed collection, where each key represents a response\n // name and the value at that key is a list of all fields which provide that\n // response name. For every response name, if there are multiple fields, they\n // must be compared to find a potential conflict.\n for (var _i5 = 0, _objectEntries2 = objectEntries(fieldMap); _i5 < _objectEntries2.length; _i5++) {\n var _ref5 = _objectEntries2[_i5];\n var responseName = _ref5[0];\n var fields = _ref5[1];\n\n // This compares every field in the list to every other field in this list\n // (except to itself). If the list only has one item, nothing needs to\n // be compared.\n if (fields.length > 1) {\n for (var i = 0; i < fields.length; i++) {\n for (var j = i + 1; j < fields.length; j++) {\n var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, // within one collection is never mutually exclusive\n responseName, fields[i], fields[j]);\n\n if (conflict) {\n conflicts.push(conflict);\n }\n }\n }\n }\n }\n} // Collect all Conflicts between two collections of fields. This is similar to,\n// but different from the `collectConflictsWithin` function above. This check\n// assumes that `collectConflictsWithin` has already been called on each\n// provided collection of fields. This is true because this validator traverses\n// each individual selection set.\n\n\nfunction collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, fieldMap1, fieldMap2) {\n // A field map is a keyed collection, where each key represents a response\n // name and the value at that key is a list of all fields which provide that\n // response name. For any response name which appears in both provided field\n // maps, each field from the first field map must be compared to every field\n // in the second field map to find potential conflicts.\n for (var _i7 = 0, _Object$keys2 = Object.keys(fieldMap1); _i7 < _Object$keys2.length; _i7++) {\n var responseName = _Object$keys2[_i7];\n var fields2 = fieldMap2[responseName];\n\n if (fields2) {\n var fields1 = fieldMap1[responseName];\n\n for (var i = 0; i < fields1.length; i++) {\n for (var j = 0; j < fields2.length; j++) {\n var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, responseName, fields1[i], fields2[j]);\n\n if (conflict) {\n conflicts.push(conflict);\n }\n }\n }\n }\n }\n} // Determines if there is a conflict between two particular fields, including\n// comparing their sub-fields.\n\n\nfunction findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, responseName, field1, field2) {\n var parentType1 = field1[0],\n node1 = field1[1],\n def1 = field1[2];\n var parentType2 = field2[0],\n node2 = field2[1],\n def2 = field2[2]; // If it is known that two fields could not possibly apply at the same\n // time, due to the parent types, then it is safe to permit them to diverge\n // in aliased field or arguments used as they will not present any ambiguity\n // by differing.\n // It is known that two parent types could never overlap if they are\n // different Object types. Interface or Union types might overlap - if not\n // in the current state of the schema, then perhaps in some future version,\n // thus may not safely diverge.\n\n var areMutuallyExclusive = parentFieldsAreMutuallyExclusive || parentType1 !== parentType2 && isObjectType(parentType1) && isObjectType(parentType2);\n\n if (!areMutuallyExclusive) {\n var _node1$arguments, _node2$arguments;\n\n // Two aliases must refer to the same field.\n var name1 = node1.name.value;\n var name2 = node2.name.value;\n\n if (name1 !== name2) {\n return [[responseName, \"\\\"\".concat(name1, \"\\\" and \\\"\").concat(name2, \"\\\" are different fields\")], [node1], [node2]];\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n var args1 = (_node1$arguments = node1.arguments) !== null && _node1$arguments !== void 0 ? _node1$arguments : []; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n var args2 = (_node2$arguments = node2.arguments) !== null && _node2$arguments !== void 0 ? _node2$arguments : []; // Two field calls must have the same arguments.\n\n if (!sameArguments(args1, args2)) {\n return [[responseName, 'they have differing arguments'], [node1], [node2]];\n }\n } // The return type for each field.\n\n\n var type1 = def1 === null || def1 === void 0 ? void 0 : def1.type;\n var type2 = def2 === null || def2 === void 0 ? void 0 : def2.type;\n\n if (type1 && type2 && doTypesConflict(type1, type2)) {\n return [[responseName, \"they return conflicting types \\\"\".concat(inspect(type1), \"\\\" and \\\"\").concat(inspect(type2), \"\\\"\")], [node1], [node2]];\n } // Collect and compare sub-fields. Use the same \"visited fragment names\" list\n // for both collections so fields in a fragment reference are never\n // compared to themselves.\n\n\n var selectionSet1 = node1.selectionSet;\n var selectionSet2 = node2.selectionSet;\n\n if (selectionSet1 && selectionSet2) {\n var conflicts = findConflictsBetweenSubSelectionSets(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, getNamedType(type1), selectionSet1, getNamedType(type2), selectionSet2);\n return subfieldConflicts(conflicts, responseName, node1, node2);\n }\n}\n\nfunction sameArguments(arguments1, arguments2) {\n if (arguments1.length !== arguments2.length) {\n return false;\n }\n\n return arguments1.every(function (argument1) {\n var argument2 = find(arguments2, function (argument) {\n return argument.name.value === argument1.name.value;\n });\n\n if (!argument2) {\n return false;\n }\n\n return sameValue(argument1.value, argument2.value);\n });\n}\n\nfunction sameValue(value1, value2) {\n return print(value1) === print(value2);\n} // Two types conflict if both types could not apply to a value simultaneously.\n// Composite types are ignored as their individual field types will be compared\n// later recursively. However List and Non-Null types must match.\n\n\nfunction doTypesConflict(type1, type2) {\n if (isListType(type1)) {\n return isListType(type2) ? doTypesConflict(type1.ofType, type2.ofType) : true;\n }\n\n if (isListType(type2)) {\n return true;\n }\n\n if (isNonNullType(type1)) {\n return isNonNullType(type2) ? doTypesConflict(type1.ofType, type2.ofType) : true;\n }\n\n if (isNonNullType(type2)) {\n return true;\n }\n\n if (isLeafType(type1) || isLeafType(type2)) {\n return type1 !== type2;\n }\n\n return false;\n} // Given a selection set, return the collection of fields (a mapping of response\n// name to field nodes and definitions) as well as a list of fragment names\n// referenced via fragment spreads.\n\n\nfunction getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType, selectionSet) {\n var cached = cachedFieldsAndFragmentNames.get(selectionSet);\n\n if (!cached) {\n var nodeAndDefs = Object.create(null);\n var fragmentNames = Object.create(null);\n\n _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeAndDefs, fragmentNames);\n\n cached = [nodeAndDefs, Object.keys(fragmentNames)];\n cachedFieldsAndFragmentNames.set(selectionSet, cached);\n }\n\n return cached;\n} // Given a reference to a fragment, return the represented collection of fields\n// as well as a list of nested fragment names referenced via fragment spreads.\n\n\nfunction getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment) {\n // Short-circuit building a type from the node if possible.\n var cached = cachedFieldsAndFragmentNames.get(fragment.selectionSet);\n\n if (cached) {\n return cached;\n }\n\n var fragmentType = typeFromAST(context.getSchema(), fragment.typeCondition);\n return getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragmentType, fragment.selectionSet);\n}\n\nfunction _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeAndDefs, fragmentNames) {\n for (var _i9 = 0, _selectionSet$selecti2 = selectionSet.selections; _i9 < _selectionSet$selecti2.length; _i9++) {\n var selection = _selectionSet$selecti2[_i9];\n\n switch (selection.kind) {\n case Kind.FIELD:\n {\n var fieldName = selection.name.value;\n var fieldDef = void 0;\n\n if (isObjectType(parentType) || isInterfaceType(parentType)) {\n fieldDef = parentType.getFields()[fieldName];\n }\n\n var responseName = selection.alias ? selection.alias.value : fieldName;\n\n if (!nodeAndDefs[responseName]) {\n nodeAndDefs[responseName] = [];\n }\n\n nodeAndDefs[responseName].push([parentType, selection, fieldDef]);\n break;\n }\n\n case Kind.FRAGMENT_SPREAD:\n fragmentNames[selection.name.value] = true;\n break;\n\n case Kind.INLINE_FRAGMENT:\n {\n var typeCondition = selection.typeCondition;\n var inlineFragmentType = typeCondition ? typeFromAST(context.getSchema(), typeCondition) : parentType;\n\n _collectFieldsAndFragmentNames(context, inlineFragmentType, selection.selectionSet, nodeAndDefs, fragmentNames);\n\n break;\n }\n }\n }\n} // Given a series of Conflicts which occurred between two sub-fields, generate\n// a single Conflict.\n\n\nfunction subfieldConflicts(conflicts, responseName, node1, node2) {\n if (conflicts.length > 0) {\n return [[responseName, conflicts.map(function (_ref6) {\n var reason = _ref6[0];\n return reason;\n })], conflicts.reduce(function (allFields, _ref7) {\n var fields1 = _ref7[1];\n return allFields.concat(fields1);\n }, [node1]), conflicts.reduce(function (allFields, _ref8) {\n var fields2 = _ref8[2];\n return allFields.concat(fields2);\n }, [node2])];\n }\n}\n/**\n * A way to keep track of pairs of things when the ordering of the pair does\n * not matter. We do this by maintaining a sort of double adjacency sets.\n */\n\n\nvar PairSet = /*#__PURE__*/function () {\n function PairSet() {\n this._data = Object.create(null);\n }\n\n var _proto = PairSet.prototype;\n\n _proto.has = function has(a, b, areMutuallyExclusive) {\n var first = this._data[a];\n var result = first && first[b];\n\n if (result === undefined) {\n return false;\n } // areMutuallyExclusive being false is a superset of being true,\n // hence if we want to know if this PairSet \"has\" these two with no\n // exclusivity, we have to ensure it was added as such.\n\n\n if (areMutuallyExclusive === false) {\n return result === false;\n }\n\n return true;\n };\n\n _proto.add = function add(a, b, areMutuallyExclusive) {\n this._pairSetAdd(a, b, areMutuallyExclusive);\n\n this._pairSetAdd(b, a, areMutuallyExclusive);\n };\n\n _proto._pairSetAdd = function _pairSetAdd(a, b, areMutuallyExclusive) {\n var map = this._data[a];\n\n if (!map) {\n map = Object.create(null);\n this._data[a] = map;\n }\n\n map[b] = areMutuallyExclusive;\n };\n\n return PairSet;\n}();\n","var _defKindToExtKind;\n\nfunction _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; }\n\nimport inspect from \"../../jsutils/inspect.mjs\";\nimport invariant from \"../../jsutils/invariant.mjs\";\nimport didYouMean from \"../../jsutils/didYouMean.mjs\";\nimport suggestionList from \"../../jsutils/suggestionList.mjs\";\nimport { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { Kind } from \"../../language/kinds.mjs\";\nimport { isTypeDefinitionNode } from \"../../language/predicates.mjs\";\nimport { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from \"../../type/definition.mjs\";\n\n/**\n * Possible type extension\n *\n * A type extension is only valid if the type is defined and has the same kind.\n */\nexport function PossibleTypeExtensionsRule(context) {\n var schema = context.getSchema();\n var definedTypes = Object.create(null);\n\n for (var _i2 = 0, _context$getDocument$2 = context.getDocument().definitions; _i2 < _context$getDocument$2.length; _i2++) {\n var def = _context$getDocument$2[_i2];\n\n if (isTypeDefinitionNode(def)) {\n definedTypes[def.name.value] = def;\n }\n }\n\n return {\n ScalarTypeExtension: checkExtension,\n ObjectTypeExtension: checkExtension,\n InterfaceTypeExtension: checkExtension,\n UnionTypeExtension: checkExtension,\n EnumTypeExtension: checkExtension,\n InputObjectTypeExtension: checkExtension\n };\n\n function checkExtension(node) {\n var typeName = node.name.value;\n var defNode = definedTypes[typeName];\n var existingType = schema === null || schema === void 0 ? void 0 : schema.getType(typeName);\n var expectedKind;\n\n if (defNode) {\n expectedKind = defKindToExtKind[defNode.kind];\n } else if (existingType) {\n expectedKind = typeToExtKind(existingType);\n }\n\n if (expectedKind) {\n if (expectedKind !== node.kind) {\n var kindStr = extensionKindToTypeName(node.kind);\n context.reportError(new GraphQLError(\"Cannot extend non-\".concat(kindStr, \" type \\\"\").concat(typeName, \"\\\".\"), defNode ? [defNode, node] : node));\n }\n } else {\n var allTypeNames = Object.keys(definedTypes);\n\n if (schema) {\n allTypeNames = allTypeNames.concat(Object.keys(schema.getTypeMap()));\n }\n\n var suggestedTypes = suggestionList(typeName, allTypeNames);\n context.reportError(new GraphQLError(\"Cannot extend type \\\"\".concat(typeName, \"\\\" because it is not defined.\") + didYouMean(suggestedTypes), node.name));\n }\n }\n}\nvar defKindToExtKind = (_defKindToExtKind = {}, _defineProperty(_defKindToExtKind, Kind.SCALAR_TYPE_DEFINITION, Kind.SCALAR_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.OBJECT_TYPE_DEFINITION, Kind.OBJECT_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.INTERFACE_TYPE_DEFINITION, Kind.INTERFACE_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.UNION_TYPE_DEFINITION, Kind.UNION_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.ENUM_TYPE_DEFINITION, Kind.ENUM_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.INPUT_OBJECT_TYPE_DEFINITION, Kind.INPUT_OBJECT_TYPE_EXTENSION), _defKindToExtKind);\n\nfunction typeToExtKind(type) {\n if (isScalarType(type)) {\n return Kind.SCALAR_TYPE_EXTENSION;\n }\n\n if (isObjectType(type)) {\n return Kind.OBJECT_TYPE_EXTENSION;\n }\n\n if (isInterfaceType(type)) {\n return Kind.INTERFACE_TYPE_EXTENSION;\n }\n\n if (isUnionType(type)) {\n return Kind.UNION_TYPE_EXTENSION;\n }\n\n if (isEnumType(type)) {\n return Kind.ENUM_TYPE_EXTENSION;\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isInputObjectType(type)) {\n return Kind.INPUT_OBJECT_TYPE_EXTENSION;\n } // istanbul ignore next (Not reachable. All possible types have been considered)\n\n\n false || invariant(0, 'Unexpected type: ' + inspect(type));\n}\n\nfunction extensionKindToTypeName(kind) {\n switch (kind) {\n case Kind.SCALAR_TYPE_EXTENSION:\n return 'scalar';\n\n case Kind.OBJECT_TYPE_EXTENSION:\n return 'object';\n\n case Kind.INTERFACE_TYPE_EXTENSION:\n return 'interface';\n\n case Kind.UNION_TYPE_EXTENSION:\n return 'union';\n\n case Kind.ENUM_TYPE_EXTENSION:\n return 'enum';\n\n case Kind.INPUT_OBJECT_TYPE_EXTENSION:\n return 'input object';\n } // istanbul ignore next (Not reachable. All possible types have been considered)\n\n\n false || invariant(0, 'Unexpected kind: ' + inspect(kind));\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n\n/**\n * Unique input field names\n *\n * A GraphQL input object value is only valid if all supplied fields are\n * uniquely named.\n */\nexport function UniqueInputFieldNamesRule(context) {\n var knownNameStack = [];\n var knownNames = Object.create(null);\n return {\n ObjectValue: {\n enter: function enter() {\n knownNameStack.push(knownNames);\n knownNames = Object.create(null);\n },\n leave: function leave() {\n knownNames = knownNameStack.pop();\n }\n },\n ObjectField: function ObjectField(node) {\n var fieldName = node.name.value;\n\n if (knownNames[fieldName]) {\n context.reportError(new GraphQLError(\"There can be only one input field named \\\"\".concat(fieldName, \"\\\".\"), [knownNames[fieldName], node.name]));\n } else {\n knownNames[fieldName] = node.name;\n }\n }\n };\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n\n/**\n * Lone Schema definition\n *\n * A GraphQL document is only valid if it contains only one schema definition.\n */\nexport function LoneSchemaDefinitionRule(context) {\n var _ref, _ref2, _oldSchema$astNode;\n\n var oldSchema = context.getSchema();\n var alreadyDefined = (_ref = (_ref2 = (_oldSchema$astNode = oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.astNode) !== null && _oldSchema$astNode !== void 0 ? _oldSchema$astNode : oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.getQueryType()) !== null && _ref2 !== void 0 ? _ref2 : oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.getMutationType()) !== null && _ref !== void 0 ? _ref : oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.getSubscriptionType();\n var schemaDefinitionsCount = 0;\n return {\n SchemaDefinition: function SchemaDefinition(node) {\n if (alreadyDefined) {\n context.reportError(new GraphQLError('Cannot define a new schema within a schema extension.', node));\n return;\n }\n\n if (schemaDefinitionsCount > 0) {\n context.reportError(new GraphQLError('Must provide only one schema definition.', node));\n }\n\n ++schemaDefinitionsCount;\n }\n };\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n\n/**\n * Unique operation types\n *\n * A GraphQL document is only valid if it has only one type per operation.\n */\nexport function UniqueOperationTypesRule(context) {\n var schema = context.getSchema();\n var definedOperationTypes = Object.create(null);\n var existingOperationTypes = schema ? {\n query: schema.getQueryType(),\n mutation: schema.getMutationType(),\n subscription: schema.getSubscriptionType()\n } : {};\n return {\n SchemaDefinition: checkOperationTypes,\n SchemaExtension: checkOperationTypes\n };\n\n function checkOperationTypes(node) {\n var _node$operationTypes;\n\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n var operationTypesNodes = (_node$operationTypes = node.operationTypes) !== null && _node$operationTypes !== void 0 ? _node$operationTypes : [];\n\n for (var _i2 = 0; _i2 < operationTypesNodes.length; _i2++) {\n var operationType = operationTypesNodes[_i2];\n var operation = operationType.operation;\n var alreadyDefinedOperationType = definedOperationTypes[operation];\n\n if (existingOperationTypes[operation]) {\n context.reportError(new GraphQLError(\"Type for \".concat(operation, \" already defined in the schema. It cannot be redefined.\"), operationType));\n } else if (alreadyDefinedOperationType) {\n context.reportError(new GraphQLError(\"There can be only one \".concat(operation, \" type in schema.\"), [alreadyDefinedOperationType, operationType]));\n } else {\n definedOperationTypes[operation] = operationType;\n }\n }\n\n return false;\n }\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n\n/**\n * Unique type names\n *\n * A GraphQL document is only valid if all defined types have unique names.\n */\nexport function UniqueTypeNamesRule(context) {\n var knownTypeNames = Object.create(null);\n var schema = context.getSchema();\n return {\n ScalarTypeDefinition: checkTypeName,\n ObjectTypeDefinition: checkTypeName,\n InterfaceTypeDefinition: checkTypeName,\n UnionTypeDefinition: checkTypeName,\n EnumTypeDefinition: checkTypeName,\n InputObjectTypeDefinition: checkTypeName\n };\n\n function checkTypeName(node) {\n var typeName = node.name.value;\n\n if (schema !== null && schema !== void 0 && schema.getType(typeName)) {\n context.reportError(new GraphQLError(\"Type \\\"\".concat(typeName, \"\\\" already exists in the schema. It cannot also be defined in this type definition.\"), node.name));\n return;\n }\n\n if (knownTypeNames[typeName]) {\n context.reportError(new GraphQLError(\"There can be only one type named \\\"\".concat(typeName, \"\\\".\"), [knownTypeNames[typeName], node.name]));\n } else {\n knownTypeNames[typeName] = node.name;\n }\n\n return false;\n }\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { isEnumType } from \"../../type/definition.mjs\";\n\n/**\n * Unique enum value names\n *\n * A GraphQL enum type is only valid if all its values are uniquely named.\n */\nexport function UniqueEnumValueNamesRule(context) {\n var schema = context.getSchema();\n var existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);\n var knownValueNames = Object.create(null);\n return {\n EnumTypeDefinition: checkValueUniqueness,\n EnumTypeExtension: checkValueUniqueness\n };\n\n function checkValueUniqueness(node) {\n var _node$values;\n\n var typeName = node.name.value;\n\n if (!knownValueNames[typeName]) {\n knownValueNames[typeName] = Object.create(null);\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n var valueNodes = (_node$values = node.values) !== null && _node$values !== void 0 ? _node$values : [];\n var valueNames = knownValueNames[typeName];\n\n for (var _i2 = 0; _i2 < valueNodes.length; _i2++) {\n var valueDef = valueNodes[_i2];\n var valueName = valueDef.name.value;\n var existingType = existingTypeMap[typeName];\n\n if (isEnumType(existingType) && existingType.getValue(valueName)) {\n context.reportError(new GraphQLError(\"Enum value \\\"\".concat(typeName, \".\").concat(valueName, \"\\\" already exists in the schema. It cannot also be defined in this type extension.\"), valueDef.name));\n } else if (valueNames[valueName]) {\n context.reportError(new GraphQLError(\"Enum value \\\"\".concat(typeName, \".\").concat(valueName, \"\\\" can only be defined once.\"), [valueNames[valueName], valueDef.name]));\n } else {\n valueNames[valueName] = valueDef.name;\n }\n }\n\n return false;\n }\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\nimport { isObjectType, isInterfaceType, isInputObjectType } from \"../../type/definition.mjs\";\n\n/**\n * Unique field definition names\n *\n * A GraphQL complex type is only valid if all its fields are uniquely named.\n */\nexport function UniqueFieldDefinitionNamesRule(context) {\n var schema = context.getSchema();\n var existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);\n var knownFieldNames = Object.create(null);\n return {\n InputObjectTypeDefinition: checkFieldUniqueness,\n InputObjectTypeExtension: checkFieldUniqueness,\n InterfaceTypeDefinition: checkFieldUniqueness,\n InterfaceTypeExtension: checkFieldUniqueness,\n ObjectTypeDefinition: checkFieldUniqueness,\n ObjectTypeExtension: checkFieldUniqueness\n };\n\n function checkFieldUniqueness(node) {\n var _node$fields;\n\n var typeName = node.name.value;\n\n if (!knownFieldNames[typeName]) {\n knownFieldNames[typeName] = Object.create(null);\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n var fieldNodes = (_node$fields = node.fields) !== null && _node$fields !== void 0 ? _node$fields : [];\n var fieldNames = knownFieldNames[typeName];\n\n for (var _i2 = 0; _i2 < fieldNodes.length; _i2++) {\n var fieldDef = fieldNodes[_i2];\n var fieldName = fieldDef.name.value;\n\n if (hasField(existingTypeMap[typeName], fieldName)) {\n context.reportError(new GraphQLError(\"Field \\\"\".concat(typeName, \".\").concat(fieldName, \"\\\" already exists in the schema. It cannot also be defined in this type extension.\"), fieldDef.name));\n } else if (fieldNames[fieldName]) {\n context.reportError(new GraphQLError(\"Field \\\"\".concat(typeName, \".\").concat(fieldName, \"\\\" can only be defined once.\"), [fieldNames[fieldName], fieldDef.name]));\n } else {\n fieldNames[fieldName] = fieldDef.name;\n }\n }\n\n return false;\n }\n}\n\nfunction hasField(type, fieldName) {\n if (isObjectType(type) || isInterfaceType(type) || isInputObjectType(type)) {\n return type.getFields()[fieldName] != null;\n }\n\n return false;\n}\n","import { GraphQLError } from \"../../error/GraphQLError.mjs\";\n\n/**\n * Unique directive names\n *\n * A GraphQL document is only valid if all defined directives have unique names.\n */\nexport function UniqueDirectiveNamesRule(context) {\n var knownDirectiveNames = Object.create(null);\n var schema = context.getSchema();\n return {\n DirectiveDefinition: function DirectiveDefinition(node) {\n var directiveName = node.name.value;\n\n if (schema !== null && schema !== void 0 && schema.getDirective(directiveName)) {\n context.reportError(new GraphQLError(\"Directive \\\"@\".concat(directiveName, \"\\\" already exists in the schema. It cannot be redefined.\"), node.name));\n return;\n }\n\n if (knownDirectiveNames[directiveName]) {\n context.reportError(new GraphQLError(\"There can be only one directive named \\\"@\".concat(directiveName, \"\\\".\"), [knownDirectiveNames[directiveName], node.name]));\n } else {\n knownDirectiveNames[directiveName] = node.name;\n }\n\n return false;\n }\n };\n}\n","// Spec Section: \"Executable Definitions\"\nimport { ExecutableDefinitionsRule } from \"./rules/ExecutableDefinitionsRule.mjs\"; // Spec Section: \"Operation Name Uniqueness\"\n\nimport { UniqueOperationNamesRule } from \"./rules/UniqueOperationNamesRule.mjs\"; // Spec Section: \"Lone Anonymous Operation\"\n\nimport { LoneAnonymousOperationRule } from \"./rules/LoneAnonymousOperationRule.mjs\"; // Spec Section: \"Subscriptions with Single Root Field\"\n\nimport { SingleFieldSubscriptionsRule } from \"./rules/SingleFieldSubscriptionsRule.mjs\"; // Spec Section: \"Fragment Spread Type Existence\"\n\nimport { KnownTypeNamesRule } from \"./rules/KnownTypeNamesRule.mjs\"; // Spec Section: \"Fragments on Composite Types\"\n\nimport { FragmentsOnCompositeTypesRule } from \"./rules/FragmentsOnCompositeTypesRule.mjs\"; // Spec Section: \"Variables are Input Types\"\n\nimport { VariablesAreInputTypesRule } from \"./rules/VariablesAreInputTypesRule.mjs\"; // Spec Section: \"Leaf Field Selections\"\n\nimport { ScalarLeafsRule } from \"./rules/ScalarLeafsRule.mjs\"; // Spec Section: \"Field Selections on Objects, Interfaces, and Unions Types\"\n\nimport { FieldsOnCorrectTypeRule } from \"./rules/FieldsOnCorrectTypeRule.mjs\"; // Spec Section: \"Fragment Name Uniqueness\"\n\nimport { UniqueFragmentNamesRule } from \"./rules/UniqueFragmentNamesRule.mjs\"; // Spec Section: \"Fragment spread target defined\"\n\nimport { KnownFragmentNamesRule } from \"./rules/KnownFragmentNamesRule.mjs\"; // Spec Section: \"Fragments must be used\"\n\nimport { NoUnusedFragmentsRule } from \"./rules/NoUnusedFragmentsRule.mjs\"; // Spec Section: \"Fragment spread is possible\"\n\nimport { PossibleFragmentSpreadsRule } from \"./rules/PossibleFragmentSpreadsRule.mjs\"; // Spec Section: \"Fragments must not form cycles\"\n\nimport { NoFragmentCyclesRule } from \"./rules/NoFragmentCyclesRule.mjs\"; // Spec Section: \"Variable Uniqueness\"\n\nimport { UniqueVariableNamesRule } from \"./rules/UniqueVariableNamesRule.mjs\"; // Spec Section: \"All Variable Used Defined\"\n\nimport { NoUndefinedVariablesRule } from \"./rules/NoUndefinedVariablesRule.mjs\"; // Spec Section: \"All Variables Used\"\n\nimport { NoUnusedVariablesRule } from \"./rules/NoUnusedVariablesRule.mjs\"; // Spec Section: \"Directives Are Defined\"\n\nimport { KnownDirectivesRule } from \"./rules/KnownDirectivesRule.mjs\"; // Spec Section: \"Directives Are Unique Per Location\"\n\nimport { UniqueDirectivesPerLocationRule } from \"./rules/UniqueDirectivesPerLocationRule.mjs\"; // Spec Section: \"Argument Names\"\n\nimport { KnownArgumentNamesRule, KnownArgumentNamesOnDirectivesRule } from \"./rules/KnownArgumentNamesRule.mjs\"; // Spec Section: \"Argument Uniqueness\"\n\nimport { UniqueArgumentNamesRule } from \"./rules/UniqueArgumentNamesRule.mjs\"; // Spec Section: \"Value Type Correctness\"\n\nimport { ValuesOfCorrectTypeRule } from \"./rules/ValuesOfCorrectTypeRule.mjs\"; // Spec Section: \"Argument Optionality\"\n\nimport { ProvidedRequiredArgumentsRule, ProvidedRequiredArgumentsOnDirectivesRule } from \"./rules/ProvidedRequiredArgumentsRule.mjs\"; // Spec Section: \"All Variable Usages Are Allowed\"\n\nimport { VariablesInAllowedPositionRule } from \"./rules/VariablesInAllowedPositionRule.mjs\"; // Spec Section: \"Field Selection Merging\"\n\nimport { OverlappingFieldsCanBeMergedRule } from \"./rules/OverlappingFieldsCanBeMergedRule.mjs\"; // Spec Section: \"Input Object Field Uniqueness\"\n\nimport { UniqueInputFieldNamesRule } from \"./rules/UniqueInputFieldNamesRule.mjs\"; // SDL-specific validation rules\n\nimport { LoneSchemaDefinitionRule } from \"./rules/LoneSchemaDefinitionRule.mjs\";\nimport { UniqueOperationTypesRule } from \"./rules/UniqueOperationTypesRule.mjs\";\nimport { UniqueTypeNamesRule } from \"./rules/UniqueTypeNamesRule.mjs\";\nimport { UniqueEnumValueNamesRule } from \"./rules/UniqueEnumValueNamesRule.mjs\";\nimport { UniqueFieldDefinitionNamesRule } from \"./rules/UniqueFieldDefinitionNamesRule.mjs\";\nimport { UniqueDirectiveNamesRule } from \"./rules/UniqueDirectiveNamesRule.mjs\";\nimport { PossibleTypeExtensionsRule } from \"./rules/PossibleTypeExtensionsRule.mjs\";\n/**\n * This set includes all validation rules defined by the GraphQL spec.\n *\n * The order of the rules in this list has been adjusted to lead to the\n * most clear output when encountering multiple validation errors.\n */\n\nexport var specifiedRules = Object.freeze([ExecutableDefinitionsRule, UniqueOperationNamesRule, LoneAnonymousOperationRule, SingleFieldSubscriptionsRule, KnownTypeNamesRule, FragmentsOnCompositeTypesRule, VariablesAreInputTypesRule, ScalarLeafsRule, FieldsOnCorrectTypeRule, UniqueFragmentNamesRule, KnownFragmentNamesRule, NoUnusedFragmentsRule, PossibleFragmentSpreadsRule, NoFragmentCyclesRule, UniqueVariableNamesRule, NoUndefinedVariablesRule, NoUnusedVariablesRule, KnownDirectivesRule, UniqueDirectivesPerLocationRule, KnownArgumentNamesRule, UniqueArgumentNamesRule, ValuesOfCorrectTypeRule, ProvidedRequiredArgumentsRule, VariablesInAllowedPositionRule, OverlappingFieldsCanBeMergedRule, UniqueInputFieldNamesRule]);\n/**\n * @internal\n */\n\nexport var specifiedSDLRules = Object.freeze([LoneSchemaDefinitionRule, UniqueOperationTypesRule, UniqueTypeNamesRule, UniqueEnumValueNamesRule, UniqueFieldDefinitionNamesRule, UniqueDirectiveNamesRule, KnownTypeNamesRule, KnownDirectivesRule, UniqueDirectivesPerLocationRule, PossibleTypeExtensionsRule, KnownArgumentNamesOnDirectivesRule, UniqueArgumentNamesRule, UniqueInputFieldNamesRule, ProvidedRequiredArgumentsOnDirectivesRule]);\n","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport { Kind } from \"../language/kinds.mjs\";\nimport { visit } from \"../language/visitor.mjs\";\nimport { TypeInfo, visitWithTypeInfo } from \"../utilities/TypeInfo.mjs\";\n\n/**\n * An instance of this class is passed as the \"this\" context to all validators,\n * allowing access to commonly useful contextual information from within a\n * validation rule.\n */\nexport var ASTValidationContext = /*#__PURE__*/function () {\n function ASTValidationContext(ast, onError) {\n this._ast = ast;\n this._fragments = undefined;\n this._fragmentSpreads = new Map();\n this._recursivelyReferencedFragments = new Map();\n this._onError = onError;\n }\n\n var _proto = ASTValidationContext.prototype;\n\n _proto.reportError = function reportError(error) {\n this._onError(error);\n };\n\n _proto.getDocument = function getDocument() {\n return this._ast;\n };\n\n _proto.getFragment = function getFragment(name) {\n var fragments = this._fragments;\n\n if (!fragments) {\n this._fragments = fragments = this.getDocument().definitions.reduce(function (frags, statement) {\n if (statement.kind === Kind.FRAGMENT_DEFINITION) {\n frags[statement.name.value] = statement;\n }\n\n return frags;\n }, Object.create(null));\n }\n\n return fragments[name];\n };\n\n _proto.getFragmentSpreads = function getFragmentSpreads(node) {\n var spreads = this._fragmentSpreads.get(node);\n\n if (!spreads) {\n spreads = [];\n var setsToVisit = [node];\n\n while (setsToVisit.length !== 0) {\n var set = setsToVisit.pop();\n\n for (var _i2 = 0, _set$selections2 = set.selections; _i2 < _set$selections2.length; _i2++) {\n var selection = _set$selections2[_i2];\n\n if (selection.kind === Kind.FRAGMENT_SPREAD) {\n spreads.push(selection);\n } else if (selection.selectionSet) {\n setsToVisit.push(selection.selectionSet);\n }\n }\n }\n\n this._fragmentSpreads.set(node, spreads);\n }\n\n return spreads;\n };\n\n _proto.getRecursivelyReferencedFragments = function getRecursivelyReferencedFragments(operation) {\n var fragments = this._recursivelyReferencedFragments.get(operation);\n\n if (!fragments) {\n fragments = [];\n var collectedNames = Object.create(null);\n var nodesToVisit = [operation.selectionSet];\n\n while (nodesToVisit.length !== 0) {\n var node = nodesToVisit.pop();\n\n for (var _i4 = 0, _this$getFragmentSpre2 = this.getFragmentSpreads(node); _i4 < _this$getFragmentSpre2.length; _i4++) {\n var spread = _this$getFragmentSpre2[_i4];\n var fragName = spread.name.value;\n\n if (collectedNames[fragName] !== true) {\n collectedNames[fragName] = true;\n var fragment = this.getFragment(fragName);\n\n if (fragment) {\n fragments.push(fragment);\n nodesToVisit.push(fragment.selectionSet);\n }\n }\n }\n }\n\n this._recursivelyReferencedFragments.set(operation, fragments);\n }\n\n return fragments;\n };\n\n return ASTValidationContext;\n}();\nexport var SDLValidationContext = /*#__PURE__*/function (_ASTValidationContext) {\n _inheritsLoose(SDLValidationContext, _ASTValidationContext);\n\n function SDLValidationContext(ast, schema, onError) {\n var _this;\n\n _this = _ASTValidationContext.call(this, ast, onError) || this;\n _this._schema = schema;\n return _this;\n }\n\n var _proto2 = SDLValidationContext.prototype;\n\n _proto2.getSchema = function getSchema() {\n return this._schema;\n };\n\n return SDLValidationContext;\n}(ASTValidationContext);\nexport var ValidationContext = /*#__PURE__*/function (_ASTValidationContext2) {\n _inheritsLoose(ValidationContext, _ASTValidationContext2);\n\n function ValidationContext(schema, ast, typeInfo, onError) {\n var _this2;\n\n _this2 = _ASTValidationContext2.call(this, ast, onError) || this;\n _this2._schema = schema;\n _this2._typeInfo = typeInfo;\n _this2._variableUsages = new Map();\n _this2._recursiveVariableUsages = new Map();\n return _this2;\n }\n\n var _proto3 = ValidationContext.prototype;\n\n _proto3.getSchema = function getSchema() {\n return this._schema;\n };\n\n _proto3.getVariableUsages = function getVariableUsages(node) {\n var usages = this._variableUsages.get(node);\n\n if (!usages) {\n var newUsages = [];\n var typeInfo = new TypeInfo(this._schema);\n visit(node, visitWithTypeInfo(typeInfo, {\n VariableDefinition: function VariableDefinition() {\n return false;\n },\n Variable: function Variable(variable) {\n newUsages.push({\n node: variable,\n type: typeInfo.getInputType(),\n defaultValue: typeInfo.getDefaultValue()\n });\n }\n }));\n usages = newUsages;\n\n this._variableUsages.set(node, usages);\n }\n\n return usages;\n };\n\n _proto3.getRecursiveVariableUsages = function getRecursiveVariableUsages(operation) {\n var usages = this._recursiveVariableUsages.get(operation);\n\n if (!usages) {\n usages = this.getVariableUsages(operation);\n\n for (var _i6 = 0, _this$getRecursivelyR2 = this.getRecursivelyReferencedFragments(operation); _i6 < _this$getRecursivelyR2.length; _i6++) {\n var frag = _this$getRecursivelyR2[_i6];\n usages = usages.concat(this.getVariableUsages(frag));\n }\n\n this._recursiveVariableUsages.set(operation, usages);\n }\n\n return usages;\n };\n\n _proto3.getType = function getType() {\n return this._typeInfo.getType();\n };\n\n _proto3.getParentType = function getParentType() {\n return this._typeInfo.getParentType();\n };\n\n _proto3.getInputType = function getInputType() {\n return this._typeInfo.getInputType();\n };\n\n _proto3.getParentInputType = function getParentInputType() {\n return this._typeInfo.getParentInputType();\n };\n\n _proto3.getFieldDef = function getFieldDef() {\n return this._typeInfo.getFieldDef();\n };\n\n _proto3.getDirective = function getDirective() {\n return this._typeInfo.getDirective();\n };\n\n _proto3.getArgument = function getArgument() {\n return this._typeInfo.getArgument();\n };\n\n _proto3.getEnumValue = function getEnumValue() {\n return this._typeInfo.getEnumValue();\n };\n\n return ValidationContext;\n}(ASTValidationContext);\n","import devAssert from \"../jsutils/devAssert.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { visit, visitInParallel } from \"../language/visitor.mjs\";\nimport { assertValidSchema } from \"../type/validate.mjs\";\nimport { TypeInfo, visitWithTypeInfo } from \"../utilities/TypeInfo.mjs\";\nimport { specifiedRules, specifiedSDLRules } from \"./specifiedRules.mjs\";\nimport { SDLValidationContext, ValidationContext } from \"./ValidationContext.mjs\";\n/**\n * Implements the \"Validation\" section of the spec.\n *\n * Validation runs synchronously, returning an array of encountered errors, or\n * an empty array if no errors were encountered and the document is valid.\n *\n * A list of specific validation rules may be provided. If not provided, the\n * default list of rules defined by the GraphQL specification will be used.\n *\n * Each validation rules is a function which returns a visitor\n * (see the language/visitor API). Visitor methods are expected to return\n * GraphQLErrors, or Arrays of GraphQLErrors when invalid.\n *\n * Optionally a custom TypeInfo instance may be provided. If not provided, one\n * will be created from the provided schema.\n */\n\nexport function validate(schema, documentAST) {\n var rules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : specifiedRules;\n var typeInfo = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new TypeInfo(schema);\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n maxErrors: undefined\n };\n documentAST || devAssert(0, 'Must provide document.'); // If the schema used for validation is invalid, throw an error.\n\n assertValidSchema(schema);\n var abortObj = Object.freeze({});\n var errors = [];\n var context = new ValidationContext(schema, documentAST, typeInfo, function (error) {\n if (options.maxErrors != null && errors.length >= options.maxErrors) {\n errors.push(new GraphQLError('Too many validation errors, error limit reached. Validation aborted.'));\n throw abortObj;\n }\n\n errors.push(error);\n }); // This uses a specialized visitor which runs multiple visitors in parallel,\n // while maintaining the visitor skip and break API.\n\n var visitor = visitInParallel(rules.map(function (rule) {\n return rule(context);\n })); // Visit the whole document with each instance of all provided rules.\n\n try {\n visit(documentAST, visitWithTypeInfo(typeInfo, visitor));\n } catch (e) {\n if (e !== abortObj) {\n throw e;\n }\n }\n\n return errors;\n}\n/**\n * @internal\n */\n\nexport function validateSDL(documentAST, schemaToExtend) {\n var rules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : specifiedSDLRules;\n var errors = [];\n var context = new SDLValidationContext(documentAST, schemaToExtend, function (error) {\n errors.push(error);\n });\n var visitors = rules.map(function (rule) {\n return rule(context);\n });\n visit(documentAST, visitInParallel(visitors));\n return errors;\n}\n/**\n * Utility function which asserts a SDL document is valid by throwing an error\n * if it is invalid.\n *\n * @internal\n */\n\nexport function assertValidSDL(documentAST) {\n var errors = validateSDL(documentAST);\n\n if (errors.length !== 0) {\n throw new Error(errors.map(function (error) {\n return error.message;\n }).join('\\n\\n'));\n }\n}\n/**\n * Utility function which asserts a SDL document is valid by throwing an error\n * if it is invalid.\n *\n * @internal\n */\n\nexport function assertValidSDLExtension(documentAST, schema) {\n var errors = validateSDL(documentAST, schema);\n\n if (errors.length !== 0) {\n throw new Error(errors.map(function (error) {\n return error.message;\n }).join('\\n\\n'));\n }\n}\n","/**\n * Given a Path and a key, return a new Path containing the new key.\n */\nexport function addPath(prev, key, typename) {\n return {\n prev: prev,\n key: key,\n typename: typename\n };\n}\n/**\n * Given a Path, return an Array of the path keys.\n */\n\nexport function pathToArray(path) {\n var flattened = [];\n var curr = path;\n\n while (curr) {\n flattened.push(curr.key);\n curr = curr.prev;\n }\n\n return flattened.reverse();\n}\n","import { GraphQLError } from \"../error/GraphQLError.mjs\";\n\n/**\n * Extracts the root type of the operation from the schema.\n */\nexport function getOperationRootType(schema, operation) {\n if (operation.operation === 'query') {\n var queryType = schema.getQueryType();\n\n if (!queryType) {\n throw new GraphQLError('Schema does not define the required query root type.', operation);\n }\n\n return queryType;\n }\n\n if (operation.operation === 'mutation') {\n var mutationType = schema.getMutationType();\n\n if (!mutationType) {\n throw new GraphQLError('Schema is not configured for mutations.', operation);\n }\n\n return mutationType;\n }\n\n if (operation.operation === 'subscription') {\n var subscriptionType = schema.getSubscriptionType();\n\n if (!subscriptionType) {\n throw new GraphQLError('Schema is not configured for subscriptions.', operation);\n }\n\n return subscriptionType;\n }\n\n throw new GraphQLError('Can only have query, mutation and subscription operations.', operation);\n}\n","/**\n * Build a string describing the path.\n */\nexport default function printPathArray(path) {\n return path.map(function (key) {\n return typeof key === 'number' ? '[' + key.toString() + ']' : '.' + key;\n }).join('');\n}\n","import objectValues from \"../polyfills/objectValues.mjs\";\nimport keyMap from \"../jsutils/keyMap.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { isLeafType, isInputObjectType, isListType, isNonNullType } from \"../type/definition.mjs\";\n/**\n * Produces a JavaScript value given a GraphQL Value AST.\n *\n * A GraphQL type must be provided, which will be used to interpret different\n * GraphQL Value literals.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n *\n * | GraphQL Value | JSON Value |\n * | -------------------- | ------------- |\n * | Input Object | Object |\n * | List | Array |\n * | Boolean | Boolean |\n * | String | String |\n * | Int / Float | Number |\n * | Enum Value | Mixed |\n * | NullValue | null |\n *\n */\n\nexport function valueFromAST(valueNode, type, variables) {\n if (!valueNode) {\n // When there is no node, then there is also no value.\n // Importantly, this is different from returning the value null.\n return;\n }\n\n if (valueNode.kind === Kind.VARIABLE) {\n var variableName = valueNode.name.value;\n\n if (variables == null || variables[variableName] === undefined) {\n // No valid return value.\n return;\n }\n\n var variableValue = variables[variableName];\n\n if (variableValue === null && isNonNullType(type)) {\n return; // Invalid: intentionally return no value.\n } // Note: This does no further checking that this variable is correct.\n // This assumes that this query has been validated and the variable\n // usage here is of the correct type.\n\n\n return variableValue;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n return; // Invalid: intentionally return no value.\n }\n\n return valueFromAST(valueNode, type.ofType, variables);\n }\n\n if (valueNode.kind === Kind.NULL) {\n // This is explicitly returning the value null.\n return null;\n }\n\n if (isListType(type)) {\n var itemType = type.ofType;\n\n if (valueNode.kind === Kind.LIST) {\n var coercedValues = [];\n\n for (var _i2 = 0, _valueNode$values2 = valueNode.values; _i2 < _valueNode$values2.length; _i2++) {\n var itemNode = _valueNode$values2[_i2];\n\n if (isMissingVariable(itemNode, variables)) {\n // If an array contains a missing variable, it is either coerced to\n // null or if the item type is non-null, it considered invalid.\n if (isNonNullType(itemType)) {\n return; // Invalid: intentionally return no value.\n }\n\n coercedValues.push(null);\n } else {\n var itemValue = valueFromAST(itemNode, itemType, variables);\n\n if (itemValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n\n coercedValues.push(itemValue);\n }\n }\n\n return coercedValues;\n }\n\n var coercedValue = valueFromAST(valueNode, itemType, variables);\n\n if (coercedValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n\n return [coercedValue];\n }\n\n if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n return; // Invalid: intentionally return no value.\n }\n\n var coercedObj = Object.create(null);\n var fieldNodes = keyMap(valueNode.fields, function (field) {\n return field.name.value;\n });\n\n for (var _i4 = 0, _objectValues2 = objectValues(type.getFields()); _i4 < _objectValues2.length; _i4++) {\n var field = _objectValues2[_i4];\n var fieldNode = fieldNodes[field.name];\n\n if (!fieldNode || isMissingVariable(fieldNode.value, variables)) {\n if (field.defaultValue !== undefined) {\n coercedObj[field.name] = field.defaultValue;\n } else if (isNonNullType(field.type)) {\n return; // Invalid: intentionally return no value.\n }\n\n continue;\n }\n\n var fieldValue = valueFromAST(fieldNode.value, field.type, variables);\n\n if (fieldValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n\n coercedObj[field.name] = fieldValue;\n }\n\n return coercedObj;\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isLeafType(type)) {\n // Scalars and Enums fulfill parsing a literal value via parseLiteral().\n // Invalid values represent a failure to parse correctly, in which case\n // no value is returned.\n var result;\n\n try {\n result = type.parseLiteral(valueNode, variables);\n } catch (_error) {\n return; // Invalid: intentionally return no value.\n }\n\n if (result === undefined) {\n return; // Invalid: intentionally return no value.\n }\n\n return result;\n } // istanbul ignore next (Not reachable. All possible input types have been considered)\n\n\n false || invariant(0, 'Unexpected input type: ' + inspect(type));\n} // Returns true if the provided valueNode is a variable which is not defined\n// in the set of variables.\n\nfunction isMissingVariable(valueNode, variables) {\n return valueNode.kind === Kind.VARIABLE && (variables == null || variables[valueNode.name.value] === undefined);\n}\n","import objectValues from \"../polyfills/objectValues.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport didYouMean from \"../jsutils/didYouMean.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport safeArrayFrom from \"../jsutils/safeArrayFrom.mjs\";\nimport suggestionList from \"../jsutils/suggestionList.mjs\";\nimport printPathArray from \"../jsutils/printPathArray.mjs\";\nimport { addPath, pathToArray } from \"../jsutils/Path.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { isLeafType, isInputObjectType, isListType, isNonNullType } from \"../type/definition.mjs\";\n\n/**\n * Coerces a JavaScript value given a GraphQL Input Type.\n */\nexport function coerceInputValue(inputValue, type) {\n var onError = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultOnError;\n return coerceInputValueImpl(inputValue, type, onError);\n}\n\nfunction defaultOnError(path, invalidValue, error) {\n var errorPrefix = 'Invalid value ' + inspect(invalidValue);\n\n if (path.length > 0) {\n errorPrefix += \" at \\\"value\".concat(printPathArray(path), \"\\\"\");\n }\n\n error.message = errorPrefix + ': ' + error.message;\n throw error;\n}\n\nfunction coerceInputValueImpl(inputValue, type, onError, path) {\n if (isNonNullType(type)) {\n if (inputValue != null) {\n return coerceInputValueImpl(inputValue, type.ofType, onError, path);\n }\n\n onError(pathToArray(path), inputValue, new GraphQLError(\"Expected non-nullable type \\\"\".concat(inspect(type), \"\\\" not to be null.\")));\n return;\n }\n\n if (inputValue == null) {\n // Explicitly return the value null.\n return null;\n }\n\n if (isListType(type)) {\n var itemType = type.ofType;\n var coercedList = safeArrayFrom(inputValue, function (itemValue, index) {\n var itemPath = addPath(path, index, undefined);\n return coerceInputValueImpl(itemValue, itemType, onError, itemPath);\n });\n\n if (coercedList != null) {\n return coercedList;\n } // Lists accept a non-list value as a list of one.\n\n\n return [coerceInputValueImpl(inputValue, itemType, onError, path)];\n }\n\n if (isInputObjectType(type)) {\n if (!isObjectLike(inputValue)) {\n onError(pathToArray(path), inputValue, new GraphQLError(\"Expected type \\\"\".concat(type.name, \"\\\" to be an object.\")));\n return;\n }\n\n var coercedValue = {};\n var fieldDefs = type.getFields();\n\n for (var _i2 = 0, _objectValues2 = objectValues(fieldDefs); _i2 < _objectValues2.length; _i2++) {\n var field = _objectValues2[_i2];\n var fieldValue = inputValue[field.name];\n\n if (fieldValue === undefined) {\n if (field.defaultValue !== undefined) {\n coercedValue[field.name] = field.defaultValue;\n } else if (isNonNullType(field.type)) {\n var typeStr = inspect(field.type);\n onError(pathToArray(path), inputValue, new GraphQLError(\"Field \\\"\".concat(field.name, \"\\\" of required type \\\"\").concat(typeStr, \"\\\" was not provided.\")));\n }\n\n continue;\n }\n\n coercedValue[field.name] = coerceInputValueImpl(fieldValue, field.type, onError, addPath(path, field.name, type.name));\n } // Ensure every provided field is defined.\n\n\n for (var _i4 = 0, _Object$keys2 = Object.keys(inputValue); _i4 < _Object$keys2.length; _i4++) {\n var fieldName = _Object$keys2[_i4];\n\n if (!fieldDefs[fieldName]) {\n var suggestions = suggestionList(fieldName, Object.keys(type.getFields()));\n onError(pathToArray(path), inputValue, new GraphQLError(\"Field \\\"\".concat(fieldName, \"\\\" is not defined by type \\\"\").concat(type.name, \"\\\".\") + didYouMean(suggestions)));\n }\n }\n\n return coercedValue;\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isLeafType(type)) {\n var parseResult; // Scalars and Enums determine if a input value is valid via parseValue(),\n // which can throw to indicate failure. If it throws, maintain a reference\n // to the original error.\n\n try {\n parseResult = type.parseValue(inputValue);\n } catch (error) {\n if (error instanceof GraphQLError) {\n onError(pathToArray(path), inputValue, error);\n } else {\n onError(pathToArray(path), inputValue, new GraphQLError(\"Expected type \\\"\".concat(type.name, \"\\\". \") + error.message, undefined, undefined, undefined, undefined, error));\n }\n\n return;\n }\n\n if (parseResult === undefined) {\n onError(pathToArray(path), inputValue, new GraphQLError(\"Expected type \\\"\".concat(type.name, \"\\\".\")));\n }\n\n return parseResult;\n } // istanbul ignore next (Not reachable. All possible input types have been considered)\n\n\n false || invariant(0, 'Unexpected input type: ' + inspect(type));\n}\n","import find from \"../polyfills/find.mjs\";\nimport keyMap from \"../jsutils/keyMap.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport printPathArray from \"../jsutils/printPathArray.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { print } from \"../language/printer.mjs\";\nimport { isInputType, isNonNullType } from \"../type/definition.mjs\";\nimport { typeFromAST } from \"../utilities/typeFromAST.mjs\";\nimport { valueFromAST } from \"../utilities/valueFromAST.mjs\";\nimport { coerceInputValue } from \"../utilities/coerceInputValue.mjs\";\n\n/**\n * Prepares an object map of variableValues of the correct type based on the\n * provided variable definitions and arbitrary input. If the input cannot be\n * parsed to match the variable definitions, a GraphQLError will be thrown.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n *\n * @internal\n */\nexport function getVariableValues(schema, varDefNodes, inputs, options) {\n var errors = [];\n var maxErrors = options === null || options === void 0 ? void 0 : options.maxErrors;\n\n try {\n var coerced = coerceVariableValues(schema, varDefNodes, inputs, function (error) {\n if (maxErrors != null && errors.length >= maxErrors) {\n throw new GraphQLError('Too many errors processing variables, error limit reached. Execution aborted.');\n }\n\n errors.push(error);\n });\n\n if (errors.length === 0) {\n return {\n coerced: coerced\n };\n }\n } catch (error) {\n errors.push(error);\n }\n\n return {\n errors: errors\n };\n}\n\nfunction coerceVariableValues(schema, varDefNodes, inputs, onError) {\n var coercedValues = {};\n\n var _loop = function _loop(_i2) {\n var varDefNode = varDefNodes[_i2];\n var varName = varDefNode.variable.name.value;\n var varType = typeFromAST(schema, varDefNode.type);\n\n if (!isInputType(varType)) {\n // Must use input types for variables. This should be caught during\n // validation, however is checked again here for safety.\n var varTypeStr = print(varDefNode.type);\n onError(new GraphQLError(\"Variable \\\"$\".concat(varName, \"\\\" expected value of type \\\"\").concat(varTypeStr, \"\\\" which cannot be used as an input type.\"), varDefNode.type));\n return \"continue\";\n }\n\n if (!hasOwnProperty(inputs, varName)) {\n if (varDefNode.defaultValue) {\n coercedValues[varName] = valueFromAST(varDefNode.defaultValue, varType);\n } else if (isNonNullType(varType)) {\n var _varTypeStr = inspect(varType);\n\n onError(new GraphQLError(\"Variable \\\"$\".concat(varName, \"\\\" of required type \\\"\").concat(_varTypeStr, \"\\\" was not provided.\"), varDefNode));\n }\n\n return \"continue\";\n }\n\n var value = inputs[varName];\n\n if (value === null && isNonNullType(varType)) {\n var _varTypeStr2 = inspect(varType);\n\n onError(new GraphQLError(\"Variable \\\"$\".concat(varName, \"\\\" of non-null type \\\"\").concat(_varTypeStr2, \"\\\" must not be null.\"), varDefNode));\n return \"continue\";\n }\n\n coercedValues[varName] = coerceInputValue(value, varType, function (path, invalidValue, error) {\n var prefix = \"Variable \\\"$\".concat(varName, \"\\\" got invalid value \") + inspect(invalidValue);\n\n if (path.length > 0) {\n prefix += \" at \\\"\".concat(varName).concat(printPathArray(path), \"\\\"\");\n }\n\n onError(new GraphQLError(prefix + '; ' + error.message, varDefNode, undefined, undefined, undefined, error.originalError));\n });\n };\n\n for (var _i2 = 0; _i2 < varDefNodes.length; _i2++) {\n var _ret = _loop(_i2);\n\n if (_ret === \"continue\") continue;\n }\n\n return coercedValues;\n}\n/**\n * Prepares an object map of argument values given a list of argument\n * definitions and list of argument AST nodes.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n *\n * @internal\n */\n\n\nexport function getArgumentValues(def, node, variableValues) {\n var _node$arguments;\n\n var coercedValues = {}; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n var argumentNodes = (_node$arguments = node.arguments) !== null && _node$arguments !== void 0 ? _node$arguments : [];\n var argNodeMap = keyMap(argumentNodes, function (arg) {\n return arg.name.value;\n });\n\n for (var _i4 = 0, _def$args2 = def.args; _i4 < _def$args2.length; _i4++) {\n var argDef = _def$args2[_i4];\n var name = argDef.name;\n var argType = argDef.type;\n var argumentNode = argNodeMap[name];\n\n if (!argumentNode) {\n if (argDef.defaultValue !== undefined) {\n coercedValues[name] = argDef.defaultValue;\n } else if (isNonNullType(argType)) {\n throw new GraphQLError(\"Argument \\\"\".concat(name, \"\\\" of required type \\\"\").concat(inspect(argType), \"\\\" \") + 'was not provided.', node);\n }\n\n continue;\n }\n\n var valueNode = argumentNode.value;\n var isNull = valueNode.kind === Kind.NULL;\n\n if (valueNode.kind === Kind.VARIABLE) {\n var variableName = valueNode.name.value;\n\n if (variableValues == null || !hasOwnProperty(variableValues, variableName)) {\n if (argDef.defaultValue !== undefined) {\n coercedValues[name] = argDef.defaultValue;\n } else if (isNonNullType(argType)) {\n throw new GraphQLError(\"Argument \\\"\".concat(name, \"\\\" of required type \\\"\").concat(inspect(argType), \"\\\" \") + \"was provided the variable \\\"$\".concat(variableName, \"\\\" which was not provided a runtime value.\"), valueNode);\n }\n\n continue;\n }\n\n isNull = variableValues[variableName] == null;\n }\n\n if (isNull && isNonNullType(argType)) {\n throw new GraphQLError(\"Argument \\\"\".concat(name, \"\\\" of non-null type \\\"\").concat(inspect(argType), \"\\\" \") + 'must not be null.', valueNode);\n }\n\n var coercedValue = valueFromAST(valueNode, argType, variableValues);\n\n if (coercedValue === undefined) {\n // Note: ValuesOfCorrectTypeRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n throw new GraphQLError(\"Argument \\\"\".concat(name, \"\\\" has invalid value \").concat(print(valueNode), \".\"), valueNode);\n }\n\n coercedValues[name] = coercedValue;\n }\n\n return coercedValues;\n}\n/**\n * Prepares an object map of argument values given a directive definition\n * and a AST node which may contain directives. Optionally also accepts a map\n * of variable values.\n *\n * If the directive does not exist on the node, returns undefined.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n */\n\nexport function getDirectiveValues(directiveDef, node, variableValues) {\n var directiveNode = node.directives && find(node.directives, function (directive) {\n return directive.name.value === directiveDef.name;\n });\n\n if (directiveNode) {\n return getArgumentValues(directiveDef, directiveNode, variableValues);\n }\n}\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n","import inspect from \"../jsutils/inspect.mjs\";\nimport memoize3 from \"../jsutils/memoize3.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport isPromise from \"../jsutils/isPromise.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport safeArrayFrom from \"../jsutils/safeArrayFrom.mjs\";\nimport promiseReduce from \"../jsutils/promiseReduce.mjs\";\nimport promiseForObject from \"../jsutils/promiseForObject.mjs\";\nimport { addPath, pathToArray } from \"../jsutils/Path.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { locatedError } from \"../error/locatedError.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { assertValidSchema } from \"../type/validate.mjs\";\nimport { SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef } from \"../type/introspection.mjs\";\nimport { GraphQLIncludeDirective, GraphQLSkipDirective } from \"../type/directives.mjs\";\nimport { isNamedType, isObjectType, isAbstractType, isLeafType, isListType, isNonNullType } from \"../type/definition.mjs\";\nimport { typeFromAST } from \"../utilities/typeFromAST.mjs\";\nimport { getOperationRootType } from \"../utilities/getOperationRootType.mjs\";\nimport { getVariableValues, getArgumentValues, getDirectiveValues } from \"./values.mjs\";\n/**\n * Terminology\n *\n * \"Definitions\" are the generic name for top-level statements in the document.\n * Examples of this include:\n * 1) Operations (such as a query)\n * 2) Fragments\n *\n * \"Operations\" are a generic name for requests in the document.\n * Examples of this include:\n * 1) query,\n * 2) mutation\n *\n * \"Selections\" are the definitions that can appear legally and at\n * single level of the query. These include:\n * 1) field references e.g \"a\"\n * 2) fragment \"spreads\" e.g. \"...c\"\n * 3) inline fragment \"spreads\" e.g. \"...on Type { a }\"\n */\n\n/**\n * Data that must be available at all points during query execution.\n *\n * Namely, schema of the type system that is currently executing,\n * and the fragments defined in the query document\n */\n\nexport function execute(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {\n /* eslint-enable no-redeclare */\n // Extract arguments from object args if provided.\n return arguments.length === 1 ? executeImpl(argsOrSchema) : executeImpl({\n schema: argsOrSchema,\n document: document,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n });\n}\n/**\n * Also implements the \"Evaluating requests\" section of the GraphQL specification.\n * However, it guarantees to complete synchronously (or throw an error) assuming\n * that all field resolvers are also synchronous.\n */\n\nexport function executeSync(args) {\n var result = executeImpl(args); // Assert that the execution was synchronous.\n\n if (isPromise(result)) {\n throw new Error('GraphQL execution failed to complete synchronously.');\n }\n\n return result;\n}\n\nfunction executeImpl(args) {\n var schema = args.schema,\n document = args.document,\n rootValue = args.rootValue,\n contextValue = args.contextValue,\n variableValues = args.variableValues,\n operationName = args.operationName,\n fieldResolver = args.fieldResolver,\n typeResolver = args.typeResolver; // If arguments are missing or incorrect, throw an error.\n\n assertValidExecutionArguments(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments,\n // a \"Response\" with only errors is returned.\n\n var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver); // Return early errors if execution context failed.\n\n if (Array.isArray(exeContext)) {\n return {\n errors: exeContext\n };\n } // Return a Promise that will eventually resolve to the data described by\n // The \"Response\" section of the GraphQL specification.\n //\n // If errors are encountered while executing a GraphQL field, only that\n // field and its descendants will be omitted, and sibling fields will still\n // be executed. An execution which encounters errors will still result in a\n // resolved Promise.\n\n\n var data = executeOperation(exeContext, exeContext.operation, rootValue);\n return buildResponse(exeContext, data);\n}\n/**\n * Given a completed execution context and data, build the { errors, data }\n * response defined by the \"Response\" section of the GraphQL specification.\n */\n\n\nfunction buildResponse(exeContext, data) {\n if (isPromise(data)) {\n return data.then(function (resolved) {\n return buildResponse(exeContext, resolved);\n });\n }\n\n return exeContext.errors.length === 0 ? {\n data: data\n } : {\n errors: exeContext.errors,\n data: data\n };\n}\n/**\n * Essential assertions before executing to provide developer feedback for\n * improper use of the GraphQL library.\n *\n * @internal\n */\n\n\nexport function assertValidExecutionArguments(schema, document, rawVariableValues) {\n document || devAssert(0, 'Must provide document.'); // If the schema used for execution is invalid, throw an error.\n\n assertValidSchema(schema); // Variables, if provided, must be an object.\n\n rawVariableValues == null || isObjectLike(rawVariableValues) || devAssert(0, 'Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.');\n}\n/**\n * Constructs a ExecutionContext object from the arguments passed to\n * execute, which we will pass throughout the other execution methods.\n *\n * Throws a GraphQLError if a valid execution context cannot be created.\n *\n * @internal\n */\n\nexport function buildExecutionContext(schema, document, rootValue, contextValue, rawVariableValues, operationName, fieldResolver, typeResolver) {\n var _definition$name, _operation$variableDe;\n\n var operation;\n var fragments = Object.create(null);\n\n for (var _i2 = 0, _document$definitions2 = document.definitions; _i2 < _document$definitions2.length; _i2++) {\n var definition = _document$definitions2[_i2];\n\n switch (definition.kind) {\n case Kind.OPERATION_DEFINITION:\n if (operationName == null) {\n if (operation !== undefined) {\n return [new GraphQLError('Must provide operation name if query contains multiple operations.')];\n }\n\n operation = definition;\n } else if (((_definition$name = definition.name) === null || _definition$name === void 0 ? void 0 : _definition$name.value) === operationName) {\n operation = definition;\n }\n\n break;\n\n case Kind.FRAGMENT_DEFINITION:\n fragments[definition.name.value] = definition;\n break;\n }\n }\n\n if (!operation) {\n if (operationName != null) {\n return [new GraphQLError(\"Unknown operation named \\\"\".concat(operationName, \"\\\".\"))];\n }\n\n return [new GraphQLError('Must provide an operation.')];\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n\n\n var variableDefinitions = (_operation$variableDe = operation.variableDefinitions) !== null && _operation$variableDe !== void 0 ? _operation$variableDe : [];\n var coercedVariableValues = getVariableValues(schema, variableDefinitions, rawVariableValues !== null && rawVariableValues !== void 0 ? rawVariableValues : {}, {\n maxErrors: 50\n });\n\n if (coercedVariableValues.errors) {\n return coercedVariableValues.errors;\n }\n\n return {\n schema: schema,\n fragments: fragments,\n rootValue: rootValue,\n contextValue: contextValue,\n operation: operation,\n variableValues: coercedVariableValues.coerced,\n fieldResolver: fieldResolver !== null && fieldResolver !== void 0 ? fieldResolver : defaultFieldResolver,\n typeResolver: typeResolver !== null && typeResolver !== void 0 ? typeResolver : defaultTypeResolver,\n errors: []\n };\n}\n/**\n * Implements the \"Evaluating operations\" section of the spec.\n */\n\nfunction executeOperation(exeContext, operation, rootValue) {\n var type = getOperationRootType(exeContext.schema, operation);\n var fields = collectFields(exeContext, type, operation.selectionSet, Object.create(null), Object.create(null));\n var path = undefined; // Errors from sub-fields of a NonNull type may propagate to the top level,\n // at which point we still log the error and null the parent field, which\n // in this case is the entire response.\n\n try {\n var result = operation.operation === 'mutation' ? executeFieldsSerially(exeContext, type, rootValue, path, fields) : executeFields(exeContext, type, rootValue, path, fields);\n\n if (isPromise(result)) {\n return result.then(undefined, function (error) {\n exeContext.errors.push(error);\n return Promise.resolve(null);\n });\n }\n\n return result;\n } catch (error) {\n exeContext.errors.push(error);\n return null;\n }\n}\n/**\n * Implements the \"Evaluating selection sets\" section of the spec\n * for \"write\" mode.\n */\n\n\nfunction executeFieldsSerially(exeContext, parentType, sourceValue, path, fields) {\n return promiseReduce(Object.keys(fields), function (results, responseName) {\n var fieldNodes = fields[responseName];\n var fieldPath = addPath(path, responseName, parentType.name);\n var result = resolveField(exeContext, parentType, sourceValue, fieldNodes, fieldPath);\n\n if (result === undefined) {\n return results;\n }\n\n if (isPromise(result)) {\n return result.then(function (resolvedResult) {\n results[responseName] = resolvedResult;\n return results;\n });\n }\n\n results[responseName] = result;\n return results;\n }, Object.create(null));\n}\n/**\n * Implements the \"Evaluating selection sets\" section of the spec\n * for \"read\" mode.\n */\n\n\nfunction executeFields(exeContext, parentType, sourceValue, path, fields) {\n var results = Object.create(null);\n var containsPromise = false;\n\n for (var _i4 = 0, _Object$keys2 = Object.keys(fields); _i4 < _Object$keys2.length; _i4++) {\n var responseName = _Object$keys2[_i4];\n var fieldNodes = fields[responseName];\n var fieldPath = addPath(path, responseName, parentType.name);\n var result = resolveField(exeContext, parentType, sourceValue, fieldNodes, fieldPath);\n\n if (result !== undefined) {\n results[responseName] = result;\n\n if (isPromise(result)) {\n containsPromise = true;\n }\n }\n } // If there are no promises, we can just return the object\n\n\n if (!containsPromise) {\n return results;\n } // Otherwise, results is a map from field name to the result of resolving that\n // field, which is possibly a promise. Return a promise that will return this\n // same map, but with any promises replaced with the values they resolved to.\n\n\n return promiseForObject(results);\n}\n/**\n * Given a selectionSet, adds all of the fields in that selection to\n * the passed in map of fields, and returns it at the end.\n *\n * CollectFields requires the \"runtime type\" of an object. For a field which\n * returns an Interface or Union type, the \"runtime type\" will be the actual\n * Object type returned by that field.\n *\n * @internal\n */\n\n\nexport function collectFields(exeContext, runtimeType, selectionSet, fields, visitedFragmentNames) {\n for (var _i6 = 0, _selectionSet$selecti2 = selectionSet.selections; _i6 < _selectionSet$selecti2.length; _i6++) {\n var selection = _selectionSet$selecti2[_i6];\n\n switch (selection.kind) {\n case Kind.FIELD:\n {\n if (!shouldIncludeNode(exeContext, selection)) {\n continue;\n }\n\n var name = getFieldEntryKey(selection);\n\n if (!fields[name]) {\n fields[name] = [];\n }\n\n fields[name].push(selection);\n break;\n }\n\n case Kind.INLINE_FRAGMENT:\n {\n if (!shouldIncludeNode(exeContext, selection) || !doesFragmentConditionMatch(exeContext, selection, runtimeType)) {\n continue;\n }\n\n collectFields(exeContext, runtimeType, selection.selectionSet, fields, visitedFragmentNames);\n break;\n }\n\n case Kind.FRAGMENT_SPREAD:\n {\n var fragName = selection.name.value;\n\n if (visitedFragmentNames[fragName] || !shouldIncludeNode(exeContext, selection)) {\n continue;\n }\n\n visitedFragmentNames[fragName] = true;\n var fragment = exeContext.fragments[fragName];\n\n if (!fragment || !doesFragmentConditionMatch(exeContext, fragment, runtimeType)) {\n continue;\n }\n\n collectFields(exeContext, runtimeType, fragment.selectionSet, fields, visitedFragmentNames);\n break;\n }\n }\n }\n\n return fields;\n}\n/**\n * Determines if a field should be included based on the @include and @skip\n * directives, where @skip has higher precedence than @include.\n */\n\nfunction shouldIncludeNode(exeContext, node) {\n var skip = getDirectiveValues(GraphQLSkipDirective, node, exeContext.variableValues);\n\n if ((skip === null || skip === void 0 ? void 0 : skip.if) === true) {\n return false;\n }\n\n var include = getDirectiveValues(GraphQLIncludeDirective, node, exeContext.variableValues);\n\n if ((include === null || include === void 0 ? void 0 : include.if) === false) {\n return false;\n }\n\n return true;\n}\n/**\n * Determines if a fragment is applicable to the given type.\n */\n\n\nfunction doesFragmentConditionMatch(exeContext, fragment, type) {\n var typeConditionNode = fragment.typeCondition;\n\n if (!typeConditionNode) {\n return true;\n }\n\n var conditionalType = typeFromAST(exeContext.schema, typeConditionNode);\n\n if (conditionalType === type) {\n return true;\n }\n\n if (isAbstractType(conditionalType)) {\n return exeContext.schema.isSubType(conditionalType, type);\n }\n\n return false;\n}\n/**\n * Implements the logic to compute the key of a given field's entry\n */\n\n\nfunction getFieldEntryKey(node) {\n return node.alias ? node.alias.value : node.name.value;\n}\n/**\n * Resolves the field on the given source object. In particular, this\n * figures out the value that the field returns by calling its resolve function,\n * then calls completeValue to complete promises, serialize scalars, or execute\n * the sub-selection-set for objects.\n */\n\n\nfunction resolveField(exeContext, parentType, source, fieldNodes, path) {\n var _fieldDef$resolve;\n\n var fieldNode = fieldNodes[0];\n var fieldName = fieldNode.name.value;\n var fieldDef = getFieldDef(exeContext.schema, parentType, fieldName);\n\n if (!fieldDef) {\n return;\n }\n\n var returnType = fieldDef.type;\n var resolveFn = (_fieldDef$resolve = fieldDef.resolve) !== null && _fieldDef$resolve !== void 0 ? _fieldDef$resolve : exeContext.fieldResolver;\n var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path); // Get the resolve function, regardless of if its result is normal or abrupt (error).\n\n try {\n // Build a JS object of arguments from the field.arguments AST, using the\n // variables scope to fulfill any variable references.\n // TODO: find a way to memoize, in case this field is within a List type.\n var args = getArgumentValues(fieldDef, fieldNodes[0], exeContext.variableValues); // The resolve function's optional third argument is a context value that\n // is provided to every resolve function within an execution. It is commonly\n // used to represent an authenticated user, or request-specific caches.\n\n var _contextValue = exeContext.contextValue;\n var result = resolveFn(source, args, _contextValue, info);\n var completed;\n\n if (isPromise(result)) {\n completed = result.then(function (resolved) {\n return completeValue(exeContext, returnType, fieldNodes, info, path, resolved);\n });\n } else {\n completed = completeValue(exeContext, returnType, fieldNodes, info, path, result);\n }\n\n if (isPromise(completed)) {\n // Note: we don't rely on a `catch` method, but we do expect \"thenable\"\n // to take a second callback for the error case.\n return completed.then(undefined, function (rawError) {\n var error = locatedError(rawError, fieldNodes, pathToArray(path));\n return handleFieldError(error, returnType, exeContext);\n });\n }\n\n return completed;\n } catch (rawError) {\n var error = locatedError(rawError, fieldNodes, pathToArray(path));\n return handleFieldError(error, returnType, exeContext);\n }\n}\n/**\n * @internal\n */\n\n\nexport function buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path) {\n // The resolve function's optional fourth argument is a collection of\n // information about the current execution state.\n return {\n fieldName: fieldDef.name,\n fieldNodes: fieldNodes,\n returnType: fieldDef.type,\n parentType: parentType,\n path: path,\n schema: exeContext.schema,\n fragments: exeContext.fragments,\n rootValue: exeContext.rootValue,\n operation: exeContext.operation,\n variableValues: exeContext.variableValues\n };\n}\n\nfunction handleFieldError(error, returnType, exeContext) {\n // If the field type is non-nullable, then it is resolved without any\n // protection from errors, however it still properly locates the error.\n if (isNonNullType(returnType)) {\n throw error;\n } // Otherwise, error protection is applied, logging the error and resolving\n // a null value for this field if one is encountered.\n\n\n exeContext.errors.push(error);\n return null;\n}\n/**\n * Implements the instructions for completeValue as defined in the\n * \"Field entries\" section of the spec.\n *\n * If the field type is Non-Null, then this recursively completes the value\n * for the inner type. It throws a field error if that completion returns null,\n * as per the \"Nullability\" section of the spec.\n *\n * If the field type is a List, then this recursively completes the value\n * for the inner type on each item in the list.\n *\n * If the field type is a Scalar or Enum, ensures the completed value is a legal\n * value of the type by calling the `serialize` method of GraphQL type\n * definition.\n *\n * If the field is an abstract type, determine the runtime type of the value\n * and then complete based on that type\n *\n * Otherwise, the field type expects a sub-selection set, and will complete the\n * value by evaluating all sub-selections.\n */\n\n\nfunction completeValue(exeContext, returnType, fieldNodes, info, path, result) {\n // If result is an Error, throw a located error.\n if (result instanceof Error) {\n throw result;\n } // If field type is NonNull, complete for inner type, and throw field error\n // if result is null.\n\n\n if (isNonNullType(returnType)) {\n var completed = completeValue(exeContext, returnType.ofType, fieldNodes, info, path, result);\n\n if (completed === null) {\n throw new Error(\"Cannot return null for non-nullable field \".concat(info.parentType.name, \".\").concat(info.fieldName, \".\"));\n }\n\n return completed;\n } // If result value is null or undefined then return null.\n\n\n if (result == null) {\n return null;\n } // If field type is List, complete each item in the list with the inner type\n\n\n if (isListType(returnType)) {\n return completeListValue(exeContext, returnType, fieldNodes, info, path, result);\n } // If field type is a leaf type, Scalar or Enum, serialize to a valid value,\n // returning null if serialization is not possible.\n\n\n if (isLeafType(returnType)) {\n return completeLeafValue(returnType, result);\n } // If field type is an abstract type, Interface or Union, determine the\n // runtime Object type and complete for that type.\n\n\n if (isAbstractType(returnType)) {\n return completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result);\n } // If field type is Object, execute and complete all sub-selections.\n // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isObjectType(returnType)) {\n return completeObjectValue(exeContext, returnType, fieldNodes, info, path, result);\n } // istanbul ignore next (Not reachable. All possible output types have been considered)\n\n\n false || invariant(0, 'Cannot complete value of unexpected output type: ' + inspect(returnType));\n}\n/**\n * Complete a list value by completing each item in the list with the\n * inner type\n */\n\n\nfunction completeListValue(exeContext, returnType, fieldNodes, info, path, result) {\n // This is specified as a simple map, however we're optimizing the path\n // where the list contains no Promises by avoiding creating another Promise.\n var itemType = returnType.ofType;\n var containsPromise = false;\n var completedResults = safeArrayFrom(result, function (item, index) {\n // No need to modify the info object containing the path,\n // since from here on it is not ever accessed by resolver functions.\n var itemPath = addPath(path, index, undefined);\n\n try {\n var completedItem;\n\n if (isPromise(item)) {\n completedItem = item.then(function (resolved) {\n return completeValue(exeContext, itemType, fieldNodes, info, itemPath, resolved);\n });\n } else {\n completedItem = completeValue(exeContext, itemType, fieldNodes, info, itemPath, item);\n }\n\n if (isPromise(completedItem)) {\n containsPromise = true; // Note: we don't rely on a `catch` method, but we do expect \"thenable\"\n // to take a second callback for the error case.\n\n return completedItem.then(undefined, function (rawError) {\n var error = locatedError(rawError, fieldNodes, pathToArray(itemPath));\n return handleFieldError(error, itemType, exeContext);\n });\n }\n\n return completedItem;\n } catch (rawError) {\n var error = locatedError(rawError, fieldNodes, pathToArray(itemPath));\n return handleFieldError(error, itemType, exeContext);\n }\n });\n\n if (completedResults == null) {\n throw new GraphQLError(\"Expected Iterable, but did not find one for field \\\"\".concat(info.parentType.name, \".\").concat(info.fieldName, \"\\\".\"));\n }\n\n return containsPromise ? Promise.all(completedResults) : completedResults;\n}\n/**\n * Complete a Scalar or Enum by serializing to a valid value, returning\n * null if serialization is not possible.\n */\n\n\nfunction completeLeafValue(returnType, result) {\n var serializedResult = returnType.serialize(result);\n\n if (serializedResult === undefined) {\n throw new Error(\"Expected a value of type \\\"\".concat(inspect(returnType), \"\\\" but \") + \"received: \".concat(inspect(result)));\n }\n\n return serializedResult;\n}\n/**\n * Complete a value of an abstract type by determining the runtime object type\n * of that value, then complete the value for that type.\n */\n\n\nfunction completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result) {\n var _returnType$resolveTy;\n\n var resolveTypeFn = (_returnType$resolveTy = returnType.resolveType) !== null && _returnType$resolveTy !== void 0 ? _returnType$resolveTy : exeContext.typeResolver;\n var contextValue = exeContext.contextValue;\n var runtimeType = resolveTypeFn(result, contextValue, info, returnType);\n\n if (isPromise(runtimeType)) {\n return runtimeType.then(function (resolvedRuntimeType) {\n return completeObjectValue(exeContext, ensureValidRuntimeType(resolvedRuntimeType, exeContext, returnType, fieldNodes, info, result), fieldNodes, info, path, result);\n });\n }\n\n return completeObjectValue(exeContext, ensureValidRuntimeType(runtimeType, exeContext, returnType, fieldNodes, info, result), fieldNodes, info, path, result);\n}\n\nfunction ensureValidRuntimeType(runtimeTypeOrName, exeContext, returnType, fieldNodes, info, result) {\n if (runtimeTypeOrName == null) {\n throw new GraphQLError(\"Abstract type \\\"\".concat(returnType.name, \"\\\" must resolve to an Object type at runtime for field \\\"\").concat(info.parentType.name, \".\").concat(info.fieldName, \"\\\". Either the \\\"\").concat(returnType.name, \"\\\" type should provide a \\\"resolveType\\\" function or each possible type should provide an \\\"isTypeOf\\\" function.\"), fieldNodes);\n } // FIXME: temporary workaround until support for passing object types would be removed in v16.0.0\n\n\n var runtimeTypeName = isNamedType(runtimeTypeOrName) ? runtimeTypeOrName.name : runtimeTypeOrName;\n\n if (typeof runtimeTypeName !== 'string') {\n throw new GraphQLError(\"Abstract type \\\"\".concat(returnType.name, \"\\\" must resolve to an Object type at runtime for field \\\"\").concat(info.parentType.name, \".\").concat(info.fieldName, \"\\\" with \") + \"value \".concat(inspect(result), \", received \\\"\").concat(inspect(runtimeTypeOrName), \"\\\".\"));\n }\n\n var runtimeType = exeContext.schema.getType(runtimeTypeName);\n\n if (runtimeType == null) {\n throw new GraphQLError(\"Abstract type \\\"\".concat(returnType.name, \"\\\" was resolve to a type \\\"\").concat(runtimeTypeName, \"\\\" that does not exist inside schema.\"), fieldNodes);\n }\n\n if (!isObjectType(runtimeType)) {\n throw new GraphQLError(\"Abstract type \\\"\".concat(returnType.name, \"\\\" was resolve to a non-object type \\\"\").concat(runtimeTypeName, \"\\\".\"), fieldNodes);\n }\n\n if (!exeContext.schema.isSubType(returnType, runtimeType)) {\n throw new GraphQLError(\"Runtime Object type \\\"\".concat(runtimeType.name, \"\\\" is not a possible type for \\\"\").concat(returnType.name, \"\\\".\"), fieldNodes);\n }\n\n return runtimeType;\n}\n/**\n * Complete an Object value by executing all sub-selections.\n */\n\n\nfunction completeObjectValue(exeContext, returnType, fieldNodes, info, path, result) {\n // If there is an isTypeOf predicate function, call it with the\n // current result. If isTypeOf returns false, then raise an error rather\n // than continuing execution.\n if (returnType.isTypeOf) {\n var isTypeOf = returnType.isTypeOf(result, exeContext.contextValue, info);\n\n if (isPromise(isTypeOf)) {\n return isTypeOf.then(function (resolvedIsTypeOf) {\n if (!resolvedIsTypeOf) {\n throw invalidReturnTypeError(returnType, result, fieldNodes);\n }\n\n return collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result);\n });\n }\n\n if (!isTypeOf) {\n throw invalidReturnTypeError(returnType, result, fieldNodes);\n }\n }\n\n return collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result);\n}\n\nfunction invalidReturnTypeError(returnType, result, fieldNodes) {\n return new GraphQLError(\"Expected value of type \\\"\".concat(returnType.name, \"\\\" but got: \").concat(inspect(result), \".\"), fieldNodes);\n}\n\nfunction collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result) {\n // Collect sub-fields to execute to complete this value.\n var subFieldNodes = collectSubfields(exeContext, returnType, fieldNodes);\n return executeFields(exeContext, returnType, result, path, subFieldNodes);\n}\n/**\n * A memoized collection of relevant subfields with regard to the return\n * type. Memoizing ensures the subfields are not repeatedly calculated, which\n * saves overhead when resolving lists of values.\n */\n\n\nvar collectSubfields = memoize3(_collectSubfields);\n\nfunction _collectSubfields(exeContext, returnType, fieldNodes) {\n var subFieldNodes = Object.create(null);\n var visitedFragmentNames = Object.create(null);\n\n for (var _i8 = 0; _i8 < fieldNodes.length; _i8++) {\n var node = fieldNodes[_i8];\n\n if (node.selectionSet) {\n subFieldNodes = collectFields(exeContext, returnType, node.selectionSet, subFieldNodes, visitedFragmentNames);\n }\n }\n\n return subFieldNodes;\n}\n/**\n * If a resolveType function is not given, then a default resolve behavior is\n * used which attempts two strategies:\n *\n * First, See if the provided value has a `__typename` field defined, if so, use\n * that value as name of the resolved type.\n *\n * Otherwise, test each possible type for the abstract type by calling\n * isTypeOf for the object being coerced, returning the first type that matches.\n */\n\n\nexport var defaultTypeResolver = function defaultTypeResolver(value, contextValue, info, abstractType) {\n // First, look for `__typename`.\n if (isObjectLike(value) && typeof value.__typename === 'string') {\n return value.__typename;\n } // Otherwise, test each possible type.\n\n\n var possibleTypes = info.schema.getPossibleTypes(abstractType);\n var promisedIsTypeOfResults = [];\n\n for (var i = 0; i < possibleTypes.length; i++) {\n var type = possibleTypes[i];\n\n if (type.isTypeOf) {\n var isTypeOfResult = type.isTypeOf(value, contextValue, info);\n\n if (isPromise(isTypeOfResult)) {\n promisedIsTypeOfResults[i] = isTypeOfResult;\n } else if (isTypeOfResult) {\n return type.name;\n }\n }\n }\n\n if (promisedIsTypeOfResults.length) {\n return Promise.all(promisedIsTypeOfResults).then(function (isTypeOfResults) {\n for (var _i9 = 0; _i9 < isTypeOfResults.length; _i9++) {\n if (isTypeOfResults[_i9]) {\n return possibleTypes[_i9].name;\n }\n }\n });\n }\n};\n/**\n * If a resolve function is not given, then a default resolve behavior is used\n * which takes the property of the source object of the same name as the field\n * and returns it as the result, or if it's a function, returns the result\n * of calling that function while passing along args and context value.\n */\n\nexport var defaultFieldResolver = function defaultFieldResolver(source, args, contextValue, info) {\n // ensure source is a value for which property access is acceptable.\n if (isObjectLike(source) || typeof source === 'function') {\n var property = source[info.fieldName];\n\n if (typeof property === 'function') {\n return source[info.fieldName](args, contextValue, info);\n }\n\n return property;\n }\n};\n/**\n * This method looks up the field on the given type definition.\n * It has special casing for the three introspection fields,\n * __schema, __type and __typename. __typename is special because\n * it can always be queried as a field, even in situations where no\n * other fields are allowed, like on a Union. __schema and __type\n * could get automatically added to the query type, but that would\n * require mutating type definitions, which would cause issues.\n *\n * @internal\n */\n\nexport function getFieldDef(schema, parentType, fieldName) {\n if (fieldName === SchemaMetaFieldDef.name && schema.getQueryType() === parentType) {\n return SchemaMetaFieldDef;\n } else if (fieldName === TypeMetaFieldDef.name && schema.getQueryType() === parentType) {\n return TypeMetaFieldDef;\n } else if (fieldName === TypeNameMetaFieldDef.name) {\n return TypeNameMetaFieldDef;\n }\n\n return parentType.getFields()[fieldName];\n}\n","import isPromise from \"./isPromise.mjs\";\n/**\n * Similar to Array.prototype.reduce(), however the reducing callback may return\n * a Promise, in which case reduction will continue after each promise resolves.\n *\n * If the callback does not return a Promise, then this function will also not\n * return a Promise.\n */\n\nexport default function promiseReduce(values, callback, initialValue) {\n return values.reduce(function (previous, value) {\n return isPromise(previous) ? previous.then(function (resolved) {\n return callback(resolved, value);\n }) : callback(previous, value);\n }, initialValue);\n}\n","/**\n * This function transforms a JS object `ObjMap>` into\n * a `Promise>`\n *\n * This is akin to bluebird's `Promise.props`, but implemented only using\n * `Promise.all` so it will work with any implementation of ES6 promises.\n */\nexport default function promiseForObject(object) {\n var keys = Object.keys(object);\n var valuesAndPromises = keys.map(function (name) {\n return object[name];\n });\n return Promise.all(valuesAndPromises).then(function (values) {\n return values.reduce(function (resolvedObject, value, i) {\n resolvedObject[keys[i]] = value;\n return resolvedObject;\n }, Object.create(null));\n });\n}\n","/**\n * Memoizes the provided three-argument function.\n */\nexport default function memoize3(fn) {\n var cache0;\n return function memoized(a1, a2, a3) {\n if (!cache0) {\n cache0 = new WeakMap();\n }\n\n var cache1 = cache0.get(a1);\n var cache2;\n\n if (cache1) {\n cache2 = cache1.get(a2);\n\n if (cache2) {\n var cachedValue = cache2.get(a3);\n\n if (cachedValue !== undefined) {\n return cachedValue;\n }\n }\n } else {\n cache1 = new WeakMap();\n cache0.set(a1, cache1);\n }\n\n if (!cache2) {\n cache2 = new WeakMap();\n cache1.set(a2, cache2);\n }\n\n var newValue = fn(a1, a2, a3);\n cache2.set(a3, newValue);\n return newValue;\n };\n}\n","import isPromise from \"./jsutils/isPromise.mjs\";\nimport { parse } from \"./language/parser.mjs\";\nimport { validate } from \"./validation/validate.mjs\";\nimport { validateSchema } from \"./type/validate.mjs\";\nimport { execute } from \"./execution/execute.mjs\";\n/**\n * This is the primary entry point function for fulfilling GraphQL operations\n * by parsing, validating, and executing a GraphQL document along side a\n * GraphQL schema.\n *\n * More sophisticated GraphQL servers, such as those which persist queries,\n * may wish to separate the validation and execution phases to a static time\n * tooling step, and a server runtime step.\n *\n * Accepts either an object with named arguments, or individual arguments:\n *\n * schema:\n * The GraphQL type system to use when validating and executing a query.\n * source:\n * A GraphQL language formatted string representing the requested operation.\n * rootValue:\n * The value provided as the first argument to resolver functions on the top\n * level type (e.g. the query object type).\n * contextValue:\n * The context value is provided as an argument to resolver functions after\n * field arguments. It is used to pass shared information useful at any point\n * during executing this query, for example the currently logged in user and\n * connections to databases or other services.\n * variableValues:\n * A mapping of variable name to runtime value to use for all variables\n * defined in the requestString.\n * operationName:\n * The name of the operation to use if requestString contains multiple\n * possible operations. Can be omitted if requestString contains only\n * one operation.\n * fieldResolver:\n * A resolver function to use when one is not provided by the schema.\n * If not provided, the default field resolver is used (which looks for a\n * value or method on the source value with the field's name).\n * typeResolver:\n * A type resolver function to use when none is provided by the schema.\n * If not provided, the default type resolver is used (which looks for a\n * `__typename` field or alternatively calls the `isTypeOf` method).\n */\n\nexport function graphql(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {\n var _arguments = arguments;\n\n /* eslint-enable no-redeclare */\n // Always return a Promise for a consistent API.\n return new Promise(function (resolve) {\n return resolve( // Extract arguments from object args if provided.\n _arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({\n schema: argsOrSchema,\n source: source,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n }));\n });\n}\n/**\n * The graphqlSync function also fulfills GraphQL operations by parsing,\n * validating, and executing a GraphQL document along side a GraphQL schema.\n * However, it guarantees to complete synchronously (or throw an error) assuming\n * that all field resolvers are also synchronous.\n */\n\nexport function graphqlSync(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {\n /* eslint-enable no-redeclare */\n // Extract arguments from object args if provided.\n var result = arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({\n schema: argsOrSchema,\n source: source,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n }); // Assert that the execution was synchronous.\n\n if (isPromise(result)) {\n throw new Error('GraphQL execution failed to complete synchronously.');\n }\n\n return result;\n}\n\nfunction graphqlImpl(args) {\n var schema = args.schema,\n source = args.source,\n rootValue = args.rootValue,\n contextValue = args.contextValue,\n variableValues = args.variableValues,\n operationName = args.operationName,\n fieldResolver = args.fieldResolver,\n typeResolver = args.typeResolver; // Validate Schema\n\n var schemaValidationErrors = validateSchema(schema);\n\n if (schemaValidationErrors.length > 0) {\n return {\n errors: schemaValidationErrors\n };\n } // Parse\n\n\n var document;\n\n try {\n document = parse(source);\n } catch (syntaxError) {\n return {\n errors: [syntaxError]\n };\n } // Validate\n\n\n var validationErrors = validate(schema, document);\n\n if (validationErrors.length > 0) {\n return {\n errors: validationErrors\n };\n } // Execute\n\n\n return execute({\n schema: schema,\n document: document,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n });\n}\n","import { SYMBOL_ASYNC_ITERATOR } from \"../polyfills/symbols.mjs\";\n/**\n * Returns true if the provided object implements the AsyncIterator protocol via\n * either implementing a `Symbol.asyncIterator` or `\"@@asyncIterator\"` method.\n */\n\n// eslint-disable-next-line no-redeclare\nexport default function isAsyncIterable(maybeAsyncIterable) {\n return typeof (maybeAsyncIterable === null || maybeAsyncIterable === void 0 ? void 0 : maybeAsyncIterable[SYMBOL_ASYNC_ITERATOR]) === 'function';\n}\n","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; }\n\nimport { SYMBOL_ASYNC_ITERATOR } from \"../polyfills/symbols.mjs\";\n\n/**\n * Given an AsyncIterable and a callback function, return an AsyncIterator\n * which produces values mapped via calling the callback function.\n */\nexport default function mapAsyncIterator(iterable, callback, rejectCallback) {\n // $FlowFixMe[prop-missing]\n var iteratorMethod = iterable[SYMBOL_ASYNC_ITERATOR];\n var iterator = iteratorMethod.call(iterable);\n var $return;\n var abruptClose;\n\n if (typeof iterator.return === 'function') {\n $return = iterator.return;\n\n abruptClose = function abruptClose(error) {\n var rethrow = function rethrow() {\n return Promise.reject(error);\n };\n\n return $return.call(iterator).then(rethrow, rethrow);\n };\n }\n\n function mapResult(result) {\n return result.done ? result : asyncMapValue(result.value, callback).then(iteratorResult, abruptClose);\n }\n\n var mapReject;\n\n if (rejectCallback) {\n // Capture rejectCallback to ensure it cannot be null.\n var reject = rejectCallback;\n\n mapReject = function mapReject(error) {\n return asyncMapValue(error, reject).then(iteratorResult, abruptClose);\n };\n }\n /* TODO: Flow doesn't support symbols as keys:\n https://github.com/facebook/flow/issues/3258 */\n\n\n return _defineProperty({\n next: function next() {\n return iterator.next().then(mapResult, mapReject);\n },\n return: function _return() {\n return $return ? $return.call(iterator).then(mapResult, mapReject) : Promise.resolve({\n value: undefined,\n done: true\n });\n },\n throw: function _throw(error) {\n if (typeof iterator.throw === 'function') {\n return iterator.throw(error).then(mapResult, mapReject);\n }\n\n return Promise.reject(error).catch(abruptClose);\n }\n }, SYMBOL_ASYNC_ITERATOR, function () {\n return this;\n });\n}\n\nfunction asyncMapValue(value, callback) {\n return new Promise(function (resolve) {\n return resolve(callback(value));\n });\n}\n\nfunction iteratorResult(value) {\n return {\n value: value,\n done: false\n };\n}\n","import inspect from \"../jsutils/inspect.mjs\";\nimport isAsyncIterable from \"../jsutils/isAsyncIterable.mjs\";\nimport { addPath, pathToArray } from \"../jsutils/Path.mjs\";\nimport { GraphQLError } from \"../error/GraphQLError.mjs\";\nimport { locatedError } from \"../error/locatedError.mjs\";\nimport { getArgumentValues } from \"../execution/values.mjs\";\nimport { assertValidExecutionArguments, buildExecutionContext, buildResolveInfo, collectFields, execute, getFieldDef } from \"../execution/execute.mjs\";\nimport { getOperationRootType } from \"../utilities/getOperationRootType.mjs\";\nimport mapAsyncIterator from \"./mapAsyncIterator.mjs\";\nexport function subscribe(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) {\n /* eslint-enable no-redeclare */\n // Extract arguments from object args if provided.\n return arguments.length === 1 ? subscribeImpl(argsOrSchema) : subscribeImpl({\n schema: argsOrSchema,\n document: document,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n subscribeFieldResolver: subscribeFieldResolver\n });\n}\n/**\n * This function checks if the error is a GraphQLError. If it is, report it as\n * an ExecutionResult, containing only errors and no data. Otherwise treat the\n * error as a system-class error and re-throw it.\n */\n\nfunction reportGraphQLError(error) {\n if (error instanceof GraphQLError) {\n return {\n errors: [error]\n };\n }\n\n throw error;\n}\n\nfunction subscribeImpl(args) {\n var schema = args.schema,\n document = args.document,\n rootValue = args.rootValue,\n contextValue = args.contextValue,\n variableValues = args.variableValues,\n operationName = args.operationName,\n fieldResolver = args.fieldResolver,\n subscribeFieldResolver = args.subscribeFieldResolver;\n var sourcePromise = createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, subscribeFieldResolver); // For each payload yielded from a subscription, map it over the normal\n // GraphQL `execute` function, with `payload` as the rootValue.\n // This implements the \"MapSourceToResponseEvent\" algorithm described in\n // the GraphQL specification. The `execute` function provides the\n // \"ExecuteSubscriptionEvent\" algorithm, as it is nearly identical to the\n // \"ExecuteQuery\" algorithm, for which `execute` is also used.\n\n var mapSourceToResponse = function mapSourceToResponse(payload) {\n return execute({\n schema: schema,\n document: document,\n rootValue: payload,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver\n });\n }; // Resolve the Source Stream, then map every source value to a\n // ExecutionResult value as described above.\n\n\n return sourcePromise.then(function (resultOrStream) {\n return (// Note: Flow can't refine isAsyncIterable, so explicit casts are used.\n isAsyncIterable(resultOrStream) ? mapAsyncIterator(resultOrStream, mapSourceToResponse, reportGraphQLError) : resultOrStream\n );\n });\n}\n/**\n * Implements the \"CreateSourceEventStream\" algorithm described in the\n * GraphQL specification, resolving the subscription source event stream.\n *\n * Returns a Promise which resolves to either an AsyncIterable (if successful)\n * or an ExecutionResult (error). The promise will be rejected if the schema or\n * other arguments to this function are invalid, or if the resolved event stream\n * is not an async iterable.\n *\n * If the client-provided arguments to this function do not result in a\n * compliant subscription, a GraphQL Response (ExecutionResult) with\n * descriptive errors and no data will be returned.\n *\n * If the the source stream could not be created due to faulty subscription\n * resolver logic or underlying systems, the promise will resolve to a single\n * ExecutionResult containing `errors` and no `data`.\n *\n * If the operation succeeded, the promise resolves to the AsyncIterable for the\n * event stream returned by the resolver.\n *\n * A Source Event Stream represents a sequence of events, each of which triggers\n * a GraphQL execution for that event.\n *\n * This may be useful when hosting the stateful subscription service in a\n * different process or machine than the stateless GraphQL execution engine,\n * or otherwise separating these two steps. For more on this, see the\n * \"Supporting Subscriptions at Scale\" information in the GraphQL specification.\n */\n\n\nexport function createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) {\n // If arguments are missing or incorrectly typed, this is an internal\n // developer mistake which should throw an early error.\n assertValidExecutionArguments(schema, document, variableValues);\n return new Promise(function (resolve) {\n // If a valid context cannot be created due to incorrect arguments,\n // this will throw an error.\n var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver);\n resolve( // Return early errors if execution context failed.\n Array.isArray(exeContext) ? {\n errors: exeContext\n } : executeSubscription(exeContext));\n }).catch(reportGraphQLError);\n}\n\nfunction executeSubscription(exeContext) {\n var schema = exeContext.schema,\n operation = exeContext.operation,\n variableValues = exeContext.variableValues,\n rootValue = exeContext.rootValue;\n var type = getOperationRootType(schema, operation);\n var fields = collectFields(exeContext, type, operation.selectionSet, Object.create(null), Object.create(null));\n var responseNames = Object.keys(fields);\n var responseName = responseNames[0];\n var fieldNodes = fields[responseName];\n var fieldNode = fieldNodes[0];\n var fieldName = fieldNode.name.value;\n var fieldDef = getFieldDef(schema, type, fieldName);\n\n if (!fieldDef) {\n throw new GraphQLError(\"The subscription field \\\"\".concat(fieldName, \"\\\" is not defined.\"), fieldNodes);\n }\n\n var path = addPath(undefined, responseName, type.name);\n var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, type, path); // Coerce to Promise for easier error handling and consistent return type.\n\n return new Promise(function (resolveResult) {\n var _fieldDef$subscribe;\n\n // Implements the \"ResolveFieldEventStream\" algorithm from GraphQL specification.\n // It differs from \"ResolveFieldValue\" due to providing a different `resolveFn`.\n // Build a JS object of arguments from the field.arguments AST, using the\n // variables scope to fulfill any variable references.\n var args = getArgumentValues(fieldDef, fieldNodes[0], variableValues); // The resolve function's optional third argument is a context value that\n // is provided to every resolve function within an execution. It is commonly\n // used to represent an authenticated user, or request-specific caches.\n\n var contextValue = exeContext.contextValue; // Call the `subscribe()` resolver or the default resolver to produce an\n // AsyncIterable yielding raw payloads.\n\n var resolveFn = (_fieldDef$subscribe = fieldDef.subscribe) !== null && _fieldDef$subscribe !== void 0 ? _fieldDef$subscribe : exeContext.fieldResolver;\n resolveResult(resolveFn(rootValue, args, contextValue, info));\n }).then(function (eventStream) {\n if (eventStream instanceof Error) {\n throw locatedError(eventStream, fieldNodes, pathToArray(path));\n } // Assert field returned an event stream, otherwise yield an error.\n\n\n if (!isAsyncIterable(eventStream)) {\n throw new Error('Subscription field must return Async Iterable. ' + \"Received: \".concat(inspect(eventStream), \".\"));\n }\n\n return eventStream;\n }, function (error) {\n throw locatedError(error, fieldNodes, pathToArray(path));\n });\n}\n","import invariant from \"../../../jsutils/invariant.mjs\";\nimport { GraphQLError } from \"../../../error/GraphQLError.mjs\";\nimport { getNamedType, isInputObjectType } from \"../../../type/definition.mjs\";\n\n/**\n * No deprecated\n *\n * A GraphQL document is only valid if all selected fields and all used enum values have not been\n * deprecated.\n *\n * Note: This rule is optional and is not part of the Validation section of the GraphQL\n * Specification. The main purpose of this rule is detection of deprecated usages and not\n * necessarily to forbid their use when querying a service.\n */\nexport function NoDeprecatedCustomRule(context) {\n return {\n Field: function Field(node) {\n var fieldDef = context.getFieldDef();\n var deprecationReason = fieldDef === null || fieldDef === void 0 ? void 0 : fieldDef.deprecationReason;\n\n if (fieldDef && deprecationReason != null) {\n var parentType = context.getParentType();\n parentType != null || invariant(0);\n context.reportError(new GraphQLError(\"The field \".concat(parentType.name, \".\").concat(fieldDef.name, \" is deprecated. \").concat(deprecationReason), node));\n }\n },\n Argument: function Argument(node) {\n var argDef = context.getArgument();\n var deprecationReason = argDef === null || argDef === void 0 ? void 0 : argDef.deprecationReason;\n\n if (argDef && deprecationReason != null) {\n var directiveDef = context.getDirective();\n\n if (directiveDef != null) {\n context.reportError(new GraphQLError(\"Directive \\\"@\".concat(directiveDef.name, \"\\\" argument \\\"\").concat(argDef.name, \"\\\" is deprecated. \").concat(deprecationReason), node));\n } else {\n var parentType = context.getParentType();\n var fieldDef = context.getFieldDef();\n parentType != null && fieldDef != null || invariant(0);\n context.reportError(new GraphQLError(\"Field \\\"\".concat(parentType.name, \".\").concat(fieldDef.name, \"\\\" argument \\\"\").concat(argDef.name, \"\\\" is deprecated. \").concat(deprecationReason), node));\n }\n }\n },\n ObjectField: function ObjectField(node) {\n var inputObjectDef = getNamedType(context.getParentInputType());\n\n if (isInputObjectType(inputObjectDef)) {\n var inputFieldDef = inputObjectDef.getFields()[node.name.value]; // flowlint-next-line unnecessary-optional-chain:off\n\n var deprecationReason = inputFieldDef === null || inputFieldDef === void 0 ? void 0 : inputFieldDef.deprecationReason;\n\n if (deprecationReason != null) {\n context.reportError(new GraphQLError(\"The input field \".concat(inputObjectDef.name, \".\").concat(inputFieldDef.name, \" is deprecated. \").concat(deprecationReason), node));\n }\n }\n },\n EnumValue: function EnumValue(node) {\n var enumValueDef = context.getEnumValue();\n var deprecationReason = enumValueDef === null || enumValueDef === void 0 ? void 0 : enumValueDef.deprecationReason;\n\n if (enumValueDef && deprecationReason != null) {\n var enumTypeDef = getNamedType(context.getInputType());\n enumTypeDef != null || invariant(0);\n context.reportError(new GraphQLError(\"The enum value \\\"\".concat(enumTypeDef.name, \".\").concat(enumValueDef.name, \"\\\" is deprecated. \").concat(deprecationReason), node));\n }\n }\n };\n}\n","import { GraphQLError } from \"../../../error/GraphQLError.mjs\";\nimport { getNamedType } from \"../../../type/definition.mjs\";\nimport { isIntrospectionType } from \"../../../type/introspection.mjs\";\n\n/**\n * Prohibit introspection queries\n *\n * A GraphQL document is only valid if all fields selected are not fields that\n * return an introspection type.\n *\n * Note: This rule is optional and is not part of the Validation section of the\n * GraphQL Specification. This rule effectively disables introspection, which\n * does not reflect best practices and should only be done if absolutely necessary.\n */\nexport function NoSchemaIntrospectionCustomRule(context) {\n return {\n Field: function Field(node) {\n var type = getNamedType(context.getType());\n\n if (type && isIntrospectionType(type)) {\n context.reportError(new GraphQLError(\"GraphQL introspection has been disabled, but the requested query contained the field \\\"\".concat(node.name.value, \"\\\".\"), node));\n }\n }\n };\n}\n","import devAssert from \"../jsutils/devAssert.mjs\";\n\n/**\n * Given a GraphQLError, format it according to the rules described by the\n * Response Format, Errors section of the GraphQL Specification.\n */\nexport function formatError(error) {\n var _error$message;\n\n error || devAssert(0, 'Received null or undefined error.');\n var message = (_error$message = error.message) !== null && _error$message !== void 0 ? _error$message : 'An unknown error occurred.';\n var locations = error.locations;\n var path = error.path;\n var extensions = error.extensions;\n return extensions && Object.keys(extensions).length > 0 ? {\n message: message,\n locations: locations,\n path: path,\n extensions: extensions\n } : {\n message: message,\n locations: locations,\n path: path\n };\n}\n/**\n * @see https://github.com/graphql/graphql-spec/blob/master/spec/Section%207%20--%20Response.md#errors\n */\n","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; }\n\nfunction _objectSpread(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; }\n\nfunction _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; }\n\nexport function getIntrospectionQuery(options) {\n var optionsWithDefault = _objectSpread({\n descriptions: true,\n specifiedByUrl: false,\n directiveIsRepeatable: false,\n schemaDescription: false,\n inputValueDeprecation: false\n }, options);\n\n var descriptions = optionsWithDefault.descriptions ? 'description' : '';\n var specifiedByUrl = optionsWithDefault.specifiedByUrl ? 'specifiedByUrl' : '';\n var directiveIsRepeatable = optionsWithDefault.directiveIsRepeatable ? 'isRepeatable' : '';\n var schemaDescription = optionsWithDefault.schemaDescription ? descriptions : '';\n\n function inputDeprecation(str) {\n return optionsWithDefault.inputValueDeprecation ? str : '';\n }\n\n return \"\\n query IntrospectionQuery {\\n __schema {\\n \".concat(schemaDescription, \"\\n queryType { name }\\n mutationType { name }\\n subscriptionType { name }\\n types {\\n ...FullType\\n }\\n directives {\\n name\\n \").concat(descriptions, \"\\n \").concat(directiveIsRepeatable, \"\\n locations\\n args\").concat(inputDeprecation('(includeDeprecated: true)'), \" {\\n ...InputValue\\n }\\n }\\n }\\n }\\n\\n fragment FullType on __Type {\\n kind\\n name\\n \").concat(descriptions, \"\\n \").concat(specifiedByUrl, \"\\n fields(includeDeprecated: true) {\\n name\\n \").concat(descriptions, \"\\n args\").concat(inputDeprecation('(includeDeprecated: true)'), \" {\\n ...InputValue\\n }\\n type {\\n ...TypeRef\\n }\\n isDeprecated\\n deprecationReason\\n }\\n inputFields\").concat(inputDeprecation('(includeDeprecated: true)'), \" {\\n ...InputValue\\n }\\n interfaces {\\n ...TypeRef\\n }\\n enumValues(includeDeprecated: true) {\\n name\\n \").concat(descriptions, \"\\n isDeprecated\\n deprecationReason\\n }\\n possibleTypes {\\n ...TypeRef\\n }\\n }\\n\\n fragment InputValue on __InputValue {\\n name\\n \").concat(descriptions, \"\\n type { ...TypeRef }\\n defaultValue\\n \").concat(inputDeprecation('isDeprecated'), \"\\n \").concat(inputDeprecation('deprecationReason'), \"\\n }\\n\\n fragment TypeRef on __Type {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n \");\n}\n","import { Kind } from \"../language/kinds.mjs\";\n/**\n * Returns an operation AST given a document AST and optionally an operation\n * name. If a name is not provided, an operation is only returned if only one is\n * provided in the document.\n */\n\nexport function getOperationAST(documentAST, operationName) {\n var operation = null;\n\n for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {\n var definition = _documentAST$definiti2[_i2];\n\n if (definition.kind === Kind.OPERATION_DEFINITION) {\n var _definition$name;\n\n if (operationName == null) {\n // If no operation name was provided, only return an Operation if there\n // is one defined in the document. Upon encountering the second, return\n // null.\n if (operation) {\n return null;\n }\n\n operation = definition;\n } else if (((_definition$name = definition.name) === null || _definition$name === void 0 ? void 0 : _definition$name.value) === operationName) {\n return definition;\n }\n }\n }\n\n return operation;\n}\n","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; }\n\nfunction _objectSpread(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; }\n\nfunction _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; }\n\nimport invariant from \"../jsutils/invariant.mjs\";\nimport { parse } from \"../language/parser.mjs\";\nimport { executeSync } from \"../execution/execute.mjs\";\nimport { getIntrospectionQuery } from \"./getIntrospectionQuery.mjs\";\n/**\n * Build an IntrospectionQuery from a GraphQLSchema\n *\n * IntrospectionQuery is useful for utilities that care about type and field\n * relationships, but do not need to traverse through those relationships.\n *\n * This is the inverse of buildClientSchema. The primary use case is outside\n * of the server context, for instance when doing schema comparisons.\n */\n\nexport function introspectionFromSchema(schema, options) {\n var optionsWithDefaults = _objectSpread({\n specifiedByUrl: true,\n directiveIsRepeatable: true,\n schemaDescription: true,\n inputValueDeprecation: true\n }, options);\n\n var document = parse(getIntrospectionQuery(optionsWithDefaults));\n var result = executeSync({\n schema: schema,\n document: document\n });\n !result.errors && result.data || invariant(0);\n return result.data;\n}\n","import objectValues from \"../polyfills/objectValues.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport keyValMap from \"../jsutils/keyValMap.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { parseValue } from \"../language/parser.mjs\";\nimport { GraphQLSchema } from \"../type/schema.mjs\";\nimport { GraphQLDirective } from \"../type/directives.mjs\";\nimport { specifiedScalarTypes } from \"../type/scalars.mjs\";\nimport { introspectionTypes, TypeKind } from \"../type/introspection.mjs\";\nimport { isInputType, isOutputType, GraphQLList, GraphQLNonNull, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, assertNullableType, assertObjectType, assertInterfaceType } from \"../type/definition.mjs\";\nimport { valueFromAST } from \"./valueFromAST.mjs\";\n/**\n * Build a GraphQLSchema for use by client tools.\n *\n * Given the result of a client running the introspection query, creates and\n * returns a GraphQLSchema instance which can be then used with all graphql-js\n * tools, but cannot be used to execute a query, as introspection does not\n * represent the \"resolver\", \"parse\" or \"serialize\" functions or any other\n * server-internal mechanisms.\n *\n * This function expects a complete introspection result. Don't forget to check\n * the \"errors\" field of a server response before calling this function.\n */\n\nexport function buildClientSchema(introspection, options) {\n isObjectLike(introspection) && isObjectLike(introspection.__schema) || devAssert(0, \"Invalid or incomplete introspection result. Ensure that you are passing \\\"data\\\" property of introspection response and no \\\"errors\\\" was returned alongside: \".concat(inspect(introspection), \".\")); // Get the schema from the introspection result.\n\n var schemaIntrospection = introspection.__schema; // Iterate through all types, getting the type definition for each.\n\n var typeMap = keyValMap(schemaIntrospection.types, function (typeIntrospection) {\n return typeIntrospection.name;\n }, function (typeIntrospection) {\n return buildType(typeIntrospection);\n }); // Include standard types only if they are used.\n\n for (var _i2 = 0, _ref2 = [].concat(specifiedScalarTypes, introspectionTypes); _i2 < _ref2.length; _i2++) {\n var stdType = _ref2[_i2];\n\n if (typeMap[stdType.name]) {\n typeMap[stdType.name] = stdType;\n }\n } // Get the root Query, Mutation, and Subscription types.\n\n\n var queryType = schemaIntrospection.queryType ? getObjectType(schemaIntrospection.queryType) : null;\n var mutationType = schemaIntrospection.mutationType ? getObjectType(schemaIntrospection.mutationType) : null;\n var subscriptionType = schemaIntrospection.subscriptionType ? getObjectType(schemaIntrospection.subscriptionType) : null; // Get the directives supported by Introspection, assuming empty-set if\n // directives were not queried for.\n\n var directives = schemaIntrospection.directives ? schemaIntrospection.directives.map(buildDirective) : []; // Then produce and return a Schema with these types.\n\n return new GraphQLSchema({\n description: schemaIntrospection.description,\n query: queryType,\n mutation: mutationType,\n subscription: subscriptionType,\n types: objectValues(typeMap),\n directives: directives,\n assumeValid: options === null || options === void 0 ? void 0 : options.assumeValid\n }); // Given a type reference in introspection, return the GraphQLType instance.\n // preferring cached instances before building new instances.\n\n function getType(typeRef) {\n if (typeRef.kind === TypeKind.LIST) {\n var itemRef = typeRef.ofType;\n\n if (!itemRef) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n\n return new GraphQLList(getType(itemRef));\n }\n\n if (typeRef.kind === TypeKind.NON_NULL) {\n var nullableRef = typeRef.ofType;\n\n if (!nullableRef) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n\n var nullableType = getType(nullableRef);\n return new GraphQLNonNull(assertNullableType(nullableType));\n }\n\n return getNamedType(typeRef);\n }\n\n function getNamedType(typeRef) {\n var typeName = typeRef.name;\n\n if (!typeName) {\n throw new Error(\"Unknown type reference: \".concat(inspect(typeRef), \".\"));\n }\n\n var type = typeMap[typeName];\n\n if (!type) {\n throw new Error(\"Invalid or incomplete schema, unknown type: \".concat(typeName, \". Ensure that a full introspection query is used in order to build a client schema.\"));\n }\n\n return type;\n }\n\n function getObjectType(typeRef) {\n return assertObjectType(getNamedType(typeRef));\n }\n\n function getInterfaceType(typeRef) {\n return assertInterfaceType(getNamedType(typeRef));\n } // Given a type's introspection result, construct the correct\n // GraphQLType instance.\n\n\n function buildType(type) {\n if (type != null && type.name != null && type.kind != null) {\n switch (type.kind) {\n case TypeKind.SCALAR:\n return buildScalarDef(type);\n\n case TypeKind.OBJECT:\n return buildObjectDef(type);\n\n case TypeKind.INTERFACE:\n return buildInterfaceDef(type);\n\n case TypeKind.UNION:\n return buildUnionDef(type);\n\n case TypeKind.ENUM:\n return buildEnumDef(type);\n\n case TypeKind.INPUT_OBJECT:\n return buildInputObjectDef(type);\n }\n }\n\n var typeStr = inspect(type);\n throw new Error(\"Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: \".concat(typeStr, \".\"));\n }\n\n function buildScalarDef(scalarIntrospection) {\n return new GraphQLScalarType({\n name: scalarIntrospection.name,\n description: scalarIntrospection.description,\n specifiedByUrl: scalarIntrospection.specifiedByUrl\n });\n }\n\n function buildImplementationsList(implementingIntrospection) {\n // TODO: Temporary workaround until GraphQL ecosystem will fully support\n // 'interfaces' on interface types.\n if (implementingIntrospection.interfaces === null && implementingIntrospection.kind === TypeKind.INTERFACE) {\n return [];\n }\n\n if (!implementingIntrospection.interfaces) {\n var implementingIntrospectionStr = inspect(implementingIntrospection);\n throw new Error(\"Introspection result missing interfaces: \".concat(implementingIntrospectionStr, \".\"));\n }\n\n return implementingIntrospection.interfaces.map(getInterfaceType);\n }\n\n function buildObjectDef(objectIntrospection) {\n return new GraphQLObjectType({\n name: objectIntrospection.name,\n description: objectIntrospection.description,\n interfaces: function interfaces() {\n return buildImplementationsList(objectIntrospection);\n },\n fields: function fields() {\n return buildFieldDefMap(objectIntrospection);\n }\n });\n }\n\n function buildInterfaceDef(interfaceIntrospection) {\n return new GraphQLInterfaceType({\n name: interfaceIntrospection.name,\n description: interfaceIntrospection.description,\n interfaces: function interfaces() {\n return buildImplementationsList(interfaceIntrospection);\n },\n fields: function fields() {\n return buildFieldDefMap(interfaceIntrospection);\n }\n });\n }\n\n function buildUnionDef(unionIntrospection) {\n if (!unionIntrospection.possibleTypes) {\n var unionIntrospectionStr = inspect(unionIntrospection);\n throw new Error(\"Introspection result missing possibleTypes: \".concat(unionIntrospectionStr, \".\"));\n }\n\n return new GraphQLUnionType({\n name: unionIntrospection.name,\n description: unionIntrospection.description,\n types: function types() {\n return unionIntrospection.possibleTypes.map(getObjectType);\n }\n });\n }\n\n function buildEnumDef(enumIntrospection) {\n if (!enumIntrospection.enumValues) {\n var enumIntrospectionStr = inspect(enumIntrospection);\n throw new Error(\"Introspection result missing enumValues: \".concat(enumIntrospectionStr, \".\"));\n }\n\n return new GraphQLEnumType({\n name: enumIntrospection.name,\n description: enumIntrospection.description,\n values: keyValMap(enumIntrospection.enumValues, function (valueIntrospection) {\n return valueIntrospection.name;\n }, function (valueIntrospection) {\n return {\n description: valueIntrospection.description,\n deprecationReason: valueIntrospection.deprecationReason\n };\n })\n });\n }\n\n function buildInputObjectDef(inputObjectIntrospection) {\n if (!inputObjectIntrospection.inputFields) {\n var inputObjectIntrospectionStr = inspect(inputObjectIntrospection);\n throw new Error(\"Introspection result missing inputFields: \".concat(inputObjectIntrospectionStr, \".\"));\n }\n\n return new GraphQLInputObjectType({\n name: inputObjectIntrospection.name,\n description: inputObjectIntrospection.description,\n fields: function fields() {\n return buildInputValueDefMap(inputObjectIntrospection.inputFields);\n }\n });\n }\n\n function buildFieldDefMap(typeIntrospection) {\n if (!typeIntrospection.fields) {\n throw new Error(\"Introspection result missing fields: \".concat(inspect(typeIntrospection), \".\"));\n }\n\n return keyValMap(typeIntrospection.fields, function (fieldIntrospection) {\n return fieldIntrospection.name;\n }, buildField);\n }\n\n function buildField(fieldIntrospection) {\n var type = getType(fieldIntrospection.type);\n\n if (!isOutputType(type)) {\n var typeStr = inspect(type);\n throw new Error(\"Introspection must provide output type for fields, but received: \".concat(typeStr, \".\"));\n }\n\n if (!fieldIntrospection.args) {\n var fieldIntrospectionStr = inspect(fieldIntrospection);\n throw new Error(\"Introspection result missing field args: \".concat(fieldIntrospectionStr, \".\"));\n }\n\n return {\n description: fieldIntrospection.description,\n deprecationReason: fieldIntrospection.deprecationReason,\n type: type,\n args: buildInputValueDefMap(fieldIntrospection.args)\n };\n }\n\n function buildInputValueDefMap(inputValueIntrospections) {\n return keyValMap(inputValueIntrospections, function (inputValue) {\n return inputValue.name;\n }, buildInputValue);\n }\n\n function buildInputValue(inputValueIntrospection) {\n var type = getType(inputValueIntrospection.type);\n\n if (!isInputType(type)) {\n var typeStr = inspect(type);\n throw new Error(\"Introspection must provide input type for arguments, but received: \".concat(typeStr, \".\"));\n }\n\n var defaultValue = inputValueIntrospection.defaultValue != null ? valueFromAST(parseValue(inputValueIntrospection.defaultValue), type) : undefined;\n return {\n description: inputValueIntrospection.description,\n type: type,\n defaultValue: defaultValue,\n deprecationReason: inputValueIntrospection.deprecationReason\n };\n }\n\n function buildDirective(directiveIntrospection) {\n if (!directiveIntrospection.args) {\n var directiveIntrospectionStr = inspect(directiveIntrospection);\n throw new Error(\"Introspection result missing directive args: \".concat(directiveIntrospectionStr, \".\"));\n }\n\n if (!directiveIntrospection.locations) {\n var _directiveIntrospectionStr = inspect(directiveIntrospection);\n\n throw new Error(\"Introspection result missing directive locations: \".concat(_directiveIntrospectionStr, \".\"));\n }\n\n return new GraphQLDirective({\n name: directiveIntrospection.name,\n description: directiveIntrospection.description,\n isRepeatable: directiveIntrospection.isRepeatable,\n locations: directiveIntrospection.locations.slice(),\n args: buildInputValueDefMap(directiveIntrospection.args)\n });\n }\n}\n","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; }\n\nfunction _objectSpread(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; }\n\nfunction _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; }\n\nimport objectValues from \"../polyfills/objectValues.mjs\";\nimport keyMap from \"../jsutils/keyMap.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport mapValue from \"../jsutils/mapValue.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { TokenKind } from \"../language/tokenKind.mjs\";\nimport { dedentBlockStringValue } from \"../language/blockString.mjs\";\nimport { isTypeDefinitionNode, isTypeExtensionNode } from \"../language/predicates.mjs\";\nimport { assertValidSDLExtension } from \"../validation/validate.mjs\";\nimport { getDirectiveValues } from \"../execution/values.mjs\";\nimport { assertSchema, GraphQLSchema } from \"../type/schema.mjs\";\nimport { specifiedScalarTypes, isSpecifiedScalarType } from \"../type/scalars.mjs\";\nimport { introspectionTypes, isIntrospectionType } from \"../type/introspection.mjs\";\nimport { GraphQLDirective, GraphQLDeprecatedDirective, GraphQLSpecifiedByDirective } from \"../type/directives.mjs\";\nimport { isScalarType, isObjectType, isInterfaceType, isUnionType, isListType, isNonNullType, isEnumType, isInputObjectType, GraphQLList, GraphQLNonNull, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType } from \"../type/definition.mjs\";\nimport { valueFromAST } from \"./valueFromAST.mjs\";\n\n/**\n * Produces a new schema given an existing schema and a document which may\n * contain GraphQL type extensions and definitions. The original schema will\n * remain unaltered.\n *\n * Because a schema represents a graph of references, a schema cannot be\n * extended without effectively making an entire copy. We do not know until it's\n * too late if subgraphs remain unchanged.\n *\n * This algorithm copies the provided schema, applying extensions while\n * producing the copy. The original schema remains unaltered.\n *\n * Accepts options as a third argument:\n *\n * - commentDescriptions:\n * Provide true to use preceding comments as the description.\n *\n */\nexport function extendSchema(schema, documentAST, options) {\n assertSchema(schema);\n documentAST != null && documentAST.kind === Kind.DOCUMENT || devAssert(0, 'Must provide valid Document AST.');\n\n if ((options === null || options === void 0 ? void 0 : options.assumeValid) !== true && (options === null || options === void 0 ? void 0 : options.assumeValidSDL) !== true) {\n assertValidSDLExtension(documentAST, schema);\n }\n\n var schemaConfig = schema.toConfig();\n var extendedConfig = extendSchemaImpl(schemaConfig, documentAST, options);\n return schemaConfig === extendedConfig ? schema : new GraphQLSchema(extendedConfig);\n}\n/**\n * @internal\n */\n\nexport function extendSchemaImpl(schemaConfig, documentAST, options) {\n var _schemaDef, _schemaDef$descriptio, _schemaDef2, _options$assumeValid;\n\n // Collect the type definitions and extensions found in the document.\n var typeDefs = [];\n var typeExtensionsMap = Object.create(null); // New directives and types are separate because a directives and types can\n // have the same name. For example, a type named \"skip\".\n\n var directiveDefs = [];\n var schemaDef; // Schema extensions are collected which may add additional operation types.\n\n var schemaExtensions = [];\n\n for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {\n var def = _documentAST$definiti2[_i2];\n\n if (def.kind === Kind.SCHEMA_DEFINITION) {\n schemaDef = def;\n } else if (def.kind === Kind.SCHEMA_EXTENSION) {\n schemaExtensions.push(def);\n } else if (isTypeDefinitionNode(def)) {\n typeDefs.push(def);\n } else if (isTypeExtensionNode(def)) {\n var extendedTypeName = def.name.value;\n var existingTypeExtensions = typeExtensionsMap[extendedTypeName];\n typeExtensionsMap[extendedTypeName] = existingTypeExtensions ? existingTypeExtensions.concat([def]) : [def];\n } else if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n directiveDefs.push(def);\n }\n } // If this document contains no new types, extensions, or directives then\n // return the same unmodified GraphQLSchema instance.\n\n\n if (Object.keys(typeExtensionsMap).length === 0 && typeDefs.length === 0 && directiveDefs.length === 0 && schemaExtensions.length === 0 && schemaDef == null) {\n return schemaConfig;\n }\n\n var typeMap = Object.create(null);\n\n for (var _i4 = 0, _schemaConfig$types2 = schemaConfig.types; _i4 < _schemaConfig$types2.length; _i4++) {\n var existingType = _schemaConfig$types2[_i4];\n typeMap[existingType.name] = extendNamedType(existingType);\n }\n\n for (var _i6 = 0; _i6 < typeDefs.length; _i6++) {\n var _stdTypeMap$name;\n\n var typeNode = typeDefs[_i6];\n var name = typeNode.name.value;\n typeMap[name] = (_stdTypeMap$name = stdTypeMap[name]) !== null && _stdTypeMap$name !== void 0 ? _stdTypeMap$name : buildType(typeNode);\n }\n\n var operationTypes = _objectSpread(_objectSpread({\n // Get the extended root operation types.\n query: schemaConfig.query && replaceNamedType(schemaConfig.query),\n mutation: schemaConfig.mutation && replaceNamedType(schemaConfig.mutation),\n subscription: schemaConfig.subscription && replaceNamedType(schemaConfig.subscription)\n }, schemaDef && getOperationTypes([schemaDef])), getOperationTypes(schemaExtensions)); // Then produce and return a Schema config with these types.\n\n\n return _objectSpread(_objectSpread({\n description: (_schemaDef = schemaDef) === null || _schemaDef === void 0 ? void 0 : (_schemaDef$descriptio = _schemaDef.description) === null || _schemaDef$descriptio === void 0 ? void 0 : _schemaDef$descriptio.value\n }, operationTypes), {}, {\n types: objectValues(typeMap),\n directives: [].concat(schemaConfig.directives.map(replaceDirective), directiveDefs.map(buildDirective)),\n extensions: undefined,\n astNode: (_schemaDef2 = schemaDef) !== null && _schemaDef2 !== void 0 ? _schemaDef2 : schemaConfig.astNode,\n extensionASTNodes: schemaConfig.extensionASTNodes.concat(schemaExtensions),\n assumeValid: (_options$assumeValid = options === null || options === void 0 ? void 0 : options.assumeValid) !== null && _options$assumeValid !== void 0 ? _options$assumeValid : false\n }); // Below are functions used for producing this schema that have closed over\n // this scope and have access to the schema, cache, and newly defined types.\n\n function replaceType(type) {\n if (isListType(type)) {\n // $FlowFixMe[incompatible-return]\n return new GraphQLList(replaceType(type.ofType));\n }\n\n if (isNonNullType(type)) {\n // $FlowFixMe[incompatible-return]\n return new GraphQLNonNull(replaceType(type.ofType));\n }\n\n return replaceNamedType(type);\n }\n\n function replaceNamedType(type) {\n // Note: While this could make early assertions to get the correctly\n // typed values, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable results.\n return typeMap[type.name];\n }\n\n function replaceDirective(directive) {\n var config = directive.toConfig();\n return new GraphQLDirective(_objectSpread(_objectSpread({}, config), {}, {\n args: mapValue(config.args, extendArg)\n }));\n }\n\n function extendNamedType(type) {\n if (isIntrospectionType(type) || isSpecifiedScalarType(type)) {\n // Builtin types are not extended.\n return type;\n }\n\n if (isScalarType(type)) {\n return extendScalarType(type);\n }\n\n if (isObjectType(type)) {\n return extendObjectType(type);\n }\n\n if (isInterfaceType(type)) {\n return extendInterfaceType(type);\n }\n\n if (isUnionType(type)) {\n return extendUnionType(type);\n }\n\n if (isEnumType(type)) {\n return extendEnumType(type);\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isInputObjectType(type)) {\n return extendInputObjectType(type);\n } // istanbul ignore next (Not reachable. All possible types have been considered)\n\n\n false || invariant(0, 'Unexpected type: ' + inspect(type));\n }\n\n function extendInputObjectType(type) {\n var _typeExtensionsMap$co;\n\n var config = type.toConfig();\n var extensions = (_typeExtensionsMap$co = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co !== void 0 ? _typeExtensionsMap$co : [];\n return new GraphQLInputObjectType(_objectSpread(_objectSpread({}, config), {}, {\n fields: function fields() {\n return _objectSpread(_objectSpread({}, mapValue(config.fields, function (field) {\n return _objectSpread(_objectSpread({}, field), {}, {\n type: replaceType(field.type)\n });\n })), buildInputFieldMap(extensions));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendEnumType(type) {\n var _typeExtensionsMap$ty;\n\n var config = type.toConfig();\n var extensions = (_typeExtensionsMap$ty = typeExtensionsMap[type.name]) !== null && _typeExtensionsMap$ty !== void 0 ? _typeExtensionsMap$ty : [];\n return new GraphQLEnumType(_objectSpread(_objectSpread({}, config), {}, {\n values: _objectSpread(_objectSpread({}, config.values), buildEnumValueMap(extensions)),\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendScalarType(type) {\n var _typeExtensionsMap$co2;\n\n var config = type.toConfig();\n var extensions = (_typeExtensionsMap$co2 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co2 !== void 0 ? _typeExtensionsMap$co2 : [];\n var specifiedByUrl = config.specifiedByUrl;\n\n for (var _i8 = 0; _i8 < extensions.length; _i8++) {\n var _getSpecifiedByUrl;\n\n var extensionNode = extensions[_i8];\n specifiedByUrl = (_getSpecifiedByUrl = getSpecifiedByUrl(extensionNode)) !== null && _getSpecifiedByUrl !== void 0 ? _getSpecifiedByUrl : specifiedByUrl;\n }\n\n return new GraphQLScalarType(_objectSpread(_objectSpread({}, config), {}, {\n specifiedByUrl: specifiedByUrl,\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendObjectType(type) {\n var _typeExtensionsMap$co3;\n\n var config = type.toConfig();\n var extensions = (_typeExtensionsMap$co3 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co3 !== void 0 ? _typeExtensionsMap$co3 : [];\n return new GraphQLObjectType(_objectSpread(_objectSpread({}, config), {}, {\n interfaces: function interfaces() {\n return [].concat(type.getInterfaces().map(replaceNamedType), buildInterfaces(extensions));\n },\n fields: function fields() {\n return _objectSpread(_objectSpread({}, mapValue(config.fields, extendField)), buildFieldMap(extensions));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendInterfaceType(type) {\n var _typeExtensionsMap$co4;\n\n var config = type.toConfig();\n var extensions = (_typeExtensionsMap$co4 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co4 !== void 0 ? _typeExtensionsMap$co4 : [];\n return new GraphQLInterfaceType(_objectSpread(_objectSpread({}, config), {}, {\n interfaces: function interfaces() {\n return [].concat(type.getInterfaces().map(replaceNamedType), buildInterfaces(extensions));\n },\n fields: function fields() {\n return _objectSpread(_objectSpread({}, mapValue(config.fields, extendField)), buildFieldMap(extensions));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendUnionType(type) {\n var _typeExtensionsMap$co5;\n\n var config = type.toConfig();\n var extensions = (_typeExtensionsMap$co5 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co5 !== void 0 ? _typeExtensionsMap$co5 : [];\n return new GraphQLUnionType(_objectSpread(_objectSpread({}, config), {}, {\n types: function types() {\n return [].concat(type.getTypes().map(replaceNamedType), buildUnionTypes(extensions));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendField(field) {\n return _objectSpread(_objectSpread({}, field), {}, {\n type: replaceType(field.type),\n // $FlowFixMe[incompatible-call]\n args: mapValue(field.args, extendArg)\n });\n }\n\n function extendArg(arg) {\n return _objectSpread(_objectSpread({}, arg), {}, {\n type: replaceType(arg.type)\n });\n }\n\n function getOperationTypes(nodes) {\n var opTypes = {};\n\n for (var _i10 = 0; _i10 < nodes.length; _i10++) {\n var _node$operationTypes;\n\n var node = nodes[_i10];\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n var operationTypesNodes = (_node$operationTypes = node.operationTypes) !== null && _node$operationTypes !== void 0 ? _node$operationTypes : [];\n\n for (var _i12 = 0; _i12 < operationTypesNodes.length; _i12++) {\n var operationType = operationTypesNodes[_i12];\n opTypes[operationType.operation] = getNamedType(operationType.type);\n }\n } // Note: While this could make early assertions to get the correctly\n // typed values below, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable results.\n\n\n return opTypes;\n }\n\n function getNamedType(node) {\n var _stdTypeMap$name2;\n\n var name = node.name.value;\n var type = (_stdTypeMap$name2 = stdTypeMap[name]) !== null && _stdTypeMap$name2 !== void 0 ? _stdTypeMap$name2 : typeMap[name];\n\n if (type === undefined) {\n throw new Error(\"Unknown type: \\\"\".concat(name, \"\\\".\"));\n }\n\n return type;\n }\n\n function getWrappedType(node) {\n if (node.kind === Kind.LIST_TYPE) {\n return new GraphQLList(getWrappedType(node.type));\n }\n\n if (node.kind === Kind.NON_NULL_TYPE) {\n return new GraphQLNonNull(getWrappedType(node.type));\n }\n\n return getNamedType(node);\n }\n\n function buildDirective(node) {\n var locations = node.locations.map(function (_ref) {\n var value = _ref.value;\n return value;\n });\n return new GraphQLDirective({\n name: node.name.value,\n description: getDescription(node, options),\n locations: locations,\n isRepeatable: node.repeatable,\n args: buildArgumentMap(node.arguments),\n astNode: node\n });\n }\n\n function buildFieldMap(nodes) {\n var fieldConfigMap = Object.create(null);\n\n for (var _i14 = 0; _i14 < nodes.length; _i14++) {\n var _node$fields;\n\n var node = nodes[_i14];\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n var nodeFields = (_node$fields = node.fields) !== null && _node$fields !== void 0 ? _node$fields : [];\n\n for (var _i16 = 0; _i16 < nodeFields.length; _i16++) {\n var field = nodeFields[_i16];\n fieldConfigMap[field.name.value] = {\n // Note: While this could make assertions to get the correctly typed\n // value, that would throw immediately while type system validation\n // with validateSchema() will produce more actionable results.\n type: getWrappedType(field.type),\n description: getDescription(field, options),\n args: buildArgumentMap(field.arguments),\n deprecationReason: getDeprecationReason(field),\n astNode: field\n };\n }\n }\n\n return fieldConfigMap;\n }\n\n function buildArgumentMap(args) {\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n var argsNodes = args !== null && args !== void 0 ? args : [];\n var argConfigMap = Object.create(null);\n\n for (var _i18 = 0; _i18 < argsNodes.length; _i18++) {\n var arg = argsNodes[_i18];\n // Note: While this could make assertions to get the correctly typed\n // value, that would throw immediately while type system validation\n // with validateSchema() will produce more actionable results.\n var type = getWrappedType(arg.type);\n argConfigMap[arg.name.value] = {\n type: type,\n description: getDescription(arg, options),\n defaultValue: valueFromAST(arg.defaultValue, type),\n deprecationReason: getDeprecationReason(arg),\n astNode: arg\n };\n }\n\n return argConfigMap;\n }\n\n function buildInputFieldMap(nodes) {\n var inputFieldMap = Object.create(null);\n\n for (var _i20 = 0; _i20 < nodes.length; _i20++) {\n var _node$fields2;\n\n var node = nodes[_i20];\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n var fieldsNodes = (_node$fields2 = node.fields) !== null && _node$fields2 !== void 0 ? _node$fields2 : [];\n\n for (var _i22 = 0; _i22 < fieldsNodes.length; _i22++) {\n var field = fieldsNodes[_i22];\n // Note: While this could make assertions to get the correctly typed\n // value, that would throw immediately while type system validation\n // with validateSchema() will produce more actionable results.\n var type = getWrappedType(field.type);\n inputFieldMap[field.name.value] = {\n type: type,\n description: getDescription(field, options),\n defaultValue: valueFromAST(field.defaultValue, type),\n deprecationReason: getDeprecationReason(field),\n astNode: field\n };\n }\n }\n\n return inputFieldMap;\n }\n\n function buildEnumValueMap(nodes) {\n var enumValueMap = Object.create(null);\n\n for (var _i24 = 0; _i24 < nodes.length; _i24++) {\n var _node$values;\n\n var node = nodes[_i24];\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n var valuesNodes = (_node$values = node.values) !== null && _node$values !== void 0 ? _node$values : [];\n\n for (var _i26 = 0; _i26 < valuesNodes.length; _i26++) {\n var value = valuesNodes[_i26];\n enumValueMap[value.name.value] = {\n description: getDescription(value, options),\n deprecationReason: getDeprecationReason(value),\n astNode: value\n };\n }\n }\n\n return enumValueMap;\n }\n\n function buildInterfaces(nodes) {\n var interfaces = [];\n\n for (var _i28 = 0; _i28 < nodes.length; _i28++) {\n var _node$interfaces;\n\n var node = nodes[_i28];\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n var interfacesNodes = (_node$interfaces = node.interfaces) !== null && _node$interfaces !== void 0 ? _node$interfaces : [];\n\n for (var _i30 = 0; _i30 < interfacesNodes.length; _i30++) {\n var type = interfacesNodes[_i30];\n // Note: While this could make assertions to get the correctly typed\n // values below, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable\n // results.\n interfaces.push(getNamedType(type));\n }\n }\n\n return interfaces;\n }\n\n function buildUnionTypes(nodes) {\n var types = [];\n\n for (var _i32 = 0; _i32 < nodes.length; _i32++) {\n var _node$types;\n\n var node = nodes[_i32];\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n var typeNodes = (_node$types = node.types) !== null && _node$types !== void 0 ? _node$types : [];\n\n for (var _i34 = 0; _i34 < typeNodes.length; _i34++) {\n var type = typeNodes[_i34];\n // Note: While this could make assertions to get the correctly typed\n // values below, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable\n // results.\n types.push(getNamedType(type));\n }\n }\n\n return types;\n }\n\n function buildType(astNode) {\n var _typeExtensionsMap$na;\n\n var name = astNode.name.value;\n var description = getDescription(astNode, options);\n var extensionNodes = (_typeExtensionsMap$na = typeExtensionsMap[name]) !== null && _typeExtensionsMap$na !== void 0 ? _typeExtensionsMap$na : [];\n\n switch (astNode.kind) {\n case Kind.OBJECT_TYPE_DEFINITION:\n {\n var extensionASTNodes = extensionNodes;\n var allNodes = [astNode].concat(extensionASTNodes);\n return new GraphQLObjectType({\n name: name,\n description: description,\n interfaces: function interfaces() {\n return buildInterfaces(allNodes);\n },\n fields: function fields() {\n return buildFieldMap(allNodes);\n },\n astNode: astNode,\n extensionASTNodes: extensionASTNodes\n });\n }\n\n case Kind.INTERFACE_TYPE_DEFINITION:\n {\n var _extensionASTNodes = extensionNodes;\n\n var _allNodes = [astNode].concat(_extensionASTNodes);\n\n return new GraphQLInterfaceType({\n name: name,\n description: description,\n interfaces: function interfaces() {\n return buildInterfaces(_allNodes);\n },\n fields: function fields() {\n return buildFieldMap(_allNodes);\n },\n astNode: astNode,\n extensionASTNodes: _extensionASTNodes\n });\n }\n\n case Kind.ENUM_TYPE_DEFINITION:\n {\n var _extensionASTNodes2 = extensionNodes;\n\n var _allNodes2 = [astNode].concat(_extensionASTNodes2);\n\n return new GraphQLEnumType({\n name: name,\n description: description,\n values: buildEnumValueMap(_allNodes2),\n astNode: astNode,\n extensionASTNodes: _extensionASTNodes2\n });\n }\n\n case Kind.UNION_TYPE_DEFINITION:\n {\n var _extensionASTNodes3 = extensionNodes;\n\n var _allNodes3 = [astNode].concat(_extensionASTNodes3);\n\n return new GraphQLUnionType({\n name: name,\n description: description,\n types: function types() {\n return buildUnionTypes(_allNodes3);\n },\n astNode: astNode,\n extensionASTNodes: _extensionASTNodes3\n });\n }\n\n case Kind.SCALAR_TYPE_DEFINITION:\n {\n var _extensionASTNodes4 = extensionNodes;\n return new GraphQLScalarType({\n name: name,\n description: description,\n specifiedByUrl: getSpecifiedByUrl(astNode),\n astNode: astNode,\n extensionASTNodes: _extensionASTNodes4\n });\n }\n\n case Kind.INPUT_OBJECT_TYPE_DEFINITION:\n {\n var _extensionASTNodes5 = extensionNodes;\n\n var _allNodes4 = [astNode].concat(_extensionASTNodes5);\n\n return new GraphQLInputObjectType({\n name: name,\n description: description,\n fields: function fields() {\n return buildInputFieldMap(_allNodes4);\n },\n astNode: astNode,\n extensionASTNodes: _extensionASTNodes5\n });\n }\n } // istanbul ignore next (Not reachable. All possible type definition nodes have been considered)\n\n\n false || invariant(0, 'Unexpected type definition node: ' + inspect(astNode));\n }\n}\nvar stdTypeMap = keyMap(specifiedScalarTypes.concat(introspectionTypes), function (type) {\n return type.name;\n});\n/**\n * Given a field or enum value node, returns the string value for the\n * deprecation reason.\n */\n\nfunction getDeprecationReason(node) {\n var deprecated = getDirectiveValues(GraphQLDeprecatedDirective, node);\n return deprecated === null || deprecated === void 0 ? void 0 : deprecated.reason;\n}\n/**\n * Given a scalar node, returns the string value for the specifiedByUrl.\n */\n\n\nfunction getSpecifiedByUrl(node) {\n var specifiedBy = getDirectiveValues(GraphQLSpecifiedByDirective, node);\n return specifiedBy === null || specifiedBy === void 0 ? void 0 : specifiedBy.url;\n}\n/**\n * Given an ast node, returns its string description.\n * @deprecated: provided to ease adoption and will be removed in v16.\n *\n * Accepts options as a second argument:\n *\n * - commentDescriptions:\n * Provide true to use preceding comments as the description.\n *\n */\n\n\nexport function getDescription(node, options) {\n if (node.description) {\n return node.description.value;\n }\n\n if ((options === null || options === void 0 ? void 0 : options.commentDescriptions) === true) {\n var rawValue = getLeadingCommentBlock(node);\n\n if (rawValue !== undefined) {\n return dedentBlockStringValue('\\n' + rawValue);\n }\n }\n}\n\nfunction getLeadingCommentBlock(node) {\n var loc = node.loc;\n\n if (!loc) {\n return;\n }\n\n var comments = [];\n var token = loc.startToken.prev;\n\n while (token != null && token.kind === TokenKind.COMMENT && token.next && token.prev && token.line + 1 === token.next.line && token.line !== token.prev.line) {\n var value = String(token.value);\n comments.push(value);\n token = token.prev;\n }\n\n return comments.length > 0 ? comments.reverse().join('\\n') : undefined;\n}\n","import devAssert from \"../jsutils/devAssert.mjs\";\nimport { Kind } from \"../language/kinds.mjs\";\nimport { parse } from \"../language/parser.mjs\";\nimport { assertValidSDL } from \"../validation/validate.mjs\";\nimport { GraphQLSchema } from \"../type/schema.mjs\";\nimport { specifiedDirectives } from \"../type/directives.mjs\";\nimport { extendSchemaImpl } from \"./extendSchema.mjs\";\n\n/**\n * This takes the ast of a schema document produced by the parse function in\n * src/language/parser.js.\n *\n * If no schema definition is provided, then it will look for types named Query\n * and Mutation.\n *\n * Given that AST it constructs a GraphQLSchema. The resulting schema\n * has no resolve methods, so execution will use default resolvers.\n *\n * Accepts options as a second argument:\n *\n * - commentDescriptions:\n * Provide true to use preceding comments as the description.\n *\n */\nexport function buildASTSchema(documentAST, options) {\n documentAST != null && documentAST.kind === Kind.DOCUMENT || devAssert(0, 'Must provide valid Document AST.');\n\n if ((options === null || options === void 0 ? void 0 : options.assumeValid) !== true && (options === null || options === void 0 ? void 0 : options.assumeValidSDL) !== true) {\n assertValidSDL(documentAST);\n }\n\n var emptySchemaConfig = {\n description: undefined,\n types: [],\n directives: [],\n extensions: undefined,\n extensionASTNodes: [],\n assumeValid: false\n };\n var config = extendSchemaImpl(emptySchemaConfig, documentAST, options);\n\n if (config.astNode == null) {\n for (var _i2 = 0, _config$types2 = config.types; _i2 < _config$types2.length; _i2++) {\n var type = _config$types2[_i2];\n\n switch (type.name) {\n // Note: While this could make early assertions to get the correctly\n // typed values below, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable results.\n case 'Query':\n config.query = type;\n break;\n\n case 'Mutation':\n config.mutation = type;\n break;\n\n case 'Subscription':\n config.subscription = type;\n break;\n }\n }\n }\n\n var directives = config.directives; // If specified directives were not explicitly declared, add them.\n\n var _loop = function _loop(_i4) {\n var stdDirective = specifiedDirectives[_i4];\n\n if (directives.every(function (directive) {\n return directive.name !== stdDirective.name;\n })) {\n directives.push(stdDirective);\n }\n };\n\n for (var _i4 = 0; _i4 < specifiedDirectives.length; _i4++) {\n _loop(_i4);\n }\n\n return new GraphQLSchema(config);\n}\n/**\n * A helper function to build a GraphQLSchema directly from a source\n * document.\n */\n\nexport function buildSchema(source, options) {\n var document = parse(source, {\n noLocation: options === null || options === void 0 ? void 0 : options.noLocation,\n allowLegacySDLEmptyFields: options === null || options === void 0 ? void 0 : options.allowLegacySDLEmptyFields,\n allowLegacySDLImplementsInterfaces: options === null || options === void 0 ? void 0 : options.allowLegacySDLImplementsInterfaces,\n experimentalFragmentVariables: options === null || options === void 0 ? void 0 : options.experimentalFragmentVariables\n });\n return buildASTSchema(document, {\n commentDescriptions: options === null || options === void 0 ? void 0 : options.commentDescriptions,\n assumeValidSDL: options === null || options === void 0 ? void 0 : options.assumeValidSDL,\n assumeValid: options === null || options === void 0 ? void 0 : options.assumeValid\n });\n}\n","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; }\n\nfunction _objectSpread(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; }\n\nfunction _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; }\n\nimport objectValues from \"../polyfills/objectValues.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport keyValMap from \"../jsutils/keyValMap.mjs\";\nimport naturalCompare from \"../jsutils/naturalCompare.mjs\";\nimport { GraphQLSchema } from \"../type/schema.mjs\";\nimport { GraphQLDirective } from \"../type/directives.mjs\";\nimport { isIntrospectionType } from \"../type/introspection.mjs\";\nimport { GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, isListType, isNonNullType, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from \"../type/definition.mjs\";\n/**\n * Sort GraphQLSchema.\n *\n * This function returns a sorted copy of the given GraphQLSchema.\n */\n\nexport function lexicographicSortSchema(schema) {\n var schemaConfig = schema.toConfig();\n var typeMap = keyValMap(sortByName(schemaConfig.types), function (type) {\n return type.name;\n }, sortNamedType);\n return new GraphQLSchema(_objectSpread(_objectSpread({}, schemaConfig), {}, {\n types: objectValues(typeMap),\n directives: sortByName(schemaConfig.directives).map(sortDirective),\n query: replaceMaybeType(schemaConfig.query),\n mutation: replaceMaybeType(schemaConfig.mutation),\n subscription: replaceMaybeType(schemaConfig.subscription)\n }));\n\n function replaceType(type) {\n if (isListType(type)) {\n // $FlowFixMe[incompatible-return]\n return new GraphQLList(replaceType(type.ofType));\n } else if (isNonNullType(type)) {\n // $FlowFixMe[incompatible-return]\n return new GraphQLNonNull(replaceType(type.ofType));\n }\n\n return replaceNamedType(type);\n }\n\n function replaceNamedType(type) {\n return typeMap[type.name];\n }\n\n function replaceMaybeType(maybeType) {\n return maybeType && replaceNamedType(maybeType);\n }\n\n function sortDirective(directive) {\n var config = directive.toConfig();\n return new GraphQLDirective(_objectSpread(_objectSpread({}, config), {}, {\n locations: sortBy(config.locations, function (x) {\n return x;\n }),\n args: sortArgs(config.args)\n }));\n }\n\n function sortArgs(args) {\n return sortObjMap(args, function (arg) {\n return _objectSpread(_objectSpread({}, arg), {}, {\n type: replaceType(arg.type)\n });\n });\n }\n\n function sortFields(fieldsMap) {\n return sortObjMap(fieldsMap, function (field) {\n return _objectSpread(_objectSpread({}, field), {}, {\n type: replaceType(field.type),\n args: sortArgs(field.args)\n });\n });\n }\n\n function sortInputFields(fieldsMap) {\n return sortObjMap(fieldsMap, function (field) {\n return _objectSpread(_objectSpread({}, field), {}, {\n type: replaceType(field.type)\n });\n });\n }\n\n function sortTypes(arr) {\n return sortByName(arr).map(replaceNamedType);\n }\n\n function sortNamedType(type) {\n if (isScalarType(type) || isIntrospectionType(type)) {\n return type;\n }\n\n if (isObjectType(type)) {\n var config = type.toConfig();\n return new GraphQLObjectType(_objectSpread(_objectSpread({}, config), {}, {\n interfaces: function interfaces() {\n return sortTypes(config.interfaces);\n },\n fields: function fields() {\n return sortFields(config.fields);\n }\n }));\n }\n\n if (isInterfaceType(type)) {\n var _config = type.toConfig();\n\n return new GraphQLInterfaceType(_objectSpread(_objectSpread({}, _config), {}, {\n interfaces: function interfaces() {\n return sortTypes(_config.interfaces);\n },\n fields: function fields() {\n return sortFields(_config.fields);\n }\n }));\n }\n\n if (isUnionType(type)) {\n var _config2 = type.toConfig();\n\n return new GraphQLUnionType(_objectSpread(_objectSpread({}, _config2), {}, {\n types: function types() {\n return sortTypes(_config2.types);\n }\n }));\n }\n\n if (isEnumType(type)) {\n var _config3 = type.toConfig();\n\n return new GraphQLEnumType(_objectSpread(_objectSpread({}, _config3), {}, {\n values: sortObjMap(_config3.values)\n }));\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isInputObjectType(type)) {\n var _config4 = type.toConfig();\n\n return new GraphQLInputObjectType(_objectSpread(_objectSpread({}, _config4), {}, {\n fields: function fields() {\n return sortInputFields(_config4.fields);\n }\n }));\n } // istanbul ignore next (Not reachable. All possible types have been considered)\n\n\n false || invariant(0, 'Unexpected type: ' + inspect(type));\n }\n}\n\nfunction sortObjMap(map, sortValueFn) {\n var sortedMap = Object.create(null);\n var sortedKeys = sortBy(Object.keys(map), function (x) {\n return x;\n });\n\n for (var _i2 = 0; _i2 < sortedKeys.length; _i2++) {\n var key = sortedKeys[_i2];\n var value = map[key];\n sortedMap[key] = sortValueFn ? sortValueFn(value) : value;\n }\n\n return sortedMap;\n}\n\nfunction sortByName(array) {\n return sortBy(array, function (obj) {\n return obj.name;\n });\n}\n\nfunction sortBy(array, mapToKey) {\n return array.slice().sort(function (obj1, obj2) {\n var key1 = mapToKey(obj1);\n var key2 = mapToKey(obj2);\n return naturalCompare(key1, key2);\n });\n}\n","import objectValues from \"../polyfills/objectValues.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport { print } from \"../language/printer.mjs\";\nimport { printBlockString } from \"../language/blockString.mjs\";\nimport { isIntrospectionType } from \"../type/introspection.mjs\";\nimport { GraphQLString, isSpecifiedScalarType } from \"../type/scalars.mjs\";\nimport { DEFAULT_DEPRECATION_REASON, isSpecifiedDirective } from \"../type/directives.mjs\";\nimport { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from \"../type/definition.mjs\";\nimport { astFromValue } from \"./astFromValue.mjs\";\n\n/**\n * Accepts options as a second argument:\n *\n * - commentDescriptions:\n * Provide true to use preceding comments as the description.\n *\n */\nexport function printSchema(schema, options) {\n return printFilteredSchema(schema, function (n) {\n return !isSpecifiedDirective(n);\n }, isDefinedType, options);\n}\nexport function printIntrospectionSchema(schema, options) {\n return printFilteredSchema(schema, isSpecifiedDirective, isIntrospectionType, options);\n}\n\nfunction isDefinedType(type) {\n return !isSpecifiedScalarType(type) && !isIntrospectionType(type);\n}\n\nfunction printFilteredSchema(schema, directiveFilter, typeFilter, options) {\n var directives = schema.getDirectives().filter(directiveFilter);\n var types = objectValues(schema.getTypeMap()).filter(typeFilter);\n return [printSchemaDefinition(schema)].concat(directives.map(function (directive) {\n return printDirective(directive, options);\n }), types.map(function (type) {\n return printType(type, options);\n })).filter(Boolean).join('\\n\\n') + '\\n';\n}\n\nfunction printSchemaDefinition(schema) {\n if (schema.description == null && isSchemaOfCommonNames(schema)) {\n return;\n }\n\n var operationTypes = [];\n var queryType = schema.getQueryType();\n\n if (queryType) {\n operationTypes.push(\" query: \".concat(queryType.name));\n }\n\n var mutationType = schema.getMutationType();\n\n if (mutationType) {\n operationTypes.push(\" mutation: \".concat(mutationType.name));\n }\n\n var subscriptionType = schema.getSubscriptionType();\n\n if (subscriptionType) {\n operationTypes.push(\" subscription: \".concat(subscriptionType.name));\n }\n\n return printDescription({}, schema) + \"schema {\\n\".concat(operationTypes.join('\\n'), \"\\n}\");\n}\n/**\n * GraphQL schema define root types for each type of operation. These types are\n * the same as any other type and can be named in any manner, however there is\n * a common naming convention:\n *\n * schema {\n * query: Query\n * mutation: Mutation\n * }\n *\n * When using this naming convention, the schema description can be omitted.\n */\n\n\nfunction isSchemaOfCommonNames(schema) {\n var queryType = schema.getQueryType();\n\n if (queryType && queryType.name !== 'Query') {\n return false;\n }\n\n var mutationType = schema.getMutationType();\n\n if (mutationType && mutationType.name !== 'Mutation') {\n return false;\n }\n\n var subscriptionType = schema.getSubscriptionType();\n\n if (subscriptionType && subscriptionType.name !== 'Subscription') {\n return false;\n }\n\n return true;\n}\n\nexport function printType(type, options) {\n if (isScalarType(type)) {\n return printScalar(type, options);\n }\n\n if (isObjectType(type)) {\n return printObject(type, options);\n }\n\n if (isInterfaceType(type)) {\n return printInterface(type, options);\n }\n\n if (isUnionType(type)) {\n return printUnion(type, options);\n }\n\n if (isEnumType(type)) {\n return printEnum(type, options);\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isInputObjectType(type)) {\n return printInputObject(type, options);\n } // istanbul ignore next (Not reachable. All possible types have been considered)\n\n\n false || invariant(0, 'Unexpected type: ' + inspect(type));\n}\n\nfunction printScalar(type, options) {\n return printDescription(options, type) + \"scalar \".concat(type.name) + printSpecifiedByUrl(type);\n}\n\nfunction printImplementedInterfaces(type) {\n var interfaces = type.getInterfaces();\n return interfaces.length ? ' implements ' + interfaces.map(function (i) {\n return i.name;\n }).join(' & ') : '';\n}\n\nfunction printObject(type, options) {\n return printDescription(options, type) + \"type \".concat(type.name) + printImplementedInterfaces(type) + printFields(options, type);\n}\n\nfunction printInterface(type, options) {\n return printDescription(options, type) + \"interface \".concat(type.name) + printImplementedInterfaces(type) + printFields(options, type);\n}\n\nfunction printUnion(type, options) {\n var types = type.getTypes();\n var possibleTypes = types.length ? ' = ' + types.join(' | ') : '';\n return printDescription(options, type) + 'union ' + type.name + possibleTypes;\n}\n\nfunction printEnum(type, options) {\n var values = type.getValues().map(function (value, i) {\n return printDescription(options, value, ' ', !i) + ' ' + value.name + printDeprecated(value.deprecationReason);\n });\n return printDescription(options, type) + \"enum \".concat(type.name) + printBlock(values);\n}\n\nfunction printInputObject(type, options) {\n var fields = objectValues(type.getFields()).map(function (f, i) {\n return printDescription(options, f, ' ', !i) + ' ' + printInputValue(f);\n });\n return printDescription(options, type) + \"input \".concat(type.name) + printBlock(fields);\n}\n\nfunction printFields(options, type) {\n var fields = objectValues(type.getFields()).map(function (f, i) {\n return printDescription(options, f, ' ', !i) + ' ' + f.name + printArgs(options, f.args, ' ') + ': ' + String(f.type) + printDeprecated(f.deprecationReason);\n });\n return printBlock(fields);\n}\n\nfunction printBlock(items) {\n return items.length !== 0 ? ' {\\n' + items.join('\\n') + '\\n}' : '';\n}\n\nfunction printArgs(options, args) {\n var indentation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n\n if (args.length === 0) {\n return '';\n } // If every arg does not have a description, print them on one line.\n\n\n if (args.every(function (arg) {\n return !arg.description;\n })) {\n return '(' + args.map(printInputValue).join(', ') + ')';\n }\n\n return '(\\n' + args.map(function (arg, i) {\n return printDescription(options, arg, ' ' + indentation, !i) + ' ' + indentation + printInputValue(arg);\n }).join('\\n') + '\\n' + indentation + ')';\n}\n\nfunction printInputValue(arg) {\n var defaultAST = astFromValue(arg.defaultValue, arg.type);\n var argDecl = arg.name + ': ' + String(arg.type);\n\n if (defaultAST) {\n argDecl += \" = \".concat(print(defaultAST));\n }\n\n return argDecl + printDeprecated(arg.deprecationReason);\n}\n\nfunction printDirective(directive, options) {\n return printDescription(options, directive) + 'directive @' + directive.name + printArgs(options, directive.args) + (directive.isRepeatable ? ' repeatable' : '') + ' on ' + directive.locations.join(' | ');\n}\n\nfunction printDeprecated(reason) {\n if (reason == null) {\n return '';\n }\n\n var reasonAST = astFromValue(reason, GraphQLString);\n\n if (reasonAST && reason !== DEFAULT_DEPRECATION_REASON) {\n return ' @deprecated(reason: ' + print(reasonAST) + ')';\n }\n\n return ' @deprecated';\n}\n\nfunction printSpecifiedByUrl(scalar) {\n if (scalar.specifiedByUrl == null) {\n return '';\n }\n\n var url = scalar.specifiedByUrl;\n var urlAST = astFromValue(url, GraphQLString);\n urlAST || invariant(0, 'Unexpected null value returned from `astFromValue` for specifiedByUrl');\n return ' @specifiedBy(url: ' + print(urlAST) + ')';\n}\n\nfunction printDescription(options, def) {\n var indentation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var firstInBlock = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var description = def.description;\n\n if (description == null) {\n return '';\n }\n\n if ((options === null || options === void 0 ? void 0 : options.commentDescriptions) === true) {\n return printDescriptionWithComments(description, indentation, firstInBlock);\n }\n\n var preferMultipleLines = description.length > 70;\n var blockString = printBlockString(description, '', preferMultipleLines);\n var prefix = indentation && !firstInBlock ? '\\n' + indentation : indentation;\n return prefix + blockString.replace(/\\n/g, '\\n' + indentation) + '\\n';\n}\n\nfunction printDescriptionWithComments(description, indentation, firstInBlock) {\n var prefix = indentation && !firstInBlock ? '\\n' : '';\n var comment = description.split('\\n').map(function (line) {\n return indentation + (line !== '' ? '# ' + line : '#');\n }).join('\\n');\n return prefix + comment + '\\n';\n}\n","/**\n * Provided a collection of ASTs, presumably each from different files,\n * concatenate the ASTs together into batched AST, useful for validating many\n * GraphQL source files which together represent one conceptual application.\n */\nexport function concatAST(documents) {\n var definitions = [];\n\n for (var _i2 = 0; _i2 < documents.length; _i2++) {\n var doc = documents[_i2];\n definitions = definitions.concat(doc.definitions);\n }\n\n return {\n kind: 'Document',\n definitions: definitions\n };\n}\n","import { Kind } from \"../language/kinds.mjs\";\nimport { visit } from \"../language/visitor.mjs\";\n/**\n * separateOperations accepts a single AST document which may contain many\n * operations and fragments and returns a collection of AST documents each of\n * which contains a single operation as well the fragment definitions it\n * refers to.\n */\n\nexport function separateOperations(documentAST) {\n var operations = [];\n var depGraph = Object.create(null); // Populate metadata and build a dependency graph.\n\n for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {\n var definitionNode = _documentAST$definiti2[_i2];\n\n switch (definitionNode.kind) {\n case Kind.OPERATION_DEFINITION:\n operations.push(definitionNode);\n break;\n\n case Kind.FRAGMENT_DEFINITION:\n depGraph[definitionNode.name.value] = collectDependencies(definitionNode.selectionSet);\n break;\n }\n } // For each operation, produce a new synthesized AST which includes only what\n // is necessary for completing that operation.\n\n\n var separatedDocumentASTs = Object.create(null);\n\n var _loop = function _loop(_i4) {\n var operation = operations[_i4];\n var dependencies = new Set();\n\n for (var _i6 = 0, _collectDependencies2 = collectDependencies(operation.selectionSet); _i6 < _collectDependencies2.length; _i6++) {\n var fragmentName = _collectDependencies2[_i6];\n collectTransitiveDependencies(dependencies, depGraph, fragmentName);\n } // Provides the empty string for anonymous operations.\n\n\n var operationName = operation.name ? operation.name.value : ''; // The list of definition nodes to be included for this operation, sorted\n // to retain the same order as the original document.\n\n separatedDocumentASTs[operationName] = {\n kind: Kind.DOCUMENT,\n definitions: documentAST.definitions.filter(function (node) {\n return node === operation || node.kind === Kind.FRAGMENT_DEFINITION && dependencies.has(node.name.value);\n })\n };\n };\n\n for (var _i4 = 0; _i4 < operations.length; _i4++) {\n _loop(_i4);\n }\n\n return separatedDocumentASTs;\n}\n\n// From a dependency graph, collects a list of transitive dependencies by\n// recursing through a dependency graph.\nfunction collectTransitiveDependencies(collected, depGraph, fromName) {\n if (!collected.has(fromName)) {\n collected.add(fromName);\n var immediateDeps = depGraph[fromName];\n\n if (immediateDeps !== undefined) {\n for (var _i8 = 0; _i8 < immediateDeps.length; _i8++) {\n var toName = immediateDeps[_i8];\n collectTransitiveDependencies(collected, depGraph, toName);\n }\n }\n }\n}\n\nfunction collectDependencies(selectionSet) {\n var dependencies = [];\n visit(selectionSet, {\n FragmentSpread: function FragmentSpread(node) {\n dependencies.push(node.name.value);\n }\n });\n return dependencies;\n}\n","import { Source, isSource } from \"../language/source.mjs\";\nimport { TokenKind } from \"../language/tokenKind.mjs\";\nimport { Lexer, isPunctuatorTokenKind } from \"../language/lexer.mjs\";\nimport { dedentBlockStringValue, getBlockStringIndentation } from \"../language/blockString.mjs\";\n/**\n * Strips characters that are not significant to the validity or execution\n * of a GraphQL document:\n * - UnicodeBOM\n * - WhiteSpace\n * - LineTerminator\n * - Comment\n * - Comma\n * - BlockString indentation\n *\n * Note: It is required to have a delimiter character between neighboring\n * non-punctuator tokens and this function always uses single space as delimiter.\n *\n * It is guaranteed that both input and output documents if parsed would result\n * in the exact same AST except for nodes location.\n *\n * Warning: It is guaranteed that this function will always produce stable results.\n * However, it's not guaranteed that it will stay the same between different\n * releases due to bugfixes or changes in the GraphQL specification.\n *\n * Query example:\n *\n * query SomeQuery($foo: String!, $bar: String) {\n * someField(foo: $foo, bar: $bar) {\n * a\n * b {\n * c\n * d\n * }\n * }\n * }\n *\n * Becomes:\n *\n * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}\n *\n * SDL example:\n *\n * \"\"\"\n * Type description\n * \"\"\"\n * type Foo {\n * \"\"\"\n * Field description\n * \"\"\"\n * bar: String\n * }\n *\n * Becomes:\n *\n * \"\"\"Type description\"\"\" type Foo{\"\"\"Field description\"\"\" bar:String}\n */\n\nexport function stripIgnoredCharacters(source) {\n var sourceObj = isSource(source) ? source : new Source(source);\n var body = sourceObj.body;\n var lexer = new Lexer(sourceObj);\n var strippedBody = '';\n var wasLastAddedTokenNonPunctuator = false;\n\n while (lexer.advance().kind !== TokenKind.EOF) {\n var currentToken = lexer.token;\n var tokenKind = currentToken.kind;\n /**\n * Every two non-punctuator tokens should have space between them.\n * Also prevent case of non-punctuator token following by spread resulting\n * in invalid token (e.g. `1...` is invalid Float token).\n */\n\n var isNonPunctuator = !isPunctuatorTokenKind(currentToken.kind);\n\n if (wasLastAddedTokenNonPunctuator) {\n if (isNonPunctuator || currentToken.kind === TokenKind.SPREAD) {\n strippedBody += ' ';\n }\n }\n\n var tokenBody = body.slice(currentToken.start, currentToken.end);\n\n if (tokenKind === TokenKind.BLOCK_STRING) {\n strippedBody += dedentBlockString(tokenBody);\n } else {\n strippedBody += tokenBody;\n }\n\n wasLastAddedTokenNonPunctuator = isNonPunctuator;\n }\n\n return strippedBody;\n}\n\nfunction dedentBlockString(blockStr) {\n // skip leading and trailing triple quotations\n var rawStr = blockStr.slice(3, -3);\n var body = dedentBlockStringValue(rawStr);\n\n if (getBlockStringIndentation(body) > 0) {\n body = '\\n' + body;\n }\n\n var lastChar = body[body.length - 1];\n var hasTrailingQuote = lastChar === '\"' && body.slice(-4) !== '\\\\\"\"\"';\n\n if (hasTrailingQuote || lastChar === '\\\\') {\n body += '\\n';\n }\n\n return '\"\"\"' + body + '\"\"\"';\n}\n","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; }\n\nfunction _objectSpread(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; }\n\nfunction _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; }\n\nimport objectValues from \"../polyfills/objectValues.mjs\";\nimport keyMap from \"../jsutils/keyMap.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport invariant from \"../jsutils/invariant.mjs\";\nimport naturalCompare from \"../jsutils/naturalCompare.mjs\";\nimport { print } from \"../language/printer.mjs\";\nimport { visit } from \"../language/visitor.mjs\";\nimport { isSpecifiedScalarType } from \"../type/scalars.mjs\";\nimport { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isNonNullType, isListType, isNamedType, isRequiredArgument, isRequiredInputField } from \"../type/definition.mjs\";\nimport { astFromValue } from \"./astFromValue.mjs\";\nexport var BreakingChangeType = Object.freeze({\n TYPE_REMOVED: 'TYPE_REMOVED',\n TYPE_CHANGED_KIND: 'TYPE_CHANGED_KIND',\n TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION',\n VALUE_REMOVED_FROM_ENUM: 'VALUE_REMOVED_FROM_ENUM',\n REQUIRED_INPUT_FIELD_ADDED: 'REQUIRED_INPUT_FIELD_ADDED',\n IMPLEMENTED_INTERFACE_REMOVED: 'IMPLEMENTED_INTERFACE_REMOVED',\n FIELD_REMOVED: 'FIELD_REMOVED',\n FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND',\n REQUIRED_ARG_ADDED: 'REQUIRED_ARG_ADDED',\n ARG_REMOVED: 'ARG_REMOVED',\n ARG_CHANGED_KIND: 'ARG_CHANGED_KIND',\n DIRECTIVE_REMOVED: 'DIRECTIVE_REMOVED',\n DIRECTIVE_ARG_REMOVED: 'DIRECTIVE_ARG_REMOVED',\n REQUIRED_DIRECTIVE_ARG_ADDED: 'REQUIRED_DIRECTIVE_ARG_ADDED',\n DIRECTIVE_REPEATABLE_REMOVED: 'DIRECTIVE_REPEATABLE_REMOVED',\n DIRECTIVE_LOCATION_REMOVED: 'DIRECTIVE_LOCATION_REMOVED'\n});\nexport var DangerousChangeType = Object.freeze({\n VALUE_ADDED_TO_ENUM: 'VALUE_ADDED_TO_ENUM',\n TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION',\n OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED',\n OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED',\n IMPLEMENTED_INTERFACE_ADDED: 'IMPLEMENTED_INTERFACE_ADDED',\n ARG_DEFAULT_VALUE_CHANGE: 'ARG_DEFAULT_VALUE_CHANGE'\n});\n\n/**\n * Given two schemas, returns an Array containing descriptions of all the types\n * of breaking changes covered by the other functions down below.\n */\nexport function findBreakingChanges(oldSchema, newSchema) {\n var breakingChanges = findSchemaChanges(oldSchema, newSchema).filter(function (change) {\n return change.type in BreakingChangeType;\n });\n return breakingChanges;\n}\n/**\n * Given two schemas, returns an Array containing descriptions of all the types\n * of potentially dangerous changes covered by the other functions down below.\n */\n\nexport function findDangerousChanges(oldSchema, newSchema) {\n var dangerousChanges = findSchemaChanges(oldSchema, newSchema).filter(function (change) {\n return change.type in DangerousChangeType;\n });\n return dangerousChanges;\n}\n\nfunction findSchemaChanges(oldSchema, newSchema) {\n return [].concat(findTypeChanges(oldSchema, newSchema), findDirectiveChanges(oldSchema, newSchema));\n}\n\nfunction findDirectiveChanges(oldSchema, newSchema) {\n var schemaChanges = [];\n var directivesDiff = diff(oldSchema.getDirectives(), newSchema.getDirectives());\n\n for (var _i2 = 0, _directivesDiff$remov2 = directivesDiff.removed; _i2 < _directivesDiff$remov2.length; _i2++) {\n var oldDirective = _directivesDiff$remov2[_i2];\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_REMOVED,\n description: \"\".concat(oldDirective.name, \" was removed.\")\n });\n }\n\n for (var _i4 = 0, _directivesDiff$persi2 = directivesDiff.persisted; _i4 < _directivesDiff$persi2.length; _i4++) {\n var _ref2 = _directivesDiff$persi2[_i4];\n var _oldDirective = _ref2[0];\n var newDirective = _ref2[1];\n var argsDiff = diff(_oldDirective.args, newDirective.args);\n\n for (var _i6 = 0, _argsDiff$added2 = argsDiff.added; _i6 < _argsDiff$added2.length; _i6++) {\n var newArg = _argsDiff$added2[_i6];\n\n if (isRequiredArgument(newArg)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_DIRECTIVE_ARG_ADDED,\n description: \"A required arg \".concat(newArg.name, \" on directive \").concat(_oldDirective.name, \" was added.\")\n });\n }\n }\n\n for (var _i8 = 0, _argsDiff$removed2 = argsDiff.removed; _i8 < _argsDiff$removed2.length; _i8++) {\n var oldArg = _argsDiff$removed2[_i8];\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_ARG_REMOVED,\n description: \"\".concat(oldArg.name, \" was removed from \").concat(_oldDirective.name, \".\")\n });\n }\n\n if (_oldDirective.isRepeatable && !newDirective.isRepeatable) {\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_REPEATABLE_REMOVED,\n description: \"Repeatable flag was removed from \".concat(_oldDirective.name, \".\")\n });\n }\n\n for (var _i10 = 0, _oldDirective$locatio2 = _oldDirective.locations; _i10 < _oldDirective$locatio2.length; _i10++) {\n var location = _oldDirective$locatio2[_i10];\n\n if (newDirective.locations.indexOf(location) === -1) {\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_LOCATION_REMOVED,\n description: \"\".concat(location, \" was removed from \").concat(_oldDirective.name, \".\")\n });\n }\n }\n }\n\n return schemaChanges;\n}\n\nfunction findTypeChanges(oldSchema, newSchema) {\n var schemaChanges = [];\n var typesDiff = diff(objectValues(oldSchema.getTypeMap()), objectValues(newSchema.getTypeMap()));\n\n for (var _i12 = 0, _typesDiff$removed2 = typesDiff.removed; _i12 < _typesDiff$removed2.length; _i12++) {\n var oldType = _typesDiff$removed2[_i12];\n schemaChanges.push({\n type: BreakingChangeType.TYPE_REMOVED,\n description: isSpecifiedScalarType(oldType) ? \"Standard scalar \".concat(oldType.name, \" was removed because it is not referenced anymore.\") : \"\".concat(oldType.name, \" was removed.\")\n });\n }\n\n for (var _i14 = 0, _typesDiff$persisted2 = typesDiff.persisted; _i14 < _typesDiff$persisted2.length; _i14++) {\n var _ref4 = _typesDiff$persisted2[_i14];\n var _oldType = _ref4[0];\n var newType = _ref4[1];\n\n if (isEnumType(_oldType) && isEnumType(newType)) {\n schemaChanges.push.apply(schemaChanges, findEnumTypeChanges(_oldType, newType));\n } else if (isUnionType(_oldType) && isUnionType(newType)) {\n schemaChanges.push.apply(schemaChanges, findUnionTypeChanges(_oldType, newType));\n } else if (isInputObjectType(_oldType) && isInputObjectType(newType)) {\n schemaChanges.push.apply(schemaChanges, findInputObjectTypeChanges(_oldType, newType));\n } else if (isObjectType(_oldType) && isObjectType(newType)) {\n schemaChanges.push.apply(schemaChanges, findFieldChanges(_oldType, newType).concat(findImplementedInterfacesChanges(_oldType, newType)));\n } else if (isInterfaceType(_oldType) && isInterfaceType(newType)) {\n schemaChanges.push.apply(schemaChanges, findFieldChanges(_oldType, newType).concat(findImplementedInterfacesChanges(_oldType, newType)));\n } else if (_oldType.constructor !== newType.constructor) {\n schemaChanges.push({\n type: BreakingChangeType.TYPE_CHANGED_KIND,\n description: \"\".concat(_oldType.name, \" changed from \") + \"\".concat(typeKindName(_oldType), \" to \").concat(typeKindName(newType), \".\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findInputObjectTypeChanges(oldType, newType) {\n var schemaChanges = [];\n var fieldsDiff = diff(objectValues(oldType.getFields()), objectValues(newType.getFields()));\n\n for (var _i16 = 0, _fieldsDiff$added2 = fieldsDiff.added; _i16 < _fieldsDiff$added2.length; _i16++) {\n var newField = _fieldsDiff$added2[_i16];\n\n if (isRequiredInputField(newField)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_INPUT_FIELD_ADDED,\n description: \"A required field \".concat(newField.name, \" on input type \").concat(oldType.name, \" was added.\")\n });\n } else {\n schemaChanges.push({\n type: DangerousChangeType.OPTIONAL_INPUT_FIELD_ADDED,\n description: \"An optional field \".concat(newField.name, \" on input type \").concat(oldType.name, \" was added.\")\n });\n }\n }\n\n for (var _i18 = 0, _fieldsDiff$removed2 = fieldsDiff.removed; _i18 < _fieldsDiff$removed2.length; _i18++) {\n var oldField = _fieldsDiff$removed2[_i18];\n schemaChanges.push({\n type: BreakingChangeType.FIELD_REMOVED,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" was removed.\")\n });\n }\n\n for (var _i20 = 0, _fieldsDiff$persisted2 = fieldsDiff.persisted; _i20 < _fieldsDiff$persisted2.length; _i20++) {\n var _ref6 = _fieldsDiff$persisted2[_i20];\n var _oldField = _ref6[0];\n var _newField = _ref6[1];\n var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(_oldField.type, _newField.type);\n\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_CHANGED_KIND,\n description: \"\".concat(oldType.name, \".\").concat(_oldField.name, \" changed type from \") + \"\".concat(String(_oldField.type), \" to \").concat(String(_newField.type), \".\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findUnionTypeChanges(oldType, newType) {\n var schemaChanges = [];\n var possibleTypesDiff = diff(oldType.getTypes(), newType.getTypes());\n\n for (var _i22 = 0, _possibleTypesDiff$ad2 = possibleTypesDiff.added; _i22 < _possibleTypesDiff$ad2.length; _i22++) {\n var newPossibleType = _possibleTypesDiff$ad2[_i22];\n schemaChanges.push({\n type: DangerousChangeType.TYPE_ADDED_TO_UNION,\n description: \"\".concat(newPossibleType.name, \" was added to union type \").concat(oldType.name, \".\")\n });\n }\n\n for (var _i24 = 0, _possibleTypesDiff$re2 = possibleTypesDiff.removed; _i24 < _possibleTypesDiff$re2.length; _i24++) {\n var oldPossibleType = _possibleTypesDiff$re2[_i24];\n schemaChanges.push({\n type: BreakingChangeType.TYPE_REMOVED_FROM_UNION,\n description: \"\".concat(oldPossibleType.name, \" was removed from union type \").concat(oldType.name, \".\")\n });\n }\n\n return schemaChanges;\n}\n\nfunction findEnumTypeChanges(oldType, newType) {\n var schemaChanges = [];\n var valuesDiff = diff(oldType.getValues(), newType.getValues());\n\n for (var _i26 = 0, _valuesDiff$added2 = valuesDiff.added; _i26 < _valuesDiff$added2.length; _i26++) {\n var newValue = _valuesDiff$added2[_i26];\n schemaChanges.push({\n type: DangerousChangeType.VALUE_ADDED_TO_ENUM,\n description: \"\".concat(newValue.name, \" was added to enum type \").concat(oldType.name, \".\")\n });\n }\n\n for (var _i28 = 0, _valuesDiff$removed2 = valuesDiff.removed; _i28 < _valuesDiff$removed2.length; _i28++) {\n var oldValue = _valuesDiff$removed2[_i28];\n schemaChanges.push({\n type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM,\n description: \"\".concat(oldValue.name, \" was removed from enum type \").concat(oldType.name, \".\")\n });\n }\n\n return schemaChanges;\n}\n\nfunction findImplementedInterfacesChanges(oldType, newType) {\n var schemaChanges = [];\n var interfacesDiff = diff(oldType.getInterfaces(), newType.getInterfaces());\n\n for (var _i30 = 0, _interfacesDiff$added2 = interfacesDiff.added; _i30 < _interfacesDiff$added2.length; _i30++) {\n var newInterface = _interfacesDiff$added2[_i30];\n schemaChanges.push({\n type: DangerousChangeType.IMPLEMENTED_INTERFACE_ADDED,\n description: \"\".concat(newInterface.name, \" added to interfaces implemented by \").concat(oldType.name, \".\")\n });\n }\n\n for (var _i32 = 0, _interfacesDiff$remov2 = interfacesDiff.removed; _i32 < _interfacesDiff$remov2.length; _i32++) {\n var oldInterface = _interfacesDiff$remov2[_i32];\n schemaChanges.push({\n type: BreakingChangeType.IMPLEMENTED_INTERFACE_REMOVED,\n description: \"\".concat(oldType.name, \" no longer implements interface \").concat(oldInterface.name, \".\")\n });\n }\n\n return schemaChanges;\n}\n\nfunction findFieldChanges(oldType, newType) {\n var schemaChanges = [];\n var fieldsDiff = diff(objectValues(oldType.getFields()), objectValues(newType.getFields()));\n\n for (var _i34 = 0, _fieldsDiff$removed4 = fieldsDiff.removed; _i34 < _fieldsDiff$removed4.length; _i34++) {\n var oldField = _fieldsDiff$removed4[_i34];\n schemaChanges.push({\n type: BreakingChangeType.FIELD_REMOVED,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" was removed.\")\n });\n }\n\n for (var _i36 = 0, _fieldsDiff$persisted4 = fieldsDiff.persisted; _i36 < _fieldsDiff$persisted4.length; _i36++) {\n var _ref8 = _fieldsDiff$persisted4[_i36];\n var _oldField2 = _ref8[0];\n var newField = _ref8[1];\n schemaChanges.push.apply(schemaChanges, findArgChanges(oldType, _oldField2, newField));\n var isSafe = isChangeSafeForObjectOrInterfaceField(_oldField2.type, newField.type);\n\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_CHANGED_KIND,\n description: \"\".concat(oldType.name, \".\").concat(_oldField2.name, \" changed type from \") + \"\".concat(String(_oldField2.type), \" to \").concat(String(newField.type), \".\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findArgChanges(oldType, oldField, newField) {\n var schemaChanges = [];\n var argsDiff = diff(oldField.args, newField.args);\n\n for (var _i38 = 0, _argsDiff$removed4 = argsDiff.removed; _i38 < _argsDiff$removed4.length; _i38++) {\n var oldArg = _argsDiff$removed4[_i38];\n schemaChanges.push({\n type: BreakingChangeType.ARG_REMOVED,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(oldArg.name, \" was removed.\")\n });\n }\n\n for (var _i40 = 0, _argsDiff$persisted2 = argsDiff.persisted; _i40 < _argsDiff$persisted2.length; _i40++) {\n var _ref10 = _argsDiff$persisted2[_i40];\n var _oldArg = _ref10[0];\n var newArg = _ref10[1];\n var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(_oldArg.type, newArg.type);\n\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.ARG_CHANGED_KIND,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(_oldArg.name, \" has changed type from \") + \"\".concat(String(_oldArg.type), \" to \").concat(String(newArg.type), \".\")\n });\n } else if (_oldArg.defaultValue !== undefined) {\n if (newArg.defaultValue === undefined) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(_oldArg.name, \" defaultValue was removed.\")\n });\n } else {\n // Since we looking only for client's observable changes we should\n // compare default values in the same representation as they are\n // represented inside introspection.\n var oldValueStr = stringifyValue(_oldArg.defaultValue, _oldArg.type);\n var newValueStr = stringifyValue(newArg.defaultValue, newArg.type);\n\n if (oldValueStr !== newValueStr) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(_oldArg.name, \" has changed defaultValue from \").concat(oldValueStr, \" to \").concat(newValueStr, \".\")\n });\n }\n }\n }\n }\n\n for (var _i42 = 0, _argsDiff$added4 = argsDiff.added; _i42 < _argsDiff$added4.length; _i42++) {\n var _newArg = _argsDiff$added4[_i42];\n\n if (isRequiredArgument(_newArg)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_ARG_ADDED,\n description: \"A required arg \".concat(_newArg.name, \" on \").concat(oldType.name, \".\").concat(oldField.name, \" was added.\")\n });\n } else {\n schemaChanges.push({\n type: DangerousChangeType.OPTIONAL_ARG_ADDED,\n description: \"An optional arg \".concat(_newArg.name, \" on \").concat(oldType.name, \".\").concat(oldField.name, \" was added.\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction isChangeSafeForObjectOrInterfaceField(oldType, newType) {\n if (isListType(oldType)) {\n return (// if they're both lists, make sure the underlying types are compatible\n isListType(newType) && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType) || // moving from nullable to non-null of the same underlying type is safe\n isNonNullType(newType) && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)\n );\n }\n\n if (isNonNullType(oldType)) {\n // if they're both non-null, make sure the underlying types are compatible\n return isNonNullType(newType) && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType);\n }\n\n return (// if they're both named types, see if their names are equivalent\n isNamedType(newType) && oldType.name === newType.name || // moving from nullable to non-null of the same underlying type is safe\n isNonNullType(newType) && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)\n );\n}\n\nfunction isChangeSafeForInputObjectFieldOrFieldArg(oldType, newType) {\n if (isListType(oldType)) {\n // if they're both lists, make sure the underlying types are compatible\n return isListType(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType);\n }\n\n if (isNonNullType(oldType)) {\n return (// if they're both non-null, make sure the underlying types are\n // compatible\n isNonNullType(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType) || // moving from non-null to nullable of the same underlying type is safe\n !isNonNullType(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType)\n );\n } // if they're both named types, see if their names are equivalent\n\n\n return isNamedType(newType) && oldType.name === newType.name;\n}\n\nfunction typeKindName(type) {\n if (isScalarType(type)) {\n return 'a Scalar type';\n }\n\n if (isObjectType(type)) {\n return 'an Object type';\n }\n\n if (isInterfaceType(type)) {\n return 'an Interface type';\n }\n\n if (isUnionType(type)) {\n return 'a Union type';\n }\n\n if (isEnumType(type)) {\n return 'an Enum type';\n } // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2618')\n\n\n if (isInputObjectType(type)) {\n return 'an Input type';\n } // istanbul ignore next (Not reachable. All possible named types have been considered)\n\n\n false || invariant(0, 'Unexpected type: ' + inspect(type));\n}\n\nfunction stringifyValue(value, type) {\n var ast = astFromValue(value, type);\n ast != null || invariant(0);\n var sortedAST = visit(ast, {\n ObjectValue: function ObjectValue(objectNode) {\n // Make a copy since sort mutates array\n var fields = [].concat(objectNode.fields);\n fields.sort(function (fieldA, fieldB) {\n return naturalCompare(fieldA.name.value, fieldB.name.value);\n });\n return _objectSpread(_objectSpread({}, objectNode), {}, {\n fields: fields\n });\n }\n });\n return print(sortedAST);\n}\n\nfunction diff(oldArray, newArray) {\n var added = [];\n var removed = [];\n var persisted = [];\n var oldMap = keyMap(oldArray, function (_ref11) {\n var name = _ref11.name;\n return name;\n });\n var newMap = keyMap(newArray, function (_ref12) {\n var name = _ref12.name;\n return name;\n });\n\n for (var _i44 = 0; _i44 < oldArray.length; _i44++) {\n var oldItem = oldArray[_i44];\n var newItem = newMap[oldItem.name];\n\n if (newItem === undefined) {\n removed.push(oldItem);\n } else {\n persisted.push([oldItem, newItem]);\n }\n }\n\n for (var _i46 = 0; _i46 < newArray.length; _i46++) {\n var _newItem = newArray[_i46];\n\n if (oldMap[_newItem.name] === undefined) {\n added.push(_newItem);\n }\n }\n\n return {\n added: added,\n persisted: persisted,\n removed: removed\n };\n}\n","import { validate } from \"../validation/validate.mjs\";\nimport { NoDeprecatedCustomRule } from \"../validation/rules/custom/NoDeprecatedCustomRule.mjs\";\n/**\n * A validation rule which reports deprecated usages.\n *\n * Returns a list of GraphQLError instances describing each deprecated use.\n *\n * @deprecated Please use `validate` with `NoDeprecatedCustomRule` instead:\n *\n * ```\n * import { validate, NoDeprecatedCustomRule } from 'graphql'\n *\n * const errors = validate(schema, document, [NoDeprecatedCustomRule])\n * ```\n */\n\nexport function findDeprecatedUsages(schema, ast) {\n return validate(schema, ast, [NoDeprecatedCustomRule]);\n}\n","export function filterInPlace(array, test, context) {\n var target = 0;\n array.forEach(function (elem, i) {\n if (test.call(this, elem, i, array)) {\n array[target++] = elem;\n }\n }, context);\n array.length = target;\n return array;\n}\n//# sourceMappingURL=filterInPlace.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { invariant } from \"../globals/index.js\";\nimport { visit, } from 'graphql';\nimport { checkDocument, getOperationDefinition, getFragmentDefinition, getFragmentDefinitions, getMainDefinition, } from \"./getFromAST.js\";\nimport { filterInPlace } from \"../common/filterInPlace.js\";\nimport { isField, isInlineFragment } from \"./storeUtils.js\";\nimport { createFragmentMap, } from \"./fragments.js\";\nvar TYPENAME_FIELD = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: '__typename',\n },\n};\nfunction isEmpty(op, fragments) {\n return op.selectionSet.selections.every(function (selection) {\n return selection.kind === 'FragmentSpread' &&\n isEmpty(fragments[selection.name.value], fragments);\n });\n}\nfunction nullIfDocIsEmpty(doc) {\n return isEmpty(getOperationDefinition(doc) || getFragmentDefinition(doc), createFragmentMap(getFragmentDefinitions(doc)))\n ? null\n : doc;\n}\nfunction getDirectiveMatcher(directives) {\n return function directiveMatcher(directive) {\n return directives.some(function (dir) {\n return (dir.name && dir.name === directive.name.value) ||\n (dir.test && dir.test(directive));\n });\n };\n}\nexport function removeDirectivesFromDocument(directives, doc) {\n var variablesInUse = Object.create(null);\n var variablesToRemove = [];\n var fragmentSpreadsInUse = Object.create(null);\n var fragmentSpreadsToRemove = [];\n var modifiedDoc = nullIfDocIsEmpty(visit(doc, {\n Variable: {\n enter: function (node, _key, parent) {\n if (parent.kind !== 'VariableDefinition') {\n variablesInUse[node.name.value] = true;\n }\n },\n },\n Field: {\n enter: function (node) {\n if (directives && node.directives) {\n var shouldRemoveField = directives.some(function (directive) { return directive.remove; });\n if (shouldRemoveField &&\n node.directives &&\n node.directives.some(getDirectiveMatcher(directives))) {\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (arg.value.kind === 'Variable') {\n variablesToRemove.push({\n name: arg.value.name.value,\n });\n }\n });\n }\n if (node.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(function (frag) {\n fragmentSpreadsToRemove.push({\n name: frag.name.value,\n });\n });\n }\n return null;\n }\n }\n },\n },\n FragmentSpread: {\n enter: function (node) {\n fragmentSpreadsInUse[node.name.value] = true;\n },\n },\n Directive: {\n enter: function (node) {\n if (getDirectiveMatcher(directives)(node)) {\n return null;\n }\n },\n },\n }));\n if (modifiedDoc &&\n filterInPlace(variablesToRemove, function (v) { return !!v.name && !variablesInUse[v.name]; }).length) {\n modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc);\n }\n if (modifiedDoc &&\n filterInPlace(fragmentSpreadsToRemove, function (fs) { return !!fs.name && !fragmentSpreadsInUse[fs.name]; })\n .length) {\n modifiedDoc = removeFragmentSpreadFromDocument(fragmentSpreadsToRemove, modifiedDoc);\n }\n return modifiedDoc;\n}\nexport var addTypenameToDocument = Object.assign(function (doc) {\n return visit(checkDocument(doc), {\n SelectionSet: {\n enter: function (node, _key, parent) {\n if (parent &&\n parent.kind === 'OperationDefinition') {\n return;\n }\n var selections = node.selections;\n if (!selections) {\n return;\n }\n var skip = selections.some(function (selection) {\n return (isField(selection) &&\n (selection.name.value === '__typename' ||\n selection.name.value.lastIndexOf('__', 0) === 0));\n });\n if (skip) {\n return;\n }\n var field = parent;\n if (isField(field) &&\n field.directives &&\n field.directives.some(function (d) { return d.name.value === 'export'; })) {\n return;\n }\n return __assign(__assign({}, node), { selections: __spreadArray(__spreadArray([], selections, true), [TYPENAME_FIELD], false) });\n },\n },\n });\n}, {\n added: function (field) {\n return field === TYPENAME_FIELD;\n },\n});\nvar connectionRemoveConfig = {\n test: function (directive) {\n var willRemove = directive.name.value === 'connection';\n if (willRemove) {\n if (!directive.arguments ||\n !directive.arguments.some(function (arg) { return arg.name.value === 'key'; })) {\n __DEV__ && invariant.warn('Removing an @connection directive even though it does not have a key. ' +\n 'You may want to use the key parameter to specify a store key.');\n }\n }\n return willRemove;\n },\n};\nexport function removeConnectionDirectiveFromDocument(doc) {\n return removeDirectivesFromDocument([connectionRemoveConfig], checkDocument(doc));\n}\nfunction hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) {\n if (nestedCheck === void 0) { nestedCheck = true; }\n return (!!selectionSet &&\n selectionSet.selections &&\n selectionSet.selections.some(function (selection) {\n return hasDirectivesInSelection(directives, selection, nestedCheck);\n }));\n}\nfunction hasDirectivesInSelection(directives, selection, nestedCheck) {\n if (nestedCheck === void 0) { nestedCheck = true; }\n if (!isField(selection)) {\n return true;\n }\n if (!selection.directives) {\n return false;\n }\n return (selection.directives.some(getDirectiveMatcher(directives)) ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck)));\n}\nfunction getArgumentMatcher(config) {\n return function argumentMatcher(argument) {\n return config.some(function (aConfig) {\n return argument.value &&\n argument.value.kind === 'Variable' &&\n argument.value.name &&\n (aConfig.name === argument.value.name.value ||\n (aConfig.test && aConfig.test(argument)));\n });\n };\n}\nexport function removeArgumentsFromDocument(config, doc) {\n var argMatcher = getArgumentMatcher(config);\n return nullIfDocIsEmpty(visit(doc, {\n OperationDefinition: {\n enter: function (node) {\n return __assign(__assign({}, node), { variableDefinitions: node.variableDefinitions ? node.variableDefinitions.filter(function (varDef) {\n return !config.some(function (arg) { return arg.name === varDef.variable.name.value; });\n }) : [] });\n },\n },\n Field: {\n enter: function (node) {\n var shouldRemoveField = config.some(function (argConfig) { return argConfig.remove; });\n if (shouldRemoveField) {\n var argMatchCount_1 = 0;\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (argMatcher(arg)) {\n argMatchCount_1 += 1;\n }\n });\n }\n if (argMatchCount_1 === 1) {\n return null;\n }\n }\n },\n },\n Argument: {\n enter: function (node) {\n if (argMatcher(node)) {\n return null;\n }\n },\n },\n }));\n}\nexport function removeFragmentSpreadFromDocument(config, doc) {\n function enter(node) {\n if (config.some(function (def) { return def.name === node.name.value; })) {\n return null;\n }\n }\n return nullIfDocIsEmpty(visit(doc, {\n FragmentSpread: { enter: enter },\n FragmentDefinition: { enter: enter },\n }));\n}\nfunction getAllFragmentSpreadsFromSelectionSet(selectionSet) {\n var allFragments = [];\n selectionSet.selections.forEach(function (selection) {\n if ((isField(selection) || isInlineFragment(selection)) &&\n selection.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(function (frag) { return allFragments.push(frag); });\n }\n else if (selection.kind === 'FragmentSpread') {\n allFragments.push(selection);\n }\n });\n return allFragments;\n}\nexport function buildQueryFromSelectionSet(document) {\n var definition = getMainDefinition(document);\n var definitionOperation = definition.operation;\n if (definitionOperation === 'query') {\n return document;\n }\n var modifiedDoc = visit(document, {\n OperationDefinition: {\n enter: function (node) {\n return __assign(__assign({}, node), { operation: 'query' });\n },\n },\n });\n return modifiedDoc;\n}\nexport function removeClientSetsFromDocument(document) {\n checkDocument(document);\n var modifiedDoc = removeDirectivesFromDocument([\n {\n test: function (directive) { return directive.name.value === 'client'; },\n remove: true,\n },\n ], document);\n if (modifiedDoc) {\n modifiedDoc = visit(modifiedDoc, {\n FragmentDefinition: {\n enter: function (node) {\n if (node.selectionSet) {\n var isTypenameOnly = node.selectionSet.selections.every(function (selection) {\n return isField(selection) && selection.name.value === '__typename';\n });\n if (isTypenameOnly) {\n return null;\n }\n }\n },\n },\n });\n }\n return modifiedDoc;\n}\n//# sourceMappingURL=transform.js.map","/*\n * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { Amplify, ServiceWorker } from '@aws-amplify/core';\nimport { Auth } from '@aws-amplify/auth';\nimport { Cache } from '@aws-amplify/cache';\n/** Always importing Auth when users import Amplify such that\n for unauthenticated access (no sign in and sign up),\n users don't have to import Auth explicitly **/\nAmplify.Auth = Auth;\nAmplify.Cache = Cache;\nAmplify.ServiceWorker = ServiceWorker;\nexport { Analytics, AWSPinpointProvider, AWSKinesisProvider, AWSKinesisFirehoseProvider, AmazonPersonalizeProvider, } from '@aws-amplify/analytics';\nexport { Auth } from '@aws-amplify/auth';\nexport { Storage, StorageClass } from '@aws-amplify/storage';\nexport { API, APIClass, graphqlOperation } from '@aws-amplify/api';\nexport { AuthModeStrategyType, DataStore, Predicates, SortDirection, syncExpression, } from '@aws-amplify/datastore';\nexport { PubSub } from '@aws-amplify/pubsub';\nexport { Interactions } from '@aws-amplify/interactions';\nexport * from '@aws-amplify/ui';\nexport { XR } from '@aws-amplify/xr';\nexport { Predictions } from '@aws-amplify/predictions';\nexport { ConsoleLogger as Logger, Hub, JS, ClientDevice, Signer, I18n, ServiceWorker, AWSCloudWatchProvider, } from '@aws-amplify/core';\nexport { withSSRContext } from './withSSRContext';\nexport { Geo } from '@aws-amplify/geo';\nexport { Cache };\nexport { Amplify };\n/**\n * @deprecated use named import\n */\nexport default Amplify;\n//# sourceMappingURL=index.js.map","/**\n * A general error class that should be used for all errors in Expo modules.\n * Guarantees a `code` field that can be used to differentiate between different\n * types of errors without further subclassing Error.\n */\nexport class CodedError extends Error {\n code: string;\n info?: any;\n\n constructor(code: string, message: string) {\n super(message);\n this.code = code;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"activeOpacity\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"rejectResponderTermination\", \"style\"];\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, dimming it.\n */\nfunction TouchableOpacity(props, forwardedRef) {\n var activeOpacity = props.activeOpacity,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n\n var _useState = useState('0s'),\n duration = _useState[0],\n setDuration = _useState[1];\n\n var _useState2 = useState(null),\n opacityOverride = _useState2[0],\n setOpacityOverride = _useState2[1];\n\n var setOpacityTo = useCallback((value, duration) => {\n setOpacityOverride(value);\n setDuration(duration ? duration / 1000 + \"s\" : '0s');\n }, [setOpacityOverride, setDuration]);\n var setOpacityActive = useCallback(duration => {\n setOpacityTo(activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.2, duration);\n }, [activeOpacity, setOpacityTo]);\n var setOpacityInactive = useCallback(duration => {\n setOpacityTo(null, duration);\n }, [setOpacityTo]);\n var pressConfig = useMemo(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n\n onPressStart(event) {\n var isGrant = event.dispatchConfig != null ? event.dispatchConfig.registrationName === 'onResponderGrant' : event.type === 'keydown';\n setOpacityActive(isGrant ? 0 : 150);\n\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n\n onPressEnd(event) {\n setOpacityInactive(250);\n\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n\n }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, setOpacityActive, setOpacityInactive]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n pointerEvents: disabled ? 'none' : undefined,\n ref: setRef,\n style: [styles.root, !disabled && styles.actionable, style, opacityOverride != null && {\n opacity: opacityOverride\n }, {\n transitionDuration: duration\n }]\n }));\n}\n\nvar styles = StyleSheet.create({\n root: {\n transitionProperty: 'opacity',\n transitionDuration: '0.15s',\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableOpacity = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableOpacity));\nMemoedTouchableOpacity.displayName = 'TouchableOpacity';\nexport default MemoedTouchableOpacity;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nexport default function pick(obj, list) {\n var nextObj = {};\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (list[key] === true) {\n nextObj[key] = obj[key];\n }\n }\n }\n\n return nextObj;\n}","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport UIManager from '../../exports/UIManager';\nimport createDOMProps from '../createDOMProps';\nimport useStable from '../useStable';\nimport { useRef } from 'react';\nvar didWarn = false;\nvar emptyObject = {};\n\nfunction setNativeProps(node, nativeProps, pointerEvents, style, previousStyleRef) {\n if (!didWarn) {\n console.warn('setNativeProps is deprecated. Please update props using React state instead.');\n didWarn = true;\n }\n\n if (node != null && nativeProps) {\n var domProps = createDOMProps(null, _objectSpread(_objectSpread({\n pointerEvents\n }, nativeProps), {}, {\n style: [style, nativeProps.style]\n }));\n var nextDomStyle = domProps.style;\n\n if (previousStyleRef.current != null) {\n if (domProps.style == null) {\n domProps.style = {};\n }\n\n for (var styleName in previousStyleRef.current) {\n if (domProps.style[styleName] == null) {\n domProps.style[styleName] = '';\n }\n }\n }\n\n previousStyleRef.current = nextDomStyle;\n UIManager.updateView(node, domProps);\n }\n}\n/**\n * Adds non-standard methods to the hode element. This is temporarily until an\n * API like `ReactNative.measure(hostRef, callback)` is added to React Native.\n */\n\n\nexport default function usePlatformMethods(_ref) {\n var pointerEvents = _ref.pointerEvents,\n style = _ref.style;\n var previousStyleRef = useRef(null);\n var setNativePropsArgsRef = useRef(null);\n setNativePropsArgsRef.current = {\n pointerEvents,\n style\n }; // Avoid creating a new ref on every render. The props only need to be\n // available to 'setNativeProps' when it is called.\n\n var ref = useStable(() => hostNode => {\n if (hostNode != null) {\n hostNode.measure = callback => UIManager.measure(hostNode, callback);\n\n hostNode.measureLayout = (relativeToNode, success, failure) => UIManager.measureLayout(hostNode, relativeToNode, failure, success);\n\n hostNode.measureInWindow = callback => UIManager.measureInWindow(hostNode, callback);\n\n hostNode.setNativeProps = nativeProps => {\n var _ref2 = setNativePropsArgsRef.current || emptyObject,\n style = _ref2.style,\n pointerEvents = _ref2.pointerEvents;\n\n setNativeProps(hostNode, nativeProps, pointerEvents, style, previousStyleRef);\n };\n }\n });\n return ref;\n}","import { findNodeHandle } from 'react-native';\nimport { isChromeDebugger, isWeb, shouldBeUseWeb } from './PlatformChecker';\nexport function getTag(view) {\n return findNodeHandle(view);\n}\nconst isNative = !shouldBeUseWeb();\nexport let measure;\nif (isWeb()) {\n measure = (animatedRef) => {\n const element = animatedRef(); // TODO: fix typing of animated refs on web\n const viewportOffset = element.getBoundingClientRect();\n return {\n width: element.offsetWidth,\n height: element.offsetHeight,\n x: element.offsetLeft,\n y: element.offsetTop,\n pageX: viewportOffset.left,\n pageY: viewportOffset.top,\n };\n };\n}\nelse if (isChromeDebugger()) {\n measure = (_animatedRef) => {\n console.warn('[Reanimated] measure() cannot be used with Chrome Debugger.');\n return null;\n };\n}\nelse {\n measure = (animatedRef) => {\n 'worklet';\n if (!_WORKLET) {\n console.warn('[Reanimated] measure() was called from the main JS context. Measure is ' +\n 'only available in the UI runtime. This may also happen if measure() ' +\n 'was called by a worklet in the useAnimatedStyle hook, because useAnimatedStyle ' +\n 'calls the given worklet on the JS runtime during render. If you want to ' +\n 'prevent this warning then wrap the call with `if (_WORKLET)`. Then it will ' +\n 'only be called on the UI runtime after the render has been completed.');\n return null;\n }\n const viewTag = animatedRef();\n if (viewTag === -1) {\n console.warn(`[Reanimated] The view with tag ${viewTag} is not a valid argument for measure(). This may be because the view is not currently rendered, which may not be a bug (e.g. an off-screen FlatList item).`);\n return null;\n }\n const measured = _measure(viewTag);\n if (measured === null) {\n console.warn(`[Reanimated] The view with tag ${viewTag} has some undefined, not-yet-computed or meaningless value of \\`LayoutMetrics\\` type. This may be because the view is not currently rendered, which may not be a bug (e.g. an off-screen FlatList item).`);\n return null;\n }\n else if (measured.x === -1234567) {\n console.warn(`[Reanimated] The view with tag ${viewTag} returned an invalid measurement response.`);\n return null;\n }\n else if (isNaN(measured.x)) {\n console.warn(`[Reanimated] The view with tag ${viewTag} gets view-flattened on Android. To disable view-flattening, set \\`collapsable={false}\\` on this component.`);\n return null;\n }\n else {\n return measured;\n }\n };\n}\nexport let scrollTo;\nif (isWeb()) {\n scrollTo = (animatedRef, x, y, animated) => {\n 'worklet';\n const element = animatedRef();\n // @ts-ignore same call as in react-native-web\n element.scrollTo({ x, y, animated });\n };\n}\nelse if (isNative) {\n scrollTo = (animatedRef, x, y, animated) => {\n 'worklet';\n if (!_WORKLET) {\n return;\n }\n const viewTag = animatedRef();\n _scrollTo(viewTag, x, y, animated);\n };\n}\nelse {\n scrollTo = (_animatedRef, _x, _y) => {\n // no-op\n };\n}\nexport function setGestureState(handlerTag, newState) {\n 'worklet';\n if (!_WORKLET || !isNative) {\n console.warn('[Reanimated] You can not use setGestureState in non-worklet function.');\n return;\n }\n _setGestureState(handlerTag, newState);\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","import * as React from 'react';\nconst LinkingContext = /*#__PURE__*/React.createContext({\n options: undefined\n});\nLinkingContext.displayName = 'LinkingContext';\nexport default LinkingContext;\n//# sourceMappingURL=LinkingContext.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nvar DELAY = 'DELAY';\nvar ERROR = 'ERROR';\nvar LONG_PRESS_DETECTED = 'LONG_PRESS_DETECTED';\nvar NOT_RESPONDER = 'NOT_RESPONDER';\nvar RESPONDER_ACTIVE_LONG_PRESS_START = 'RESPONDER_ACTIVE_LONG_PRESS_START';\nvar RESPONDER_ACTIVE_PRESS_START = 'RESPONDER_ACTIVE_PRESS_START';\nvar RESPONDER_INACTIVE_PRESS_START = 'RESPONDER_INACTIVE_PRESS_START';\nvar RESPONDER_GRANT = 'RESPONDER_GRANT';\nvar RESPONDER_RELEASE = 'RESPONDER_RELEASE';\nvar RESPONDER_TERMINATED = 'RESPONDER_TERMINATED';\nvar Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: ERROR,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: ERROR,\n RESPONDER_TERMINATED: ERROR,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_INACTIVE_PRESS_START: {\n DELAY: RESPONDER_ACTIVE_PRESS_START,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_ACTIVE_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n RESPONDER_ACTIVE_LONG_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n ERROR: {\n DELAY: NOT_RESPONDER,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: NOT_RESPONDER\n }\n});\n\nvar isActiveSignal = signal => signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n\nvar isButtonRole = element => element.getAttribute('role') === 'button';\n\nvar isPressStartSignal = signal => signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n\nvar isTerminalSignal = signal => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\n\nvar isValidKeyPress = event => {\n var key = event.key,\n target = event.target;\n var role = target.getAttribute('role');\n var isSpacebar = key === ' ' || key === 'Spacebar';\n return key === 'Enter' || isSpacebar && role === 'button';\n};\n\nvar DEFAULT_LONG_PRESS_DELAY_MS = 450; // 500 - 50\n\nvar DEFAULT_PRESS_DELAY_MS = 50;\n/**\n * =========================== PressResponder Tutorial ===========================\n *\n * The `PressResponder` class helps you create press interactions by analyzing the\n * geometry of elements and observing when another responder (e.g. ScrollView)\n * has stolen the touch lock. It offers hooks for your component to provide\n * interaction feedback to the user:\n *\n * - When a press has activated (e.g. highlight an element)\n * - When a press has deactivated (e.g. un-highlight an element)\n * - When a press sould trigger an action, meaning it activated and deactivated\n * while within the geometry of the element without the lock being stolen.\n *\n * A high quality interaction isn't as simple as you might think. There should\n * be a slight delay before activation. Moving your finger beyond an element's\n * bounds should trigger deactivation, but moving the same finger back within an\n * element's bounds should trigger reactivation.\n *\n * In order to use `PressResponder`, do the following:\n *\n * const pressResponder = new PressResponder(config);\n *\n * 2. Choose the rendered component who should collect the press events. On that\n * element, spread `pressability.getEventHandlers()` into its props.\n *\n * return (\n * \n * );\n *\n * 3. Reset `PressResponder` when your component unmounts.\n *\n * componentWillUnmount() {\n * this.state.pressResponder.reset();\n * }\n *\n * ==================== Implementation Details ====================\n *\n * `PressResponder` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * # Geometry\n *\n * ┌────────────────────────┐\n * │ ┌──────────────────┐ │ - Presses start anywhere within `HitRect`.\n * │ │ ┌────────────┐ │ │\n * │ │ │ VisualRect │ │ │\n * │ │ └────────────┘ │ │ - When pressed down for sufficient amount of time\n * │ │ HitRect │ │ before letting up, `VisualRect` activates.\n * │ └──────────────────┘ │\n * │ Out Region o │\n * └────────────────────│───┘\n * └────── When the press is released outside the `HitRect`,\n * the responder is NOT eligible for a \"press\".\n *\n * # State Machine\n *\n * ┌───────────────┐ ◀──── RESPONDER_RELEASE\n * │ NOT_RESPONDER │\n * └───┬───────────┘ ◀──── RESPONDER_TERMINATED\n * │\n * │ RESPONDER_GRANT (HitRect)\n * │\n * ▼\n * ┌─────────────────────┐ ┌───────────────────┐ ┌───────────────────┐\n * │ RESPONDER_INACTIVE_ │ DELAY │ RESPONDER_ACTIVE_ │ T + DELAY │ RESPONDER_ACTIVE_ │\n * │ PRESS_START ├────────▶ │ PRESS_START ├────────────▶ │ LONG_PRESS_START │\n * └─────────────────────┘ └───────────────────┘ └───────────────────┘\n *\n * T + DELAY => LONG_PRESS_DELAY + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the invocation of `onLongPress`. Only when the browser produces a\n * `click` event is `onPress` invoked.\n */\n\nexport default class PressResponder {\n constructor(config) {\n this._eventHandlers = null;\n this._isPointerTouch = false;\n this._longPressDelayTimeout = null;\n this._longPressDispatched = false;\n this._pressDelayTimeout = null;\n this._pressOutDelayTimeout = null;\n this._touchState = NOT_RESPONDER;\n this.configure(config);\n }\n\n configure(config) {\n this._config = config;\n }\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n\n\n reset() {\n this._cancelLongPressDelayTimeout();\n\n this._cancelPressDelayTimeout();\n\n this._cancelPressOutDelayTimeout();\n }\n /**\n * Returns a set of props to spread into the interactive element.\n */\n\n\n getEventHandlers() {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n\n return this._eventHandlers;\n }\n\n _createEventHandlers() {\n var start = (event, shouldDelay) => {\n event.persist();\n\n this._cancelPressOutDelayTimeout();\n\n this._longPressDispatched = false;\n this._selectionTerminated = false;\n this._touchState = NOT_RESPONDER;\n this._isPointerTouch = event.nativeEvent.type === 'touchstart';\n\n this._receiveSignal(RESPONDER_GRANT, event);\n\n var delayPressStart = normalizeDelay(this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\n\n if (shouldDelay !== false && delayPressStart > 0) {\n this._pressDelayTimeout = setTimeout(() => {\n this._receiveSignal(DELAY, event);\n }, delayPressStart);\n } else {\n this._receiveSignal(DELAY, event);\n }\n\n var delayLongPress = normalizeDelay(this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);\n this._longPressDelayTimeout = setTimeout(() => {\n this._handleLongPress(event);\n }, delayLongPress + delayPressStart);\n };\n\n var end = event => {\n this._receiveSignal(RESPONDER_RELEASE, event);\n };\n\n var keyupHandler = event => {\n var onPress = this._config.onPress;\n var target = event.target;\n\n if (this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {\n end(event);\n document.removeEventListener('keyup', keyupHandler);\n var role = target.getAttribute('role');\n var elementType = target.tagName.toLowerCase();\n var isNativeInteractiveElement = role === 'link' || elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea';\n\n if (onPress != null && !isNativeInteractiveElement) {\n onPress(event);\n }\n }\n };\n\n return {\n onStartShouldSetResponder: event => {\n var disabled = this._config.disabled;\n\n if (disabled && isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n\n if (disabled == null) {\n return true;\n }\n\n return !disabled;\n },\n onKeyDown: event => {\n var disabled = this._config.disabled;\n var key = event.key,\n target = event.target;\n\n if (!disabled && isValidKeyPress(event)) {\n if (this._touchState === NOT_RESPONDER) {\n start(event, false); // Listen to 'keyup' on document to account for situations where\n // focus is moved to another element during 'keydown'.\n\n document.addEventListener('keyup', keyupHandler);\n }\n\n var role = target.getAttribute('role');\n var isSpacebarKey = key === ' ' || key === 'Spacebar';\n\n var _isButtonRole = role === 'button' || role === 'menuitem';\n\n if (isSpacebarKey && _isButtonRole) {\n // Prevent spacebar scrolling the window\n event.preventDefault();\n }\n\n event.stopPropagation();\n }\n },\n onResponderGrant: event => start(event),\n onResponderMove: event => {\n if (this._config.onPressMove != null) {\n this._config.onPressMove(event);\n }\n\n var touch = getTouchFromResponderEvent(event);\n\n if (this._touchActivatePosition != null) {\n var deltaX = this._touchActivatePosition.pageX - touch.pageX;\n var deltaY = this._touchActivatePosition.pageY - touch.pageY;\n\n if (Math.hypot(deltaX, deltaY) > 10) {\n this._cancelLongPressDelayTimeout();\n }\n }\n },\n onResponderRelease: event => end(event),\n onResponderTerminate: event => {\n if (event.nativeEvent.type === 'selectionchange') {\n this._selectionTerminated = true;\n }\n\n this._receiveSignal(RESPONDER_TERMINATED, event);\n },\n onResponderTerminationRequest: event => {\n var _this$_config = this._config,\n cancelable = _this$_config.cancelable,\n disabled = _this$_config.disabled,\n onLongPress = _this$_config.onLongPress; // If `onLongPress` is provided, don't terminate on `contextmenu` as default\n // behavior will be prevented for non-mouse pointers.\n\n if (!disabled && onLongPress != null && this._isPointerTouch && event.nativeEvent.type === 'contextmenu') {\n return false;\n }\n\n if (cancelable == null) {\n return true;\n }\n\n return cancelable;\n },\n // NOTE: this diverges from react-native in 3 significant ways:\n // * The `onPress` callback is not connected to the responder system (the native\n // `click` event must be used but is dispatched in many scenarios where no pointers\n // are on the screen.) Therefore, it's possible for `onPress` to be called without\n // `onPress{Start,End}` being called first.\n // * The `onPress` callback is only be called on the first ancestor of the native\n // `click` target that is using the PressResponder.\n // * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.\n onClick: event => {\n var _this$_config2 = this._config,\n disabled = _this$_config2.disabled,\n onPress = _this$_config2.onPress;\n\n if (!disabled) {\n // If long press dispatched, cancel default click behavior.\n // If the responder terminated because text was selected during the gesture,\n // cancel the default click behavior.\n event.stopPropagation();\n\n if (this._longPressDispatched || this._selectionTerminated) {\n event.preventDefault();\n } else if (onPress != null && event.altKey === false) {\n onPress(event);\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n },\n // If `onLongPress` is provided and a touch pointer is being used, prevent the\n // default context menu from opening.\n onContextMenu: event => {\n var _this$_config3 = this._config,\n disabled = _this$_config3.disabled,\n onLongPress = _this$_config3.onLongPress;\n\n if (!disabled) {\n if (onLongPress != null && this._isPointerTouch && !event.defaultPrevented) {\n event.preventDefault();\n event.stopPropagation();\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n }\n };\n }\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n */\n\n\n _receiveSignal(signal, event) {\n var prevState = this._touchState;\n var nextState = null;\n\n if (Transitions[prevState] != null) {\n nextState = Transitions[prevState][signal];\n }\n\n if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {\n return;\n }\n\n if (nextState == null || nextState === ERROR) {\n console.error(\"PressResponder: Invalid signal \" + signal + \" for state \" + prevState + \" on responder\");\n } else if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n\n this._touchState = nextState;\n }\n }\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n\n\n _performTransitionSideEffects(prevState, nextState, signal, event) {\n if (isTerminalSignal(signal)) {\n // Pressable suppression of contextmenu on windows.\n // On Windows, the contextmenu is displayed after pointerup.\n // https://github.com/necolas/react-native-web/issues/2296\n setTimeout(() => {\n this._isPointerTouch = false;\n }, 0);\n this._touchActivatePosition = null;\n\n this._cancelLongPressDelayTimeout();\n }\n\n if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n var onLongPress = this._config.onLongPress; // Long press is not supported for keyboards because 'click' can be dispatched\n // immediately (and multiple times) after 'keydown'.\n\n if (onLongPress != null && event.nativeEvent.key == null) {\n onLongPress(event);\n this._longPressDispatched = true;\n }\n }\n\n var isPrevActive = isActiveSignal(prevState);\n var isNextActive = isActiveSignal(nextState);\n\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\n }\n\n if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {\n var _this$_config4 = this._config,\n _onLongPress = _this$_config4.onLongPress,\n onPress = _this$_config4.onPress;\n\n if (onPress != null) {\n var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n\n if (!isPressCanceledByLongPress) {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n\n this._deactivate(event);\n }\n }\n }\n }\n\n this._cancelPressDelayTimeout();\n }\n\n _activate(event) {\n var _this$_config5 = this._config,\n onPressChange = _this$_config5.onPressChange,\n onPressStart = _this$_config5.onPressStart;\n var touch = getTouchFromResponderEvent(event);\n this._touchActivatePosition = {\n pageX: touch.pageX,\n pageY: touch.pageY\n };\n\n if (onPressStart != null) {\n onPressStart(event);\n }\n\n if (onPressChange != null) {\n onPressChange(true);\n }\n }\n\n _deactivate(event) {\n var _this$_config6 = this._config,\n onPressChange = _this$_config6.onPressChange,\n onPressEnd = _this$_config6.onPressEnd;\n\n function end() {\n if (onPressEnd != null) {\n onPressEnd(event);\n }\n\n if (onPressChange != null) {\n onPressChange(false);\n }\n }\n\n var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n\n if (delayPressEnd > 0) {\n this._pressOutDelayTimeout = setTimeout(() => {\n end();\n }, delayPressEnd);\n } else {\n end();\n }\n }\n\n _handleLongPress(event) {\n if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {\n this._receiveSignal(LONG_PRESS_DETECTED, event);\n }\n }\n\n _cancelLongPressDelayTimeout() {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n }\n\n _cancelPressDelayTimeout() {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n }\n\n _cancelPressOutDelayTimeout() {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n }\n\n}\n\nfunction normalizeDelay(delay, min, fallback) {\n if (min === void 0) {\n min = 0;\n }\n\n if (fallback === void 0) {\n fallback = 0;\n }\n\n return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);\n}\n\nfunction getTouchFromResponderEvent(event) {\n var _event$nativeEvent = event.nativeEvent,\n changedTouches = _event$nativeEvent.changedTouches,\n touches = _event$nativeEvent.touches;\n\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n\n return event.nativeEvent;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport PressResponder from './PressResponder';\nimport { useDebugValue, useEffect, useRef } from 'react';\nexport default function usePressEvents(hostRef, config) {\n var pressResponderRef = useRef(null);\n\n if (pressResponderRef.current == null) {\n pressResponderRef.current = new PressResponder(config);\n }\n\n var pressResponder = pressResponderRef.current; // Re-configure to use the current node and configuration.\n\n useEffect(() => {\n pressResponder.configure(config);\n }, [config, pressResponder]); // Reset the `pressResponder` when cleanup needs to occur. This is\n // a separate effect because we do not want to rest the responder when `config` changes.\n\n useEffect(() => {\n return () => {\n pressResponder.reset();\n };\n }, [pressResponder]);\n useDebugValue(config);\n return pressResponder.getEventHandlers();\n}","export var canUseWeakMap = typeof WeakMap === 'function' && !(typeof navigator === 'object' &&\n navigator.product === 'ReactNative');\nexport var canUseWeakSet = typeof WeakSet === 'function';\nexport var canUseSymbol = typeof Symbol === 'function' &&\n typeof Symbol.for === 'function';\n//# sourceMappingURL=canUse.js.map","var alphabetByEncoding = {};\nvar alphabetByValue = new Array(64);\nfor (var i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n var char = String.fromCharCode(i + start);\n alphabetByEncoding[char] = i;\n alphabetByValue[i] = char;\n}\nfor (var i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n var char = String.fromCharCode(i + start);\n var index = i + 26;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nfor (var i = 0; i < 10; i++) {\n alphabetByEncoding[i.toString(10)] = i + 52;\n var char = i.toString(10);\n var index = i + 52;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nalphabetByEncoding[\"+\"] = 62;\nalphabetByValue[62] = \"+\";\nalphabetByEncoding[\"/\"] = 63;\nalphabetByValue[63] = \"/\";\nvar bitsPerLetter = 6;\nvar bitsPerByte = 8;\nvar maxLetterValue = 63;\n/**\n * Converts a base-64 encoded string to a Uint8Array of bytes.\n *\n * @param input The base-64 encoded string\n *\n * @see https://tools.ietf.org/html/rfc4648#section-4\n */\nexport function fromBase64(input) {\n var totalByteLength = (input.length / 4) * 3;\n if (input.substr(-2) === \"==\") {\n totalByteLength -= 2;\n }\n else if (input.substr(-1) === \"=\") {\n totalByteLength--;\n }\n var out = new ArrayBuffer(totalByteLength);\n var dataView = new DataView(out);\n for (var i = 0; i < input.length; i += 4) {\n var bits = 0;\n var bitLength = 0;\n for (var j = i, limit = i + 3; j <= limit; j++) {\n if (input[j] !== \"=\") {\n bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);\n bitLength += bitsPerLetter;\n }\n else {\n bits >>= bitsPerLetter;\n }\n }\n var chunkOffset = (i / 4) * 3;\n bits >>= bitLength % bitsPerByte;\n var byteLength = Math.floor(bitLength / bitsPerByte);\n for (var k = 0; k < byteLength; k++) {\n var offset = (byteLength - k - 1) * bitsPerByte;\n dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\n }\n }\n return new Uint8Array(out);\n}\n/**\n * Converts a Uint8Array of binary data to a base-64 encoded string.\n *\n * @param input The binary data to encode\n *\n * @see https://tools.ietf.org/html/rfc4648#section-4\n */\nexport function toBase64(input) {\n var str = \"\";\n for (var i = 0; i < input.length; i += 3) {\n var bits = 0;\n var bitLength = 0;\n for (var j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n bits |= input[j] << ((limit - j - 1) * bitsPerByte);\n bitLength += bitsPerByte;\n }\n var bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n for (var k = 1; k <= bitClusterCount; k++) {\n var offset = (bitClusterCount - k) * bitsPerLetter;\n str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];\n }\n str += \"==\".slice(0, 4 - bitClusterCount);\n }\n return str;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBTSxrQkFBa0IsR0FBOEIsRUFBRSxDQUFDO0FBQ3pELElBQU0sZUFBZSxHQUFrQixJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVyRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM3RixJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUM1QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztDQUMzQjtBQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzdGLElBQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzVDLElBQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDckIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7Q0FDL0I7QUFFRCxLQUFLLElBQUksQ0FB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QyxDQUFDLElBQUksR0FBRyxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQztLQUMzQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFscGhhYmV0QnlFbmNvZGluZzogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuY29uc3QgYWxwaGFiZXRCeVZhbHVlOiBBcnJheTxzdHJpbmc+ID0gbmV3IEFycmF5KDY0KTtcblxuZm9yIChsZXQgaSA9IDAsIHN0YXJ0ID0gXCJBXCIuY2hhckNvZGVBdCgwKSwgbGltaXQgPSBcIlpcIi5jaGFyQ29kZUF0KDApOyBpICsgc3RhcnQgPD0gbGltaXQ7IGkrKykge1xuICBjb25zdCBjaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShpICsgc3RhcnQpO1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpO1xuICBhbHBoYWJldEJ5VmFsdWVbaV0gPSBjaGFyO1xufVxuXG5mb3IgKGxldCBpID0gMCwgc3RhcnQgPSBcImFcIi5jaGFyQ29kZUF0KDApLCBsaW1pdCA9IFwielwiLmNoYXJDb2RlQXQoMCk7IGkgKyBzdGFydCA8PSBsaW1pdDsgaSsrKSB7XG4gIGNvbnN0IGNoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGkgKyBzdGFydCk7XG4gIGNvbnN0IGluZGV4ID0gaSArIDI2O1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpbmRleDtcbiAgYWxwaGFiZXRCeVZhbHVlW2luZGV4XSA9IGNoYXI7XG59XG5cbmZvciAobGV0IGkgPSAwOyBpIDwgMTA7IGkrKykge1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbaS50b1N0cmluZygxMCldID0gaSArIDUyO1xuICBjb25zdCBjaGFyID0gaS50b1N0cmluZygxMCk7XG4gIGNvbnN0IGluZGV4ID0gaSArIDUyO1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpbmRleDtcbiAgYWxwaGFiZXRCeVZhbHVlW2luZGV4XSA9IGNoYXI7XG59XG5cbmFscGhhYmV0QnlFbmNvZGluZ1tcIitcIl0gPSA2MjtcbmFscGhhYmV0QnlWYWx1ZVs2Ml0gPSBcIitcIjtcbmFscGhhYmV0QnlFbmNvZGluZ1tcIi9cIl0gPSA2MztcbmFscGhhYmV0QnlWYWx1ZVs2M10gPSBcIi9cIjtcblxuY29uc3QgYml0c1BlckxldHRlciA9IDY7XG5jb25zdCBiaXRzUGVyQnl0ZSA9IDg7XG5jb25zdCBtYXhMZXR0ZXJWYWx1ZSA9IDBiMTExMTExO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgYmFzZS02NCBlbmNvZGVkIHN0cmluZyB0byBhIFVpbnQ4QXJyYXkgb2YgYnl0ZXMuXG4gKlxuICogQHBhcmFtIGlucHV0IFRoZSBiYXNlLTY0IGVuY29kZWQgc3RyaW5nXG4gKlxuICogQHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDY0OCNzZWN0aW9uLTRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21CYXNlNjQoaW5wdXQ6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICBsZXQgdG90YWxCeXRlTGVuZ3RoID0gKGlucHV0Lmxlbmd0aCAvIDQpICogMztcbiAgaWYgKGlucHV0LnN1YnN0cigtMikgPT09IFwiPT1cIikge1xuICAgIHRvdGFsQnl0ZUxlbmd0aCAtPSAyO1xuICB9IGVsc2UgaWYgKGlucHV0LnN1YnN0cigtMSkgPT09IFwiPVwiKSB7XG4gICAgdG90YWxCeXRlTGVuZ3RoLS07XG4gIH1cbiAgY29uc3Qgb3V0ID0gbmV3IEFycmF5QnVmZmVyKHRvdGFsQnl0ZUxlbmd0aCk7XG4gIGNvbnN0IGRhdGFWaWV3ID0gbmV3IERhdGFWaWV3KG91dCk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpICs9IDQpIHtcbiAgICBsZXQgYml0cyA9IDA7XG4gICAgbGV0IGJpdExlbmd0aCA9IDA7XG4gICAgZm9yIChsZXQgaiA9IGksIGxpbWl0ID0gaSArIDM7IGogPD0gbGltaXQ7IGorKykge1xuICAgICAgaWYgKGlucHV0W2pdICE9PSBcIj1cIikge1xuICAgICAgICBiaXRzIHw9IGFscGhhYmV0QnlFbmNvZGluZ1tpbnB1dFtqXV0gPDwgKChsaW1pdCAtIGopICogYml0c1BlckxldHRlcik7XG4gICAgICAgIGJpdExlbmd0aCArPSBiaXRzUGVyTGV0dGVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYml0cyA+Pj0gYml0c1BlckxldHRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjaHVua09mZnNldCA9IChpIC8gNCkgKiAzO1xuICAgIGJpdHMgPj49IGJpdExlbmd0aCAlIGJpdHNQZXJCeXRlO1xuICAgIGNvbnN0IGJ5dGVMZW5ndGggPSBNYXRoLmZsb29yKGJpdExlbmd0aCAvIGJpdHNQZXJCeXRlKTtcbiAgICBmb3IgKGxldCBrID0gMDsgayA8IGJ5dGVMZW5ndGg7IGsrKykge1xuICAgICAgY29uc3Qgb2Zmc2V0ID0gKGJ5dGVMZW5ndGggLSBrIC0gMSkgKiBiaXRzUGVyQnl0ZTtcbiAgICAgIGRhdGFWaWV3LnNldFVpbnQ4KGNodW5rT2Zmc2V0ICsgaywgKGJpdHMgJiAoMjU1IDw8IG9mZnNldCkpID4+IG9mZnNldCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KG91dCk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBVaW50OEFycmF5IG9mIGJpbmFyeSBkYXRhIHRvIGEgYmFzZS02NCBlbmNvZGVkIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gaW5wdXQgVGhlIGJpbmFyeSBkYXRhIHRvIGVuY29kZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQ2NDgjc2VjdGlvbi00XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0Jhc2U2NChpbnB1dDogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGxldCBzdHIgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSArPSAzKSB7XG4gICAgbGV0IGJpdHMgPSAwO1xuICAgIGxldCBiaXRMZW5ndGggPSAwO1xuICAgIGZvciAobGV0IGogPSBpLCBsaW1pdCA9IE1hdGgubWluKGkgKyAzLCBpbnB1dC5sZW5ndGgpOyBqIDwgbGltaXQ7IGorKykge1xuICAgICAgYml0cyB8PSBpbnB1dFtqXSA8PCAoKGxpbWl0IC0gaiAtIDEpICogYml0c1BlckJ5dGUpO1xuICAgICAgYml0TGVuZ3RoICs9IGJpdHNQZXJCeXRlO1xuICAgIH1cblxuICAgIGNvbnN0IGJpdENsdXN0ZXJDb3VudCA9IE1hdGguY2VpbChiaXRMZW5ndGggLyBiaXRzUGVyTGV0dGVyKTtcbiAgICBiaXRzIDw8PSBiaXRDbHVzdGVyQ291bnQgKiBiaXRzUGVyTGV0dGVyIC0gYml0TGVuZ3RoO1xuICAgIGZvciAobGV0IGsgPSAxOyBrIDw9IGJpdENsdXN0ZXJDb3VudDsgaysrKSB7XG4gICAgICBjb25zdCBvZmZzZXQgPSAoYml0Q2x1c3RlckNvdW50IC0gaykgKiBiaXRzUGVyTGV0dGVyO1xuICAgICAgc3RyICs9IGFscGhhYmV0QnlWYWx1ZVsoYml0cyAmIChtYXhMZXR0ZXJWYWx1ZSA8PCBvZmZzZXQpKSA+PiBvZmZzZXRdO1xuICAgIH1cblxuICAgIHN0ciArPSBcIj09XCIuc2xpY2UoMCwgNCAtIGJpdENsdXN0ZXJDb3VudCk7XG4gIH1cblxuICByZXR1cm4gc3RyO1xufVxuIl19","export function iterateObserversSafely(observers, method, argument) {\n var observersWithMethod = [];\n observers.forEach(function (obs) { return obs[method] && observersWithMethod.push(obs); });\n observersWithMethod.forEach(function (obs) { return obs[method](argument); });\n}\n//# sourceMappingURL=iteration.js.map","import { Platform } from 'react-native';\nimport { forBottomSheetAndroid, forFadeFromBottomAndroid, forFadeFromCenter as forFadeCard, forHorizontalIOS, forModalPresentationIOS, forRevealFromBottomAndroid, forScaleFromCenterAndroid, forVerticalIOS } from './CardStyleInterpolators';\nimport { forFade } from './HeaderStyleInterpolators';\nimport { BottomSheetSlideInSpec, BottomSheetSlideOutSpec, FadeInFromBottomAndroidSpec, FadeOutToBottomAndroidSpec, RevealFromBottomAndroidSpec, ScaleFromCenterAndroidSpec, TransitionIOSSpec } from './TransitionSpecs';\nconst ANDROID_VERSION_PIE = 28;\nconst ANDROID_VERSION_10 = 29;\n\n/**\n * Standard iOS navigation transition.\n */\nexport const SlideFromRightIOS = {\n gestureDirection: 'horizontal',\n transitionSpec: {\n open: TransitionIOSSpec,\n close: TransitionIOSSpec\n },\n cardStyleInterpolator: forHorizontalIOS,\n headerStyleInterpolator: forFade\n};\n\n/**\n * Standard iOS navigation transition for modals.\n */\nexport const ModalSlideFromBottomIOS = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: TransitionIOSSpec,\n close: TransitionIOSSpec\n },\n cardStyleInterpolator: forVerticalIOS,\n headerStyleInterpolator: forFade\n};\n\n/**\n * Standard iOS modal presentation style (introduced in iOS 13).\n */\nexport const ModalPresentationIOS = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: TransitionIOSSpec,\n close: TransitionIOSSpec\n },\n cardStyleInterpolator: forModalPresentationIOS,\n headerStyleInterpolator: forFade\n};\n\n/**\n * Standard Android navigation transition when opening or closing an Activity on Android < 9 (Oreo).\n */\nexport const FadeFromBottomAndroid = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: FadeInFromBottomAndroidSpec,\n close: FadeOutToBottomAndroidSpec\n },\n cardStyleInterpolator: forFadeFromBottomAndroid,\n headerStyleInterpolator: forFade\n};\n\n/**\n * Standard Android navigation transition when opening or closing an Activity on Android 9 (Pie).\n */\nexport const RevealFromBottomAndroid = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: RevealFromBottomAndroidSpec,\n close: RevealFromBottomAndroidSpec\n },\n cardStyleInterpolator: forRevealFromBottomAndroid,\n headerStyleInterpolator: forFade\n};\n\n/**\n * Standard Android navigation transition when opening or closing an Activity on Android 10 (Q).\n */\nexport const ScaleFromCenterAndroid = {\n gestureDirection: 'horizontal',\n transitionSpec: {\n open: ScaleFromCenterAndroidSpec,\n close: ScaleFromCenterAndroidSpec\n },\n cardStyleInterpolator: forScaleFromCenterAndroid,\n headerStyleInterpolator: forFade\n};\n\n/**\n * Standard bottom sheet slide transition for Android 10.\n */\nexport const BottomSheetAndroid = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: BottomSheetSlideInSpec,\n close: BottomSheetSlideOutSpec\n },\n cardStyleInterpolator: forBottomSheetAndroid,\n headerStyleInterpolator: forFade\n};\n\n/**\n * Fade transition for transparent modals.\n */\nexport const ModalFadeTransition = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: BottomSheetSlideInSpec,\n close: BottomSheetSlideOutSpec\n },\n cardStyleInterpolator: forFadeCard,\n headerStyleInterpolator: forFade\n};\n\n/**\n * Default navigation transition for the current platform.\n */\nexport const DefaultTransition = Platform.select({\n ios: SlideFromRightIOS,\n android: Platform.Version >= ANDROID_VERSION_10 ? ScaleFromCenterAndroid : Platform.Version >= ANDROID_VERSION_PIE ? RevealFromBottomAndroid : FadeFromBottomAndroid,\n default: ScaleFromCenterAndroid\n});\n\n/**\n * Default modal transition for the current platform.\n */\nexport const ModalTransition = Platform.select({\n ios: ModalPresentationIOS,\n default: BottomSheetAndroid\n});\n//# sourceMappingURL=TransitionPresets.js.map","import { PermissionResponse } from 'expo-modules-core';\n\n// @needsAudit\n/**\n * Alias for `PermissionResponse` type exported by `expo-modules-core`.\n */\nexport type CameraPermissionResponse = PermissionResponse;\n\n// @needsAudit\n/**\n * Extends `PermissionResponse` type exported by `expo-modules-core`, containing additional iOS-specific field.\n */\nexport type MediaLibraryPermissionResponse = PermissionResponse & {\n /**\n * @platform ios\n */\n accessPrivileges?: 'all' | 'limited' | 'none';\n};\n\n// @needsAudit\nexport enum MediaTypeOptions {\n /**\n * Images and videos.\n */\n All = 'All',\n /**\n * Only videos.\n */\n Videos = 'Videos',\n /**\n * Only images.\n */\n Images = 'Images',\n}\n\n// @needsAudit\nexport enum VideoExportPreset {\n /**\n * Resolution: __Unchanged__ •\n * Video compression: __None__ •\n * Audio compression: __None__\n */\n Passthrough = 0,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n LowQuality = 1,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n MediumQuality = 2,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n HighestQuality = 3,\n /**\n * Resolution: __640 × 480__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_640x480 = 4,\n /**\n * Resolution: __960 × 540__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_960x540 = 5,\n /**\n * Resolution: __1280 × 720__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_1280x720 = 6,\n /**\n * Resolution: __1920 × 1080__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_1920x1080 = 7,\n /**\n * Resolution: __3840 × 2160__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_3840x2160 = 8,\n /**\n * Resolution: __1920 × 1080__ •\n * Video compression: __HEVC__ •\n * Audio compression: __AAC__\n */\n HEVC_1920x1080 = 9,\n /**\n * Resolution: __3840 × 2160__ •\n * Video compression: __HEVC__ •\n * Audio compression: __AAC__\n */\n HEVC_3840x2160 = 10,\n}\n\n// @needsAudit\nexport enum UIImagePickerControllerQualityType {\n /**\n * Highest available resolution.\n */\n High = 0,\n /**\n * Depends on the device.\n */\n Medium = 1,\n /**\n * Depends on the device.\n */\n Low = 2,\n /**\n * 640 × 480\n */\n VGA640x480 = 3,\n /**\n * 1280 × 720\n */\n IFrame1280x720 = 4,\n /**\n * 960 × 540\n */\n IFrame960x540 = 5,\n}\n\n/**\n * Picker presentation style. Its values are directly mapped to the [`UIModalPresentationStyle`](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621355-modalpresentationstyle).\n *\n * @platform ios\n */\nexport enum UIImagePickerPresentationStyle {\n /**\n * A presentation style in which the presented picker covers the screen.\n */\n FULL_SCREEN = 'fullScreen',\n /**\n * A presentation style that partially covers the underlying content.\n */\n PAGE_SHEET = 'pageSheet',\n /**\n * A presentation style that displays the picker centered in the screen.\n */\n FORM_SHEET = 'formSheet',\n /**\n * A presentation style where the picker is displayed over the app's content.\n */\n CURRENT_CONTEXT = 'currentContext',\n /**\n * A presentation style in which the picker view covers the screen.\n */\n OVER_FULL_SCREEN = 'overFullScreen',\n /**\n * A presentation style where the picker is displayed over the app's content.\n */\n OVER_CURRENT_CONTEXT = 'overCurrentContext',\n /**\n * A presentation style where the picker is displayed in a popover view.\n */\n POPOVER = 'popover',\n /**\n * The default presentation style chosen by the system.\n * On older iOS versions, falls back to `WebBrowserPresentationStyle.FullScreen`.\n *\n * @platform ios 13+\n */\n AUTOMATIC = 'automatic',\n}\n\n/**\n * @hidden\n * @deprecated Use `ImagePickerAsset` instead\n */\nexport type ImageInfo = ImagePickerAsset;\n\n/**\n * Represents an asset (image or video) returned by the image picker or camera.\n */\nexport type ImagePickerAsset = {\n /**\n * URI to the local image or video file (usable as the source of an `Image` element, in the case of\n * an image) and `width` and `height` specify the dimensions of the media.\n */\n uri: string;\n /**\n * The unique ID that represents the picked image or video, if picked from the library. It can be used\n * by [expo-media-library](./media-library) to manage the picked asset.\n *\n * > This might be `null` when the ID is unavailable or the user gave limited permission to access the media library.\n * > On Android, the ID is unavailable when the user selects a photo by directly browsing file system.\n *\n * @platform ios\n * @platform android\n */\n assetId?: string | null;\n /**\n * Width of the image or video.\n */\n width: number;\n /**\n * Height of the image or video.\n */\n height: number;\n /**\n * The type of the asset.\n */\n type?: 'image' | 'video';\n /**\n * Preferred filename to use when saving this item. This might be `null` when the name is unavailable\n * or user gave limited permission to access the media library.\n *\n * @platform ios\n */\n fileName?: string | null;\n /**\n * File size of the picked image or video, in bytes.\n *\n * @platform ios\n */\n fileSize?: number;\n /**\n * The `exif` field is included if the `exif` option is truthy, and is an object containing the\n * image's EXIF data. The names of this object's properties are EXIF tags and the values are the\n * respective EXIF values for those tags.\n */\n exif?: Record | null;\n /**\n * When the `base64` option is truthy, it is a Base64-encoded string of the selected image's JPEG data, otherwise `null`.\n * If you prepend this with `'data:image/jpeg;base64,'` to create a data URI,\n * you can use it as the source of an `Image` element; for example:\n * ```ts\n * \n * ```\n */\n base64?: string | null;\n /**\n * Length of the video in milliseconds or `null` if the asset is not a video.\n */\n duration?: number | null;\n};\n\n// @needsAudit\nexport type ImagePickerErrorResult = {\n /**\n * The error code.\n */\n code: string;\n /**\n * The error message.\n */\n message: string;\n /**\n * The exception which caused the error.\n */\n exception?: string;\n};\n\n// @needsAudit\n/**\n * Type representing successful and canceled pick result.\n */\nexport type ImagePickerResult = ImagePickerSuccessResult | ImagePickerCanceledResult;\n\n/**\n * Type representing successful pick result.\n */\nexport type ImagePickerSuccessResult = {\n /**\n * Boolean flag set to `false` showing that the request was successful.\n */\n canceled: false;\n /**\n * An array of picked assets.\n */\n assets: ImagePickerAsset[];\n};\n\n/**\n * Type representing canceled pick result.\n */\nexport type ImagePickerCanceledResult = {\n /**\n * Boolean flag set to `true` showing that the request was canceled.\n */\n canceled: true;\n /**\n * `null` signifying that the request was canceled.\n */\n assets: null;\n};\n\n/**\n * @hidden\n * @deprecated Use `ImagePickerResult` instead.\n */\nexport type ImagePickerCancelledResult = ImagePickerCanceledResult;\n\n/**\n * @hidden\n * @deprecated `ImagePickerMultipleResult` has been deprecated in favor of `ImagePickerResult`.\n */\nexport type ImagePickerMultipleResult = ImagePickerResult;\n\n// @needsAudit\nexport type ImagePickerOptions = {\n /**\n * Whether to show a UI to edit the image after it is picked. On Android the user can crop and\n * rotate the image and on iOS simply crop it.\n *\n * > Cropping multiple images is not supported - this option is mutually exclusive with `allowsMultipleSelection`.\n * > On iOS, this option is ignored if `allowsMultipleSelection` is enabled.\n *\n * @default false\n * @platform ios\n * @platform android\n */\n allowsEditing?: boolean;\n /**\n * An array with two entries `[x, y]` specifying the aspect ratio to maintain if the user is\n * allowed to edit the image (by passing `allowsEditing: true`). This is only applicable on\n * Android, since on iOS the crop rectangle is always a square.\n */\n aspect?: [number, number];\n /**\n * Specify the quality of compression, from `0` to `1`. `0` means compress for small size,\n * `1` means compress for maximum quality.\n * > Note: If the selected image has been compressed before, the size of the output file may be\n * > bigger than the size of the original image.\n *\n * > Note: On iOS, if a `.bmp` or `.png` image is selected from the library, this option is ignored.\n *\n * @default 0.2\n * @platform ios\n * @platform android\n */\n quality?: number;\n /**\n * Choose what type of media to pick.\n * @default ImagePicker.MediaTypeOptions.Images\n */\n mediaTypes?: MediaTypeOptions;\n /**\n * Whether to also include the EXIF data for the image. On iOS the EXIF data does not include GPS\n * tags in the camera case.\n */\n exif?: boolean;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64?: boolean;\n /**\n * Specify preset which will be used to compress selected video.\n * @default ImagePicker.VideoExportPreset.Passthrough\n * @platform ios 11+\n * @deprecated See [`videoExportPreset`](https://developer.apple.com/documentation/uikit/uiimagepickercontroller/2890964-videoexportpreset?language=objc)\n * in Apple documentation.\n */\n videoExportPreset?: VideoExportPreset;\n /**\n * Specify the quality of recorded videos. Defaults to the highest quality available for the device.\n * @default ImagePicker.UIImagePickerControllerQualityType.High\n * @platform ios\n */\n videoQuality?: UIImagePickerControllerQualityType;\n /**\n * Whether or not to allow selecting multiple media files at once.\n *\n * > Cropping multiple images is not supported - this option is mutually exclusive with `allowsEditing`.\n * > If this option is enabled, then `allowsEditing` is ignored.\n *\n * @default false\n * @platform ios 14+\n * @platform android\n * @platform web\n */\n allowsMultipleSelection?: boolean;\n /**\n * The maximum number of items that user can select. Applicable when `allowsMultipleSelection` is enabled.\n * Setting the value to `0` sets the selection limit to the maximum that the system supports.\n *\n * @platform ios 14+\n * @default 0\n */\n selectionLimit?: number;\n /**\n * Whether to display number badges when assets are selected. The badges are numbered\n * in selection order. Assets are then returned in the exact same order they were selected.\n *\n * > Assets should be returned in the selection order regardless of this option,\n * > but there is no guarantee that it is always true when this option is disabled.\n *\n * @platform ios 15+\n * @default false\n */\n orderedSelection?: boolean;\n /**\n * Maximum duration, in seconds, for video recording. Setting this to `0` disables the limit.\n * Defaults to `0` (no limit).\n * - **On iOS**, when `allowsEditing` is set to `true`, maximum duration is limited to 10 minutes.\n * This limit is applied automatically, if `0` or no value is specified.\n * - **On Android**, effect of this option depends on support of installed camera app.\n * - **On Web** this option has no effect - the limit is browser-dependant.\n */\n videoMaxDuration?: number;\n /**\n * Choose [presentation style](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621355-modalpresentationstyle?language=objc)\n * to customize view during taking photo/video.\n * @default ImagePicker.UIImagePickerPresentationStyle.Automatic\n * @platform ios\n */\n presentationStyle?: UIImagePickerPresentationStyle;\n};\n\n// @needsAudit\nexport type OpenFileBrowserOptions = {\n /**\n * Choose what type of media to pick.\n * @default ImagePicker.MediaTypeOptions.Images\n */\n mediaTypes: MediaTypeOptions;\n // @docsMissing\n capture?: boolean;\n /**\n * Whether or not to allow selecting multiple media files at once.\n * @platform web\n */\n allowsMultipleSelection: boolean;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64: boolean;\n};\n\n/**\n * @hidden\n * @deprecated Use `ImagePickerResult` or `OpenFileBrowserOptions` instead.\n */\nexport type ExpandImagePickerResult =\n T extends {\n allowsMultipleSelection: true;\n }\n ? ImagePickerResult\n : ImagePickerResult;\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function (input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function (input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsSUFBSSxVQUFVLEVBQUUsTUFBTSxJQUFJLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxJQUFJLG1CQUFtQixFQUFFLE1BQU0sSUFBSSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS25HLE1BQU0sQ0FBQyxJQUFNLFFBQVEsR0FBRyxVQUFDLEtBQWE7SUFDcEMsT0FBQSxPQUFPLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0FBQWxGLENBQWtGLENBQUM7QUFFckYsTUFBTSxDQUFDLElBQU0sTUFBTSxHQUFHLFVBQUMsS0FBaUI7SUFDdEMsT0FBQSxPQUFPLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0FBQTlFLENBQThFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tVXRmOCBhcyBqc0Zyb21VdGY4LCB0b1V0ZjggYXMganNUb1V0ZjggfSBmcm9tIFwiLi9wdXJlSnNcIjtcbmltcG9ydCB7IGZyb21VdGY4IGFzIHRleHRFbmNvZGVyRnJvbVV0ZjgsIHRvVXRmOCBhcyB0ZXh0RW5jb2RlclRvVXRmOCB9IGZyb20gXCIuL3doYXR3Z0VuY29kaW5nQXBpXCI7XG5cbmRlY2xhcmUgY29uc3QgVGV4dERlY29kZXI6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuZGVjbGFyZSBjb25zdCBUZXh0RW5jb2RlcjogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjb25zdCBmcm9tVXRmOCA9IChpbnB1dDogc3RyaW5nKTogVWludDhBcnJheSA9PlxuICB0eXBlb2YgVGV4dEVuY29kZXIgPT09IFwiZnVuY3Rpb25cIiA/IHRleHRFbmNvZGVyRnJvbVV0ZjgoaW5wdXQpIDoganNGcm9tVXRmOChpbnB1dCk7XG5cbmV4cG9ydCBjb25zdCB0b1V0ZjggPSAoaW5wdXQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcgPT5cbiAgdHlwZW9mIFRleHREZWNvZGVyID09PSBcImZ1bmN0aW9uXCIgPyB0ZXh0RW5jb2RlclRvVXRmOChpbnB1dCkgOiBqc1RvVXRmOChpbnB1dCk7XG4iXX0=","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hhdHdnRW5jb2RpbmdBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2hhdHdnRW5jb2RpbmdBcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUNBLE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBYTtJQUNwQyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQWlCO0lBQ3RDLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgZGVjbGFyYXRpb24gb2YgdGhlIGdsb2JhbCBUZXh0RW5jb2RlciBhbmQgVGV4dERlY29kZXIgY29uc3RydWN0b3JzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG5uYW1lc3BhY2UgRW5jb2Rpbmcge1xuICBpbnRlcmZhY2UgVGV4dERlY29kZXJPcHRpb25zIHtcbiAgICBmYXRhbD86IGJvb2xlYW47XG4gICAgaWdub3JlQk9NPzogYm9vbGVhbjtcbiAgfVxuXG4gIGludGVyZmFjZSBUZXh0RGVjb2RlT3B0aW9ucyB7XG4gICAgc3RyZWFtPzogYm9vbGVhbjtcbiAgfVxuXG4gIGludGVyZmFjZSBUZXh0RGVjb2RlciB7XG4gICAgcmVhZG9ubHkgZW5jb2Rpbmc6IHN0cmluZztcbiAgICByZWFkb25seSBmYXRhbDogYm9vbGVhbjtcbiAgICByZWFkb25seSBpZ25vcmVCT006IGJvb2xlYW47XG4gICAgZGVjb2RlKGlucHV0PzogQXJyYXlCdWZmZXIgfCBBcnJheUJ1ZmZlclZpZXcsIG9wdGlvbnM/OiBUZXh0RGVjb2RlT3B0aW9ucyk6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVGV4dERlY29kZXJDb25zdHJ1Y3RvciB7XG4gICAgbmV3IChsYWJlbD86IHN0cmluZywgb3B0aW9ucz86IFRleHREZWNvZGVyT3B0aW9ucyk6IFRleHREZWNvZGVyO1xuICB9XG5cbiAgaW50ZXJmYWNlIFRleHRFbmNvZGVyIHtcbiAgICByZWFkb25seSBlbmNvZGluZzogXCJ1dGYtOFwiO1xuICAgIGVuY29kZShpbnB1dD86IHN0cmluZyk6IFVpbnQ4QXJyYXk7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFRleHRFbmNvZGVyQ29uc3RydWN0b3Ige1xuICAgIG5ldyAoKTogVGV4dEVuY29kZXI7XG4gIH1cbn1cblxuZGVjbGFyZSBjb25zdCBUZXh0RGVjb2RlcjogRW5jb2RpbmcuVGV4dERlY29kZXJDb25zdHJ1Y3RvcjtcblxuZGVjbGFyZSBjb25zdCBUZXh0RW5jb2RlcjogRW5jb2RpbmcuVGV4dEVuY29kZXJDb25zdHJ1Y3RvcjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21VdGY4KGlucHV0OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShpbnB1dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1V0ZjgoaW5wdXQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICByZXR1cm4gbmV3IFRleHREZWNvZGVyKFwidXRmLThcIikuZGVjb2RlKGlucHV0KTtcbn1cbiJdfQ==","/**\n * Converts a JS string from its native UCS-2/UTF-16 representation into a\n * Uint8Array of the bytes used to represent the equivalent characters in UTF-8.\n *\n * Cribbed from the `goog.crypt.stringToUtf8ByteArray` function in the Google\n * Closure library, though updated to use typed arrays.\n */\nexport var fromUtf8 = function (input) {\n var bytes = [];\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 192, (value & 63) | 128);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n var surrogatePair = 0x10000 + ((value & 1023) << 10) + (input.charCodeAt(++i) & 1023);\n bytes.push((surrogatePair >> 18) | 240, ((surrogatePair >> 12) & 63) | 128, ((surrogatePair >> 6) & 63) | 128, (surrogatePair & 63) | 128);\n }\n else {\n bytes.push((value >> 12) | 224, ((value >> 6) & 63) | 128, (value & 63) | 128);\n }\n }\n return Uint8Array.from(bytes);\n};\n/**\n * Converts a typed array of bytes containing UTF-8 data into a native JS\n * string.\n *\n * Partly cribbed from the `goog.crypt.utf8ByteArrayToString` function in the\n * Google Closure library, though updated to use typed arrays and to better\n * handle astral plane code points.\n */\nexport var toUtf8 = function (input) {\n var decoded = \"\";\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 31) << 6) | (nextByte & 63));\n }\n else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) { return byteValue.toString(16); }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 15) << 12) | ((input[++i] & 63) << 6) | (input[++i] & 63));\n }\n }\n return decoded;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZUpzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1cmVKcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsSUFBTSxRQUFRLEdBQUcsVUFBQyxLQUFhO0lBQ3BDLElBQU0sS0FBSyxHQUFrQixFQUFFLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksS0FBSyxHQUFHLElBQUksRUFBRTtZQUNoQixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25CO2FBQU0sSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUFFO1lBQ3hCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBVSxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsQ0FBQyxDQUFDO1NBQ3hFO2FBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssTUFBTSxFQUFFO1lBQy9HLElBQU0sYUFBYSxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQVksQ0FBQyxDQUFDO1lBQ3hHLEtBQUssQ0FBQyxJQUFJLENBQ1IsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBVSxFQUNsQyxDQUFDLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsRUFDL0MsQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLEVBQzlDLENBQUMsYUFBYSxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsQ0FDeEMsQ0FBQztTQUNIO2FBQU07WUFDTCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLENBQUMsQ0FBQztTQUNqSDtLQUNGO0lBRUQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsSUFBTSxNQUFNLEdBQUcsVUFBQyxLQUFpQjtJQUN0QyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxJQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFFO1lBQ2YsT0FBTyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7YUFBTSxJQUFJLEdBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQVUsRUFBRTtZQUNsRCxJQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLEVBQVEsQ0FBQyxDQUFDLENBQUM7U0FDakY7YUFBTSxJQUFJLEdBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQVcsRUFBRTtZQUNuRCxJQUFNLGFBQWEsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQU0sT0FBTyxHQUFHLEdBQUcsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQUMsU0FBUyxJQUFLLE9BQUEsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBdEIsQ0FBc0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6RixPQUFPLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7YUFBTTtZQUNMLE9BQU8sSUFBSSxNQUFNLENBQUMsWUFBWSxDQUM1QixDQUFDLENBQUMsSUFBSSxHQUFHLEVBQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxDQUNuRixDQUFDO1NBQ0g7S0FDRjtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udmVydHMgYSBKUyBzdHJpbmcgZnJvbSBpdHMgbmF0aXZlIFVDUy0yL1VURi0xNiByZXByZXNlbnRhdGlvbiBpbnRvIGFcbiAqIFVpbnQ4QXJyYXkgb2YgdGhlIGJ5dGVzIHVzZWQgdG8gcmVwcmVzZW50IHRoZSBlcXVpdmFsZW50IGNoYXJhY3RlcnMgaW4gVVRGLTguXG4gKlxuICogQ3JpYmJlZCBmcm9tIHRoZSBgZ29vZy5jcnlwdC5zdHJpbmdUb1V0ZjhCeXRlQXJyYXlgIGZ1bmN0aW9uIGluIHRoZSBHb29nbGVcbiAqIENsb3N1cmUgbGlicmFyeSwgdGhvdWdoIHVwZGF0ZWQgdG8gdXNlIHR5cGVkIGFycmF5cy5cbiAqL1xuZXhwb3J0IGNvbnN0IGZyb21VdGY4ID0gKGlucHV0OiBzdHJpbmcpOiBVaW50OEFycmF5ID0+IHtcbiAgY29uc3QgYnl0ZXM6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGlucHV0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgdmFsdWUgPSBpbnB1dC5jaGFyQ29kZUF0KGkpO1xuICAgIGlmICh2YWx1ZSA8IDB4ODApIHtcbiAgICAgIGJ5dGVzLnB1c2godmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPCAweDgwMCkge1xuICAgICAgYnl0ZXMucHVzaCgodmFsdWUgPj4gNikgfCAwYjExMDAwMDAwLCAodmFsdWUgJiAwYjExMTExMSkgfCAwYjEwMDAwMDAwKTtcbiAgICB9IGVsc2UgaWYgKGkgKyAxIDwgaW5wdXQubGVuZ3RoICYmICh2YWx1ZSAmIDB4ZmMwMCkgPT09IDB4ZDgwMCAmJiAoaW5wdXQuY2hhckNvZGVBdChpICsgMSkgJiAweGZjMDApID09PSAweGRjMDApIHtcbiAgICAgIGNvbnN0IHN1cnJvZ2F0ZVBhaXIgPSAweDEwMDAwICsgKCh2YWx1ZSAmIDBiMTExMTExMTExMSkgPDwgMTApICsgKGlucHV0LmNoYXJDb2RlQXQoKytpKSAmIDBiMTExMTExMTExMSk7XG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICAoc3Vycm9nYXRlUGFpciA+PiAxOCkgfCAwYjExMTEwMDAwLFxuICAgICAgICAoKHN1cnJvZ2F0ZVBhaXIgPj4gMTIpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCxcbiAgICAgICAgKChzdXJyb2dhdGVQYWlyID4+IDYpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCxcbiAgICAgICAgKHN1cnJvZ2F0ZVBhaXIgJiAwYjExMTExMSkgfCAwYjEwMDAwMDAwXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBieXRlcy5wdXNoKCh2YWx1ZSA+PiAxMikgfCAwYjExMTAwMDAwLCAoKHZhbHVlID4+IDYpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCwgKHZhbHVlICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShieXRlcyk7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgdHlwZWQgYXJyYXkgb2YgYnl0ZXMgY29udGFpbmluZyBVVEYtOCBkYXRhIGludG8gYSBuYXRpdmUgSlNcbiAqIHN0cmluZy5cbiAqXG4gKiBQYXJ0bHkgY3JpYmJlZCBmcm9tIHRoZSBgZ29vZy5jcnlwdC51dGY4Qnl0ZUFycmF5VG9TdHJpbmdgIGZ1bmN0aW9uIGluIHRoZVxuICogR29vZ2xlIENsb3N1cmUgbGlicmFyeSwgdGhvdWdoIHVwZGF0ZWQgdG8gdXNlIHR5cGVkIGFycmF5cyBhbmQgdG8gYmV0dGVyXG4gKiBoYW5kbGUgYXN0cmFsIHBsYW5lIGNvZGUgcG9pbnRzLlxuICovXG5leHBvcnQgY29uc3QgdG9VdGY4ID0gKGlucHV0OiBVaW50OEFycmF5KTogc3RyaW5nID0+IHtcbiAgbGV0IGRlY29kZWQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gaW5wdXQubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCBieXRlID0gaW5wdXRbaV07XG4gICAgaWYgKGJ5dGUgPCAweDgwKSB7XG4gICAgICBkZWNvZGVkICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZSk7XG4gICAgfSBlbHNlIGlmICgwYjExMDAwMDAwIDw9IGJ5dGUgJiYgYnl0ZSA8IDBiMTExMDAwMDApIHtcbiAgICAgIGNvbnN0IG5leHRCeXRlID0gaW5wdXRbKytpXTtcbiAgICAgIGRlY29kZWQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGJ5dGUgJiAwYjExMTExKSA8PCA2KSB8IChuZXh0Qnl0ZSAmIDBiMTExMTExKSk7XG4gICAgfSBlbHNlIGlmICgwYjExMTEwMDAwIDw9IGJ5dGUgJiYgYnl0ZSA8IDBiMTAxMTAxMTAxKSB7XG4gICAgICBjb25zdCBzdXJyb2dhdGVQYWlyID0gW2J5dGUsIGlucHV0WysraV0sIGlucHV0WysraV0sIGlucHV0WysraV1dO1xuICAgICAgY29uc3QgZW5jb2RlZCA9IFwiJVwiICsgc3Vycm9nYXRlUGFpci5tYXAoKGJ5dGVWYWx1ZSkgPT4gYnl0ZVZhbHVlLnRvU3RyaW5nKDE2KSkuam9pbihcIiVcIik7XG4gICAgICBkZWNvZGVkICs9IGRlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb2RlZCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKFxuICAgICAgICAoKGJ5dGUgJiAwYjExMTEpIDw8IDEyKSB8ICgoaW5wdXRbKytpXSAmIDBiMTExMTExKSA8PCA2KSB8IChpbnB1dFsrK2ldICYgMGIxMTExMTEpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWNvZGVkO1xufTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar auth_link_1 = require(\"./auth-link\");\nexports.AuthLink = auth_link_1.AuthLink;\nexports.AUTH_TYPE = auth_link_1.AUTH_TYPE;\nexports.USER_AGENT_HEADER = auth_link_1.USER_AGENT_HEADER;\nexports.USER_AGENT = auth_link_1.USER_AGENT;\nexports.createAuthLink = function (_a) {\n var url = _a.url, region = _a.region, auth = _a.auth;\n return new auth_link_1.AuthLink({ url: url, region: region, auth: auth });\n};\nvar signer_1 = require(\"./signer\");\nexports.Signer = signer_1.Signer;\n","const DEV = process.env.NODE_ENV !== \"production\";\n\nconst warnings = new Set();\n\nfunction warnOnce(condition, ...rest) {\n if (DEV && condition) {\n const key = rest.join(\" \");\n\n if (warnings.has(key)) {\n return;\n }\n\n warnings.add(key);\n console.warn(...rest);\n }\n}\n\nmodule.exports = warnOnce;\n","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n// Logging constants\nvar AWS_CLOUDWATCH_BASE_BUFFER_SIZE = 26;\nvar AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE = 1048576;\nvar AWS_CLOUDWATCH_MAX_EVENT_SIZE = 256000;\nvar AWS_CLOUDWATCH_CATEGORY = 'Logging';\nvar AWS_CLOUDWATCH_PROVIDER_NAME = 'AWSCloudWatch';\nvar NO_CREDS_ERROR_STRING = 'No credentials';\nvar RETRY_ERROR_CODES = [\n 'ResourceNotFoundException',\n 'InvalidSequenceTokenException',\n];\nexport { AWS_CLOUDWATCH_BASE_BUFFER_SIZE, AWS_CLOUDWATCH_CATEGORY, AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE, AWS_CLOUDWATCH_MAX_EVENT_SIZE, AWS_CLOUDWATCH_PROVIDER_NAME, NO_CREDS_ERROR_STRING, RETRY_ERROR_CODES, };\n//# sourceMappingURL=Constants.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { AWS_CLOUDWATCH_CATEGORY } from '../Util/Constants';\nvar LOG_LEVELS = {\n VERBOSE: 1,\n DEBUG: 2,\n INFO: 3,\n WARN: 4,\n ERROR: 5,\n};\nexport var LOG_TYPE;\n(function (LOG_TYPE) {\n LOG_TYPE[\"DEBUG\"] = \"DEBUG\";\n LOG_TYPE[\"ERROR\"] = \"ERROR\";\n LOG_TYPE[\"INFO\"] = \"INFO\";\n LOG_TYPE[\"WARN\"] = \"WARN\";\n LOG_TYPE[\"VERBOSE\"] = \"VERBOSE\";\n})(LOG_TYPE || (LOG_TYPE = {}));\n/**\n * Write logs\n * @class Logger\n */\nvar ConsoleLogger = /** @class */ (function () {\n /**\n * @constructor\n * @param {string} name - Name of the logger\n */\n function ConsoleLogger(name, level) {\n if (level === void 0) { level = LOG_TYPE.WARN; }\n this.name = name;\n this.level = level;\n this._pluggables = [];\n }\n ConsoleLogger.prototype._padding = function (n) {\n return n < 10 ? '0' + n : '' + n;\n };\n ConsoleLogger.prototype._ts = function () {\n var dt = new Date();\n return ([this._padding(dt.getMinutes()), this._padding(dt.getSeconds())].join(':') +\n '.' +\n dt.getMilliseconds());\n };\n ConsoleLogger.prototype.configure = function (config) {\n if (!config)\n return this._config;\n this._config = config;\n return this._config;\n };\n /**\n * Write log\n * @method\n * @memeberof Logger\n * @param {LOG_TYPE|string} type - log type, default INFO\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype._log = function (type) {\n var e_1, _a;\n var msg = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n msg[_i - 1] = arguments[_i];\n }\n var logger_level_name = this.level;\n if (ConsoleLogger.LOG_LEVEL) {\n logger_level_name = ConsoleLogger.LOG_LEVEL;\n }\n if (typeof window !== 'undefined' && window.LOG_LEVEL) {\n logger_level_name = window.LOG_LEVEL;\n }\n var logger_level = LOG_LEVELS[logger_level_name];\n var type_level = LOG_LEVELS[type];\n if (!(type_level >= logger_level)) {\n // Do nothing if type is not greater than or equal to logger level (handle undefined)\n return;\n }\n var log = console.log.bind(console);\n if (type === LOG_TYPE.ERROR && console.error) {\n log = console.error.bind(console);\n }\n if (type === LOG_TYPE.WARN && console.warn) {\n log = console.warn.bind(console);\n }\n var prefix = \"[\" + type + \"] \" + this._ts() + \" \" + this.name;\n var message = '';\n if (msg.length === 1 && typeof msg[0] === 'string') {\n message = prefix + \" - \" + msg[0];\n log(message);\n }\n else if (msg.length === 1) {\n message = prefix + \" \" + msg[0];\n log(prefix, msg[0]);\n }\n else if (typeof msg[0] === 'string') {\n var obj = msg.slice(1);\n if (obj.length === 1) {\n obj = obj[0];\n }\n message = prefix + \" - \" + msg[0] + \" \" + obj;\n log(prefix + \" - \" + msg[0], obj);\n }\n else {\n message = prefix + \" \" + msg;\n log(prefix, msg);\n }\n try {\n for (var _b = __values(this._pluggables), _c = _b.next(); !_c.done; _c = _b.next()) {\n var plugin = _c.value;\n var logEvent = { message: message, timestamp: Date.now() };\n plugin.pushLogs([logEvent]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Write General log. Default to INFO\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.log = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.INFO], msg));\n };\n /**\n * Write INFO log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.info = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.INFO], msg));\n };\n /**\n * Write WARN log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.warn = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.WARN], msg));\n };\n /**\n * Write ERROR log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.error = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.ERROR], msg));\n };\n /**\n * Write DEBUG log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.debug = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.DEBUG], msg));\n };\n /**\n * Write VERBOSE log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.verbose = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.VERBOSE], msg));\n };\n ConsoleLogger.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable.getCategoryName() === AWS_CLOUDWATCH_CATEGORY) {\n this._pluggables.push(pluggable);\n pluggable.configure(this._config);\n }\n };\n ConsoleLogger.prototype.listPluggables = function () {\n return this._pluggables;\n };\n ConsoleLogger.LOG_LEVEL = null;\n return ConsoleLogger;\n}());\nexport { ConsoleLogger };\n//# sourceMappingURL=ConsoleLogger.js.map","export default {\n get name(): string {\n return 'ExpoSecureStore';\n },\n};\n","import { UnavailabilityError } from 'expo-modules-core';\n\nimport ExpoSecureStore from './ExpoSecureStore';\n\nexport type KeychainAccessibilityConstant = number;\n\n// @needsAudit\n/**\n * The data in the keychain item cannot be accessed after a restart until the device has been\n * unlocked once by the user. This may be useful if you need to access the item when the phone\n * is locked.\n */\nexport const AFTER_FIRST_UNLOCK: KeychainAccessibilityConstant = ExpoSecureStore.AFTER_FIRST_UNLOCK;\n\n// @needsAudit\n/**\n * Similar to `AFTER_FIRST_UNLOCK`, except the entry is not migrated to a new device when restoring\n * from a backup.\n */\nexport const AFTER_FIRST_UNLOCK_THIS_DEVICE_ONLY: KeychainAccessibilityConstant =\n ExpoSecureStore.AFTER_FIRST_UNLOCK_THIS_DEVICE_ONLY;\n\n// @needsAudit\n/**\n * The data in the keychain item can always be accessed regardless of whether the device is locked.\n * This is the least secure option.\n */\nexport const ALWAYS: KeychainAccessibilityConstant = ExpoSecureStore.ALWAYS;\n\n// @needsAudit\n/**\n * Similar to `WHEN_UNLOCKED_THIS_DEVICE_ONLY`, except the user must have set a passcode in order to\n * store an entry. If the user removes their passcode, the entry will be deleted.\n */\nexport const WHEN_PASSCODE_SET_THIS_DEVICE_ONLY: KeychainAccessibilityConstant =\n ExpoSecureStore.WHEN_PASSCODE_SET_THIS_DEVICE_ONLY;\n\n// @needsAudit\n/**\n * Similar to `ALWAYS`, except the entry is not migrated to a new device when restoring from a backup.\n */\nexport const ALWAYS_THIS_DEVICE_ONLY: KeychainAccessibilityConstant =\n ExpoSecureStore.ALWAYS_THIS_DEVICE_ONLY;\n\n// @needsAudit\n/**\n * The data in the keychain item can be accessed only while the device is unlocked by the user.\n */\nexport const WHEN_UNLOCKED: KeychainAccessibilityConstant = ExpoSecureStore.WHEN_UNLOCKED;\n\n// @needsAudit\n/**\n * Similar to `WHEN_UNLOCKED`, except the entry is not migrated to a new device when restoring from\n * a backup.\n */\nexport const WHEN_UNLOCKED_THIS_DEVICE_ONLY: KeychainAccessibilityConstant =\n ExpoSecureStore.WHEN_UNLOCKED_THIS_DEVICE_ONLY;\n\nconst VALUE_BYTES_LIMIT = 2048;\n\n// @needsAudit\nexport type SecureStoreOptions = {\n /**\n * - iOS: The item's service, equivalent to `kSecAttrService`\n * - Android: Equivalent of the public/private key pair `Alias`\n * > If the item is set with the `keychainService` option, it will be required to later fetch the value.\n */\n keychainService?: string;\n /**\n * Option responsible for enabling the usage of the user authentication methods available on the device while\n * accessing data stored in SecureStore.\n * - iOS: Equivalent to `kSecAccessControlBiometryCurrentSet`\n * - Android: Equivalent to `setUserAuthenticationRequired(true)` (requires API 23).\n * Complete functionality is unlocked only with a freshly generated key - this would not work in tandem with the `keychainService`\n * value used for the others non-authenticated operations.\n */\n requireAuthentication?: boolean;\n /**\n * Custom message displayed to the user while `requireAuthentication` option is turned on.\n */\n authenticationPrompt?: string;\n /**\n * Specifies when the stored entry is accessible, using iOS's `kSecAttrAccessible` property.\n * @see Apple's documentation on [keychain item accessibility](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html).\n * @default SecureStore.WHEN_UNLOCKED\n * @platform ios\n */\n keychainAccessible?: KeychainAccessibilityConstant;\n};\n\n// @needsAudit\n/**\n * Returns whether the SecureStore API is enabled on the current device. This does not check the app\n * permissions.\n *\n * @return Promise which fulfils witch `boolean`, indicating whether the SecureStore API is available\n * on the current device. Currently this resolves `true` on iOS and Android only.\n */\nexport async function isAvailableAsync(): Promise {\n return !!ExpoSecureStore.getValueWithKeyAsync;\n}\n\n// @needsAudit\n/**\n * Delete the value associated with the provided key.\n *\n * @param key The key that was used to store the associated value.\n * @param options An [`SecureStoreOptions`](#securestoreoptions) object.\n *\n * @return A promise that will reject if the value couldn't be deleted.\n */\nexport async function deleteItemAsync(\n key: string,\n options: SecureStoreOptions = {}\n): Promise {\n _ensureValidKey(key);\n\n if (!ExpoSecureStore.deleteValueWithKeyAsync) {\n throw new UnavailabilityError('SecureStore', 'deleteItemAsync');\n }\n await ExpoSecureStore.deleteValueWithKeyAsync(key, options);\n}\n\n// @needsAudit\n/**\n * Fetch the stored value associated with the provided key.\n *\n * @param key The key that was used to store the associated value.\n * @param options An [`SecureStoreOptions`](#securestoreoptions) object.\n *\n * @return A promise that resolves to the previously stored value, or `null` if there is no entry\n * for the given key. The promise will reject if an error occurred while retrieving the value.\n */\nexport async function getItemAsync(\n key: string,\n options: SecureStoreOptions = {}\n): Promise {\n _ensureValidKey(key);\n return await ExpoSecureStore.getValueWithKeyAsync(key, options);\n}\n\n// @needsAudit\n/**\n * Store a key–value pair.\n *\n * @param key The key to associate with the stored value. Keys may contain alphanumeric characters\n * `.`, `-`, and `_`.\n * @param value The value to store. Size limit is 2048 bytes.\n * @param options An [`SecureStoreOptions`](#securestoreoptions) object.\n *\n * @return A promise that will reject if value cannot be stored on the device.\n */\nexport async function setItemAsync(\n key: string,\n value: string,\n options: SecureStoreOptions = {}\n): Promise {\n _ensureValidKey(key);\n if (!_isValidValue(value)) {\n throw new Error(\n `Invalid value provided to SecureStore. Values must be strings; consider JSON-encoding your values if they are serializable.`\n );\n }\n if (!ExpoSecureStore.setValueWithKeyAsync) {\n throw new UnavailabilityError('SecureStore', 'setItemAsync');\n }\n await ExpoSecureStore.setValueWithKeyAsync(value, key, options);\n}\n\nfunction _ensureValidKey(key: string) {\n if (!_isValidKey(key)) {\n throw new Error(\n `Invalid key provided to SecureStore. Keys must not be empty and contain only alphanumeric characters, \".\", \"-\", and \"_\".`\n );\n }\n}\n\nfunction _isValidKey(key: string) {\n return typeof key === 'string' && /^[\\w.-]+$/.test(key);\n}\n\nfunction _isValidValue(value: string) {\n if (typeof value !== 'string') {\n return false;\n }\n if (_byteCount(value) > VALUE_BYTES_LIMIT) {\n console.warn(\n 'Provided value to SecureStore is larger than 2048 bytes. An attempt to store such a value will throw an error in SDK 35.'\n );\n }\n return true;\n}\n\n// copy-pasted from https://stackoverflow.com/a/39488643\nfunction _byteCount(value: string) {\n let bytes = 0;\n\n for (let i = 0; i < value.length; i++) {\n const codePoint = value.charCodeAt(i);\n\n // Lone surrogates cannot be passed to encodeURI\n if (codePoint >= 0xd800 && codePoint < 0xe000) {\n if (codePoint < 0xdc00 && i + 1 < value.length) {\n const next = value.charCodeAt(i + 1);\n\n if (next >= 0xdc00 && next < 0xe000) {\n bytes += 4;\n i++;\n continue;\n }\n }\n }\n\n bytes += codePoint < 0x80 ? 1 : codePoint < 0x800 ? 2 : 3;\n }\n\n return bytes;\n}\n","import { ComponentClass } from 'react';\nimport {\n GestureUpdateEvent,\n GestureStateChangeEvent,\n} from '../gestureHandlerCommon';\nimport { tagMessage } from '../../utils';\n\nexport interface SharedValue {\n value: T;\n}\n\nlet Reanimated: {\n default: {\n // Slightly modified definition copied from 'react-native-reanimated'\n // eslint-disable-next-line @typescript-eslint/ban-types\n createAnimatedComponent

(\n component: ComponentClass

,\n options?: unknown\n ): ComponentClass

;\n };\n useEvent: (\n callback: (event: GestureUpdateEvent | GestureStateChangeEvent) => void,\n events: string[],\n rebuild: boolean\n ) => unknown;\n useSharedValue: (value: T) => SharedValue;\n setGestureState: (handlerTag: number, newState: number) => void;\n};\n\ntry {\n Reanimated = require('react-native-reanimated');\n\n if (!Reanimated.useSharedValue) {\n // @ts-ignore Make sure the loaded module is actually Reanimated, if it's not\n // reset the module to undefined so we can fallback to the default implementation\n Reanimated = undefined;\n throw new Error('react-native-reanimated is not found');\n }\n\n if (!Reanimated.setGestureState) {\n Reanimated.setGestureState = () => {\n 'worklet';\n console.warn(\n tagMessage(\n 'Please use newer version of react-native-reanimated in order to control state of the gestures.'\n )\n );\n };\n }\n // When 'react-native-reanimated' is not available we want to\n // quietly continue\n // eslint-disable-next-line no-empty\n} catch (e) {}\n\nexport { Reanimated };\n","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); 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.\"); }\n\nfunction _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); }\n\nfunction _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; }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// === Symbol Support ===\nvar hasSymbols = function () {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function (name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function (name) {\n return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n if (value == null) return undefined;\n if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n\n if (ctor !== undefined) {\n ctor = ctor[SymbolSpecies];\n\n if (ctor === null) {\n ctor = undefined;\n }\n }\n\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n if (hostReportError.log) {\n hostReportError.log(e);\n } else {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction enqueue(fn) {\n Promise.resolve().then(function () {\n try {\n fn();\n } catch (e) {\n hostReportError(e);\n }\n });\n}\n\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (cleanup === undefined) return;\n subscription._cleanup = undefined;\n\n if (!cleanup) {\n return;\n }\n\n try {\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n if (unsubscribe) {\n unsubscribe.call(cleanup);\n }\n }\n } catch (e) {\n hostReportError(e);\n }\n}\n\nfunction closeSubscription(subscription) {\n subscription._observer = undefined;\n subscription._queue = undefined;\n subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n var queue = subscription._queue;\n\n if (!queue) {\n return;\n }\n\n subscription._queue = undefined;\n subscription._state = 'ready';\n\n for (var i = 0; i < queue.length; ++i) {\n notifySubscription(subscription, queue[i].type, queue[i].value);\n if (subscription._state === 'closed') break;\n }\n}\n\nfunction notifySubscription(subscription, type, value) {\n subscription._state = 'running';\n var observer = subscription._observer;\n\n try {\n var m = getMethod(observer, type);\n\n switch (type) {\n case 'next':\n if (m) m.call(observer, value);\n break;\n\n case 'error':\n closeSubscription(subscription);\n if (m) m.call(observer, value);else throw value;\n break;\n\n case 'complete':\n closeSubscription(subscription);\n if (m) m.call(observer);\n break;\n }\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n if (subscription._state === 'closed') return;\n\n if (subscription._state === 'buffering') {\n subscription._queue.push({\n type: type,\n value: value\n });\n\n return;\n }\n\n if (subscription._state !== 'ready') {\n subscription._state = 'buffering';\n subscription._queue = [{\n type: type,\n value: value\n }];\n enqueue(function () {\n return flushSubscription(subscription);\n });\n return;\n }\n\n notifySubscription(subscription, type, value);\n}\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(observer, subscriber) {\n // ASSERT: observer is an object\n // ASSERT: subscriber is callable\n this._cleanup = undefined;\n this._observer = observer;\n this._queue = undefined;\n this._state = 'initializing';\n var subscriptionObserver = new SubscriptionObserver(this);\n\n try {\n this._cleanup = subscriber.call(undefined, subscriptionObserver);\n } catch (e) {\n subscriptionObserver.error(e);\n }\n\n if (this._state === 'initializing') this._state = 'ready';\n }\n\n var _proto = Subscription.prototype;\n\n _proto.unsubscribe = function unsubscribe() {\n if (this._state !== 'closed') {\n closeSubscription(this);\n cleanupSubscription(this);\n }\n };\n\n _createClass(Subscription, [{\n key: \"closed\",\n get: function () {\n return this._state === 'closed';\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionObserver = /*#__PURE__*/function () {\n function SubscriptionObserver(subscription) {\n this._subscription = subscription;\n }\n\n var _proto2 = SubscriptionObserver.prototype;\n\n _proto2.next = function next(value) {\n onNotify(this._subscription, 'next', value);\n };\n\n _proto2.error = function error(value) {\n onNotify(this._subscription, 'error', value);\n };\n\n _proto2.complete = function complete() {\n onNotify(this._subscription, 'complete');\n };\n\n _createClass(SubscriptionObserver, [{\n key: \"closed\",\n get: function () {\n return this._subscription._state === 'closed';\n }\n }]);\n\n return SubscriptionObserver;\n}();\n\nvar Observable = /*#__PURE__*/function () {\n function Observable(subscriber) {\n if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function');\n if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function');\n this._subscriber = subscriber;\n }\n\n var _proto3 = Observable.prototype;\n\n _proto3.subscribe = function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n observer = {\n next: observer,\n error: arguments[1],\n complete: arguments[2]\n };\n }\n\n return new Subscription(observer, this._subscriber);\n };\n\n _proto3.forEach = function forEach(fn) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n reject(new TypeError(fn + ' is not a function'));\n return;\n }\n\n function done() {\n subscription.unsubscribe();\n resolve();\n }\n\n var subscription = _this.subscribe({\n next: function (value) {\n try {\n fn(value, done);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n };\n\n _proto3.map = function map(fn) {\n var _this2 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this2.subscribe({\n next: function (value) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.filter = function filter(fn) {\n var _this3 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this3.subscribe({\n next: function (value) {\n try {\n if (!fn(value)) return;\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.reduce = function reduce(fn) {\n var _this4 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new C(function (observer) {\n return _this4.subscribe({\n next: function (value) {\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n } catch (e) {\n return observer.error(e);\n }\n } else {\n acc = value;\n }\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n observer.next(acc);\n observer.complete();\n }\n });\n });\n };\n\n _proto3.concat = function concat() {\n var _this5 = this;\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscription;\n var index = 0;\n\n function startNext(next) {\n subscription = next.subscribe({\n next: function (v) {\n observer.next(v);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (index === sources.length) {\n subscription = undefined;\n observer.complete();\n } else {\n startNext(C.from(sources[index++]));\n }\n }\n });\n }\n\n startNext(_this5);\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n subscription = undefined;\n }\n };\n });\n };\n\n _proto3.flatMap = function flatMap(fn) {\n var _this6 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscriptions = [];\n\n var outer = _this6.subscribe({\n next: function (value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n }\n\n var inner = C.from(value).subscribe({\n next: function (value) {\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n var i = subscriptions.indexOf(inner);\n if (i >= 0) subscriptions.splice(i, 1);\n completeIfDone();\n }\n });\n subscriptions.push(inner);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n completeIfDone();\n }\n });\n\n function completeIfDone() {\n if (outer.closed && subscriptions.length === 0) observer.complete();\n }\n\n return function () {\n subscriptions.forEach(function (s) {\n return s.unsubscribe();\n });\n outer.unsubscribe();\n };\n });\n };\n\n _proto3[SymbolObservable] = function () {\n return this;\n };\n\n Observable.from = function from(x) {\n var C = typeof this === 'function' ? this : Observable;\n if (x == null) throw new TypeError(x + ' is not an object');\n var method = getMethod(x, SymbolObservable);\n\n if (method) {\n var observable = method.call(x);\n if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object');\n if (isObservable(observable) && observable.constructor === C) return observable;\n return new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n\n if (hasSymbol('iterator')) {\n method = getMethod(x, SymbolIterator);\n\n if (method) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var _iterator = _createForOfIteratorHelperLoose(method.call(x)), _step; !(_step = _iterator()).done;) {\n var item = _step.value;\n observer.next(item);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n }\n\n if (Array.isArray(x)) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < x.length; ++i) {\n observer.next(x[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n\n throw new TypeError(x + ' is not observable');\n };\n\n Observable.of = function of() {\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n var C = typeof this === 'function' ? this : Observable;\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n };\n\n _createClass(Observable, null, [{\n key: SymbolSpecies,\n get: function () {\n return this;\n }\n }]);\n\n return Observable;\n}();\n\nif (hasSymbols()) {\n Object.defineProperty(Observable, Symbol('extensions'), {\n value: {\n symbol: SymbolObservable,\n hostReportError: hostReportError\n },\n configurable: true\n });\n}\n\nexport { Observable };\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i -1; });\n}\nexport function hasClientExports(document) {\n return (document &&\n hasDirectives(['client'], document) &&\n hasDirectives(['export'], document));\n}\nfunction isInclusionDirective(_a) {\n var value = _a.name.value;\n return value === 'skip' || value === 'include';\n}\nexport function getInclusionDirectives(directives) {\n var result = [];\n if (directives && directives.length) {\n directives.forEach(function (directive) {\n if (!isInclusionDirective(directive))\n return;\n var directiveArguments = directive.arguments;\n var directiveName = directive.name.value;\n __DEV__ ? invariant(directiveArguments && directiveArguments.length === 1, \"Incorrect number of arguments for the @\" + directiveName + \" directive.\") : invariant(directiveArguments && directiveArguments.length === 1, 40);\n var ifArgument = directiveArguments[0];\n __DEV__ ? invariant(ifArgument.name && ifArgument.name.value === 'if', \"Invalid argument for the @\" + directiveName + \" directive.\") : invariant(ifArgument.name && ifArgument.name.value === 'if', 41);\n var ifValue = ifArgument.value;\n __DEV__ ? invariant(ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), \"Argument for the @\" + directiveName + \" directive must be a variable or a boolean value.\") : invariant(ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 42);\n result.push({ directive: directive, ifArgument: ifArgument });\n });\n }\n return result;\n}\n//# sourceMappingURL=directives.js.map","import { configureProps as jsiConfigureProps } from './reanimated2/core';\n/**\n * Styles allowed to be direcly updated in UI thread\n */\nlet UI_THREAD_PROPS_WHITELIST = {\n opacity: true,\n transform: true,\n /* colors */\n backgroundColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderColor: true,\n borderEndColor: true,\n borderLeftColor: true,\n borderStartColor: true,\n borderTopColor: true,\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true,\n};\n/**\n * Whitelist of view props that can be updated in native thread via UIManagerModule\n */\nlet NATIVE_THREAD_PROPS_WHITELIST = {\n borderBottomWidth: true,\n borderEndWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderStartWidth: true,\n borderTopWidth: true,\n borderWidth: true,\n bottom: true,\n flex: true,\n flexGrow: true,\n flexShrink: true,\n height: true,\n left: true,\n margin: true,\n marginBottom: true,\n marginEnd: true,\n marginHorizontal: true,\n marginLeft: true,\n marginRight: true,\n marginStart: true,\n marginTop: true,\n marginVertical: true,\n maxHeight: true,\n maxWidth: true,\n minHeight: true,\n minWidth: true,\n padding: true,\n paddingBottom: true,\n paddingEnd: true,\n paddingHorizontal: true,\n paddingLeft: true,\n paddingRight: true,\n paddingStart: true,\n paddingTop: true,\n paddingVertical: true,\n right: true,\n start: true,\n top: true,\n width: true,\n zIndex: true,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderRadius: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n elevation: true,\n fontSize: true,\n lineHeight: true,\n textShadowRadius: true,\n letterSpacing: true,\n /* strings */\n display: true,\n backfaceVisibility: true,\n overflow: true,\n resizeMode: true,\n fontStyle: true,\n fontWeight: true,\n textAlign: true,\n textDecorationLine: true,\n fontFamily: true,\n textAlignVertical: true,\n fontVariant: true,\n textDecorationStyle: true,\n textTransform: true,\n writingDirection: true,\n /* text color */\n color: true,\n tintColor: true,\n shadowColor: true,\n placeholderTextColor: true,\n};\nfunction configureProps() {\n jsiConfigureProps(Object.keys(UI_THREAD_PROPS_WHITELIST), Object.keys(NATIVE_THREAD_PROPS_WHITELIST));\n}\nexport function addWhitelistedNativeProps(props) {\n const oldSize = Object.keys(NATIVE_THREAD_PROPS_WHITELIST).length;\n NATIVE_THREAD_PROPS_WHITELIST = Object.assign(Object.assign({}, NATIVE_THREAD_PROPS_WHITELIST), props);\n if (oldSize !== Object.keys(NATIVE_THREAD_PROPS_WHITELIST).length) {\n configureProps();\n }\n}\nexport function addWhitelistedUIProps(props) {\n const oldSize = Object.keys(UI_THREAD_PROPS_WHITELIST).length;\n UI_THREAD_PROPS_WHITELIST = Object.assign(Object.assign({}, UI_THREAD_PROPS_WHITELIST), props);\n if (oldSize !== Object.keys(UI_THREAD_PROPS_WHITELIST).length) {\n configureProps();\n }\n}\nconst PROCESSED_VIEW_NAMES = new Set();\n/**\n * updates UI props whitelist for given view host instance\n * this will work just once for every view name\n */\nexport function adaptViewConfig(viewConfig) {\n const viewName = viewConfig.uiViewClassName;\n const props = viewConfig.validAttributes;\n // update whitelist of UI props for this view name only once\n if (!PROCESSED_VIEW_NAMES.has(viewName)) {\n const propsToAdd = {};\n Object.keys(props).forEach((key) => {\n // we don't want to add native props as they affect layout\n // we also skip props which repeat here\n if (!(key in NATIVE_THREAD_PROPS_WHITELIST) &&\n !(key in UI_THREAD_PROPS_WHITELIST)) {\n propsToAdd[key] = true;\n }\n });\n addWhitelistedUIProps(propsToAdd);\n PROCESSED_VIEW_NAMES.add(viewName);\n }\n}\nconfigureProps();\n","import { __extends } from 'tslib';\n\nvar genericMessage = \"Invariant Violation\";\r\nvar _a = Object.setPrototypeOf, setPrototypeOf = _a === void 0 ? function (obj, proto) {\r\n obj.__proto__ = proto;\r\n return obj;\r\n} : _a;\r\nvar InvariantError = /** @class */ (function (_super) {\r\n __extends(InvariantError, _super);\r\n function InvariantError(message) {\r\n if (message === void 0) { message = genericMessage; }\r\n var _this = _super.call(this, typeof message === \"number\"\r\n ? genericMessage + \": \" + message + \" (see https://github.com/apollographql/invariant-packages)\"\r\n : message) || this;\r\n _this.framesToPop = 1;\r\n _this.name = genericMessage;\r\n setPrototypeOf(_this, InvariantError.prototype);\r\n return _this;\r\n }\r\n return InvariantError;\r\n}(Error));\r\nfunction invariant(condition, message) {\r\n if (!condition) {\r\n throw new InvariantError(message);\r\n }\r\n}\r\nvar verbosityLevels = [\"debug\", \"log\", \"warn\", \"error\", \"silent\"];\r\nvar verbosityLevel = verbosityLevels.indexOf(\"log\");\r\nfunction wrapConsoleMethod(name) {\r\n return function () {\r\n if (verbosityLevels.indexOf(name) >= verbosityLevel) {\r\n // Default to console.log if this host environment happens not to provide\r\n // all the console.* methods we need.\r\n var method = console[name] || console.log;\r\n return method.apply(console, arguments);\r\n }\r\n };\r\n}\r\n(function (invariant) {\r\n invariant.debug = wrapConsoleMethod(\"debug\");\r\n invariant.log = wrapConsoleMethod(\"log\");\r\n invariant.warn = wrapConsoleMethod(\"warn\");\r\n invariant.error = wrapConsoleMethod(\"error\");\r\n})(invariant || (invariant = {}));\r\nfunction setVerbosity(level) {\r\n var old = verbosityLevels[verbosityLevel];\r\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\r\n return old;\r\n}\r\nvar invariant$1 = invariant;\n\nexport { InvariantError, invariant$1 as default, invariant, setVerbosity };\n//# sourceMappingURL=invariant.esm.js.map\n","import AnimatedNode from './AnimatedNode';\nimport invariant from 'invariant';\nimport { val } from '../val';\n\nclass AnimatedAlways extends AnimatedNode {\n _what;\n\n constructor(what) {\n invariant(\n what instanceof AnimatedNode,\n `Reanimated: Animated.always node argument should be of type AnimatedNode but got ${what}`\n );\n super({ type: 'always', what }, [what]);\n this._what = what;\n }\n\n toString() {\n return `AnimatedAlways, id: ${this.__nodeID}`;\n }\n\n update() {\n this.__getValue();\n }\n\n __onEvaluate() {\n val(this._what);\n return 0;\n }\n}\n\nexport function createAnimatedAlways(item) {\n return new AnimatedAlways(item);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'fbjs/lib/invariant';\nvar _uniqueId = 1;\n/**\n * 2D Value for driving 2D animations, such as pan gestures. Almost identical\n * API to normal `Animated.Value`, but multiplexed.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html\n */\n\nclass AnimatedValueXY extends AnimatedWithChildren {\n constructor(valueIn) {\n super();\n var value = valueIn || {\n x: 0,\n y: 0\n }; // fixme: shouldn't need `: any`\n\n if (typeof value.x === 'number' && typeof value.y === 'number') {\n this.x = new AnimatedValue(value.x);\n this.y = new AnimatedValue(value.y);\n } else {\n invariant(value.x instanceof AnimatedValue && value.y instanceof AnimatedValue, 'AnimatedValueXY must be initialized with an object of numbers or ' + 'AnimatedValues.');\n this.x = value.x;\n this.y = value.y;\n }\n\n this._listeners = {};\n }\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#setvalue\n */\n\n\n setValue(value) {\n this.x.setValue(value.x);\n this.y.setValue(value.y);\n }\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#setoffset\n */\n\n\n setOffset(offset) {\n this.x.setOffset(offset.x);\n this.y.setOffset(offset.y);\n }\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#flattenoffset\n */\n\n\n flattenOffset() {\n this.x.flattenOffset();\n this.y.flattenOffset();\n }\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#extractoffset\n */\n\n\n extractOffset() {\n this.x.extractOffset();\n this.y.extractOffset();\n }\n\n __getValue() {\n return {\n x: this.x.__getValue(),\n y: this.y.__getValue()\n };\n }\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#resetanimation\n */\n\n\n resetAnimation(callback) {\n this.x.resetAnimation();\n this.y.resetAnimation();\n callback && callback(this.__getValue());\n }\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#stopanimation\n */\n\n\n stopAnimation(callback) {\n this.x.stopAnimation();\n this.y.stopAnimation();\n callback && callback(this.__getValue());\n }\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to synchronously read\n * the value because it might be driven natively.\n *\n * Returns a string that serves as an identifier for the listener.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#addlistener\n */\n\n\n addListener(callback) {\n var id = String(_uniqueId++);\n\n var jointCallback = _ref => {\n var number = _ref.value;\n callback(this.__getValue());\n };\n\n this._listeners[id] = {\n x: this.x.addListener(jointCallback),\n y: this.y.addListener(jointCallback)\n };\n return id;\n }\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#removelistener\n */\n\n\n removeListener(id) {\n this.x.removeListener(this._listeners[id].x);\n this.y.removeListener(this._listeners[id].y);\n delete this._listeners[id];\n }\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#removealllisteners\n */\n\n\n removeAllListeners() {\n this.x.removeAllListeners();\n this.y.removeAllListeners();\n this._listeners = {};\n }\n /**\n * Converts `{x, y}` into `{left, top}` for use in style.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#getlayout\n */\n\n\n getLayout() {\n return {\n left: this.x,\n top: this.y\n };\n }\n /**\n * Converts `{x, y}` into a useable translation transform.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#gettranslatetransform\n */\n\n\n getTranslateTransform() {\n return [{\n translateX: this.x\n }, {\n translateY: this.y\n }];\n }\n\n}\n\nexport default AnimatedValueXY;","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport var serializeFetchParameter = function (p, label) {\n var serialized;\n try {\n serialized = JSON.stringify(p);\n }\n catch (e) {\n var parseError = __DEV__ ? new InvariantError(\"Network request failed. \" + label + \" is not serializable: \" + e.message) : new InvariantError(23);\n parseError.parseError = e;\n throw parseError;\n }\n return serialized;\n};\n//# sourceMappingURL=serializeFetchParameter.js.map","import { __assign, __extends } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { compact, cloneDeep, getOperationDefinition, Observable, iterateObserversSafely, isNonEmptyArray, fixObservableSubclass, getQueryDefinition, } from \"../utilities/index.js\";\nvar assign = Object.assign, hasOwnProperty = Object.hasOwnProperty;\nvar warnedAboutUpdateQuery = false;\nvar ObservableQuery = (function (_super) {\n __extends(ObservableQuery, _super);\n function ObservableQuery(_a) {\n var queryManager = _a.queryManager, queryInfo = _a.queryInfo, options = _a.options;\n var _this = _super.call(this, function (observer) {\n try {\n var subObserver = observer._subscription._observer;\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n }\n catch (_a) { }\n var first = !_this.observers.size;\n _this.observers.add(observer);\n var last = _this.last;\n if (last && last.error) {\n observer.error && observer.error(last.error);\n }\n else if (last && last.result) {\n observer.next && observer.next(last.result);\n }\n if (first) {\n _this.reobserve().catch(function () { });\n }\n return function () {\n if (_this.observers.delete(observer) && !_this.observers.size) {\n _this.tearDownQuery();\n }\n };\n }) || this;\n _this.observers = new Set();\n _this.subscriptions = new Set();\n _this.isTornDown = false;\n _this.options = options;\n _this.queryId = queryInfo.queryId || queryManager.generateQueryId();\n var opDef = getOperationDefinition(options.query);\n _this.queryName = opDef && opDef.name && opDef.name.value;\n _this.initialFetchPolicy = options.fetchPolicy || \"cache-first\";\n _this.queryManager = queryManager;\n _this.queryInfo = queryInfo;\n return _this;\n }\n Object.defineProperty(ObservableQuery.prototype, \"variables\", {\n get: function () {\n return this.options.variables;\n },\n enumerable: false,\n configurable: true\n });\n ObservableQuery.prototype.result = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var observer = {\n next: function (result) {\n resolve(result);\n _this.observers.delete(observer);\n if (!_this.observers.size) {\n _this.queryManager.removeQuery(_this.queryId);\n }\n setTimeout(function () {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject,\n };\n var subscription = _this.subscribe(observer);\n });\n };\n ObservableQuery.prototype.getCurrentResult = function (saveAsLastResult) {\n if (saveAsLastResult === void 0) { saveAsLastResult = true; }\n var lastResult = this.getLastResult(true);\n var networkStatus = this.queryInfo.networkStatus ||\n (lastResult && lastResult.networkStatus) ||\n NetworkStatus.ready;\n var result = __assign(__assign({}, lastResult), { loading: isNetworkRequestInFlight(networkStatus), networkStatus: networkStatus });\n var _a = this.options.fetchPolicy, fetchPolicy = _a === void 0 ? \"cache-first\" : _a;\n var shouldReturnCachedData = lastResult || (fetchPolicy !== 'network-only' &&\n fetchPolicy !== 'no-cache' &&\n fetchPolicy !== 'standby');\n if (shouldReturnCachedData &&\n !this.queryManager.transform(this.options.query).hasForcedResolvers) {\n var diff = this.queryInfo.getDiff();\n if (diff.complete || this.options.returnPartialData) {\n result.data = diff.result;\n }\n if (equal(result.data, {})) {\n result.data = void 0;\n }\n if (diff.complete) {\n if (result.networkStatus === NetworkStatus.loading &&\n (fetchPolicy === 'cache-first' ||\n fetchPolicy === 'cache-only')) {\n result.networkStatus = NetworkStatus.ready;\n result.loading = false;\n }\n delete result.partial;\n }\n else if (fetchPolicy !== \"no-cache\") {\n result.partial = true;\n }\n if (__DEV__ &&\n !diff.complete &&\n !this.options.partialRefetch &&\n !result.loading &&\n !result.data &&\n !result.error) {\n logMissingFieldErrors(diff.missing);\n }\n }\n if (saveAsLastResult) {\n this.updateLastResult(result);\n }\n return result;\n };\n ObservableQuery.prototype.isDifferentFromLastResult = function (newResult) {\n return !this.last || !equal(this.last.result, newResult);\n };\n ObservableQuery.prototype.getLast = function (key, variablesMustMatch) {\n var last = this.last;\n if (last &&\n last[key] &&\n (!variablesMustMatch || equal(last.variables, this.variables))) {\n return last[key];\n }\n };\n ObservableQuery.prototype.getLastResult = function (variablesMustMatch) {\n return this.getLast(\"result\", variablesMustMatch);\n };\n ObservableQuery.prototype.getLastError = function (variablesMustMatch) {\n return this.getLast(\"error\", variablesMustMatch);\n };\n ObservableQuery.prototype.resetLastResults = function () {\n delete this.last;\n this.isTornDown = false;\n };\n ObservableQuery.prototype.resetQueryStoreErrors = function () {\n this.queryManager.resetErrors(this.queryId);\n };\n ObservableQuery.prototype.refetch = function (variables) {\n var _a;\n var reobserveOptions = {\n pollInterval: 0,\n };\n var fetchPolicy = this.options.fetchPolicy;\n if (fetchPolicy === 'no-cache') {\n reobserveOptions.fetchPolicy = 'no-cache';\n }\n else if (fetchPolicy !== 'cache-and-network') {\n reobserveOptions.fetchPolicy = 'network-only';\n }\n if (__DEV__ && variables && hasOwnProperty.call(variables, \"variables\")) {\n var queryDef = getQueryDefinition(this.options.query);\n var vars = queryDef.variableDefinitions;\n if (!vars || !vars.some(function (v) { return v.variable.name.value === \"variables\"; })) {\n __DEV__ && invariant.warn(\"Called refetch(\" + JSON.stringify(variables) + \") for query \" + (((_a = queryDef.name) === null || _a === void 0 ? void 0 : _a.value) || JSON.stringify(queryDef)) + \", which does not declare a $variables variable.\\nDid you mean to call refetch(variables) instead of refetch({ variables })?\");\n }\n }\n if (variables && !equal(this.options.variables, variables)) {\n reobserveOptions.variables = this.options.variables = __assign(__assign({}, this.options.variables), variables);\n }\n this.queryInfo.resetLastWrite();\n return this.reobserve(reobserveOptions, NetworkStatus.refetch);\n };\n ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n var _this = this;\n var combinedOptions = __assign(__assign({}, (fetchMoreOptions.query ? fetchMoreOptions : __assign(__assign(__assign({}, this.options), fetchMoreOptions), { variables: __assign(__assign({}, this.options.variables), fetchMoreOptions.variables) }))), { fetchPolicy: \"no-cache\" });\n var qid = this.queryManager.generateQueryId();\n if (combinedOptions.notifyOnNetworkStatusChange) {\n this.queryInfo.networkStatus = NetworkStatus.fetchMore;\n this.observe();\n }\n return this.queryManager.fetchQuery(qid, combinedOptions, NetworkStatus.fetchMore).then(function (fetchMoreResult) {\n var data = fetchMoreResult.data;\n var updateQuery = fetchMoreOptions.updateQuery;\n if (updateQuery) {\n if (__DEV__ &&\n !warnedAboutUpdateQuery) {\n __DEV__ && invariant.warn(\"The updateQuery callback for fetchMore is deprecated, and will be removed\\nin the next major version of Apollo Client.\\n\\nPlease convert updateQuery functions to field policies with appropriate\\nread and merge functions, or use/adapt a helper function (such as\\nconcatPagination, offsetLimitPagination, or relayStylePagination) from\\n@apollo/client/utilities.\\n\\nThe field policy system handles pagination more effectively than a\\nhand-written updateQuery function, and you only need to define the policy\\nonce, rather than every time you call fetchMore.\");\n warnedAboutUpdateQuery = true;\n }\n _this.updateQuery(function (previous) { return updateQuery(previous, {\n fetchMoreResult: data,\n variables: combinedOptions.variables,\n }); });\n }\n else {\n _this.queryManager.cache.writeQuery({\n query: combinedOptions.query,\n variables: combinedOptions.variables,\n data: data,\n });\n }\n return fetchMoreResult;\n }).finally(function () {\n _this.queryManager.stopQuery(qid);\n _this.reobserve();\n });\n };\n ObservableQuery.prototype.subscribeToMore = function (options) {\n var _this = this;\n var subscription = this.queryManager\n .startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n context: options.context,\n })\n .subscribe({\n next: function (subscriptionData) {\n var updateQuery = options.updateQuery;\n if (updateQuery) {\n _this.updateQuery(function (previous, _a) {\n var variables = _a.variables;\n return updateQuery(previous, {\n subscriptionData: subscriptionData,\n variables: variables,\n });\n });\n }\n },\n error: function (err) {\n if (options.onError) {\n options.onError(err);\n return;\n }\n __DEV__ && invariant.error('Unhandled GraphQL subscription error', err);\n },\n });\n this.subscriptions.add(subscription);\n return function () {\n if (_this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n };\n ObservableQuery.prototype.setOptions = function (newOptions) {\n return this.reobserve(newOptions);\n };\n ObservableQuery.prototype.setVariables = function (variables) {\n if (equal(this.variables, variables)) {\n return this.observers.size\n ? this.result()\n : Promise.resolve();\n }\n this.options.variables = variables;\n if (!this.observers.size) {\n return Promise.resolve();\n }\n return this.reobserve({\n fetchPolicy: this.initialFetchPolicy,\n variables: variables,\n }, NetworkStatus.setVariables);\n };\n ObservableQuery.prototype.updateQuery = function (mapFn) {\n var queryManager = this.queryManager;\n var result = queryManager.cache.diff({\n query: this.options.query,\n variables: this.variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n var newResult = mapFn(result, {\n variables: this.variables,\n });\n if (newResult) {\n queryManager.cache.writeQuery({\n query: this.options.query,\n data: newResult,\n variables: this.variables,\n });\n queryManager.broadcastQueries();\n }\n };\n ObservableQuery.prototype.startPolling = function (pollInterval) {\n this.options.pollInterval = pollInterval;\n this.updatePolling();\n };\n ObservableQuery.prototype.stopPolling = function () {\n this.options.pollInterval = 0;\n this.updatePolling();\n };\n ObservableQuery.prototype.fetch = function (options, newNetworkStatus) {\n this.queryManager.setObservableQuery(this);\n return this.queryManager.fetchQueryObservable(this.queryId, options, newNetworkStatus);\n };\n ObservableQuery.prototype.updatePolling = function () {\n var _this = this;\n if (this.queryManager.ssrMode) {\n return;\n }\n var _a = this, pollingInfo = _a.pollingInfo, pollInterval = _a.options.pollInterval;\n if (!pollInterval) {\n if (pollingInfo) {\n clearTimeout(pollingInfo.timeout);\n delete this.pollingInfo;\n }\n return;\n }\n if (pollingInfo &&\n pollingInfo.interval === pollInterval) {\n return;\n }\n __DEV__ ? invariant(pollInterval, 'Attempted to start a polling query without a polling interval.') : invariant(pollInterval, 12);\n var info = pollingInfo || (this.pollingInfo = {});\n info.interval = pollInterval;\n var maybeFetch = function () {\n if (_this.pollingInfo) {\n if (!isNetworkRequestInFlight(_this.queryInfo.networkStatus)) {\n _this.reobserve({\n fetchPolicy: \"network-only\",\n }, NetworkStatus.poll).then(poll, poll);\n }\n else {\n poll();\n }\n }\n ;\n };\n var poll = function () {\n var info = _this.pollingInfo;\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch, info.interval);\n }\n };\n poll();\n };\n ObservableQuery.prototype.updateLastResult = function (newResult, variables) {\n if (variables === void 0) { variables = this.variables; }\n this.last = __assign(__assign({}, this.last), { result: this.queryManager.assumeImmutableResults\n ? newResult\n : cloneDeep(newResult), variables: variables });\n if (!isNonEmptyArray(newResult.errors)) {\n delete this.last.error;\n }\n return this.last;\n };\n ObservableQuery.prototype.reobserve = function (newOptions, newNetworkStatus) {\n var _this = this;\n this.isTornDown = false;\n var useDisposableConcast = newNetworkStatus === NetworkStatus.refetch ||\n newNetworkStatus === NetworkStatus.fetchMore ||\n newNetworkStatus === NetworkStatus.poll;\n var oldVariables = this.options.variables;\n var options = useDisposableConcast\n ? compact(this.options, newOptions)\n : assign(this.options, compact(newOptions));\n if (!useDisposableConcast) {\n this.updatePolling();\n if (newOptions &&\n newOptions.variables &&\n !newOptions.fetchPolicy &&\n !equal(newOptions.variables, oldVariables)) {\n options.fetchPolicy = this.initialFetchPolicy;\n if (newNetworkStatus === void 0) {\n newNetworkStatus = NetworkStatus.setVariables;\n }\n }\n }\n var variables = options.variables && __assign({}, options.variables);\n var concast = this.fetch(options, newNetworkStatus);\n var observer = {\n next: function (result) {\n _this.reportResult(result, variables);\n },\n error: function (error) {\n _this.reportError(error, variables);\n },\n };\n if (!useDisposableConcast) {\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer, true);\n }\n this.concast = concast;\n this.observer = observer;\n }\n concast.addObserver(observer);\n return concast.promise;\n };\n ObservableQuery.prototype.observe = function () {\n this.reportResult(this.getCurrentResult(false), this.variables);\n };\n ObservableQuery.prototype.reportResult = function (result, variables) {\n if (this.getLastError() || this.isDifferentFromLastResult(result)) {\n this.updateLastResult(result, variables);\n iterateObserversSafely(this.observers, 'next', result);\n }\n };\n ObservableQuery.prototype.reportError = function (error, variables) {\n var errorResult = __assign(__assign({}, this.getLastResult()), { error: error, errors: error.graphQLErrors, networkStatus: NetworkStatus.error, loading: false });\n this.updateLastResult(errorResult, variables);\n iterateObserversSafely(this.observers, 'error', this.last.error = error);\n };\n ObservableQuery.prototype.hasObservers = function () {\n return this.observers.size > 0;\n };\n ObservableQuery.prototype.tearDownQuery = function () {\n if (this.isTornDown)\n return;\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n delete this.concast;\n delete this.observer;\n }\n this.stopPolling();\n this.subscriptions.forEach(function (sub) { return sub.unsubscribe(); });\n this.subscriptions.clear();\n this.queryManager.stopQuery(this.queryId);\n this.observers.clear();\n this.isTornDown = true;\n };\n return ObservableQuery;\n}(Observable));\nexport { ObservableQuery };\nfixObservableSubclass(ObservableQuery);\nfunction defaultSubscriptionObserverErrorCallback(error) {\n __DEV__ && invariant.error('Unhandled error', error.message, error.stack);\n}\nexport function logMissingFieldErrors(missing) {\n if (__DEV__ && isNonEmptyArray(missing)) {\n __DEV__ && invariant.debug(\"Missing cache result fields: \" + missing.map(function (m) { return m.path.join('.'); }).join(', '), missing);\n }\n}\nexport function applyNextFetchPolicy(options) {\n var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? \"cache-first\" : _a, nextFetchPolicy = options.nextFetchPolicy;\n if (nextFetchPolicy) {\n options.fetchPolicy = typeof nextFetchPolicy === \"function\"\n ? nextFetchPolicy.call(options, fetchPolicy)\n : nextFetchPolicy;\n }\n}\n//# sourceMappingURL=ObservableQuery.js.map","import getNamedContext from '../getNamedContext';\nconst HeaderHeightContext = getNamedContext('HeaderHeightContext', undefined);\nexport default HeaderHeightContext;\n//# sourceMappingURL=HeaderHeightContext.js.map","import getNamedContext from '../getNamedContext';\nconst HeaderShownContext = getNamedContext('HeaderShownContext', false);\nexport default HeaderShownContext;\n//# sourceMappingURL=HeaderShownContext.js.map","import { EventEmitter } from 'expo-modules-core';\n\nexport const LocationEventEmitter = new EventEmitter({} as any);\n","import * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\nimport Icon, { isValidIcon, IconSource, isEqualIcon } from './Icon';\n\nimport { withTheme } from '../core/theming';\n\ntype Props = {\n /**\n * Icon to display for the `CrossFadeIcon`.\n */\n source: IconSource;\n /**\n * Color of the icon.\n */\n color: string;\n /**\n * Size of the icon.\n */\n size: number;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\nconst CrossFadeIcon = ({ color, size, source, theme }: Props) => {\n const [currentIcon, setCurrentIcon] = React.useState(\n () => source\n );\n const [previousIcon, setPreviousIcon] = React.useState(\n null\n );\n const { current: fade } = React.useRef(new Animated.Value(1));\n\n const { scale } = theme.animation;\n\n if (currentIcon !== source) {\n setPreviousIcon(() => currentIcon);\n setCurrentIcon(() => source);\n }\n\n React.useEffect(() => {\n if (isValidIcon(previousIcon) && !isEqualIcon(previousIcon, currentIcon)) {\n fade.setValue(1);\n\n Animated.timing(fade, {\n duration: scale * 200,\n toValue: 0,\n useNativeDriver: true,\n }).start();\n }\n }, [currentIcon, previousIcon, fade, scale]);\n\n const opacityPrev = fade;\n const opacityNext = previousIcon\n ? fade.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0],\n })\n : 1;\n\n const rotatePrev = fade.interpolate({\n inputRange: [0, 1],\n outputRange: ['-90deg', '0deg'],\n });\n\n const rotateNext = previousIcon\n ? fade.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '-180deg'],\n })\n : '0deg';\n\n return (\n \n {previousIcon ? (\n \n \n \n ) : null}\n \n \n \n \n );\n};\n\nexport default withTheme(CrossFadeIcon);\n\nconst styles = StyleSheet.create({\n content: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n icon: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n});\n","import * as React from 'react';\nimport {\n View,\n ViewStyle,\n StyleSheet,\n StyleProp,\n GestureResponderEvent,\n TouchableWithoutFeedback,\n} from 'react-native';\nimport color from 'color';\n\nimport TouchableRipple from './TouchableRipple/TouchableRipple';\nimport Icon, { IconSource } from './Icon';\nimport CrossFadeIcon from './CrossFadeIcon';\nimport { withTheme } from '../core/theming';\n\nimport type { $RemoveChildren } from '../types';\n\nexport type Props = $RemoveChildren & {\n /**\n * Icon to display.\n */\n icon: IconSource;\n /**\n * Color of the icon.\n */\n color?: string;\n /**\n * Size of the icon.\n */\n size?: number;\n /**\n * Whether the button is disabled. A disabled button is greyed out and `onPress` is not called on touch.\n */\n disabled?: boolean;\n /**\n * Whether an icon change is animated.\n */\n animated?: boolean;\n /**\n * Accessibility label for the button. This is read by the screen reader when the user taps the button.\n */\n accessibilityLabel?: string;\n /**\n * Function to execute on press.\n */\n onPress?: (e: GestureResponderEvent) => void;\n style?: StyleProp;\n ref?: React.RefObject;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\n/**\n * An icon button is a button which displays only an icon without a label.\n * By default button has 150% size of the icon.\n *\n *

\n *
\n * \n *
Icon button
\n *
\n *
\n * \n *
Pressed icon button
\n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { IconButton, Colors } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * console.log('Pressed')}\n * />\n * );\n *\n * export default MyComponent;\n * ```\n *\n * @extends TouchableRipple props https://callstack.github.io/react-native-paper/touchable-ripple.html\n */\nconst IconButton = ({\n icon,\n color: customColor,\n size = 24,\n accessibilityLabel,\n disabled,\n onPress,\n animated = false,\n theme,\n style,\n ...rest\n}: Props) => {\n const iconColor =\n typeof customColor !== 'undefined' ? customColor : theme.colors.text;\n const rippleColor = color(iconColor).alpha(0.32).rgb().string();\n const IconComponent = animated ? CrossFadeIcon : Icon;\n const buttonSize = size * 1.5;\n return (\n \n \n \n \n \n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n overflow: 'hidden',\n margin: 6,\n },\n disabled: {\n opacity: 0.32,\n },\n});\n\nexport default withTheme(IconButton);\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _construct.apply(null, arguments);\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport { createContext } from 'react';\nvar TextAncestorContext = /*#__PURE__*/createContext(false);\nexport default TextAncestorContext;","import * as React from 'react';\nimport MaterialCommunityIcon, {\n IconProps,\n} from '../components/MaterialCommunityIcon';\n\nexport type Settings = {\n icon: ({ name, color, size, direction }: IconProps) => React.ReactNode;\n};\n\nexport const { Provider, Consumer } = React.createContext({\n icon: MaterialCommunityIcon,\n});\n","import type {\n NativeEventSubscription,\n EmitterSubscription,\n} from 'react-native';\n\nexport function addEventListener<\n T extends {\n addEventListener: (\n ...args: any\n ) => NativeEventSubscription | EmitterSubscription;\n removeEventListener: (...args: any) => void;\n }\n>(Module: T, ...rest: Parameters) {\n const [eventName, handler] = rest;\n\n let removed = false;\n\n const subscription = Module.addEventListener(eventName, handler) ?? {\n remove: () => {\n if (removed) {\n return;\n }\n\n Module.removeEventListener(eventName, handler);\n removed = true;\n },\n };\n\n return subscription;\n}\n\nexport function addListener<\n T extends {\n addListener: (...args: any) => EmitterSubscription;\n removeEventListener: (...args: any) => void;\n }\n>(Module: T, ...rest: Parameters) {\n const [eventName, handler] = rest;\n\n let removed = false;\n\n const subscription = Module.addListener(eventName, handler) ?? {\n remove: () => {\n if (removed) {\n return;\n }\n\n Module.removeEventListener(eventName, handler);\n removed = true;\n },\n };\n\n return subscription;\n}\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","import * as React from 'react';\nimport {\n Animated,\n TextStyle,\n I18nManager,\n StyleProp,\n StyleSheet,\n} from 'react-native';\nimport { withTheme } from '../../core/theming';\n\ntype Props = React.ComponentPropsWithRef & {\n style?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\n/**\n * Text component which follows styles from the theme.\n *\n * @extends Text props https://reactnative.dev/docs/text#props\n */\nfunction AnimatedText({ style, theme, ...rest }: Props) {\n const writingDirection = I18nManager.isRTL ? 'rtl' : 'ltr';\n\n return (\n \n );\n}\n\nconst styles = StyleSheet.create({\n text: {\n textAlign: 'left',\n },\n});\n\nexport default withTheme(AnimatedText);\n","import { CodedError } from 'expo-modules-core';\n\nimport { LocationGeocodedAddress, LocationGeocodedLocation } from './Location.types';\n\nconst GOOGLE_API_URL = 'https://maps.googleapis.com/maps/api/geocode/json';\nlet googleApiKey;\n\ntype GoogleApiGeocodingAddressComponent = {\n long_name: string;\n short_name: string;\n types: string[];\n};\n\ntype GoogleApiGeocodingResult = {\n address_components: GoogleApiGeocodingAddressComponent[];\n formatted_address: string;\n geometry: {\n location: {\n lat: number;\n lng: number;\n };\n };\n};\n\ntype GoogleApiGeocodingResponse = {\n results: GoogleApiGeocodingResult[];\n status: string;\n};\n\n// @needsAudit\n/**\n * Sets a Google API Key for using Google Maps Geocoding API which is used by default on Web\n * platform and can be enabled through `useGoogleMaps` option of `geocodeAsync` and `reverseGeocodeAsync`\n * methods. It might be useful for Android devices that do not have Google Play Services, hence no\n * Geocoder Service.\n * @param apiKey Google API key obtained from Google API Console. This API key must have `Geocoding API`\n * enabled, otherwise your geocoding requests will be denied.\n */\nexport function setGoogleApiKey(apiKey: string) {\n googleApiKey = apiKey;\n}\n\nexport async function googleGeocodeAsync(address: string): Promise {\n assertGoogleApiKey();\n\n const result = await requestGoogleApiAsync({ address });\n\n if (result.status === 'ZERO_RESULTS') {\n return [];\n }\n assertGeocodeResults(result);\n return result.results.map(geocodingResultToLocation);\n}\n\nexport async function googleReverseGeocodeAsync(options: {\n latitude: number;\n longitude: number;\n}): Promise {\n assertGoogleApiKey();\n\n const result = await requestGoogleApiAsync({\n latlng: `${options.latitude},${options.longitude}`,\n });\n\n if (result.status === 'ZERO_RESULTS') {\n return [];\n }\n assertGeocodeResults(result);\n return result.results.map(reverseGeocodingResultToAddress);\n}\n\n// https://developers.google.com/maps/documentation/geocoding/intro\nfunction assertGeocodeResults(resultObject: any): void {\n const { status, error_message } = resultObject;\n if (status !== 'ZERO_RESULTS' && status !== 'OK') {\n if (error_message) {\n throw new CodedError(status, error_message);\n } else if (status === 'UNKNOWN_ERROR') {\n throw new CodedError(\n status,\n 'the request could not be processed due to a server error. The request may succeed if you try again.'\n );\n }\n throw new CodedError(status, `An error occurred during geocoding.`);\n }\n}\n\n/**\n * Makes sure the Google API key is set.\n */\nfunction assertGoogleApiKey() {\n if (!googleApiKey) {\n throw new Error(\n 'Google API key is required to use geocoding. Please set it using `setGoogleApiKey` method.'\n );\n }\n}\n\n/**\n * Generic and handy method for sending requests to Google Maps API endpoint.\n */\nasync function requestGoogleApiAsync(\n params: { address: string } | { latlng: string }\n): Promise {\n const query = Object.entries(params)\n .map((entry) => `${entry[0]}=${encodeURI(entry[1])}`)\n .join('&');\n const result = await fetch(`${GOOGLE_API_URL}?key=${googleApiKey}&${query}`);\n return await result.json();\n}\n\n/**\n * Converts Google's result to the location object.\n */\nfunction geocodingResultToLocation(result: GoogleApiGeocodingResult): LocationGeocodedLocation {\n const { location } = result.geometry;\n return {\n latitude: location.lat,\n longitude: location.lng,\n };\n}\n\n/**\n * Converts Google's result to address object.\n */\nfunction reverseGeocodingResultToAddress(\n result: GoogleApiGeocodingResult\n): LocationGeocodedAddress {\n const address: Partial = {};\n\n for (const { long_name, short_name, types } of result.address_components) {\n if (types.includes('locality')) {\n address.city = long_name;\n continue;\n }\n if (types.includes('sublocality')) {\n address.district = long_name;\n continue;\n }\n if (types.includes('street_number')) {\n address.streetNumber = long_name;\n continue;\n }\n if (types.includes('street_address') || types.includes('route')) {\n address.street = long_name;\n continue;\n }\n if (types.includes('administrative_area_level_1')) {\n address.region = long_name;\n continue;\n }\n if (types.includes('administrative_area_level_2')) {\n address.subregion = long_name;\n continue;\n }\n if (types.includes('country')) {\n address.country = long_name;\n address.isoCountryCode = short_name;\n continue;\n }\n if (types.includes('postal_code')) {\n address.postalCode = long_name;\n continue;\n }\n if (types.includes('point_of_interest')) {\n address.name = long_name;\n continue;\n }\n }\n if (!address.name) {\n address.name = result.formatted_address.replace(/,.*$/, '');\n }\n return address as LocationGeocodedAddress;\n}\n","import { Subscription } from 'expo-modules-core';\n\nimport ExpoLocation from './ExpoLocation';\nimport { LocationCallback, LocationHeadingCallback } from './Location.types';\nimport { LocationEventEmitter } from './LocationEventEmitter';\n\ntype EventObject = {\n watchId: number;\n [key: string]: any;\n};\n\nlet nextWatchId = 0;\n\nclass Subscriber {\n private eventName: string;\n private eventDataField: string;\n private callbacks: { [id: string]: CallbackType } = {};\n private eventSubscription: Subscription | null = null;\n\n constructor(eventName: string, eventDataField: string) {\n this.eventName = eventName;\n this.eventDataField = eventDataField;\n }\n\n maybeInitializeSubscription() {\n if (this.eventSubscription) {\n return;\n }\n this.eventSubscription = LocationEventEmitter.addListener(\n this.eventName,\n (event: EventObject) => this.trigger(event)\n );\n }\n\n /**\n * Registers given callback under new id which is then returned.\n */\n registerCallback(callback: CallbackType): number {\n this.maybeInitializeSubscription();\n const id = ++nextWatchId;\n this.callbacks[id] = callback;\n return id;\n }\n\n /**\n * Unregisters a callback with given id and revokes the subscription if possible.\n */\n unregisterCallback(id: number): void {\n // Do nothing if we have already unregistered the callback.\n if (!this.callbacks[id]) {\n return;\n }\n\n delete this.callbacks[id];\n ExpoLocation.removeWatchAsync(id);\n\n if (Object.keys(this.callbacks).length === 0 && this.eventSubscription) {\n LocationEventEmitter.removeSubscription(this.eventSubscription);\n this.eventSubscription = null;\n }\n }\n\n trigger(event: EventObject): void {\n const watchId = event.watchId;\n const callback = this.callbacks[watchId];\n\n if (callback) {\n callback(event[this.eventDataField]);\n } else {\n ExpoLocation.removeWatchAsync(watchId);\n }\n }\n}\n\nexport const LocationSubscriber = new Subscriber(\n 'Expo.locationChanged',\n 'location'\n);\nexport const HeadingSubscriber = new Subscriber(\n 'Expo.headingChanged',\n 'heading'\n);\n\n/**\n * @private Necessary for some unit tests.\n */\nexport function _getCurrentWatchId(): number {\n return nextWatchId;\n}\n","import {\n PermissionStatus,\n PermissionResponse,\n PermissionHookOptions,\n createPermissionHook,\n Platform,\n} from 'expo-modules-core';\n\nimport ExpoLocation from './ExpoLocation';\nimport {\n LocationAccuracy,\n LocationCallback,\n LocationGeocodedAddress,\n LocationGeocodedLocation,\n LocationHeadingCallback,\n LocationHeadingObject,\n LocationLastKnownOptions,\n LocationObject,\n LocationOptions,\n LocationPermissionResponse,\n LocationProviderStatus,\n LocationRegion,\n LocationSubscription,\n LocationTaskOptions,\n LocationActivityType,\n LocationGeofencingEventType,\n LocationGeofencingRegionState,\n LocationGeocodingOptions,\n} from './Location.types';\nimport { LocationEventEmitter } from './LocationEventEmitter';\nimport {\n setGoogleApiKey,\n googleGeocodeAsync,\n googleReverseGeocodeAsync,\n} from './LocationGoogleGeocoding';\nimport { LocationSubscriber, HeadingSubscriber, _getCurrentWatchId } from './LocationSubscribers';\n\n// @needsAudit\n/**\n * Check status of location providers.\n * @return A promise which fulfills with an object of type [LocationProviderStatus](#locationproviderstatus).\n */\nexport async function getProviderStatusAsync(): Promise {\n return ExpoLocation.getProviderStatusAsync();\n}\n\n// @needsAudit\n/**\n * Asks the user to turn on high accuracy location mode which enables network provider that uses\n * Google Play services to improve location accuracy and location-based services.\n * @return A promise resolving as soon as the user accepts the dialog. Rejects if denied.\n */\nexport async function enableNetworkProviderAsync(): Promise {\n // If network provider is disabled (user's location mode is set to \"Device only\"),\n // Android's location provider may not give you any results. Use this method in order to ask the user\n // to change the location mode to \"High accuracy\" which uses Google Play services and enables network provider.\n // `getCurrentPositionAsync` and `watchPositionAsync` are doing it automatically anyway.\n\n if (Platform.OS === 'android') {\n return ExpoLocation.enableNetworkProviderAsync();\n }\n}\n\n// @needsAudit\n/**\n * Requests for one-time delivery of the user's current location.\n * Depending on given `accuracy` option it may take some time to resolve,\n * especially when you're inside a building.\n * > __Note:__ Calling it causes the location manager to obtain a location fix which may take several\n * > seconds. Consider using [`Location.getLastKnownPositionAsync`](#locationgetlastknownpositionasyncoptions)\n * > if you expect to get a quick response and high accuracy is not required.\n * @param options\n * @return A promise which fulfills with an object of type [`LocationObject`](#locationobject).\n */\nexport async function getCurrentPositionAsync(\n options: LocationOptions = {}\n): Promise {\n return ExpoLocation.getCurrentPositionAsync(options);\n}\n\n// @needsAudit\n/**\n * Gets the last known position of the device or `null` if it's not available or doesn't match given\n * requirements such as maximum age or required accuracy.\n * It's considered to be faster than `getCurrentPositionAsync` as it doesn't request for the current\n * location, but keep in mind the returned location may not be up-to-date.\n * @param options\n * @return A promise which fulfills with an object of type [LocationObject](#locationobject) or\n * `null` if it's not available or doesn't match given requirements such as maximum age or required\n * accuracy.\n */\nexport async function getLastKnownPositionAsync(\n options: LocationLastKnownOptions = {}\n): Promise {\n return ExpoLocation.getLastKnownPositionAsync(options);\n}\n\n// @needsAudit\n/**\n * Subscribe to location updates from the device. Please note that updates will only occur while the\n * application is in the foreground. To get location updates while in background you'll need to use\n * [Location.startLocationUpdatesAsync](#locationstartlocationupdatesasynctaskname-options).\n * @param options\n * @param callback This function is called on each location update. It receives an object of type\n * [`LocationObject`](#locationobject) as the first argument.\n * @return A promise which fulfills with a [`LocationSubscription`](#locationsubscription) object.\n */\nexport async function watchPositionAsync(\n options: LocationOptions,\n callback: LocationCallback\n): Promise {\n const watchId = LocationSubscriber.registerCallback(callback);\n await ExpoLocation.watchPositionImplAsync(watchId, options);\n\n return {\n remove() {\n LocationSubscriber.unregisterCallback(watchId);\n },\n };\n}\n\n// @needsAudit\n/**\n * Gets the current heading information from the device. To simplify, it calls `watchHeadingAsync`\n * and waits for a couple of updates, and then returns the one that is accurate enough.\n * @return A promise which fulfills with an object of type [LocationHeadingObject](#locationheadingobject).\n */\nexport async function getHeadingAsync(): Promise {\n return new Promise(async (resolve) => {\n let tries = 0;\n\n const subscription = await watchHeadingAsync((heading) => {\n if (heading.accuracy > 1 || tries > 5) {\n subscription.remove();\n resolve(heading);\n } else {\n tries += 1;\n }\n });\n });\n}\n\n// @needsAudit\n/**\n * Subscribe to compass updates from the device.\n * @param callback This function is called on each compass update. It receives an object of type\n * [LocationHeadingObject](#locationheadingobject) as the first argument.\n * @return A promise which fulfills with a [`LocationSubscription`](#locationsubscription) object.\n */\nexport async function watchHeadingAsync(\n callback: LocationHeadingCallback\n): Promise {\n const watchId = HeadingSubscriber.registerCallback(callback);\n await ExpoLocation.watchDeviceHeading(watchId);\n\n return {\n remove() {\n HeadingSubscriber.unregisterCallback(watchId);\n },\n };\n}\n\n// @needsAudit\n/**\n * Geocode an address string to latitude-longitude location.\n * > **Note**: Geocoding is resource consuming and has to be used reasonably. Creating too many\n * > requests at a time can result in an error, so they have to be managed properly.\n * > It's also discouraged to use geocoding while the app is in the background and its results won't\n * > be shown to the user immediately.\n *\n * > On Android, you must request a location permission (`Permissions.LOCATION`) from the user\n * > before geocoding can be used.\n * @param address A string representing address, eg. `\"Baker Street London\"`.\n * @param options\n * @return A promise which fulfills with an array (in most cases its size is 1) of [`LocationGeocodedLocation`](#locationgeocodedlocation) objects.\n */\nexport async function geocodeAsync(\n address: string,\n options?: LocationGeocodingOptions\n): Promise {\n if (typeof address !== 'string') {\n throw new TypeError(`Address to geocode must be a string. Got ${address} instead.`);\n }\n if (options?.useGoogleMaps || Platform.OS === 'web') {\n return await googleGeocodeAsync(address);\n }\n return await ExpoLocation.geocodeAsync(address);\n}\n\n// @needsAudit\n/**\n * Reverse geocode a location to postal address.\n * > **Note**: Geocoding is resource consuming and has to be used reasonably. Creating too many\n * > requests at a time can result in an error, so they have to be managed properly.\n * > It's also discouraged to use geocoding while the app is in the background and its results won't\n * > be shown to the user immediately.\n *\n * > On Android, you must request a location permission (`Permissions.LOCATION`) from the user\n * > before geocoding can be used.\n * @param location An object representing a location.\n * @param options\n * @return A promise which fulfills with an array (in most cases its size is 1) of [`LocationGeocodedAddress`](#locationgeocodedaddress) objects.\n */\nexport async function reverseGeocodeAsync(\n location: Pick,\n options?: LocationGeocodingOptions\n): Promise {\n if (typeof location.latitude !== 'number' || typeof location.longitude !== 'number') {\n throw new TypeError(\n 'Location to reverse-geocode must be an object with number properties `latitude` and `longitude`.'\n );\n }\n if (options?.useGoogleMaps || Platform.OS === 'web') {\n return await googleReverseGeocodeAsync(location);\n }\n return await ExpoLocation.reverseGeocodeAsync(location);\n}\n\n// @needsAudit\n/**\n * Checks user's permissions for accessing location.\n * @return A promise that fulfills with an object of type [LocationPermissionResponse](#locationpermissionresponse).\n * @deprecated Use [`getForegroundPermissionsAsync`](#locationgetforegroundpermissionsasync) or [`getBackgroundPermissionsAsync`](#locationgetbackgroundpermissionsasync) instead.\n */\nexport async function getPermissionsAsync(): Promise {\n console.warn(\n `\"getPermissionsAsync()\" is now deprecated. Please use \"getForegroundPermissionsAsync()\" or \"getBackgroundPermissionsAsync()\" instead.`\n );\n return await ExpoLocation.getPermissionsAsync();\n}\n\n// @needsAudit\n/**\n * Asks the user to grant permissions for location.\n * @return A promise that fulfills with an object of type [LocationPermissionResponse](#locationpermissionresponse).\n * @deprecated Use [`requestForegroundPermissionsAsync`](#locationrequestforegroundpermissionsasync) or [`requestBackgroundPermissionsAsync`](#locationrequestbackgroundpermissionsasync) instead.\n */\nexport async function requestPermissionsAsync(): Promise {\n console.warn(\n `\"requestPermissionsAsync()\" is now deprecated. Please use \"requestForegroundPermissionsAsync()\" or \"requestBackgroundPermissionsAsync()\" instead.`\n );\n\n return await ExpoLocation.requestPermissionsAsync();\n}\n\n// @needsAudit\n/**\n * Checks user's permissions for accessing location while the app is in the foreground.\n * @return A promise that fulfills with an object of type [PermissionResponse](#permissionresponse).\n */\nexport async function getForegroundPermissionsAsync(): Promise {\n return await ExpoLocation.getForegroundPermissionsAsync();\n}\n\n// @needsAudit\n/**\n * Asks the user to grant permissions for location while the app is in the foreground.\n * @return A promise that fulfills with an object of type [PermissionResponse](#permissionresponse).\n */\nexport async function requestForegroundPermissionsAsync(): Promise {\n return await ExpoLocation.requestForegroundPermissionsAsync();\n}\n\n// @needsAudit\n/**\n * Check or request permissions for the foreground location.\n * This uses both `requestForegroundPermissionsAsync` and `getForegroundPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = Location.useForegroundPermissions();\n * ```\n */\nexport const useForegroundPermissions = createPermissionHook({\n getMethod: getForegroundPermissionsAsync,\n requestMethod: requestForegroundPermissionsAsync,\n});\n\n// @needsAudit\n/**\n * Checks user's permissions for accessing location while the app is in the background.\n * @return A promise that fulfills with an object of type [PermissionResponse](#permissionresponse).\n */\nexport async function getBackgroundPermissionsAsync(): Promise {\n return await ExpoLocation.getBackgroundPermissionsAsync();\n}\n\n// @needsAudit\n/**\n * Asks the user to grant permissions for location while the app is in the background.\n * On __Android 11 or higher__: this method will open the system settings page - before that happens\n * you should explain to the user why your application needs background location permission.\n * For example, you can use `Modal` component from `react-native` to do that.\n * > __Note__: Foreground permissions should be granted before asking for the background permissions\n * (your app can't obtain background permission without foreground permission).\n * @return A promise that fulfills with an object of type [PermissionResponse](#permissionresponse).\n */\nexport async function requestBackgroundPermissionsAsync(): Promise {\n return await ExpoLocation.requestBackgroundPermissionsAsync();\n}\n\n// @needsAudit\n/**\n * Check or request permissions for the foreground location.\n * This uses both `requestBackgroundPermissionsAsync` and `getBackgroundPermissionsAsync` to\n * interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = Location.useBackgroundPermissions();\n * ```\n */\nexport const useBackgroundPermissions = createPermissionHook({\n getMethod: getBackgroundPermissionsAsync,\n requestMethod: requestBackgroundPermissionsAsync,\n});\n\n// --- Location service\n\n// @needsAudit\n/**\n * Checks whether location services are enabled by the user.\n * @return A promise which fulfills to `true` if location services are enabled on the device,\n * or `false` if not.\n */\nexport async function hasServicesEnabledAsync(): Promise {\n return await ExpoLocation.hasServicesEnabledAsync();\n}\n\n// --- Background location updates\n\nfunction _validateTaskName(taskName: string) {\n if (!taskName || typeof taskName !== 'string') {\n throw new Error(`\\`taskName\\` must be a non-empty string. Got ${taskName} instead.`);\n }\n}\n\n// @docsMissing\nexport async function isBackgroundLocationAvailableAsync(): Promise {\n const providerStatus = await getProviderStatusAsync();\n return providerStatus.backgroundModeEnabled;\n}\n\n// @needsAudit\n/**\n * Registers for receiving location updates that can also come when the app is in the background.\n *\n * # Task parameters\n *\n * Background location task will be receiving following data:\n * - `locations` - An array of the new locations.\n *\n * ```ts\n * import * as TaskManager from 'expo-task-manager';\n *\n * TaskManager.defineTask(YOUR_TASK_NAME, ({ data: { locations }, error }) => {\n * if (error) {\n * // check `error.message` for more details.\n * return;\n * }\n * console.log('Received new locations', locations);\n * });\n * ```\n *\n * @param taskName Name of the task receiving location updates.\n * @param options An object of options passed to the location manager.\n *\n * @return A promise resolving once the task with location updates is registered.\n */\nexport async function startLocationUpdatesAsync(\n taskName: string,\n options: LocationTaskOptions = { accuracy: LocationAccuracy.Balanced }\n): Promise {\n _validateTaskName(taskName);\n await ExpoLocation.startLocationUpdatesAsync(taskName, options);\n}\n\n// @needsAudit\n/**\n * Stops geofencing for specified task.\n * @param taskName Name of the background location task to stop.\n * @return A promise resolving as soon as the task is unregistered.\n */\nexport async function stopLocationUpdatesAsync(taskName: string): Promise {\n _validateTaskName(taskName);\n await ExpoLocation.stopLocationUpdatesAsync(taskName);\n}\n\n// @needsAudit\n/**\n * @param taskName Name of the location task to check.\n * @return A promise which fulfills with boolean value indicating whether the location task is\n * started or not.\n */\nexport async function hasStartedLocationUpdatesAsync(taskName: string): Promise {\n _validateTaskName(taskName);\n return ExpoLocation.hasStartedLocationUpdatesAsync(taskName);\n}\n\n// --- Geofencing\n\nfunction _validateRegions(regions: LocationRegion[]) {\n if (!regions || regions.length === 0) {\n throw new Error(\n 'Regions array cannot be empty. Use `stopGeofencingAsync` if you want to stop geofencing all regions'\n );\n }\n for (const region of regions) {\n if (typeof region.latitude !== 'number') {\n throw new TypeError(`Region's latitude must be a number. Got '${region.latitude}' instead.`);\n }\n if (typeof region.longitude !== 'number') {\n throw new TypeError(\n `Region's longitude must be a number. Got '${region.longitude}' instead.`\n );\n }\n if (typeof region.radius !== 'number') {\n throw new TypeError(`Region's radius must be a number. Got '${region.radius}' instead.`);\n }\n }\n}\n\n// @needsAudit\n/**\n * Starts geofencing for given regions. When the new event comes, the task with specified name will\n * be called with the region that the device enter to or exit from.\n * If you want to add or remove regions from already running geofencing task, you can just call\n * `startGeofencingAsync` again with the new array of regions.\n *\n * # Task parameters\n *\n * Geofencing task will be receiving following data:\n * - `eventType` - Indicates the reason for calling the task, which can be triggered by entering or exiting the region.\n * See [GeofencingEventType](#geofencingeventtype).\n * - `region` - Object containing details about updated region. See [LocationRegion](#locationregion) for more details.\n *\n * @param taskName Name of the task that will be called when the device enters or exits from specified regions.\n * @param regions Array of region objects to be geofenced.\n *\n * @return A promise resolving as soon as the task is registered.\n *\n * @example\n * ```ts\n * import { GeofencingEventType } from 'expo-location';\n * import * as TaskManager from 'expo-task-manager';\n *\n * TaskManager.defineTask(YOUR_TASK_NAME, ({ data: { eventType, region }, error }) => {\n * if (error) {\n * // check `error.message` for more details.\n * return;\n * }\n * if (eventType === GeofencingEventType.Enter) {\n * console.log(\"You've entered region:\", region);\n * } else if (eventType === GeofencingEventType.Exit) {\n * console.log(\"You've left region:\", region);\n * }\n * });\n * ```\n */\nexport async function startGeofencingAsync(\n taskName: string,\n regions: LocationRegion[] = []\n): Promise {\n _validateTaskName(taskName);\n _validateRegions(regions);\n await ExpoLocation.startGeofencingAsync(taskName, { regions });\n}\n\n// @needsAudit\n/**\n * Stops geofencing for specified task. It unregisters the background task so the app will not be\n * receiving any updates, especially in the background.\n * @param taskName Name of the task to unregister.\n * @return A promise resolving as soon as the task is unregistered.\n */\nexport async function stopGeofencingAsync(taskName: string): Promise {\n _validateTaskName(taskName);\n await ExpoLocation.stopGeofencingAsync(taskName);\n}\n\n// @needsAudit\n/**\n * @param taskName Name of the geofencing task to check.\n * @return A promise which fulfills with boolean value indicating whether the geofencing task is\n * started or not.\n */\nexport async function hasStartedGeofencingAsync(taskName: string): Promise {\n _validateTaskName(taskName);\n return ExpoLocation.hasStartedGeofencingAsync(taskName);\n}\n\nexport { LocationEventEmitter as EventEmitter, _getCurrentWatchId };\n\nexport {\n LocationAccuracy as Accuracy,\n LocationActivityType as ActivityType,\n LocationGeofencingEventType as GeofencingEventType,\n LocationGeofencingRegionState as GeofencingRegionState,\n PermissionStatus,\n PermissionHookOptions,\n setGoogleApiKey,\n};\n\nexport { installWebGeolocationPolyfill } from './GeolocationPolyfill';\nexport * from './Location.types';\n","// This currentContext variable will only be used if the makeSlotClass\r\n// function is called, which happens only if this is the first copy of the\r\n// @wry/context package to be imported.\r\nvar currentContext = null;\r\n// This unique internal object is used to denote the absence of a value\r\n// for a given Slot, and is never exposed to outside code.\r\nvar MISSING_VALUE = {};\r\nvar idCounter = 1;\r\n// Although we can't do anything about the cost of duplicated code from\r\n// accidentally bundling multiple copies of the @wry/context package, we can\r\n// avoid creating the Slot class more than once using makeSlotClass.\r\nvar makeSlotClass = function () { return /** @class */ (function () {\r\n function Slot() {\r\n // If you have a Slot object, you can find out its slot.id, but you cannot\r\n // guess the slot.id of a Slot you don't have access to, thanks to the\r\n // randomized suffix.\r\n this.id = [\r\n \"slot\",\r\n idCounter++,\r\n Date.now(),\r\n Math.random().toString(36).slice(2),\r\n ].join(\":\");\r\n }\r\n Slot.prototype.hasValue = function () {\r\n for (var context_1 = currentContext; context_1; context_1 = context_1.parent) {\r\n // We use the Slot object iself as a key to its value, which means the\r\n // value cannot be obtained without a reference to the Slot object.\r\n if (this.id in context_1.slots) {\r\n var value = context_1.slots[this.id];\r\n if (value === MISSING_VALUE)\r\n break;\r\n if (context_1 !== currentContext) {\r\n // Cache the value in currentContext.slots so the next lookup will\r\n // be faster. This caching is safe because the tree of contexts and\r\n // the values of the slots are logically immutable.\r\n currentContext.slots[this.id] = value;\r\n }\r\n return true;\r\n }\r\n }\r\n if (currentContext) {\r\n // If a value was not found for this Slot, it's never going to be found\r\n // no matter how many times we look it up, so we might as well cache\r\n // the absence of the value, too.\r\n currentContext.slots[this.id] = MISSING_VALUE;\r\n }\r\n return false;\r\n };\r\n Slot.prototype.getValue = function () {\r\n if (this.hasValue()) {\r\n return currentContext.slots[this.id];\r\n }\r\n };\r\n Slot.prototype.withValue = function (value, callback, \r\n // Given the prevalence of arrow functions, specifying arguments is likely\r\n // to be much more common than specifying `this`, hence this ordering:\r\n args, thisArg) {\r\n var _a;\r\n var slots = (_a = {\r\n __proto__: null\r\n },\r\n _a[this.id] = value,\r\n _a);\r\n var parent = currentContext;\r\n currentContext = { parent: parent, slots: slots };\r\n try {\r\n // Function.prototype.apply allows the arguments array argument to be\r\n // omitted or undefined, so args! is fine here.\r\n return callback.apply(thisArg, args);\r\n }\r\n finally {\r\n currentContext = parent;\r\n }\r\n };\r\n // Capture the current context and wrap a callback function so that it\r\n // reestablishes the captured context when called.\r\n Slot.bind = function (callback) {\r\n var context = currentContext;\r\n return function () {\r\n var saved = currentContext;\r\n try {\r\n currentContext = context;\r\n return callback.apply(this, arguments);\r\n }\r\n finally {\r\n currentContext = saved;\r\n }\r\n };\r\n };\r\n // Immediately run a callback function without any captured context.\r\n Slot.noContext = function (callback, \r\n // Given the prevalence of arrow functions, specifying arguments is likely\r\n // to be much more common than specifying `this`, hence this ordering:\r\n args, thisArg) {\r\n if (currentContext) {\r\n var saved = currentContext;\r\n try {\r\n currentContext = null;\r\n // Function.prototype.apply allows the arguments array argument to be\r\n // omitted or undefined, so args! is fine here.\r\n return callback.apply(thisArg, args);\r\n }\r\n finally {\r\n currentContext = saved;\r\n }\r\n }\r\n else {\r\n return callback.apply(thisArg, args);\r\n }\r\n };\r\n return Slot;\r\n}()); };\r\n// We store a single global implementation of the Slot class as a permanent\r\n// non-enumerable symbol property of the Array constructor. This obfuscation\r\n// does nothing to prevent access to the Slot class, but at least it ensures\r\n// the implementation (i.e. currentContext) cannot be tampered with, and all\r\n// copies of the @wry/context package (hopefully just one) will share the\r\n// same Slot implementation. Since the first copy of the @wry/context package\r\n// to be imported wins, this technique imposes a very high cost for any\r\n// future breaking changes to the Slot class.\r\nvar globalKey = \"@wry/context:Slot\";\r\nvar host = Array;\r\nvar Slot = host[globalKey] || function () {\r\n var Slot = makeSlotClass();\r\n try {\r\n Object.defineProperty(host, globalKey, {\r\n value: host[globalKey] = Slot,\r\n enumerable: false,\r\n writable: false,\r\n configurable: false,\r\n });\r\n }\r\n finally {\r\n return Slot;\r\n }\r\n}();\n\nvar bind = Slot.bind, noContext = Slot.noContext;\r\nfunction setTimeoutWithContext(callback, delay) {\r\n return setTimeout(bind(callback), delay);\r\n}\r\n// Turn any generator function into an async function (using yield instead\r\n// of await), with context automatically preserved across yields.\r\nfunction asyncFromGen(genFn) {\r\n return function () {\r\n var gen = genFn.apply(this, arguments);\r\n var boundNext = bind(gen.next);\r\n var boundThrow = bind(gen.throw);\r\n return new Promise(function (resolve, reject) {\r\n function invoke(method, argument) {\r\n try {\r\n var result = method.call(gen, argument);\r\n }\r\n catch (error) {\r\n return reject(error);\r\n }\r\n var next = result.done ? resolve : invokeNext;\r\n if (isPromiseLike(result.value)) {\r\n result.value.then(next, result.done ? reject : invokeThrow);\r\n }\r\n else {\r\n next(result.value);\r\n }\r\n }\r\n var invokeNext = function (value) { return invoke(boundNext, value); };\r\n var invokeThrow = function (error) { return invoke(boundThrow, error); };\r\n invokeNext();\r\n });\r\n };\r\n}\r\nfunction isPromiseLike(value) {\r\n return value && typeof value.then === \"function\";\r\n}\r\n// If you use the fibers npm package to implement coroutines in Node.js,\r\n// you should call this function at least once to ensure context management\r\n// remains coherent across any yields.\r\nvar wrappedFibers = [];\r\nfunction wrapYieldingFiberMethods(Fiber) {\r\n // There can be only one implementation of Fiber per process, so this array\r\n // should never grow longer than one element.\r\n if (wrappedFibers.indexOf(Fiber) < 0) {\r\n var wrap = function (obj, method) {\r\n var fn = obj[method];\r\n obj[method] = function () {\r\n return noContext(fn, arguments, this);\r\n };\r\n };\r\n // These methods can yield, according to\r\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\r\n wrap(Fiber, \"yield\");\r\n wrap(Fiber.prototype, \"run\");\r\n wrap(Fiber.prototype, \"throwInto\");\r\n wrappedFibers.push(Fiber);\r\n }\r\n return Fiber;\r\n}\n\nexport { Slot, asyncFromGen, bind, noContext, setTimeoutWithContext as setTimeout, wrapYieldingFiberMethods };\n//# sourceMappingURL=context.esm.js.map\n","import { dep } from \"optimism\";\nimport { Slot } from \"@wry/context\";\nexport var cacheSlot = new Slot();\nvar cacheInfoMap = new WeakMap();\nfunction getCacheInfo(cache) {\n var info = cacheInfoMap.get(cache);\n if (!info) {\n cacheInfoMap.set(cache, info = {\n vars: new Set,\n dep: dep(),\n });\n }\n return info;\n}\nexport function forgetCache(cache) {\n getCacheInfo(cache).vars.forEach(function (rv) { return rv.forgetCache(cache); });\n}\nexport function recallCache(cache) {\n getCacheInfo(cache).vars.forEach(function (rv) { return rv.attachCache(cache); });\n}\nexport function makeVar(value) {\n var caches = new Set();\n var listeners = new Set();\n var rv = function (newValue) {\n if (arguments.length > 0) {\n if (value !== newValue) {\n value = newValue;\n caches.forEach(function (cache) {\n getCacheInfo(cache).dep.dirty(rv);\n broadcast(cache);\n });\n var oldListeners = Array.from(listeners);\n listeners.clear();\n oldListeners.forEach(function (listener) { return listener(value); });\n }\n }\n else {\n var cache = cacheSlot.getValue();\n if (cache) {\n attach(cache);\n getCacheInfo(cache).dep(rv);\n }\n }\n return value;\n };\n rv.onNextChange = function (listener) {\n listeners.add(listener);\n return function () {\n listeners.delete(listener);\n };\n };\n var attach = rv.attachCache = function (cache) {\n caches.add(cache);\n getCacheInfo(cache).vars.add(rv);\n return rv;\n };\n rv.forgetCache = function (cache) { return caches.delete(cache); };\n return rv;\n}\nfunction broadcast(cache) {\n if (cache.broadcastWatches) {\n cache.broadcastWatches();\n }\n}\n//# sourceMappingURL=reactiveVars.js.map","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport NativeEventEmitter from '../../vendor/react-native/NativeEventEmitter';\nexport default NativeEventEmitter;","import AnimatedNode from './AnimatedNode';\nimport invariant from 'invariant';\nimport { val } from '../val';\nimport { adapt } from '../core/AnimatedBlock';\n\nclass AnimatedSet extends AnimatedNode {\n _what;\n _value;\n\n constructor(what, value) {\n invariant(\n what instanceof AnimatedNode,\n `Reanimated: Animated.set first argument should be of type AnimatedNode but got ${what}`\n );\n invariant(\n value instanceof AnimatedNode,\n `Reanimated: Animated.set second argument should be of type AnimatedNode, String or Number but got ${value}`\n );\n super({ type: 'set', what, value }, [value]);\n invariant(!what._constant, 'Value to be set cannot be constant');\n this._what = what;\n this._value = value;\n }\n\n toString() {\n return `AnimatedSet, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n const newValue = val(this._value);\n this._what.setValue(newValue);\n return newValue;\n }\n}\n\nexport function createAnimatedSet(what, value) {\n return new AnimatedSet(what, adapt(value));\n}\n","import { ProxyNativeModule } from './NativeModulesProxy.types';\n\n// We default to an empty object shim wherever we don't have an environment-specific implementation\nexport default {} as { [moduleName: string]: ProxyNativeModule };\n","import { __assign } from \"tslib\";\nimport { print } from 'graphql';\nvar defaultHttpOptions = {\n includeQuery: true,\n includeExtensions: false,\n};\nvar defaultHeaders = {\n accept: '*/*',\n 'content-type': 'application/json',\n};\nvar defaultOptions = {\n method: 'POST',\n};\nexport var fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\nexport var selectHttpOptionsAndBody = function (operation, fallbackConfig) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n var options = __assign(__assign({}, fallbackConfig.options), { headers: fallbackConfig.headers, credentials: fallbackConfig.credentials });\n var http = fallbackConfig.http || {};\n configs.forEach(function (config) {\n options = __assign(__assign(__assign({}, options), config.options), { headers: __assign(__assign({}, options.headers), headersToLowerCase(config.headers)) });\n if (config.credentials)\n options.credentials = config.credentials;\n http = __assign(__assign({}, http), config.http);\n });\n var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query;\n var body = { operationName: operationName, variables: variables };\n if (http.includeExtensions)\n body.extensions = extensions;\n if (http.includeQuery)\n body.query = print(query);\n return {\n options: options,\n body: body,\n };\n};\nfunction headersToLowerCase(headers) {\n if (headers) {\n var normalized_1 = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n normalized_1[name.toLowerCase()] = headers[name];\n });\n return normalized_1;\n }\n return headers;\n}\n//# sourceMappingURL=selectHttpOptionsAndBody.js.map","import color from 'color';\nimport DefaultTheme from './DefaultTheme';\nimport { black, white, pinkA100 } from './colors';\nimport type { Theme } from '../types';\n\nconst DarkTheme: Theme = {\n ...DefaultTheme,\n dark: true,\n mode: 'adaptive',\n colors: {\n ...DefaultTheme.colors,\n primary: '#BB86FC',\n accent: '#03dac6',\n background: '#121212',\n surface: '#121212',\n error: '#CF6679',\n onSurface: '#FFFFFF',\n text: white,\n disabled: color(white).alpha(0.38).rgb().string(),\n placeholder: color(white).alpha(0.54).rgb().string(),\n backdrop: color(black).alpha(0.5).rgb().string(),\n notification: pinkA100,\n },\n};\n\nexport default DarkTheme;\n","import { Platform } from 'react-native';\nexport default function getDefaultHeaderHeight(layout, modalPresentation, statusBarHeight) {\n let headerHeight;\n const isLandscape = layout.width > layout.height;\n if (Platform.OS === 'ios') {\n if (Platform.isPad || Platform.isTV) {\n if (modalPresentation) {\n headerHeight = 56;\n } else {\n headerHeight = 50;\n }\n } else {\n if (isLandscape) {\n headerHeight = 32;\n } else {\n if (modalPresentation) {\n headerHeight = 56;\n } else {\n headerHeight = 44;\n }\n }\n }\n } else if (Platform.OS === 'android') {\n headerHeight = 56;\n } else {\n headerHeight = 64;\n }\n return headerHeight + statusBarHeight;\n}\n//# sourceMappingURL=getDefaultHeaderHeight.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\n'use strict';\n\nimport canUseDOM from '../canUseDom';\n\nvar emptyFunction = () => {};\n\nfunction supportsPassiveEvents() {\n var supported = false; // Check if browser supports event with passive listeners\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n\n if (canUseDOM) {\n try {\n var options = {};\n Object.defineProperty(options, 'passive', {\n get() {\n supported = true;\n return false;\n }\n\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {}\n }\n\n return supported;\n}\n\nvar canUsePassiveEvents = supportsPassiveEvents();\n\nfunction getOptions(options) {\n if (options == null) {\n return false;\n }\n\n return canUsePassiveEvents ? options : Boolean(options.capture);\n}\n/**\n * Shim generic API compatibility with ReactDOM's synthetic events, without needing the\n * large amount of code ReactDOM uses to do this. Ideally we wouldn't use a synthetic\n * event wrapper at all.\n */\n\n\nfunction isPropagationStopped() {\n return this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n return this.defaultPrevented;\n}\n\nfunction normalizeEvent(event) {\n event.nativeEvent = event;\n event.persist = emptyFunction;\n event.isDefaultPrevented = isDefaultPrevented;\n event.isPropagationStopped = isPropagationStopped;\n return event;\n}\n/**\n *\n */\n\n\nexport default function createEventHandle(type, options) {\n var opts = getOptions(options);\n return function (target, listener) {\n if (target == null || typeof target.addEventListener !== 'function') {\n throw new Error('createEventHandle: called on an invalid target.');\n }\n\n var element = target;\n\n if (listener != null) {\n var compatListener = e => listener(normalizeEvent(e));\n\n element.addEventListener(type, compatListener, opts);\n return function removeListener() {\n if (element != null) {\n element.removeEventListener(type, compatListener, opts);\n }\n };\n } else {\n return emptyFunction;\n }\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport createEventHandle from '../createEventHandle';\nimport canUseDOM from '../canUseDom';\n\nvar supportsPointerEvent = () => !!(typeof window !== 'undefined' && window.PointerEvent != null);\n\nvar activeModality = 'keyboard';\nvar modality = 'keyboard';\nvar previousModality;\nvar previousActiveModality;\nvar isEmulatingMouseEvents = false;\nvar listeners = new Set();\nvar KEYBOARD = 'keyboard';\nvar MOUSE = 'mouse';\nvar TOUCH = 'touch';\nvar BLUR = 'blur';\nvar CONTEXTMENU = 'contextmenu';\nvar FOCUS = 'focus';\nvar KEYDOWN = 'keydown';\nvar MOUSEDOWN = 'mousedown';\nvar MOUSEMOVE = 'mousemove';\nvar MOUSEUP = 'mouseup';\nvar POINTERDOWN = 'pointerdown';\nvar POINTERMOVE = 'pointermove';\nvar SCROLL = 'scroll';\nvar SELECTIONCHANGE = 'selectionchange';\nvar TOUCHCANCEL = 'touchcancel';\nvar TOUCHMOVE = 'touchmove';\nvar TOUCHSTART = 'touchstart';\nvar VISIBILITYCHANGE = 'visibilitychange';\nvar bubbleOptions = {\n passive: true\n};\nvar captureOptions = {\n capture: true,\n passive: true\n}; // Window events\n\nvar addBlurListener = createEventHandle(BLUR, bubbleOptions);\nvar addFocusListener = createEventHandle(FOCUS, bubbleOptions); // Must be capture phase because 'stopPropagation' might prevent these\n// events bubbling to the document.\n\nvar addVisibilityChangeListener = createEventHandle(VISIBILITYCHANGE, captureOptions);\nvar addKeyDownListener = createEventHandle(KEYDOWN, captureOptions);\nvar addPointerDownListener = createEventHandle(POINTERDOWN, captureOptions);\nvar addPointerMoveListener = createEventHandle(POINTERMOVE, captureOptions); // Fallback events\n\nvar addContextMenuListener = createEventHandle(CONTEXTMENU, captureOptions);\nvar addMouseDownListener = createEventHandle(MOUSEDOWN, captureOptions);\nvar addMouseMoveListener = createEventHandle(MOUSEMOVE, captureOptions);\nvar addMouseUpListener = createEventHandle(MOUSEUP, captureOptions);\nvar addScrollListener = createEventHandle(SCROLL, captureOptions);\nvar addSelectiomChangeListener = createEventHandle(SELECTIONCHANGE, captureOptions);\nvar addTouchCancelListener = createEventHandle(TOUCHCANCEL, captureOptions);\nvar addTouchMoveListener = createEventHandle(TOUCHMOVE, captureOptions);\nvar addTouchStartListener = createEventHandle(TOUCHSTART, captureOptions);\n\nfunction restoreModality() {\n if (previousModality != null || previousActiveModality != null) {\n if (previousModality != null) {\n modality = previousModality;\n previousModality = null;\n }\n\n if (previousActiveModality != null) {\n activeModality = previousActiveModality;\n previousActiveModality = null;\n }\n\n callListeners();\n }\n}\n\nfunction onBlurWindow() {\n previousModality = modality;\n previousActiveModality = activeModality;\n activeModality = KEYBOARD;\n modality = KEYBOARD;\n callListeners(); // for fallback events\n\n isEmulatingMouseEvents = false;\n}\n\nfunction onFocusWindow() {\n restoreModality();\n}\n\nfunction onKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n if (modality !== KEYBOARD) {\n modality = KEYBOARD;\n activeModality = KEYBOARD;\n callListeners();\n }\n}\n\nfunction onVisibilityChange() {\n if (document.visibilityState !== 'hidden') {\n restoreModality();\n }\n}\n\nfunction onPointerish(event) {\n var eventType = event.type;\n\n if (supportsPointerEvent()) {\n if (eventType === POINTERDOWN) {\n if (activeModality !== event.pointerType) {\n modality = event.pointerType;\n activeModality = event.pointerType;\n callListeners();\n }\n\n return;\n }\n\n if (eventType === POINTERMOVE) {\n if (modality !== event.pointerType) {\n modality = event.pointerType;\n callListeners();\n }\n\n return;\n }\n } // Fallback for non-PointerEvent environment\n else {\n if (!isEmulatingMouseEvents) {\n if (eventType === MOUSEDOWN) {\n if (activeModality !== MOUSE) {\n modality = MOUSE;\n activeModality = MOUSE;\n callListeners();\n }\n }\n\n if (eventType === MOUSEMOVE) {\n if (modality !== MOUSE) {\n modality = MOUSE;\n callListeners();\n }\n }\n } // Flag when browser may produce emulated events\n\n\n if (eventType === TOUCHSTART) {\n isEmulatingMouseEvents = true;\n\n if (event.touches && event.touches.length > 1) {\n isEmulatingMouseEvents = false;\n }\n\n if (activeModality !== TOUCH) {\n modality = TOUCH;\n activeModality = TOUCH;\n callListeners();\n }\n\n return;\n } // Remove flag after emulated events are finished or cancelled, and if an\n // event occurs that cuts short a touch event sequence.\n\n\n if (eventType === CONTEXTMENU || eventType === MOUSEUP || eventType === SELECTIONCHANGE || eventType === SCROLL || eventType === TOUCHCANCEL || eventType === TOUCHMOVE) {\n isEmulatingMouseEvents = false;\n }\n }\n}\n\nif (canUseDOM) {\n addBlurListener(window, onBlurWindow);\n addFocusListener(window, onFocusWindow);\n addKeyDownListener(document, onKeyDown);\n addPointerDownListener(document, onPointerish);\n addPointerMoveListener(document, onPointerish);\n addVisibilityChangeListener(document, onVisibilityChange); // fallbacks\n\n addContextMenuListener(document, onPointerish);\n addMouseDownListener(document, onPointerish);\n addMouseMoveListener(document, onPointerish);\n addMouseUpListener(document, onPointerish);\n addTouchCancelListener(document, onPointerish);\n addTouchMoveListener(document, onPointerish);\n addTouchStartListener(document, onPointerish);\n addSelectiomChangeListener(document, onPointerish);\n addScrollListener(document, onPointerish);\n}\n\nfunction callListeners() {\n var value = {\n activeModality,\n modality\n };\n listeners.forEach(listener => {\n listener(value);\n });\n}\n\nexport function getActiveModality() {\n return activeModality;\n}\nexport function getModality() {\n return modality;\n}\nexport function addModalityListener(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n}\nexport function testOnly_resetActiveModality() {\n isEmulatingMouseEvents = false;\n activeModality = KEYBOARD;\n modality = KEYBOARD;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport createEventHandle from '../createEventHandle';\nimport useLayoutEffect from '../useLayoutEffect';\nimport useStable from '../useStable';\n\n/**\n * This can be used with any event type include custom events.\n *\n * const click = useEvent('click', options);\n * useEffect(() => {\n * click.setListener(target, onClick);\n * return () => click.clear();\n * }).\n */\nexport default function useEvent(event, options) {\n var targetListeners = useStable(() => new Map());\n var addListener = useStable(() => {\n var addEventListener = createEventHandle(event, options);\n return (target, callback) => {\n var removeTargetListener = targetListeners.get(target);\n\n if (removeTargetListener != null) {\n removeTargetListener();\n }\n\n if (callback == null) {\n targetListeners.delete(target);\n }\n\n var removeEventListener = addEventListener(target, callback);\n targetListeners.set(target, removeEventListener);\n return removeEventListener;\n };\n });\n useLayoutEffect(() => {\n return () => {\n targetListeners.forEach(removeListener => {\n removeListener();\n });\n targetListeners.clear();\n };\n }, [targetListeners]);\n return addListener;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport { getModality } from '../modality';\nimport useEvent from '../useEvent';\nimport useLayoutEffect from '../useLayoutEffect';\n/**\n * Types\n */\n\n/**\n * Implementation\n */\nvar emptyObject = {};\nvar opts = {\n passive: true\n};\nvar lockEventType = 'react-gui:hover:lock';\nvar unlockEventType = 'react-gui:hover:unlock';\n\nvar supportsPointerEvent = () => !!(typeof window !== 'undefined' && window.PointerEvent != null);\n\nfunction dispatchCustomEvent(target, type, payload) {\n var event = document.createEvent('CustomEvent');\n\n var _ref = payload || emptyObject,\n _ref$bubbles = _ref.bubbles,\n bubbles = _ref$bubbles === void 0 ? true : _ref$bubbles,\n _ref$cancelable = _ref.cancelable,\n cancelable = _ref$cancelable === void 0 ? true : _ref$cancelable,\n detail = _ref.detail;\n\n event.initCustomEvent(type, bubbles, cancelable, detail);\n target.dispatchEvent(event);\n} // This accounts for the non-PointerEvent fallback events.\n\n\nfunction getPointerType(event) {\n var pointerType = event.pointerType;\n return pointerType != null ? pointerType : getModality();\n}\n\nexport default function useHover(targetRef, config) {\n var contain = config.contain,\n disabled = config.disabled,\n onHoverStart = config.onHoverStart,\n onHoverChange = config.onHoverChange,\n onHoverUpdate = config.onHoverUpdate,\n onHoverEnd = config.onHoverEnd;\n var canUsePE = supportsPointerEvent();\n var addMoveListener = useEvent(canUsePE ? 'pointermove' : 'mousemove', opts);\n var addEnterListener = useEvent(canUsePE ? 'pointerenter' : 'mouseenter', opts);\n var addLeaveListener = useEvent(canUsePE ? 'pointerleave' : 'mouseleave', opts); // These custom events are used to implement the \"contain\" prop.\n\n var addLockListener = useEvent(lockEventType, opts);\n var addUnlockListener = useEvent(unlockEventType, opts);\n useLayoutEffect(() => {\n var target = targetRef.current;\n\n if (target !== null) {\n /**\n * End the hover gesture\n */\n var hoverEnd = function hoverEnd(e) {\n if (onHoverEnd != null) {\n onHoverEnd(e);\n }\n\n if (onHoverChange != null) {\n onHoverChange(false);\n } // Remove the listeners once finished.\n\n\n addMoveListener(target, null);\n addLeaveListener(target, null);\n };\n /**\n * Leave element\n */\n\n\n var leaveListener = function leaveListener(e) {\n var target = targetRef.current;\n\n if (target != null && getPointerType(e) !== 'touch') {\n if (contain) {\n dispatchCustomEvent(target, unlockEventType);\n }\n\n hoverEnd(e);\n }\n };\n /**\n * Move within element\n */\n\n\n var moveListener = function moveListener(e) {\n if (getPointerType(e) !== 'touch') {\n if (onHoverUpdate != null) {\n // Not all browsers have these properties\n if (e.x == null) {\n e.x = e.clientX;\n }\n\n if (e.y == null) {\n e.y = e.clientY;\n }\n\n onHoverUpdate(e);\n }\n }\n };\n /**\n * Start the hover gesture\n */\n\n\n var hoverStart = function hoverStart(e) {\n if (onHoverStart != null) {\n onHoverStart(e);\n }\n\n if (onHoverChange != null) {\n onHoverChange(true);\n } // Set the listeners needed for the rest of the hover gesture.\n\n\n if (onHoverUpdate != null) {\n addMoveListener(target, !disabled ? moveListener : null);\n }\n\n addLeaveListener(target, !disabled ? leaveListener : null);\n };\n /**\n * Enter element\n */\n\n\n var enterListener = function enterListener(e) {\n var target = targetRef.current;\n\n if (target != null && getPointerType(e) !== 'touch') {\n if (contain) {\n dispatchCustomEvent(target, lockEventType);\n }\n\n hoverStart(e);\n\n var lockListener = function lockListener(lockEvent) {\n if (lockEvent.target !== target) {\n hoverEnd(e);\n }\n };\n\n var unlockListener = function unlockListener(lockEvent) {\n if (lockEvent.target !== target) {\n hoverStart(e);\n }\n };\n\n addLockListener(target, !disabled ? lockListener : null);\n addUnlockListener(target, !disabled ? unlockListener : null);\n }\n };\n\n addEnterListener(target, !disabled ? enterListener : null);\n }\n }, [addEnterListener, addMoveListener, addLeaveListener, addLockListener, addUnlockListener, contain, disabled, onHoverStart, onHoverChange, onHoverUpdate, onHoverEnd, targetRef]);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"delayLongPress\", \"delayPressIn\", \"delayPressOut\", \"disabled\", \"focusable\", \"onBlur\", \"onContextMenu\", \"onFocus\", \"onHoverIn\", \"onHoverOut\", \"onKeyDown\", \"onLongPress\", \"onPress\", \"onPressMove\", \"onPressIn\", \"onPressOut\", \"style\", \"testOnly_hovered\", \"testOnly_pressed\"];\nimport * as React from 'react';\nimport { forwardRef, memo, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport useHover from '../../modules/useHover';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\n/**\n * Component used to build display components that should respond to whether the\n * component is currently pressed or not.\n */\nfunction Pressable(props, forwardedRef) {\n var children = props.children,\n delayLongPress = props.delayLongPress,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n disabled = props.disabled,\n focusable = props.focusable,\n onBlur = props.onBlur,\n onContextMenu = props.onContextMenu,\n onFocus = props.onFocus,\n onHoverIn = props.onHoverIn,\n onHoverOut = props.onHoverOut,\n onKeyDown = props.onKeyDown,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressMove = props.onPressMove,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n style = props.style,\n testOnly_hovered = props.testOnly_hovered,\n testOnly_pressed = props.testOnly_pressed,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var _useForceableState = useForceableState(testOnly_hovered === true),\n hovered = _useForceableState[0],\n setHovered = _useForceableState[1];\n\n var _useForceableState2 = useForceableState(false),\n focused = _useForceableState2[0],\n setFocused = _useForceableState2[1];\n\n var _useForceableState3 = useForceableState(testOnly_pressed === true),\n pressed = _useForceableState3[0],\n setPressed = _useForceableState3[1];\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n var pressConfig = useMemo(() => ({\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n disabled,\n onLongPress,\n onPress,\n onPressChange: setPressed,\n onPressStart: onPressIn,\n onPressMove,\n onPressEnd: onPressOut\n }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressMove, onPressOut, setPressed]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var onContextMenuPress = pressEventHandlers.onContextMenu,\n onKeyDownPress = pressEventHandlers.onKeyDown;\n useHover(hostRef, {\n contain: true,\n disabled,\n onHoverChange: setHovered,\n onHoverStart: onHoverIn,\n onHoverEnd: onHoverOut\n });\n var interactionState = {\n hovered,\n focused,\n pressed\n };\n var blurHandler = React.useCallback(e => {\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(false);\n\n if (onBlur != null) {\n onBlur(e);\n }\n }\n }, [hostRef, setFocused, onBlur]);\n var focusHandler = React.useCallback(e => {\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(true);\n\n if (onFocus != null) {\n onFocus(e);\n }\n }\n }, [hostRef, setFocused, onFocus]);\n var contextMenuHandler = React.useCallback(e => {\n if (onContextMenuPress != null) {\n onContextMenuPress(e);\n }\n\n if (onContextMenu != null) {\n onContextMenu(e);\n }\n }, [onContextMenu, onContextMenuPress]);\n var keyDownHandler = React.useCallback(e => {\n if (onKeyDownPress != null) {\n onKeyDownPress(e);\n }\n\n if (onKeyDown != null) {\n onKeyDown(e);\n }\n }, [onKeyDown, onKeyDownPress]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n onBlur: blurHandler,\n onContextMenu: contextMenuHandler,\n onFocus: focusHandler,\n onKeyDown: keyDownHandler,\n pointerEvents: disabled ? 'none' : rest.pointerEvents,\n ref: setRef,\n style: [!disabled && styles.root, typeof style === 'function' ? style(interactionState) : style]\n }), typeof children === 'function' ? children(interactionState) : children);\n}\n\nfunction useForceableState(forced) {\n var _useState = useState(false),\n bool = _useState[0],\n setBool = _useState[1];\n\n return [bool || forced, setBool];\n}\n\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedPressable = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(Pressable));\nMemoedPressable.displayName = 'Pressable';\nexport default MemoedPressable;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nvar _excluded = [\"ItemSeparatorComponent\", \"SectionSeparatorComponent\", \"renderItem\", \"renderSectionFooter\", \"renderSectionHeader\", \"sections\", \"stickySectionHeadersEnabled\"];\nimport { keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\nimport View from '../../../exports/View';\nimport VirtualizedList from '../VirtualizedList';\nimport * as React from 'react';\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * Right now this just flattens everything into one list and uses VirtualizedList under the\n * hood. The only operation that might not scale well is concatting the data arrays of all the\n * sections when new props are received, which should be plenty fast for up to ~10,000 items.\n */\nclass VirtualizedSectionList extends React.PureComponent {\n constructor() {\n super(...arguments);\n\n this._keyExtractor = (item, index) => {\n var info = this._subExtractor(index);\n\n return info && info.key || String(index);\n };\n\n this._convertViewable = viewable => {\n var _info$index;\n\n invariant(viewable.index != null, 'Received a broken ViewToken');\n\n var info = this._subExtractor(viewable.index);\n\n if (!info) {\n return null;\n }\n\n var keyExtractorWithNullableIndex = info.section.keyExtractor;\n var keyExtractorWithNonNullableIndex = this.props.keyExtractor || defaultKeyExtractor;\n var key = keyExtractorWithNullableIndex != null ? keyExtractorWithNullableIndex(viewable.item, info.index) : keyExtractorWithNonNullableIndex(viewable.item, (_info$index = info.index) !== null && _info$index !== void 0 ? _info$index : 0);\n return _objectSpread(_objectSpread({}, viewable), {}, {\n index: info.index,\n key,\n section: info.section\n });\n };\n\n this._onViewableItemsChanged = _ref => {\n var viewableItems = _ref.viewableItems,\n changed = _ref.changed;\n var onViewableItemsChanged = this.props.onViewableItemsChanged;\n\n if (onViewableItemsChanged != null) {\n onViewableItemsChanged({\n viewableItems: viewableItems.map(this._convertViewable, this).filter(Boolean),\n changed: changed.map(this._convertViewable, this).filter(Boolean)\n });\n }\n };\n\n this._renderItem = listItemCount => _ref2 => {\n var item = _ref2.item,\n index = _ref2.index;\n\n var info = this._subExtractor(index);\n\n if (!info) {\n return null;\n }\n\n var infoIndex = info.index;\n\n if (infoIndex == null) {\n var section = info.section;\n\n if (info.header === true) {\n var renderSectionHeader = this.props.renderSectionHeader;\n return renderSectionHeader ? renderSectionHeader({\n section\n }) : null;\n } else {\n var renderSectionFooter = this.props.renderSectionFooter;\n return renderSectionFooter ? renderSectionFooter({\n section\n }) : null;\n }\n } else {\n var renderItem = info.section.renderItem || this.props.renderItem;\n\n var SeparatorComponent = this._getSeparatorComponent(index, info, listItemCount);\n\n invariant(renderItem, 'no renderItem!');\n return /*#__PURE__*/React.createElement(ItemWithSeparator, {\n SeparatorComponent: SeparatorComponent,\n LeadingSeparatorComponent: infoIndex === 0 ? this.props.SectionSeparatorComponent : undefined,\n cellKey: info.key,\n index: infoIndex,\n item: item,\n leadingItem: info.leadingItem,\n leadingSection: info.leadingSection,\n prevCellKey: (this._subExtractor(index - 1) || {}).key // Callback to provide updateHighlight for this item\n ,\n setSelfHighlightCallback: this._setUpdateHighlightFor,\n setSelfUpdatePropsCallback: this._setUpdatePropsFor // Provide child ability to set highlight/updateProps for previous item using prevCellKey\n ,\n updateHighlightFor: this._updateHighlightFor,\n updatePropsFor: this._updatePropsFor,\n renderItem: renderItem,\n section: info.section,\n trailingItem: info.trailingItem,\n trailingSection: info.trailingSection,\n inverted: !!this.props.inverted\n });\n }\n };\n\n this._updatePropsFor = (cellKey, value) => {\n var updateProps = this._updatePropsMap[cellKey];\n\n if (updateProps != null) {\n updateProps(value);\n }\n };\n\n this._updateHighlightFor = (cellKey, value) => {\n var updateHighlight = this._updateHighlightMap[cellKey];\n\n if (updateHighlight != null) {\n updateHighlight(value);\n }\n };\n\n this._setUpdateHighlightFor = (cellKey, updateHighlightFn) => {\n if (updateHighlightFn != null) {\n this._updateHighlightMap[cellKey] = updateHighlightFn;\n } else {\n delete this._updateHighlightFor[cellKey];\n }\n };\n\n this._setUpdatePropsFor = (cellKey, updatePropsFn) => {\n if (updatePropsFn != null) {\n this._updatePropsMap[cellKey] = updatePropsFn;\n } else {\n delete this._updatePropsMap[cellKey];\n }\n };\n\n this._updateHighlightMap = {};\n this._updatePropsMap = {};\n\n this._captureRef = ref => {\n this._listRef = ref;\n };\n }\n\n scrollToLocation(params) {\n var index = params.itemIndex;\n\n for (var i = 0; i < params.sectionIndex; i++) {\n index += this.props.getItemCount(this.props.sections[i].data) + 2;\n }\n\n var viewOffset = params.viewOffset || 0;\n\n if (this._listRef == null) {\n return;\n }\n\n if (params.itemIndex > 0 && this.props.stickySectionHeadersEnabled) {\n // $FlowFixMe[prop-missing] Cannot access private property\n var frame = this._listRef._getFrameMetricsApprox(index - params.itemIndex);\n\n viewOffset += frame.length;\n }\n\n var toIndexParams = _objectSpread(_objectSpread({}, params), {}, {\n viewOffset,\n index\n });\n\n this._listRef.scrollToIndex(toIndexParams);\n }\n\n getListRef() {\n return this._listRef;\n }\n\n render() {\n var _this$props = this.props,\n ItemSeparatorComponent = _this$props.ItemSeparatorComponent,\n SectionSeparatorComponent = _this$props.SectionSeparatorComponent,\n _renderItem = _this$props.renderItem,\n renderSectionFooter = _this$props.renderSectionFooter,\n renderSectionHeader = _this$props.renderSectionHeader,\n _sections = _this$props.sections,\n stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled,\n passThroughProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n var listHeaderOffset = this.props.ListHeaderComponent ? 1 : 0;\n var stickyHeaderIndices = this.props.stickySectionHeadersEnabled ? [] : undefined;\n var itemCount = 0;\n\n for (var _iterator = _createForOfIteratorHelperLoose(this.props.sections), _step; !(_step = _iterator()).done;) {\n var section = _step.value;\n\n // Track the section header indices\n if (stickyHeaderIndices != null) {\n stickyHeaderIndices.push(itemCount + listHeaderOffset);\n } // Add two for the section header and footer.\n\n\n itemCount += 2;\n itemCount += this.props.getItemCount(section.data);\n }\n\n var renderItem = this._renderItem(itemCount);\n\n return /*#__PURE__*/React.createElement(VirtualizedList, _extends({}, passThroughProps, {\n keyExtractor: this._keyExtractor,\n stickyHeaderIndices: stickyHeaderIndices,\n renderItem: renderItem,\n data: this.props.sections,\n getItem: (sections, index) => this._getItem(this.props, sections, index),\n getItemCount: () => itemCount,\n onViewableItemsChanged: this.props.onViewableItemsChanged ? this._onViewableItemsChanged : undefined,\n ref: this._captureRef\n }));\n }\n\n _getItem(props, sections, index) {\n if (!sections) {\n return null;\n }\n\n var itemIdx = index - 1;\n\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n var sectionData = section.data;\n var itemCount = props.getItemCount(sectionData);\n\n if (itemIdx === -1 || itemIdx === itemCount) {\n // We intend for there to be overflow by one on both ends of the list.\n // This will be for headers and footers. When returning a header or footer\n // item the section itself is the item.\n return section;\n } else if (itemIdx < itemCount) {\n // If we are in the bounds of the list's data then return the item.\n return props.getItem(sectionData, itemIdx);\n } else {\n itemIdx -= itemCount + 2; // Add two for the header and footer\n }\n }\n\n return null;\n }\n\n _subExtractor(index) {\n var itemIndex = index;\n var _this$props2 = this.props,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount,\n keyExtractor = _this$props2.keyExtractor,\n sections = _this$props2.sections;\n\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n var sectionData = section.data;\n var key = section.key || String(i);\n itemIndex -= 1; // The section adds an item for the header\n\n if (itemIndex >= getItemCount(sectionData) + 1) {\n itemIndex -= getItemCount(sectionData) + 1; // The section adds an item for the footer.\n } else if (itemIndex === -1) {\n return {\n section,\n key: key + ':header',\n index: null,\n header: true,\n trailingSection: sections[i + 1]\n };\n } else if (itemIndex === getItemCount(sectionData)) {\n return {\n section,\n key: key + ':footer',\n index: null,\n header: false,\n trailingSection: sections[i + 1]\n };\n } else {\n var extractor = section.keyExtractor || keyExtractor || defaultKeyExtractor;\n return {\n section,\n key: key + ':' + extractor(getItem(sectionData, itemIndex), itemIndex),\n index: itemIndex,\n leadingItem: getItem(sectionData, itemIndex - 1),\n leadingSection: sections[i - 1],\n trailingItem: getItem(sectionData, itemIndex + 1),\n trailingSection: sections[i + 1]\n };\n }\n }\n }\n\n _getSeparatorComponent(index, info, listItemCount) {\n info = info || this._subExtractor(index);\n\n if (!info) {\n return null;\n }\n\n var ItemSeparatorComponent = info.section.ItemSeparatorComponent || this.props.ItemSeparatorComponent;\n var SectionSeparatorComponent = this.props.SectionSeparatorComponent;\n var isLastItemInList = index === listItemCount - 1;\n var isLastItemInSection = info.index === this.props.getItemCount(info.section.data) - 1;\n\n if (SectionSeparatorComponent && isLastItemInSection) {\n return SectionSeparatorComponent;\n }\n\n if (ItemSeparatorComponent && !isLastItemInSection && !isLastItemInList) {\n return ItemSeparatorComponent;\n }\n\n return null;\n }\n\n}\n\nfunction ItemWithSeparator(props) {\n var LeadingSeparatorComponent = props.LeadingSeparatorComponent,\n SeparatorComponent = props.SeparatorComponent,\n cellKey = props.cellKey,\n prevCellKey = props.prevCellKey,\n setSelfHighlightCallback = props.setSelfHighlightCallback,\n updateHighlightFor = props.updateHighlightFor,\n setSelfUpdatePropsCallback = props.setSelfUpdatePropsCallback,\n updatePropsFor = props.updatePropsFor,\n item = props.item,\n index = props.index,\n section = props.section,\n inverted = props.inverted;\n\n var _React$useState = React.useState(false),\n leadingSeparatorHiglighted = _React$useState[0],\n setLeadingSeparatorHighlighted = _React$useState[1];\n\n var _React$useState2 = React.useState(false),\n separatorHighlighted = _React$useState2[0],\n setSeparatorHighlighted = _React$useState2[1];\n\n var _React$useState3 = React.useState({\n leadingItem: props.leadingItem,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.item,\n trailingSection: props.trailingSection\n }),\n leadingSeparatorProps = _React$useState3[0],\n setLeadingSeparatorProps = _React$useState3[1];\n\n var _React$useState4 = React.useState({\n leadingItem: props.item,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.trailingItem,\n trailingSection: props.trailingSection\n }),\n separatorProps = _React$useState4[0],\n setSeparatorProps = _React$useState4[1];\n\n React.useEffect(() => {\n setSelfHighlightCallback(cellKey, setSeparatorHighlighted);\n setSelfUpdatePropsCallback(cellKey, setSeparatorProps);\n return () => {\n setSelfUpdatePropsCallback(cellKey, null);\n setSelfHighlightCallback(cellKey, null);\n };\n }, [cellKey, setSelfHighlightCallback, setSeparatorProps, setSelfUpdatePropsCallback]);\n var separators = {\n highlight: () => {\n setLeadingSeparatorHighlighted(true);\n setSeparatorHighlighted(true);\n\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, true);\n }\n },\n unhighlight: () => {\n setLeadingSeparatorHighlighted(false);\n setSeparatorHighlighted(false);\n\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, false);\n }\n },\n updateProps: (select, newProps) => {\n if (select === 'leading') {\n if (LeadingSeparatorComponent != null) {\n setLeadingSeparatorProps(_objectSpread(_objectSpread({}, leadingSeparatorProps), newProps));\n } else if (prevCellKey != null) {\n // update the previous item's separator\n updatePropsFor(prevCellKey, _objectSpread(_objectSpread({}, leadingSeparatorProps), newProps));\n }\n } else if (select === 'trailing' && SeparatorComponent != null) {\n setSeparatorProps(_objectSpread(_objectSpread({}, separatorProps), newProps));\n }\n }\n };\n var element = props.renderItem({\n item,\n index,\n section,\n separators\n });\n var leadingSeparator = LeadingSeparatorComponent != null && /*#__PURE__*/React.createElement(LeadingSeparatorComponent, _extends({\n highlighted: leadingSeparatorHiglighted\n }, leadingSeparatorProps));\n var separator = SeparatorComponent != null && /*#__PURE__*/React.createElement(SeparatorComponent, _extends({\n highlighted: separatorHighlighted\n }, separatorProps));\n return leadingSeparator || separator ? /*#__PURE__*/React.createElement(View, null, inverted === false ? leadingSeparator : separator, element, inverted === false ? separator : leadingSeparator) : element;\n}\n\nexport default VirtualizedSectionList;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"stickySectionHeadersEnabled\"];\nimport Platform from '../../../exports/Platform';\nimport * as React from 'react';\nimport VirtualizedSectionList from '../VirtualizedSectionList';\n\n/**\n * A performant interface for rendering sectioned lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Configurable viewability callbacks.\n * - List header support.\n * - List footer support.\n * - Item separator support.\n * - Section header support.\n * - Section separator support.\n * - Heterogeneous data and item rendering support.\n * - Pull to Refresh.\n * - Scroll loading.\n *\n * If you don't need section support and want a simpler interface, use\n * [``](https://reactnative.dev/docs/flatlist).\n *\n * Simple Examples:\n *\n * }\n * renderSectionHeader={({section}) =>
}\n * sections={[ // homogeneous rendering between sections\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * ]}\n * />\n *\n * \n *\n * This is a convenience wrapper around [``](docs/virtualizedlist),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate and momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n */\nexport default class SectionList extends React.PureComponent {\n constructor() {\n super(...arguments);\n\n this._captureRef = ref => {\n this._wrapperListRef = ref;\n };\n }\n\n /**\n * Scrolls to the item at the specified `sectionIndex` and `itemIndex` (within the section)\n * positioned in the viewable area such that `viewPosition` 0 places it at the top (and may be\n * covered by a sticky header), 1 at the bottom, and 0.5 centered in the middle. `viewOffset` is a\n * fixed number of pixels to offset the final target position, e.g. to compensate for sticky\n * headers.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToLocation(params) {\n if (this._wrapperListRef != null) {\n this._wrapperListRef.scrollToLocation(params);\n }\n }\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n\n\n recordInteraction() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n listRef && listRef.recordInteraction();\n }\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n\n\n flashScrollIndicators() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n listRef && listRef.flashScrollIndicators();\n }\n /**\n * Provides a handle to the underlying scroll responder.\n */\n\n\n getScrollResponder() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n return listRef.getScrollResponder();\n }\n }\n\n getScrollableNode() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n return listRef.getScrollableNode();\n }\n }\n\n setNativeProps(props) {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n listRef.setNativeProps(props);\n }\n }\n\n render() {\n var _this$props = this.props,\n _stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled,\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n var stickySectionHeadersEnabled = _stickySectionHeadersEnabled !== null && _stickySectionHeadersEnabled !== void 0 ? _stickySectionHeadersEnabled : Platform.OS === 'ios';\n return /*#__PURE__*/React.createElement(VirtualizedSectionList, _extends({}, restProps, {\n stickySectionHeadersEnabled: stickySectionHeadersEnabled,\n ref: this._captureRef,\n getItemCount: items => items.length,\n getItem: (items, index) => items[index]\n }));\n }\n\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport SectionList from '../../vendor/react-native/SectionList';\nexport default SectionList;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar CSS_UNIT_RE = /^[+-]?\\d*(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?(%|\\w*)/;\n\nvar getUnit = str => str.match(CSS_UNIT_RE)[1];\n\nvar isNumeric = n => {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\n\nvar multiplyStyleLengthValue = (value, multiple) => {\n if (typeof value === 'string') {\n var number = parseFloat(value) * multiple;\n var unit = getUnit(value);\n return \"\" + number + unit;\n } else if (isNumeric(value)) {\n return value * multiple;\n }\n};\n\nexport default multiplyStyleLengthValue;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"accessibilityLabel\", \"activeThumbColor\", \"activeTrackColor\", \"disabled\", \"onValueChange\", \"style\", \"thumbColor\", \"trackColor\", \"value\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport multiplyStyleLengthValue from '../../modules/multiplyStyleLengthValue';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar emptyObject = {};\nvar thumbDefaultBoxShadow = '0px 1px 3px rgba(0,0,0,0.5)';\nvar thumbFocusedBoxShadow = thumbDefaultBoxShadow + \", 0 0 0 10px rgba(0,0,0,0.1)\";\nvar defaultActiveTrackColor = '#A3D3CF';\nvar defaultTrackColor = '#939393';\nvar defaultDisabledTrackColor = '#D5D5D5';\nvar defaultActiveThumbColor = '#009688';\nvar defaultThumbColor = '#FAFAFA';\nvar defaultDisabledThumbColor = '#BDBDBD';\nvar Switch = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var accessibilityLabel = props.accessibilityLabel,\n activeThumbColor = props.activeThumbColor,\n activeTrackColor = props.activeTrackColor,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n onValueChange = props.onValueChange,\n _props$style = props.style,\n style = _props$style === void 0 ? emptyObject : _props$style,\n thumbColor = props.thumbColor,\n trackColor = props.trackColor,\n _props$value = props.value,\n value = _props$value === void 0 ? false : _props$value,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n var thumbRef = React.useRef(null);\n\n function handleChange(event) {\n if (onValueChange != null) {\n onValueChange(event.nativeEvent.target.checked);\n }\n }\n\n function handleFocusState(event) {\n var isFocused = event.nativeEvent.type === 'focus';\n var boxShadow = isFocused ? thumbFocusedBoxShadow : thumbDefaultBoxShadow;\n\n if (thumbRef.current != null) {\n thumbRef.current.style.boxShadow = boxShadow;\n }\n }\n\n var _StyleSheet$flatten = StyleSheet.flatten(style),\n styleHeight = _StyleSheet$flatten.height,\n styleWidth = _StyleSheet$flatten.width;\n\n var height = styleHeight || '20px';\n var minWidth = multiplyStyleLengthValue(height, 2);\n var width = styleWidth > minWidth ? styleWidth : minWidth;\n var trackBorderRadius = multiplyStyleLengthValue(height, 0.5);\n\n var trackCurrentColor = function () {\n if (value === true) {\n if (trackColor != null && typeof trackColor === 'object') {\n return trackColor.true;\n } else {\n return activeTrackColor !== null && activeTrackColor !== void 0 ? activeTrackColor : defaultActiveTrackColor;\n }\n } else {\n if (trackColor != null && typeof trackColor === 'object') {\n return trackColor.false;\n } else {\n return trackColor !== null && trackColor !== void 0 ? trackColor : defaultTrackColor;\n }\n }\n }();\n\n var thumbCurrentColor = value ? activeThumbColor !== null && activeThumbColor !== void 0 ? activeThumbColor : defaultActiveThumbColor : thumbColor !== null && thumbColor !== void 0 ? thumbColor : defaultThumbColor;\n var thumbHeight = height;\n var thumbWidth = thumbHeight;\n var rootStyle = [styles.root, style, disabled && styles.cursorDefault, {\n height,\n width\n }];\n\n var disabledTrackColor = function () {\n if (value === true) {\n if (typeof activeTrackColor === 'string' && activeTrackColor != null || typeof trackColor === 'object' && trackColor != null && trackColor.true) {\n return trackCurrentColor;\n } else {\n return defaultDisabledTrackColor;\n }\n } else {\n if (typeof trackColor === 'string' && trackColor != null || typeof trackColor === 'object' && trackColor != null && trackColor.false) {\n return trackCurrentColor;\n } else {\n return defaultDisabledTrackColor;\n }\n }\n }();\n\n var disabledThumbColor = function () {\n if (value === true) {\n if (activeThumbColor == null) {\n return defaultDisabledThumbColor;\n } else {\n return thumbCurrentColor;\n }\n } else {\n if (thumbColor == null) {\n return defaultDisabledThumbColor;\n } else {\n return thumbCurrentColor;\n }\n }\n }();\n\n var trackStyle = [styles.track, {\n backgroundColor: disabled ? disabledTrackColor : trackCurrentColor,\n borderRadius: trackBorderRadius\n }];\n var thumbStyle = [styles.thumb, value && styles.thumbActive, {\n backgroundColor: disabled ? disabledThumbColor : thumbCurrentColor,\n height: thumbHeight,\n marginStart: value ? multiplyStyleLengthValue(thumbWidth, -1) : 0,\n width: thumbWidth\n }];\n var nativeControl = createElement('input', {\n accessibilityLabel,\n checked: value,\n disabled: disabled,\n onBlur: handleFocusState,\n onChange: handleChange,\n onFocus: handleFocusState,\n ref: forwardedRef,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox',\n role: 'switch'\n });\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n style: rootStyle\n }), /*#__PURE__*/React.createElement(View, {\n style: trackStyle\n }), /*#__PURE__*/React.createElement(View, {\n ref: thumbRef,\n style: thumbStyle\n }), nativeControl);\n});\nSwitch.displayName = 'Switch';\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n userSelect: 'none'\n },\n cursorDefault: {\n cursor: 'default'\n },\n cursorInherit: {\n cursor: 'inherit'\n },\n track: _objectSpread(_objectSpread({\n forcedColorAdjust: 'none'\n }, StyleSheet.absoluteFillObject), {}, {\n height: '70%',\n margin: 'auto',\n transitionDuration: '0.1s',\n width: '100%'\n }),\n thumb: {\n forcedColorAdjust: 'none',\n alignSelf: 'flex-start',\n borderRadius: '100%',\n boxShadow: thumbDefaultBoxShadow,\n start: '0%',\n transform: [{\n translateZ: 0\n }],\n transitionDuration: '0.1s'\n },\n thumbActive: {\n start: '100%'\n },\n nativeControl: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n margin: 0,\n appearance: 'none',\n padding: 0,\n width: '100%'\n })\n});\nexport default Switch;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeFunction = require(\"./isNativeFunction.js\");\nvar construct = require(\"./construct.js\");\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _wrapNativeSuper(Class);\n}\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport useLayoutEffect from '../useLayoutEffect';\nimport UIManager from '../../exports/UIManager';\nimport canUseDOM from '../canUseDom';\nvar DOM_LAYOUT_HANDLER_NAME = '__reactLayoutHandler';\nvar didWarn = !canUseDOM;\nvar resizeObserver = null;\n\nfunction getResizeObserver() {\n if (canUseDOM && typeof window.ResizeObserver !== 'undefined') {\n if (resizeObserver == null) {\n resizeObserver = new window.ResizeObserver(function (entries) {\n entries.forEach(entry => {\n var node = entry.target;\n var onLayout = node[DOM_LAYOUT_HANDLER_NAME];\n\n if (typeof onLayout === 'function') {\n // We still need to measure the view because browsers don't yet provide\n // border-box dimensions in the entry\n UIManager.measure(node, (x, y, width, height, left, top) => {\n var event = {\n // $FlowFixMe\n nativeEvent: {\n layout: {\n x,\n y,\n width,\n height,\n left,\n top\n }\n },\n timeStamp: Date.now()\n };\n Object.defineProperty(event.nativeEvent, 'target', {\n enumerable: true,\n get: () => entry.target\n });\n onLayout(event);\n });\n }\n });\n });\n }\n } else if (!didWarn) {\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n console.warn('onLayout relies on ResizeObserver which is not supported by your browser. ' + 'Please include a polyfill, e.g., https://github.com/que-etc/resize-observer-polyfill.');\n didWarn = true;\n }\n }\n\n return resizeObserver;\n}\n\nexport default function useElementLayout(ref, onLayout) {\n var observer = getResizeObserver();\n useLayoutEffect(() => {\n var node = ref.current;\n\n if (node != null) {\n node[DOM_LAYOUT_HANDLER_NAME] = onLayout;\n }\n }, [ref, onLayout]); // Observing is done in a separate effect to avoid this effect running\n // when 'onLayout' changes.\n\n useLayoutEffect(() => {\n var node = ref.current;\n\n if (node != null && observer != null) {\n if (typeof node[DOM_LAYOUT_HANDLER_NAME] === 'function') {\n observer.observe(node);\n } else {\n observer.unobserve(node);\n }\n }\n\n return () => {\n if (node != null && observer != null) {\n observer.unobserve(node);\n }\n };\n }, [ref, observer]);\n}","/*\n * Copyright (c) 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\nfunction normalizeColor(color) {\n var match;\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n if (names.hasOwnProperty(color)) {\n return names[color];\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n 0x000000ff // a\n ) >>> 0;\n }\n\n if ((match = matchers.rgba.exec(color))) {\n return (\n parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n parse1(match[4]) // a\n ) >>> 0;\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return parseInt(\n match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n 'ff', // a\n 16\n ) >>> 0;\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return parseInt(\n match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n match[4] + match[4], // a\n 16\n ) >>> 0;\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff // a\n ) >>> 0;\n }\n\n if ((match = matchers.hsla.exec(color))) {\n return (\n hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4]) // a\n ) >>> 0;\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n var r = hue2rgb(p, q, h + 1 / 3);\n var g = hue2rgb(p, q, h);\n var b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n Math.round(r * 255) << 24 |\n Math.round(g * 255) << 16 |\n Math.round(b * 255) << 8\n );\n}\n\n// var INTEGER = '[-+]?\\\\d+';\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nvar PERCENTAGE = NUMBER + '%';\n\nfunction toArray(arrayLike) {\n return Array.prototype.slice.call(arrayLike, 0);\n}\n\nfunction call() {\n return '\\\\(\\\\s*(' + toArray(arguments).join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nvar matchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n};\n\nfunction parse255(str) {\n var int = parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str) {\n var int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n var num = parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n var int = parseFloat(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nvar names = {\n transparent: 0x00000000,\n\n // http://www.w3.org/TR/css3-color/#svg-color\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff,\n};\n\nfunction rgba(colorInt) {\n var r = Math.round(((colorInt & 0xff000000) >>> 24));\n var g = Math.round(((colorInt & 0x00ff0000) >>> 16));\n var b = Math.round(((colorInt & 0x0000ff00) >>> 8));\n var a = ((colorInt & 0x000000ff) >>> 0) / 255;\n return {\n r: r,\n g: g,\n b: b,\n a: a,\n };\n};\n\nnormalizeColor.rgba = rgba;\n\nmodule.exports = normalizeColor;\n","import invariant from 'invariant';\nimport AnimatedNode, { getCallID, setCallID } from './AnimatedNode';\nimport AnimatedClock from './AnimatedClock';\nimport { val } from '../val';\n\nexport class AnimatedParam extends AnimatedNode {\n argsStack = [];\n _prevCallID;\n\n constructor() {\n super({ type: 'param' }, []);\n this.__attach();\n }\n\n beginContext(ref, prevCallID) {\n this._prevCallID = prevCallID;\n this.argsStack.push(ref);\n }\n\n endContext() {\n this.argsStack.pop();\n }\n\n _getTopNode() {\n if (this.argsStack.length === 0)\n throw new Error(`param: Invocation failed because argsStack is empty`);\n const top = this.argsStack[this.argsStack.length - 1];\n return top;\n }\n\n setValue(value) {\n const top = this._getTopNode();\n if (top.setValue) {\n const callID = getCallID();\n setCallID(this._prevCallID);\n top.setValue(value);\n setCallID(callID);\n } else {\n throw new Error(\n `param: setValue(${value}) failed because the top element has no known method for updating it's current value.`\n );\n }\n }\n\n __onEvaluate() {\n const callID = getCallID();\n setCallID(this._prevCallID);\n const top = this._getTopNode();\n const value = val(top);\n setCallID(callID);\n return value;\n }\n\n start() {\n const node = this._getTopNode();\n invariant(\n node instanceof AnimatedClock || node instanceof AnimatedParam,\n `param: top node should be of type AnimatedClock but got ${node}`\n );\n node.start();\n }\n\n stop() {\n const node = this._getTopNode();\n invariant(\n node instanceof AnimatedClock || node instanceof AnimatedParam,\n `param: top node should be of type AnimatedClock but got ${node}`\n );\n node.stop();\n }\n\n isRunning() {\n const node = this._getTopNode();\n\n if (node instanceof AnimatedParam) {\n return node.isRunning();\n }\n invariant(\n node instanceof AnimatedClock,\n `param: top node should be of type AnimatedClock but got ${node}`\n );\n return node.isStarted();\n }\n}\n\nexport function createAnimatedParam() {\n return new AnimatedParam();\n}\n","import { Easing } from '../Easing';\nimport { defineAnimation } from './util';\nexport function withTiming(toValue, userConfig, callback) {\n 'worklet';\n return defineAnimation(toValue, () => {\n 'worklet';\n const config = {\n duration: 300,\n easing: Easing.inOut(Easing.quad),\n };\n if (userConfig) {\n Object.keys(userConfig).forEach((key) => (config[key] = userConfig[key]));\n }\n function timing(animation, now) {\n const { toValue, startTime, startValue } = animation;\n const runtime = now - startTime;\n if (runtime >= config.duration) {\n // reset startTime to avoid reusing finished animation config in `start` method\n animation.startTime = 0;\n animation.current = toValue;\n return true;\n }\n const progress = animation.easing(runtime / config.duration);\n animation.current =\n startValue + (toValue - startValue) * progress;\n return false;\n }\n function onStart(animation, value, now, previousAnimation) {\n if (previousAnimation &&\n previousAnimation.type === 'timing' &&\n previousAnimation.toValue === toValue &&\n previousAnimation.startTime) {\n // to maintain continuity of timing animations we check if we are starting\n // new timing over the old one with the same parameters. If so, we want\n // to copy animation timeline properties\n animation.startTime = previousAnimation.startTime;\n animation.startValue = previousAnimation.startValue;\n }\n else {\n animation.startTime = now;\n animation.startValue = value;\n }\n animation.current = value;\n if (typeof config.easing === 'object') {\n animation.easing = config.easing.factory();\n }\n else {\n animation.easing = config.easing;\n }\n }\n return {\n type: 'timing',\n onFrame: timing,\n onStart: onStart,\n progress: 0,\n toValue,\n startValue: 0,\n startTime: 0,\n easing: () => 0,\n current: toValue,\n callback,\n };\n });\n}\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar startNativeAnimationNextId = 1; // Important note: start() and stop() will only be called at most once.\n// Once an animation has been stopped or finished its course, it will\n// not be reused.\n\nclass Animation {\n start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {}\n\n stop() {\n if (this.__nativeId) {\n NativeAnimatedHelper.API.stopAnimation(this.__nativeId);\n }\n }\n\n __getNativeAnimationConfig() {\n // Subclasses that have corresponding animation implementation done in native\n // should override this method\n throw new Error('This animation type cannot be offloaded to native');\n } // Helper function for subclasses to make sure onEnd is only called once.\n\n\n __debouncedOnEnd(result) {\n var onEnd = this.__onEnd;\n this.__onEnd = null;\n onEnd && onEnd(result);\n }\n\n __startNativeAnimation(animatedValue) {\n var startNativeAnimationWaitId = startNativeAnimationNextId + \":startAnimation\";\n startNativeAnimationNextId += 1;\n NativeAnimatedHelper.API.setWaitingForIdentifier(startNativeAnimationWaitId);\n\n try {\n animatedValue.__makeNative();\n\n this.__nativeId = NativeAnimatedHelper.generateNewAnimationId();\n NativeAnimatedHelper.API.startAnimatingNode(this.__nativeId, animatedValue.__getNativeTag(), this.__getNativeAnimationConfig(), this.__debouncedOnEnd.bind(this));\n } catch (e) {\n throw e;\n } finally {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(startNativeAnimationWaitId);\n }\n }\n\n}\n\nexport default Animation;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","import { __assign, __spreadArray } from \"tslib\";\nimport { isNonNullObject } from \"./objects.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function mergeDeep() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n return mergeDeepArray(sources);\n}\nexport function mergeDeepArray(sources) {\n var target = sources[0] || {};\n var count = sources.length;\n if (count > 1) {\n var merger = new DeepMerger();\n for (var i = 1; i < count; ++i) {\n target = merger.merge(target, sources[i]);\n }\n }\n return target;\n}\nvar defaultReconciler = function (target, source, property) {\n return this.merge(target[property], source[property]);\n};\nvar DeepMerger = (function () {\n function DeepMerger(reconciler) {\n if (reconciler === void 0) { reconciler = defaultReconciler; }\n this.reconciler = reconciler;\n this.isObject = isNonNullObject;\n this.pastCopies = new Set();\n }\n DeepMerger.prototype.merge = function (target, source) {\n var _this = this;\n var context = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n context[_i - 2] = arguments[_i];\n }\n if (isNonNullObject(source) && isNonNullObject(target)) {\n Object.keys(source).forEach(function (sourceKey) {\n if (hasOwnProperty.call(target, sourceKey)) {\n var targetValue = target[sourceKey];\n if (source[sourceKey] !== targetValue) {\n var result = _this.reconciler.apply(_this, __spreadArray([target, source, sourceKey], context, false));\n if (result !== targetValue) {\n target = _this.shallowCopyForMerge(target);\n target[sourceKey] = result;\n }\n }\n }\n else {\n target = _this.shallowCopyForMerge(target);\n target[sourceKey] = source[sourceKey];\n }\n });\n return target;\n }\n return source;\n };\n DeepMerger.prototype.shallowCopyForMerge = function (value) {\n if (isNonNullObject(value) && !this.pastCopies.has(value)) {\n if (Array.isArray(value)) {\n value = value.slice(0);\n }\n else {\n value = __assign({ __proto__: Object.getPrototypeOf(value) }, value);\n }\n this.pastCopies.add(value);\n }\n return value;\n };\n return DeepMerger;\n}());\nexport { DeepMerger };\n//# sourceMappingURL=mergeDeep.js.map","import type { ColorValue } from 'react-native';\nimport color from 'color';\n\nexport default function getContrastingColor(\n input: ColorValue,\n light: string,\n dark: string\n): string {\n if (typeof input === 'string') {\n return color(input).isLight() ? dark : light;\n }\n\n return light;\n}\n","import * as React from 'react';\nconst contexts = '__react_navigation__elements_contexts';\n// We use a global variable to keep our contexts so that we can reuse same contexts across packages\nglobal[contexts] = global[contexts] ?? new Map();\nexport default function getNamedContext(name, initialValue) {\n let context = global[contexts].get(name);\n if (context) {\n return context;\n }\n context = /*#__PURE__*/React.createContext(initialValue);\n context.displayName = name;\n global[contexts].set(name, context);\n return context;\n}\n//# sourceMappingURL=getNamedContext.js.map","import * as React from 'react';\nconst ModalPresentationContext = /*#__PURE__*/React.createContext(false);\nexport default ModalPresentationContext;\n//# sourceMappingURL=ModalPresentationContext.js.map","/**\n * Copyright (c) Nicolas Gallagher\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 */\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\n\nvar emptyFunction = () => {};\n\nvar emptyObject = {};\nvar emptyArray = [];\n/**\n * Safari produces very large identifiers that would cause the `touchBank` array\n * length to be so large as to crash the browser, if not normalized like this.\n * In the future the `touchBank` should use an object/map instead.\n */\n\nfunction normalizeIdentifier(identifier) {\n return identifier > 20 ? identifier % 20 : identifier;\n}\n/**\n * Converts a native DOM event to a ResponderEvent.\n * Mouse events are transformed into fake touch events.\n */\n\n\nexport default function createResponderEvent(domEvent, responderTouchHistoryStore) {\n var rect;\n var propagationWasStopped = false;\n var changedTouches;\n var touches;\n var domEventChangedTouches = domEvent.changedTouches;\n var domEventType = domEvent.type;\n var metaKey = domEvent.metaKey === true;\n var shiftKey = domEvent.shiftKey === true;\n var force = domEventChangedTouches && domEventChangedTouches[0].force || 0;\n var identifier = normalizeIdentifier(domEventChangedTouches && domEventChangedTouches[0].identifier || 0);\n var clientX = domEventChangedTouches && domEventChangedTouches[0].clientX || domEvent.clientX;\n var clientY = domEventChangedTouches && domEventChangedTouches[0].clientY || domEvent.clientY;\n var pageX = domEventChangedTouches && domEventChangedTouches[0].pageX || domEvent.pageX;\n var pageY = domEventChangedTouches && domEventChangedTouches[0].pageY || domEvent.pageY;\n var preventDefault = typeof domEvent.preventDefault === 'function' ? domEvent.preventDefault.bind(domEvent) : emptyFunction;\n var timestamp = domEvent.timeStamp;\n\n function normalizeTouches(touches) {\n return Array.prototype.slice.call(touches).map(touch => {\n return {\n force: touch.force,\n identifier: normalizeIdentifier(touch.identifier),\n\n get locationX() {\n return locationX(touch.clientX);\n },\n\n get locationY() {\n return locationY(touch.clientY);\n },\n\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target,\n timestamp\n };\n });\n }\n\n if (domEventChangedTouches != null) {\n changedTouches = normalizeTouches(domEventChangedTouches);\n touches = normalizeTouches(domEvent.touches);\n } else {\n var emulatedTouches = [{\n force,\n identifier,\n\n get locationX() {\n return locationX(clientX);\n },\n\n get locationY() {\n return locationY(clientY);\n },\n\n pageX,\n pageY,\n target: domEvent.target,\n timestamp\n }];\n changedTouches = emulatedTouches;\n touches = domEventType === 'mouseup' || domEventType === 'dragstart' ? emptyArray : emulatedTouches;\n }\n\n var responderEvent = {\n bubbles: true,\n cancelable: true,\n // `currentTarget` is set before dispatch\n currentTarget: null,\n defaultPrevented: domEvent.defaultPrevented,\n dispatchConfig: emptyObject,\n eventPhase: domEvent.eventPhase,\n\n isDefaultPrevented() {\n return domEvent.defaultPrevented;\n },\n\n isPropagationStopped() {\n return propagationWasStopped;\n },\n\n isTrusted: domEvent.isTrusted,\n nativeEvent: {\n altKey: false,\n ctrlKey: false,\n metaKey,\n shiftKey,\n changedTouches,\n force,\n identifier,\n\n get locationX() {\n return locationX(clientX);\n },\n\n get locationY() {\n return locationY(clientY);\n },\n\n pageX,\n pageY,\n target: domEvent.target,\n timestamp,\n touches,\n type: domEventType\n },\n persist: emptyFunction,\n preventDefault,\n\n stopPropagation() {\n propagationWasStopped = true;\n },\n\n target: domEvent.target,\n timeStamp: timestamp,\n touchHistory: responderTouchHistoryStore.touchHistory\n }; // Using getters and functions serves two purposes:\n // 1) The value of `currentTarget` is not initially available.\n // 2) Measuring the clientRect may cause layout jank and should only be done on-demand.\n\n function locationX(x) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n\n if (rect) {\n return x - rect.left;\n }\n }\n\n function locationY(y) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n\n if (rect) {\n return y - rect.top;\n }\n }\n\n return responderEvent;\n}","/**\n * Copyright (c) Nicolas Gallagher\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 */\nexport var BLUR = 'blur';\nexport var CONTEXT_MENU = 'contextmenu';\nexport var FOCUS_OUT = 'focusout';\nexport var MOUSE_DOWN = 'mousedown';\nexport var MOUSE_MOVE = 'mousemove';\nexport var MOUSE_UP = 'mouseup';\nexport var MOUSE_CANCEL = 'dragstart';\nexport var TOUCH_START = 'touchstart';\nexport var TOUCH_MOVE = 'touchmove';\nexport var TOUCH_END = 'touchend';\nexport var TOUCH_CANCEL = 'touchcancel';\nexport var SCROLL = 'scroll';\nexport var SELECT = 'select';\nexport var SELECTION_CHANGE = 'selectionchange';\nexport function isStartish(eventType) {\n return eventType === TOUCH_START || eventType === MOUSE_DOWN;\n}\nexport function isMoveish(eventType) {\n return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;\n}\nexport function isEndish(eventType) {\n return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);\n}\nexport function isCancelish(eventType) {\n return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;\n}\nexport function isScroll(eventType) {\n return eventType === SCROLL;\n}\nexport function isSelectionChange(eventType) {\n return eventType === SELECT || eventType === SELECTION_CHANGE;\n}","/**\n * Copyright (c) Nicolas Gallagher\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 */\nimport isSelectionValid from '../../modules/isSelectionValid';\nvar keyName = '__reactResponderId';\n\nfunction getEventPath(domEvent) {\n // The 'selectionchange' event always has the 'document' as the target.\n // Use the anchor node as the initial target to reconstruct a path.\n // (We actually only need the first \"responder\" node in practice.)\n if (domEvent.type === 'selectionchange') {\n var target = window.getSelection().anchorNode;\n return composedPathFallback(target);\n } else {\n var path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);\n return path;\n }\n}\n\nfunction composedPathFallback(target) {\n var path = [];\n\n while (target != null && target !== document.body) {\n path.push(target);\n target = target.parentNode;\n }\n\n return path;\n}\n/**\n * Retrieve the responderId from a host node\n */\n\n\nfunction getResponderId(node) {\n if (node != null) {\n return node[keyName];\n }\n\n return null;\n}\n/**\n * Store the responderId on a host node\n */\n\n\nexport function setResponderId(node, id) {\n if (node != null) {\n node[keyName] = id;\n }\n}\n/**\n * Filter the event path to contain only the nodes attached to the responder system\n */\n\nexport function getResponderPaths(domEvent) {\n var idPath = [];\n var nodePath = [];\n var eventPath = getEventPath(domEvent);\n\n for (var i = 0; i < eventPath.length; i++) {\n var node = eventPath[i];\n var id = getResponderId(node);\n\n if (id != null) {\n idPath.push(id);\n nodePath.push(node);\n }\n }\n\n return {\n idPath,\n nodePath\n };\n}\n/**\n * Walk the paths and find the first common ancestor\n */\n\nexport function getLowestCommonAncestor(pathA, pathB) {\n var pathALength = pathA.length;\n var pathBLength = pathB.length;\n\n if ( // If either path is empty\n pathALength === 0 || pathBLength === 0 || // If the last elements aren't the same there can't be a common ancestor\n // that is connected to the responder system\n pathA[pathALength - 1] !== pathB[pathBLength - 1]) {\n return null;\n }\n\n var itemA = pathA[0];\n var indexA = 0;\n var itemB = pathB[0];\n var indexB = 0; // If A is deeper, skip indices that can't match.\n\n if (pathALength - pathBLength > 0) {\n indexA = pathALength - pathBLength;\n itemA = pathA[indexA];\n pathALength = pathBLength;\n } // If B is deeper, skip indices that can't match\n\n\n if (pathBLength - pathALength > 0) {\n indexB = pathBLength - pathALength;\n itemB = pathB[indexB];\n pathBLength = pathALength;\n } // Walk in lockstep until a match is found\n\n\n var depth = pathALength;\n\n while (depth--) {\n if (itemA === itemB) {\n return itemA;\n }\n\n itemA = pathA[indexA++];\n itemB = pathB[indexB++];\n }\n\n return null;\n}\n/**\n * Determine whether any of the active touches are within the current responder.\n * This cannot rely on W3C `targetTouches`, as neither IE11 nor Safari implement it.\n */\n\nexport function hasTargetTouches(target, touches) {\n if (!touches || touches.length === 0) {\n return false;\n }\n\n for (var i = 0; i < touches.length; i++) {\n var node = touches[i].target;\n\n if (node != null) {\n if (target.contains(node)) {\n return true;\n }\n }\n }\n\n return false;\n}\n/**\n * Ignore 'selectionchange' events that don't correspond with a person's intent to\n * select text.\n */\n\nexport function hasValidSelection(domEvent) {\n if (domEvent.type === 'selectionchange') {\n return isSelectionValid();\n }\n\n return domEvent.type === 'select';\n}\n/**\n * Events are only valid if the primary button was used without specific modifier keys.\n */\n\nexport function isPrimaryPointerDown(domEvent) {\n var altKey = domEvent.altKey,\n button = domEvent.button,\n buttons = domEvent.buttons,\n ctrlKey = domEvent.ctrlKey,\n type = domEvent.type;\n var isTouch = type === 'touchstart' || type === 'touchmove';\n var isPrimaryMouseDown = type === 'mousedown' && (button === 0 || buttons === 1);\n var isPrimaryMouseMove = type === 'mousemove' && buttons === 1;\n var noModifiers = altKey === false && ctrlKey === false;\n\n if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {\n return true;\n }\n\n return false;\n}","/**\n * Copyright (c) Nicolas Gallagher\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 */\nexport default function isSelectionValid() {\n var selection = window.getSelection();\n var string = selection.toString();\n var anchorNode = selection.anchorNode;\n var focusNode = selection.focusNode;\n var isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;\n return string.length >= 1 && string !== '\\n' && isTextNode;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport { isStartish, isMoveish, isEndish } from './ResponderEventTypes';\n\n/**\n * Tracks the position and time of each active touch by `touch.identifier`. We\n * should typically only see IDs in the range of 1-20 because IDs get recycled\n * when touches end and start again.\n */\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar MAX_TOUCH_BANK = 20;\n\nfunction timestampForTouch(touch) {\n // The legacy internal implementation provides \"timeStamp\", which has been\n // renamed to \"timestamp\".\n return touch.timeStamp || touch.timestamp;\n}\n/**\n * TODO: Instead of making gestures recompute filtered velocity, we could\n * include a built in velocity computation that can be reused globally.\n */\n\n\nfunction createTouchRecord(touch) {\n return {\n touchActive: true,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n };\n}\n\nfunction resetTouchRecord(touchRecord, touch) {\n touchRecord.touchActive = true;\n touchRecord.startPageX = touch.pageX;\n touchRecord.startPageY = touch.pageY;\n touchRecord.startTimeStamp = timestampForTouch(touch);\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchRecord.previousPageX = touch.pageX;\n touchRecord.previousPageY = touch.pageY;\n touchRecord.previousTimeStamp = timestampForTouch(touch);\n}\n\nfunction getTouchIdentifier(_ref) {\n var identifier = _ref.identifier;\n\n if (identifier == null) {\n console.error('Touch object is missing identifier.');\n }\n\n if (__DEV__) {\n if (identifier > MAX_TOUCH_BANK) {\n console.error('Touch identifier %s is greater than maximum supported %s which causes ' + 'performance issues backfilling array locations for all of the indices.', identifier, MAX_TOUCH_BANK);\n }\n }\n\n return identifier;\n}\n\nfunction recordTouchStart(touch, touchHistory) {\n var identifier = getTouchIdentifier(touch);\n var touchRecord = touchHistory.touchBank[identifier];\n\n if (touchRecord) {\n resetTouchRecord(touchRecord, touch);\n } else {\n touchHistory.touchBank[identifier] = createTouchRecord(touch);\n }\n\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\n\nfunction recordTouchMove(touch, touchHistory) {\n var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n\n if (touchRecord) {\n touchRecord.touchActive = true;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch move without a touch start.\\n', \"Touch Move: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank(touchHistory));\n }\n}\n\nfunction recordTouchEnd(touch, touchHistory) {\n var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n\n if (touchRecord) {\n touchRecord.touchActive = false;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch end without a touch start.\\n', \"Touch End: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank(touchHistory));\n }\n}\n\nfunction printTouch(touch) {\n return JSON.stringify({\n identifier: touch.identifier,\n pageX: touch.pageX,\n pageY: touch.pageY,\n timestamp: timestampForTouch(touch)\n });\n}\n\nfunction printTouchBank(touchHistory) {\n var touchBank = touchHistory.touchBank;\n var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));\n\n if (touchBank.length > MAX_TOUCH_BANK) {\n printed += ' (original size: ' + touchBank.length + ')';\n }\n\n return printed;\n}\n\nexport class ResponderTouchHistoryStore {\n constructor() {\n this._touchHistory = {\n touchBank: [],\n //Array\n numberActiveTouches: 0,\n // If there is only one active touch, we remember its location. This prevents\n // us having to loop through all of the touches all the time in the most\n // common case.\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n };\n }\n\n recordTouchTrack(topLevelType, nativeEvent) {\n var touchHistory = this._touchHistory;\n\n if (isMoveish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchMove(touch, touchHistory));\n } else if (isStartish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchStart(touch, touchHistory));\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n\n if (touchHistory.numberActiveTouches === 1) {\n touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;\n }\n } else if (isEndish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchEnd(touch, touchHistory));\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n\n if (touchHistory.numberActiveTouches === 1) {\n var touchBank = touchHistory.touchBank;\n\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrackToCheck = touchBank[i];\n\n if (touchTrackToCheck != null && touchTrackToCheck.touchActive) {\n touchHistory.indexOfSingleActiveTouch = i;\n break;\n }\n }\n\n if (__DEV__) {\n var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];\n\n if (!(activeRecord != null && activeRecord.touchActive)) {\n console.error('Cannot find single active touch.');\n }\n }\n }\n }\n }\n\n get touchHistory() {\n return this._touchHistory;\n }\n\n}","/**\n * Copyright (c) Nicolas Gallagher\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 */\n\n/**\n * RESPONDER EVENT SYSTEM\n *\n * A single, global \"interaction lock\" on views. For a view to be the \"responder\" means\n * that pointer interactions are exclusive to that view and none other. The \"interaction\n * lock\" can be transferred (only) to ancestors of the current \"responder\" as long as\n * pointers continue to be active.\n *\n * Responder being granted:\n *\n * A view can become the \"responder\" after the following events:\n * * \"pointerdown\" (implemented using \"touchstart\", \"mousedown\")\n * * \"pointermove\" (implemented using \"touchmove\", \"mousemove\")\n * * \"scroll\" (while a pointer is down)\n * * \"selectionchange\" (while a pointer is down)\n *\n * If nothing is already the \"responder\", the event propagates to (capture) and from\n * (bubble) the event target until a view returns `true` for\n * `on*ShouldSetResponder(Capture)`.\n *\n * If something is already the responder, the event propagates to (capture) and from\n * (bubble) the lowest common ancestor of the event target and the current \"responder\".\n * Then negotiation happens between the current \"responder\" and a view that wants to\n * become the \"responder\": see the timing diagram below.\n *\n * (NOTE: Scrolled views either automatically become the \"responder\" or release the\n * \"interaction lock\". A native scroll view that isn't built on top of the responder\n * system must result in the current \"responder\" being notified that it no longer has\n * the \"interaction lock\" - the native system has taken over.\n *\n * Responder being released:\n *\n * As soon as there are no more active pointers that *started* inside descendants\n * of the *current* \"responder\", an `onResponderRelease` event is dispatched to the\n * current \"responder\", and the responder lock is released.\n *\n * Typical sequence of events:\n * * startShouldSetResponder\n * * responderGrant/Reject\n * * responderStart\n * * responderMove\n * * responderEnd\n * * responderRelease\n */\n\n/* Negotiation Performed\n +-----------------------+\n / \\\nProcess low level events to + Current Responder + wantsResponderID\ndetermine who to perform negot-| (if any exists at all) |\niation/transition | Otherwise just pass through|\n-------------------------------+----------------------------+------------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +--------------+ | |\n | onTouchStart | | |\n +------+-------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onStartShouldSetResponder|----->| onResponderStart (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest | |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderStart|\n | | +----------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +-------------+ | |\n | onTouchMove | | |\n +------+------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onMoveShouldSetResponder |----->| onResponderMove (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest| |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderMove |\n | | +----------------+\n | |\n | |\n Some active touch started| |\n inside current responder | +------------------------+ |\n +------------------------->| onResponderEnd | |\n | | +------------------------+ |\n +---+---------+ | |\n | onTouchEnd | | |\n +---+---------+ | |\n | | +------------------------+ |\n +------------------------->| onResponderEnd | |\n No active touches started| +-----------+------------+ |\n inside current responder | | |\n | v |\n | +------------------------+ |\n | | onResponderRelease | |\n | +------------------------+ |\n | |\n + + */\nimport createResponderEvent from './createResponderEvent';\nimport { isCancelish, isEndish, isMoveish, isScroll, isSelectionChange, isStartish } from './ResponderEventTypes';\nimport { getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, setResponderId } from './utils';\nimport { ResponderTouchHistoryStore } from './ResponderTouchHistoryStore';\nimport canUseDOM from '../canUseDom';\n/* ------------ TYPES ------------ */\n\nvar emptyObject = {};\n/* ------------ IMPLEMENTATION ------------ */\n\nvar startRegistration = ['onStartShouldSetResponderCapture', 'onStartShouldSetResponder', {\n bubbles: true\n}];\nvar moveRegistration = ['onMoveShouldSetResponderCapture', 'onMoveShouldSetResponder', {\n bubbles: true\n}];\nvar scrollRegistration = ['onScrollShouldSetResponderCapture', 'onScrollShouldSetResponder', {\n bubbles: false\n}];\nvar shouldSetResponderEvents = {\n touchstart: startRegistration,\n mousedown: startRegistration,\n touchmove: moveRegistration,\n mousemove: moveRegistration,\n scroll: scrollRegistration\n};\nvar emptyResponder = {\n id: null,\n idPath: null,\n node: null\n};\nvar responderListenersMap = new Map();\nvar isEmulatingMouseEvents = false;\nvar trackedTouchCount = 0;\nvar currentResponder = {\n id: null,\n node: null,\n idPath: null\n};\nvar responderTouchHistoryStore = new ResponderTouchHistoryStore();\n\nfunction changeCurrentResponder(responder) {\n currentResponder = responder;\n}\n\nfunction getResponderConfig(id) {\n var config = responderListenersMap.get(id);\n return config != null ? config : emptyObject;\n}\n/**\n * Process native events\n *\n * A single event listener is used to manage the responder system.\n * All pointers are tracked in the ResponderTouchHistoryStore. Native events\n * are interpreted in terms of the Responder System and checked to see if\n * the responder should be transferred. Each host node that is attached to\n * the Responder System has an ID, which is used to look up its associated\n * callbacks.\n */\n\n\nfunction eventListener(domEvent) {\n var eventType = domEvent.type;\n var eventTarget = domEvent.target;\n /**\n * Manage emulated events and early bailout.\n * Since PointerEvent is not used yet (lack of support in older Safari), it's\n * necessary to manually manage the mess of browser touch/mouse events.\n * And bailout early for termination events when there is no active responder.\n */\n // Flag when browser may produce emulated events\n\n if (eventType === 'touchstart') {\n isEmulatingMouseEvents = true;\n } // Remove flag when browser will not produce emulated events\n\n\n if (eventType === 'touchmove' || trackedTouchCount > 1) {\n isEmulatingMouseEvents = false;\n } // Ignore various events in particular circumstances\n\n\n if ( // Ignore browser emulated mouse events\n eventType === 'mousedown' && isEmulatingMouseEvents || eventType === 'mousemove' && isEmulatingMouseEvents || // Ignore mousemove if a mousedown didn't occur first\n eventType === 'mousemove' && trackedTouchCount < 1) {\n return;\n } // Remove flag after emulated events are finished\n\n\n if (isEmulatingMouseEvents && eventType === 'mouseup') {\n if (trackedTouchCount === 0) {\n isEmulatingMouseEvents = false;\n }\n\n return;\n }\n\n var isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent);\n var isMoveEvent = isMoveish(eventType);\n var isEndEvent = isEndish(eventType);\n var isScrollEvent = isScroll(eventType);\n var isSelectionChangeEvent = isSelectionChange(eventType);\n var responderEvent = createResponderEvent(domEvent, responderTouchHistoryStore);\n /**\n * Record the state of active pointers\n */\n\n if (isStartEvent || isMoveEvent || isEndEvent) {\n if (domEvent.touches) {\n trackedTouchCount = domEvent.touches.length;\n } else {\n if (isStartEvent) {\n trackedTouchCount = 1;\n } else if (isEndEvent) {\n trackedTouchCount = 0;\n }\n }\n\n responderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);\n }\n /**\n * Responder System logic\n */\n\n\n var eventPaths = getResponderPaths(domEvent);\n var wasNegotiated = false;\n var wantsResponder; // If an event occured that might change the current responder...\n\n if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {\n // If there is already a responder, prune the event paths to the lowest common ancestor\n // of the existing responder and deepest target of the event.\n var currentResponderIdPath = currentResponder.idPath;\n var eventIdPath = eventPaths.idPath;\n\n if (currentResponderIdPath != null && eventIdPath != null) {\n var lowestCommonAncestor = getLowestCommonAncestor(currentResponderIdPath, eventIdPath);\n\n if (lowestCommonAncestor != null) {\n var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor); // Skip the current responder so it doesn't receive unexpected \"shouldSet\" events.\n\n var index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);\n eventPaths = {\n idPath: eventIdPath.slice(index),\n nodePath: eventPaths.nodePath.slice(index)\n };\n } else {\n eventPaths = null;\n }\n }\n\n if (eventPaths != null) {\n // If a node wants to become the responder, attempt to transfer.\n wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);\n\n if (wantsResponder != null) {\n // Sets responder if none exists, or negotates with existing responder.\n attemptTransfer(responderEvent, wantsResponder);\n wasNegotiated = true;\n }\n }\n } // If there is now a responder, invoke its callbacks for the lifecycle of the gesture.\n\n\n if (currentResponder.id != null && currentResponder.node != null) {\n var _currentResponder = currentResponder,\n id = _currentResponder.id,\n node = _currentResponder.node;\n\n var _getResponderConfig = getResponderConfig(id),\n onResponderStart = _getResponderConfig.onResponderStart,\n onResponderMove = _getResponderConfig.onResponderMove,\n onResponderEnd = _getResponderConfig.onResponderEnd,\n onResponderRelease = _getResponderConfig.onResponderRelease,\n onResponderTerminate = _getResponderConfig.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig.onResponderTerminationRequest;\n\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node; // Start\n\n if (isStartEvent) {\n if (onResponderStart != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderStart';\n onResponderStart(responderEvent);\n }\n } // Move\n else if (isMoveEvent) {\n if (onResponderMove != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderMove';\n onResponderMove(responderEvent);\n }\n } else {\n var isTerminateEvent = isCancelish(eventType) || // native context menu\n eventType === 'contextmenu' || // window blur\n eventType === 'blur' && eventTarget === window || // responder (or ancestors) blur\n eventType === 'blur' && eventTarget.contains(node) && domEvent.relatedTarget !== node || // native scroll without using a pointer\n isScrollEvent && trackedTouchCount === 0 || // native scroll on node that is parent of the responder (allow siblings to scroll)\n isScrollEvent && eventTarget.contains(node) && eventTarget !== node || // native select/selectionchange on node\n isSelectionChangeEvent && hasValidSelection(domEvent);\n var isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches); // End\n\n if (isEndEvent) {\n if (onResponderEnd != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderEnd';\n onResponderEnd(responderEvent);\n }\n } // Release\n\n\n if (isReleaseEvent) {\n if (onResponderRelease != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderRelease';\n onResponderRelease(responderEvent);\n }\n\n changeCurrentResponder(emptyResponder);\n } // Terminate\n\n\n if (isTerminateEvent) {\n var shouldTerminate = true; // Responders can still avoid termination but only for these events.\n\n if (eventType === 'contextmenu' || eventType === 'scroll' || eventType === 'selectionchange') {\n // Only call this function is it wasn't already called during negotiation.\n if (wasNegotiated) {\n shouldTerminate = false;\n } else if (onResponderTerminationRequest != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n\n if (onResponderTerminationRequest(responderEvent) === false) {\n shouldTerminate = false;\n }\n }\n }\n\n if (shouldTerminate) {\n if (onResponderTerminate != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n }\n\n changeCurrentResponder(emptyResponder);\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n }\n }\n }\n }\n}\n/**\n * Walk the event path to/from the target node. At each node, stop and call the\n * relevant \"shouldSet\" functions for the given event type. If any of those functions\n * call \"stopPropagation\" on the event, stop searching for a responder.\n */\n\n\nfunction findWantsResponder(eventPaths, domEvent, responderEvent) {\n var shouldSetCallbacks = shouldSetResponderEvents[domEvent.type]; // for Flow\n\n if (shouldSetCallbacks != null) {\n var idPath = eventPaths.idPath,\n nodePath = eventPaths.nodePath;\n var shouldSetCallbackCaptureName = shouldSetCallbacks[0];\n var shouldSetCallbackBubbleName = shouldSetCallbacks[1];\n var bubbles = shouldSetCallbacks[2].bubbles;\n\n var check = function check(id, node, callbackName) {\n var config = getResponderConfig(id);\n var shouldSetCallback = config[callbackName];\n\n if (shouldSetCallback != null) {\n responderEvent.currentTarget = node;\n\n if (shouldSetCallback(responderEvent) === true) {\n // Start the path from the potential responder\n var prunedIdPath = idPath.slice(idPath.indexOf(id));\n return {\n id,\n node,\n idPath: prunedIdPath\n };\n }\n }\n }; // capture\n\n\n for (var i = idPath.length - 1; i >= 0; i--) {\n var id = idPath[i];\n var node = nodePath[i];\n var result = check(id, node, shouldSetCallbackCaptureName);\n\n if (result != null) {\n return result;\n }\n\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n } // bubble\n\n\n if (bubbles) {\n for (var _i = 0; _i < idPath.length; _i++) {\n var _id = idPath[_i];\n var _node = nodePath[_i];\n\n var _result = check(_id, _node, shouldSetCallbackBubbleName);\n\n if (_result != null) {\n return _result;\n }\n\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n } else {\n var _id2 = idPath[0];\n var _node2 = nodePath[0];\n var target = domEvent.target;\n\n if (target === _node2) {\n return check(_id2, _node2, shouldSetCallbackBubbleName);\n }\n }\n }\n}\n/**\n * Attempt to transfer the responder.\n */\n\n\nfunction attemptTransfer(responderEvent, wantsResponder) {\n var _currentResponder2 = currentResponder,\n currentId = _currentResponder2.id,\n currentNode = _currentResponder2.node;\n var id = wantsResponder.id,\n node = wantsResponder.node;\n\n var _getResponderConfig2 = getResponderConfig(id),\n onResponderGrant = _getResponderConfig2.onResponderGrant,\n onResponderReject = _getResponderConfig2.onResponderReject;\n\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node; // Set responder\n\n if (currentId == null) {\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n\n changeCurrentResponder(wantsResponder);\n } // Negotiate with current responder\n else {\n var _getResponderConfig3 = getResponderConfig(currentId),\n onResponderTerminate = _getResponderConfig3.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig3.onResponderTerminationRequest;\n\n var allowTransfer = true;\n\n if (onResponderTerminationRequest != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n\n if (onResponderTerminationRequest(responderEvent) === false) {\n allowTransfer = false;\n }\n }\n\n if (allowTransfer) {\n // Terminate existing responder\n if (onResponderTerminate != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n } // Grant next responder\n\n\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n\n changeCurrentResponder(wantsResponder);\n } else {\n // Reject responder request\n if (onResponderReject != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderReject';\n onResponderReject(responderEvent);\n }\n }\n }\n}\n/* ------------ PUBLIC API ------------ */\n\n/**\n * Attach Listeners\n *\n * Use native events as ReactDOM doesn't have a non-plugin API to implement\n * this system.\n */\n\n\nvar documentEventsCapturePhase = ['blur', 'scroll'];\nvar documentEventsBubblePhase = [// mouse\n'mousedown', 'mousemove', 'mouseup', 'dragstart', // touch\n'touchstart', 'touchmove', 'touchend', 'touchcancel', // other\n'contextmenu', 'select', 'selectionchange'];\nexport function attachListeners() {\n if (canUseDOM && window.__reactResponderSystemActive == null) {\n window.addEventListener('blur', eventListener);\n documentEventsBubblePhase.forEach(eventType => {\n document.addEventListener(eventType, eventListener);\n });\n documentEventsCapturePhase.forEach(eventType => {\n document.addEventListener(eventType, eventListener, true);\n });\n window.__reactResponderSystemActive = true;\n }\n}\n/**\n * Register a node with the ResponderSystem.\n */\n\nexport function addNode(id, node, config) {\n setResponderId(node, id);\n responderListenersMap.set(id, config);\n}\n/**\n * Unregister a node with the ResponderSystem.\n */\n\nexport function removeNode(id) {\n if (currentResponder.id === id) {\n terminateResponder();\n }\n\n if (responderListenersMap.has(id)) {\n responderListenersMap.delete(id);\n }\n}\n/**\n * Allow the current responder to be terminated from within components to support\n * more complex requirements, such as use with other React libraries for working\n * with scroll views, input views, etc.\n */\n\nexport function terminateResponder() {\n var _currentResponder3 = currentResponder,\n id = _currentResponder3.id,\n node = _currentResponder3.node;\n\n if (id != null && node != null) {\n var _getResponderConfig4 = getResponderConfig(id),\n onResponderTerminate = _getResponderConfig4.onResponderTerminate;\n\n if (onResponderTerminate != null) {\n var event = createResponderEvent({}, responderTouchHistoryStore);\n event.currentTarget = node;\n onResponderTerminate(event);\n }\n\n changeCurrentResponder(emptyResponder);\n }\n\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n}\n/**\n * Allow unit tests to inspect the current responder in the system.\n * FOR TESTING ONLY.\n */\n\nexport function getResponderNode() {\n return currentResponder.node;\n}","/**\n * Copyright (c) Nicolas Gallagher\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 */\n\n/**\n * Hook for integrating the Responder System into React\n *\n * function SomeComponent({ onStartShouldSetResponder }) {\n * const ref = useRef(null);\n * useResponderEvents(ref, { onStartShouldSetResponder });\n * return
\n * }\n */\nimport * as React from 'react';\nimport * as ResponderSystem from './ResponderSystem';\nvar emptyObject = {};\nvar idCounter = 0;\n\nfunction useStable(getInitialValue) {\n var ref = React.useRef(null);\n\n if (ref.current == null) {\n ref.current = getInitialValue();\n }\n\n return ref.current;\n}\n\nexport default function useResponderEvents(hostRef, config) {\n if (config === void 0) {\n config = emptyObject;\n }\n\n var id = useStable(() => idCounter++);\n var isAttachedRef = React.useRef(false); // This is a separate effects so it doesn't run when the config changes.\n // On initial mount, attach global listeners if needed.\n // On unmount, remove node potentially attached to the Responder System.\n\n React.useEffect(() => {\n ResponderSystem.attachListeners();\n return () => {\n ResponderSystem.removeNode(id);\n };\n }, [id]); // Register and unregister with the Responder System as necessary\n\n React.useEffect(() => {\n var _config = config,\n onMoveShouldSetResponder = _config.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = _config.onMoveShouldSetResponderCapture,\n onScrollShouldSetResponder = _config.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = _config.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = _config.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = _config.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = _config.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = _config.onStartShouldSetResponderCapture;\n var requiresResponderSystem = onMoveShouldSetResponder != null || onMoveShouldSetResponderCapture != null || onScrollShouldSetResponder != null || onScrollShouldSetResponderCapture != null || onSelectionChangeShouldSetResponder != null || onSelectionChangeShouldSetResponderCapture != null || onStartShouldSetResponder != null || onStartShouldSetResponderCapture != null;\n var node = hostRef.current;\n\n if (requiresResponderSystem) {\n ResponderSystem.addNode(id, node, config);\n isAttachedRef.current = true;\n } else if (isAttachedRef.current) {\n ResponderSystem.removeNode(id);\n isAttachedRef.current = false;\n }\n }, [config, hostRef, id]);\n React.useDebugValue({\n isResponder: hostRef.current === ResponderSystem.getResponderNode()\n });\n React.useDebugValue(config);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * \n */\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\n/**\n * A simple class for batching up invocations of a low-pri callback. A timeout is set to run the\n * callback once after a delay, no matter how many times it's scheduled. Once the delay is reached,\n * InteractionManager.runAfterInteractions is used to invoke the callback after any hi-pri\n * interactions are done running.\n *\n * Make sure to cleanup with dispose(). Example:\n *\n * class Widget extends React.Component {\n * _batchedSave: new Batchinator(() => this._saveState, 1000);\n * _saveSate() {\n * // save this.state to disk\n * }\n * componentDidUpdate() {\n * this._batchedSave.schedule();\n * }\n * componentWillUnmount() {\n * this._batchedSave.dispose();\n * }\n * ...\n * }\n */\n\nclass Batchinator {\n constructor(callback, delayMS) {\n this._delay = delayMS;\n this._callback = callback;\n }\n /*\n * Cleanup any pending tasks.\n *\n * By default, if there is a pending task the callback is run immediately. Set the option abort to\n * true to not call the callback if it was pending.\n */\n\n\n dispose(options) {\n if (options === void 0) {\n options = {\n abort: false\n };\n }\n\n if (this._taskHandle) {\n this._taskHandle.cancel();\n\n if (!options.abort) {\n this._callback();\n }\n\n this._taskHandle = null;\n }\n }\n\n schedule() {\n if (this._taskHandle) {\n return;\n }\n\n var timeoutHandle = setTimeout(() => {\n this._taskHandle = InteractionManager.runAfterInteractions(() => {\n // Note that we clear the handle before invoking the callback so that if the callback calls\n // schedule again, it will actually schedule another task.\n this._taskHandle = null;\n\n this._callback();\n });\n }, this._delay);\n this._taskHandle = {\n cancel: () => clearTimeout(timeoutHandle)\n };\n }\n\n}\n\nexport default Batchinator;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * A Utility class for calculating viewable items based on current metrics like scroll position and\n * layout.\n *\n * An item is said to be in a \"viewable\" state when any of the following\n * is true for longer than `minimumViewTime` milliseconds (after an interaction if `waitForInteraction`\n * is true):\n *\n * - Occupying >= `viewAreaCoveragePercentThreshold` of the view area XOR fraction of the item\n * visible in the view area >= `itemVisiblePercentThreshold`.\n * - Entirely visible on screen\n */\nclass ViewabilityHelper {\n constructor(config) {\n if (config === void 0) {\n config = {\n viewAreaCoveragePercentThreshold: 0\n };\n }\n\n this._hasInteracted = false;\n this._timers = new Set();\n this._viewableIndices = [];\n this._viewableItems = new Map();\n this._config = config;\n }\n /**\n * Cleanup, e.g. on unmount. Clears any pending timers.\n */\n\n\n dispose() {\n this._timers.forEach(clearTimeout);\n }\n /**\n * Determines which items are viewable based on the current metrics and config.\n */\n\n\n computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange // Optional optimization to reduce the scan size\n ) {\n var _this$_config = this._config,\n itemVisiblePercentThreshold = _this$_config.itemVisiblePercentThreshold,\n viewAreaCoveragePercentThreshold = _this$_config.viewAreaCoveragePercentThreshold;\n var viewAreaMode = viewAreaCoveragePercentThreshold != null;\n var viewablePercentThreshold = viewAreaMode ? viewAreaCoveragePercentThreshold : itemVisiblePercentThreshold;\n invariant(viewablePercentThreshold != null && itemVisiblePercentThreshold != null !== (viewAreaCoveragePercentThreshold != null), 'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold');\n var viewableIndices = [];\n\n if (itemCount === 0) {\n return viewableIndices;\n }\n\n var firstVisible = -1;\n\n var _ref = renderRange || {\n first: 0,\n last: itemCount - 1\n },\n first = _ref.first,\n last = _ref.last;\n\n if (last >= itemCount) {\n console.warn('Invalid render range computing viewability ' + JSON.stringify({\n renderRange,\n itemCount\n }));\n return [];\n }\n\n for (var idx = first; idx <= last; idx++) {\n var metrics = getFrameMetrics(idx);\n\n if (!metrics) {\n continue;\n }\n\n var top = metrics.offset - scrollOffset;\n var bottom = top + metrics.length;\n\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\n\n if (_isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, metrics.length)) {\n viewableIndices.push(idx);\n }\n } else if (firstVisible >= 0) {\n break;\n }\n }\n\n return viewableIndices;\n }\n /**\n * Figures out which items are viewable and how that has changed from before and calls\n * `onViewableItemsChanged` as appropriate.\n */\n\n\n onUpdate(itemCount, scrollOffset, viewportHeight, getFrameMetrics, createViewToken, onViewableItemsChanged, renderRange // Optional optimization to reduce the scan size\n ) {\n if (this._config.waitForInteraction && !this._hasInteracted || itemCount === 0 || !getFrameMetrics(0)) {\n return;\n }\n\n var viewableIndices = [];\n\n if (itemCount) {\n viewableIndices = this.computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange);\n }\n\n if (this._viewableIndices.length === viewableIndices.length && this._viewableIndices.every((v, ii) => v === viewableIndices[ii])) {\n // We might get a lot of scroll events where visibility doesn't change and we don't want to do\n // extra work in those cases.\n return;\n }\n\n this._viewableIndices = viewableIndices;\n\n if (this._config.minimumViewTime) {\n var handle = setTimeout(() => {\n this._timers.delete(handle);\n\n this._onUpdateSync(viewableIndices, onViewableItemsChanged, createViewToken);\n }, this._config.minimumViewTime);\n\n this._timers.add(handle);\n } else {\n this._onUpdateSync(viewableIndices, onViewableItemsChanged, createViewToken);\n }\n }\n /**\n * clean-up cached _viewableIndices to evaluate changed items on next update\n */\n\n\n resetViewableIndices() {\n this._viewableIndices = [];\n }\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n\n\n recordInteraction() {\n this._hasInteracted = true;\n }\n\n _onUpdateSync( // $FlowFixMe\n viewableIndicesToCheck, // $FlowFixMe\n onViewableItemsChanged, // $FlowFixMe\n createViewToken) {\n // Filter out indices that have gone out of view since this call was scheduled.\n viewableIndicesToCheck = viewableIndicesToCheck.filter(ii => this._viewableIndices.includes(ii));\n var prevItems = this._viewableItems;\n var nextItems = new Map(viewableIndicesToCheck.map(ii => {\n var viewable = createViewToken(ii, true);\n return [viewable.key, viewable];\n }));\n var changed = [];\n\n for (var _iterator = _createForOfIteratorHelperLoose(nextItems), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n viewable = _step$value[1];\n\n if (!prevItems.has(key)) {\n changed.push(viewable);\n }\n }\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(prevItems), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n _key = _step2$value[0],\n _viewable = _step2$value[1];\n\n if (!nextItems.has(_key)) {\n changed.push(_objectSpread(_objectSpread({}, _viewable), {}, {\n isViewable: false\n }));\n }\n }\n\n if (changed.length > 0) {\n this._viewableItems = nextItems;\n onViewableItemsChanged({\n viewableItems: Array.from(nextItems.values()),\n changed,\n viewabilityConfig: this._config\n });\n }\n }\n\n}\n\nfunction _isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, itemLength) {\n if (_isEntirelyVisible(top, bottom, viewportHeight)) {\n return true;\n } else {\n var pixels = _getPixelsVisible(top, bottom, viewportHeight);\n\n var percent = 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\n }\n}\n\nfunction _getPixelsVisible(top, bottom, viewportHeight) {\n var visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);\n return Math.max(0, visibleHeight);\n}\n\nfunction _isEntirelyVisible(top, bottom, viewportHeight) {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\n\nexport default ViewabilityHelper;","/**\n * Copyright (c) Meta Platforms, Inc. and 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'use strict';\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\n\nfunction infoLog() {\n return console.log(...arguments);\n}\n\nexport default infoLog;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\nimport * as React from 'react';\nimport { useMemo, useContext } from 'react';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nexport var VirtualizedListContext = /*#__PURE__*/React.createContext(null);\n\nif (__DEV__) {\n VirtualizedListContext.displayName = 'VirtualizedListContext';\n}\n/**\n * Resets the context. Intended for use by portal-like components (e.g. Modal).\n */\n\n\nexport function VirtualizedListContextResetter(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: null\n }, children);\n}\n/**\n * Sets the context with memoization. Intended to be used by `VirtualizedList`.\n */\n\nexport function VirtualizedListContextProvider(_ref2) {\n var children = _ref2.children,\n value = _ref2.value;\n // Avoid setting a newly created context object if the values are identical.\n var context = useMemo(() => ({\n cellKey: null,\n getScrollMetrics: value.getScrollMetrics,\n horizontal: value.horizontal,\n getOutermostParentListRef: value.getOutermostParentListRef,\n getNestedChildState: value.getNestedChildState,\n registerAsNestedChild: value.registerAsNestedChild,\n unregisterAsNestedChild: value.unregisterAsNestedChild,\n debugInfo: {\n cellKey: value.debugInfo.cellKey,\n horizontal: value.debugInfo.horizontal,\n listKey: value.debugInfo.listKey,\n parent: value.debugInfo.parent\n }\n }), [value.getScrollMetrics, value.horizontal, value.getOutermostParentListRef, value.getNestedChildState, value.registerAsNestedChild, value.unregisterAsNestedChild, value.debugInfo.cellKey, value.debugInfo.horizontal, value.debugInfo.listKey, value.debugInfo.parent]);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context\n }, children);\n}\n/**\n * Sets the `cellKey`. Intended to be used by `VirtualizedList` for each cell.\n */\n\nexport function VirtualizedListCellContextProvider(_ref3) {\n var cellKey = _ref3.cellKey,\n children = _ref3.children;\n var context = useContext(VirtualizedListContext);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context == null ? null : _objectSpread(_objectSpread({}, context), {}, {\n cellKey\n })\n }, children);\n}","import _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\nimport Batchinator from '../Batchinator';\nimport FillRateHelper from '../FillRateHelper';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nimport RefreshControl from '../../../exports/RefreshControl';\nimport ScrollView from '../../../exports/ScrollView';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport View from '../../../exports/View';\nimport ViewabilityHelper from '../ViewabilityHelper';\nvar flattenStyle = StyleSheet.flatten;\nimport infoLog from '../infoLog';\nimport invariant from 'fbjs/lib/invariant';\nimport { keyExtractor as defaultKeyExtractor, computeWindowedRenderLimits } from '../VirtualizeUtils';\nimport * as React from 'react';\nimport { VirtualizedListCellContextProvider, VirtualizedListContext, VirtualizedListContextProvider } from './VirtualizedListContext.js';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar _usedIndexForKey = false;\nvar _keylessItemComponentName = '';\n\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n// horizontalOrDefault(this.props.horizontal)\nfunction horizontalOrDefault(horizontal) {\n return horizontal !== null && horizontal !== void 0 ? horizontal : false;\n} // initialNumToRenderOrDefault(this.props.initialNumToRenderOrDefault)\n\n\nfunction initialNumToRenderOrDefault(initialNumToRender) {\n return initialNumToRender !== null && initialNumToRender !== void 0 ? initialNumToRender : 10;\n} // maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch)\n\n\nfunction maxToRenderPerBatchOrDefault(maxToRenderPerBatch) {\n return maxToRenderPerBatch !== null && maxToRenderPerBatch !== void 0 ? maxToRenderPerBatch : 10;\n} // onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold)\n\n\nfunction onEndReachedThresholdOrDefault(onEndReachedThreshold) {\n return onEndReachedThreshold !== null && onEndReachedThreshold !== void 0 ? onEndReachedThreshold : 2;\n} // scrollEventThrottleOrDefault(this.props.scrollEventThrottle)\n\n\nfunction scrollEventThrottleOrDefault(scrollEventThrottle) {\n return scrollEventThrottle !== null && scrollEventThrottle !== void 0 ? scrollEventThrottle : 50;\n} // windowSizeOrDefault(this.props.windowSize)\n\n\nfunction windowSizeOrDefault(windowSize) {\n return windowSize !== null && windowSize !== void 0 ? windowSize : 21;\n}\n/**\n * Base implementation for the more convenient [``](https://reactnative.dev/docs/flatlist)\n * and [``](https://reactnative.dev/docs/sectionlist) components, which are also better\n * documented. In general, this should only really be used if you need more flexibility than\n * `FlatList` provides, e.g. for use with immutable data instead of plain arrays.\n *\n * Virtualization massively improves memory consumption and performance of large lists by\n * maintaining a finite render window of active items and replacing all items outside of the render\n * window with appropriately sized blank space. The window adapts to scrolling behavior, and items\n * are rendered incrementally with low-pri (after any running interactions) if they are far from the\n * visible area, or with hi-pri otherwise to minimize the potential of seeing blank space.\n *\n * Some caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` or `id` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n * - As an effort to remove defaultProps, use helper functions when referencing certain props\n *\n */\n\n\nclass VirtualizedList extends React.PureComponent {\n // scrollToEnd may be janky without getItemLayout prop\n scrollToEnd(params) {\n var animated = params ? params.animated : true;\n var veryLast = this.props.getItemCount(this.props.data) - 1;\n\n var frame = this._getFrameMetricsApprox(veryLast);\n\n var offset = Math.max(0, frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength);\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n } // scrollToIndex may be janky without getItemLayout prop\n\n\n scrollToIndex(params) {\n var _this$props = this.props,\n data = _this$props.data,\n horizontal = _this$props.horizontal,\n getItemCount = _this$props.getItemCount,\n getItemLayout = _this$props.getItemLayout,\n onScrollToIndexFailed = _this$props.onScrollToIndexFailed;\n var animated = params.animated,\n index = params.index,\n viewOffset = params.viewOffset,\n viewPosition = params.viewPosition;\n invariant(index >= 0, \"scrollToIndex out of range: requested index \" + index + \" but minimum is 0\");\n invariant(getItemCount(data) >= 1, \"scrollToIndex out of range: item length \" + getItemCount(data) + \" but minimum is 1\");\n invariant(index < getItemCount(data), \"scrollToIndex out of range: requested index \" + index + \" is out of 0 to \" + (getItemCount(data) - 1));\n\n if (!getItemLayout && index > this._highestMeasuredFrameIndex) {\n invariant(!!onScrollToIndexFailed, 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' + 'otherwise there is no way to know the location of offscreen indices or handle failures.');\n onScrollToIndexFailed({\n averageItemLength: this._averageCellLength,\n highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,\n index\n });\n return;\n }\n\n var frame = this._getFrameMetricsApprox(index);\n\n var offset = Math.max(0, frame.offset - (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)) - (viewOffset || 0);\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(horizontal ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n } // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\n\n\n scrollToItem(params) {\n var item = params.item;\n var _this$props2 = this.props,\n data = _this$props2.data,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount;\n var itemCount = getItemCount(data);\n\n for (var _index = 0; _index < itemCount; _index++) {\n if (getItem(data, _index) === item) {\n this.scrollToIndex(_objectSpread(_objectSpread({}, params), {}, {\n index: _index\n }));\n break;\n }\n }\n }\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Param `offset` expects the offset to scroll to.\n * In case of `horizontal` is true, the offset is the x-value,\n * in any other case the offset is the y-value.\n *\n * Param `animated` (`true` by default) defines whether the list\n * should do an animation while scrolling.\n */\n\n\n scrollToOffset(params) {\n var animated = params.animated,\n offset = params.offset;\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n\n recordInteraction() {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref.recordInteraction();\n });\n\n this._viewabilityTuples.forEach(t => {\n t.viewabilityHelper.recordInteraction();\n });\n\n this._updateViewableItems(this.props.data);\n }\n\n flashScrollIndicators() {\n if (this._scrollRef == null) {\n return;\n }\n\n this._scrollRef.flashScrollIndicators();\n }\n /**\n * Provides a handle to the underlying scroll responder.\n * Note that `this._scrollRef` might not be a `ScrollView`, so we\n * need to check that it responds to `getScrollResponder` before calling it.\n */\n\n\n getScrollResponder() {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n }\n\n getScrollableNode() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return findNodeHandle(this._scrollRef);\n }\n }\n\n getScrollRef() {\n if (this._scrollRef && this._scrollRef.getScrollRef) {\n return this._scrollRef.getScrollRef();\n } else {\n return this._scrollRef;\n }\n }\n\n setNativeProps(props) {\n if (this._scrollRef) {\n this._scrollRef.setNativeProps(props);\n }\n }\n\n _getCellKey() {\n var _this$context;\n\n return ((_this$context = this.context) == null ? void 0 : _this$context.cellKey) || 'rootList';\n }\n\n _getListKey() {\n return this.props.listKey || this._getCellKey();\n }\n\n _getDebugInfo() {\n var _this$context2;\n\n return {\n listKey: this._getListKey(),\n cellKey: this._getCellKey(),\n horizontal: horizontalOrDefault(this.props.horizontal),\n parent: (_this$context2 = this.context) == null ? void 0 : _this$context2.debugInfo\n };\n }\n\n hasMore() {\n return this._hasMore;\n }\n\n constructor(_props) {\n var _this$props$updateCel;\n\n super(_props);\n\n this._getScrollMetrics = () => {\n return this._scrollMetrics;\n };\n\n this._getOutermostParentListRef = () => {\n if (this._isNestedWithSameOrientation()) {\n return this.context.getOutermostParentListRef();\n } else {\n return this;\n }\n };\n\n this._getNestedChildState = key => {\n var existingChildData = this._nestedChildLists.get(key);\n\n return existingChildData && existingChildData.state;\n };\n\n this._registerAsNestedChild = childList => {\n // Register the mapping between this child key and the cellKey for its cell\n var childListsInCell = this._cellKeysToChildListKeys.get(childList.cellKey) || new Set();\n childListsInCell.add(childList.key);\n\n this._cellKeysToChildListKeys.set(childList.cellKey, childListsInCell);\n\n var existingChildData = this._nestedChildLists.get(childList.key);\n\n if (existingChildData && existingChildData.ref !== null) {\n console.error('A VirtualizedList contains a cell which itself contains ' + 'more than one VirtualizedList of the same orientation as the parent ' + 'list. You must pass a unique listKey prop to each sibling list.\\n\\n' + describeNestedLists(_objectSpread(_objectSpread({}, childList), {}, {\n // We're called from the child's componentDidMount, so it's safe to\n // read the child's props here (albeit weird).\n horizontal: !!childList.ref.props.horizontal\n })));\n }\n\n this._nestedChildLists.set(childList.key, {\n ref: childList.ref,\n state: null\n });\n\n if (this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n\n this._unregisterAsNestedChild = childList => {\n this._nestedChildLists.set(childList.key, {\n ref: null,\n state: childList.state\n });\n };\n\n this._onUpdateSeparators = (keys, newProps) => {\n keys.forEach(key => {\n var ref = key != null && this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n\n this._getSpacerKey = isVertical => isVertical ? 'height' : 'width';\n\n this._averageCellLength = 0;\n this._cellKeysToChildListKeys = new Map();\n this._cellRefs = {};\n this._frames = {};\n this._footerLength = 0;\n this._hasDoneInitialScroll = false;\n this._hasInteracted = false;\n this._hasMore = false;\n this._hasWarned = {};\n this._headerLength = 0;\n this._hiPriInProgress = false;\n this._highestMeasuredFrameIndex = 0;\n this._indicesToKeys = new Map();\n this._nestedChildLists = new Map();\n this._offsetFromParentVirtualizedList = 0;\n this._prevParentOffset = 0;\n this._scrollMetrics = {\n contentLength: 0,\n dOffset: 0,\n dt: 10,\n offset: 0,\n timestamp: 0,\n velocity: 0,\n visibleLength: 0\n };\n this._scrollRef = null;\n this._sentEndForContentLength = 0;\n this._totalCellLength = 0;\n this._totalCellsMeasured = 0;\n this._viewabilityTuples = [];\n\n this._captureScrollRef = ref => {\n this._scrollRef = ref;\n };\n\n this._defaultRenderScrollComponent = props => {\n var onRefresh = props.onRefresh;\n\n if (this._isNestedWithSameOrientation()) {\n // $FlowFixMe[prop-missing] - Typing ReactNativeComponent revealed errors\n return /*#__PURE__*/React.createElement(View, props);\n } else if (onRefresh) {\n var _props$refreshing;\n\n invariant(typeof props.refreshing === 'boolean', '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' + JSON.stringify((_props$refreshing = props.refreshing) !== null && _props$refreshing !== void 0 ? _props$refreshing : 'undefined') + '`');\n return (\n /*#__PURE__*/\n // $FlowFixMe[prop-missing] Invalid prop usage\n React.createElement(ScrollView, _extends({}, props, {\n refreshControl: props.refreshControl == null ? /*#__PURE__*/React.createElement(RefreshControl, {\n refreshing: props.refreshing,\n onRefresh: onRefresh,\n progressViewOffset: props.progressViewOffset\n }) : props.refreshControl\n }))\n );\n } else {\n // $FlowFixMe[prop-missing] Invalid prop usage\n return /*#__PURE__*/React.createElement(ScrollView, props);\n }\n };\n\n this._onCellUnmount = cellKey => {\n var curr = this._frames[cellKey];\n\n if (curr) {\n this._frames[cellKey] = _objectSpread(_objectSpread({}, curr), {}, {\n inLayout: false\n });\n }\n };\n\n this._onLayout = e => {\n if (this._isNestedWithSameOrientation()) {\n // Need to adjust our scroll metrics to be relative to our containing\n // VirtualizedList before we can make claims about list item viewability\n this.measureLayoutRelativeToContainingList();\n } else {\n this._scrollMetrics.visibleLength = this._selectLength(e.nativeEvent.layout);\n }\n\n this.props.onLayout && this.props.onLayout(e);\n\n this._scheduleCellsToRenderUpdate();\n\n this._maybeCallOnEndReached();\n };\n\n this._onLayoutEmpty = e => {\n this.props.onLayout && this.props.onLayout(e);\n };\n\n this._onLayoutFooter = e => {\n this._triggerRemeasureForChildListsInCell(this._getFooterCellKey());\n\n this._footerLength = this._selectLength(e.nativeEvent.layout);\n };\n\n this._onLayoutHeader = e => {\n this._headerLength = this._selectLength(e.nativeEvent.layout);\n };\n\n this._onContentSizeChange = (width, height) => {\n if (width > 0 && height > 0 && this.props.initialScrollIndex != null && this.props.initialScrollIndex > 0 && !this._hasDoneInitialScroll) {\n if (this.props.contentOffset == null) {\n this.scrollToIndex({\n animated: false,\n index: this.props.initialScrollIndex\n });\n }\n\n this._hasDoneInitialScroll = true;\n }\n\n if (this.props.onContentSizeChange) {\n this.props.onContentSizeChange(width, height);\n }\n\n this._scrollMetrics.contentLength = this._selectLength({\n height,\n width\n });\n\n this._scheduleCellsToRenderUpdate();\n\n this._maybeCallOnEndReached();\n };\n\n this._convertParentScrollMetrics = metrics => {\n // Offset of the top of the nested list relative to the top of its parent's viewport\n var offset = metrics.offset - this._offsetFromParentVirtualizedList; // Child's visible length is the same as its parent's\n\n var visibleLength = metrics.visibleLength;\n var dOffset = offset - this._scrollMetrics.offset;\n var contentLength = this._scrollMetrics.contentLength;\n return {\n visibleLength,\n contentLength,\n offset,\n dOffset\n };\n };\n\n this._onScroll = e => {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref._onScroll(e);\n });\n\n if (this.props.onScroll) {\n this.props.onScroll(e);\n }\n\n var timestamp = e.timeStamp;\n\n var visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement);\n\n var contentLength = this._selectLength(e.nativeEvent.contentSize);\n\n var offset = this._selectOffset(e.nativeEvent.contentOffset);\n\n var dOffset = offset - this._scrollMetrics.offset;\n\n if (this._isNestedWithSameOrientation()) {\n if (this._scrollMetrics.contentLength === 0) {\n // Ignore scroll events until onLayout has been called and we\n // know our offset from our offset from our parent\n return;\n }\n\n var _this$_convertParentS = this._convertParentScrollMetrics({\n visibleLength,\n offset\n });\n\n visibleLength = _this$_convertParentS.visibleLength;\n contentLength = _this$_convertParentS.contentLength;\n offset = _this$_convertParentS.offset;\n dOffset = _this$_convertParentS.dOffset;\n }\n\n var dt = this._scrollMetrics.timestamp ? Math.max(1, timestamp - this._scrollMetrics.timestamp) : 1;\n var velocity = dOffset / dt;\n\n if (dt > 500 && this._scrollMetrics.dt > 500 && contentLength > 5 * visibleLength && !this._hasWarned.perf) {\n infoLog('VirtualizedList: You have a large list that is slow to update - make sure your ' + 'renderItem function renders components that follow React performance best practices ' + 'like PureComponent, shouldComponentUpdate, etc.', {\n dt,\n prevDt: this._scrollMetrics.dt,\n contentLength\n });\n this._hasWarned.perf = true;\n }\n\n this._scrollMetrics = {\n contentLength,\n dt,\n dOffset,\n offset,\n timestamp,\n velocity,\n visibleLength\n };\n\n this._updateViewableItems(this.props.data);\n\n if (!this.props) {\n return;\n }\n\n this._maybeCallOnEndReached();\n\n if (velocity !== 0) {\n this._fillRateHelper.activate();\n }\n\n this._computeBlankness();\n\n this._scheduleCellsToRenderUpdate();\n };\n\n this._onScrollBeginDrag = e => {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref._onScrollBeginDrag(e);\n });\n\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.recordInteraction();\n });\n\n this._hasInteracted = true;\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n\n this._onScrollEndDrag = e => {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref._onScrollEndDrag(e);\n });\n\n var velocity = e.nativeEvent.velocity;\n\n if (velocity) {\n this._scrollMetrics.velocity = this._selectOffset(velocity);\n }\n\n this._computeBlankness();\n\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n\n this._onMomentumScrollBegin = e => {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref._onMomentumScrollBegin(e);\n });\n\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n\n this._onMomentumScrollEnd = e => {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref._onMomentumScrollEnd(e);\n });\n\n this._scrollMetrics.velocity = 0;\n\n this._computeBlankness();\n\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n\n this._updateCellsToRender = () => {\n var _this$props3 = this.props,\n data = _this$props3.data,\n getItemCount = _this$props3.getItemCount,\n _onEndReachedThreshold = _this$props3.onEndReachedThreshold;\n var onEndReachedThreshold = onEndReachedThresholdOrDefault(_onEndReachedThreshold);\n\n var isVirtualizationDisabled = this._isVirtualizationDisabled();\n\n this._updateViewableItems(data);\n\n if (!data) {\n return;\n }\n\n this.setState(state => {\n var newState;\n var _this$_scrollMetrics = this._scrollMetrics,\n contentLength = _this$_scrollMetrics.contentLength,\n offset = _this$_scrollMetrics.offset,\n visibleLength = _this$_scrollMetrics.visibleLength;\n\n if (!isVirtualizationDisabled) {\n // If we run this with bogus data, we'll force-render window {first: 0, last: 0},\n // and wipe out the initialNumToRender rendered elements.\n // So let's wait until the scroll view metrics have been set up. And until then,\n // we will trust the initialNumToRender suggestion\n if (visibleLength > 0 && contentLength > 0) {\n // If we have a non-zero initialScrollIndex and run this before we've scrolled,\n // we'll wipe out the initialNumToRender rendered elements starting at initialScrollIndex.\n // So let's wait until we've scrolled the view to the right place. And until then,\n // we will trust the initialScrollIndex suggestion.\n if (!this.props.initialScrollIndex || this._scrollMetrics.offset) {\n newState = computeWindowedRenderLimits(this.props.data, this.props.getItemCount, maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch), windowSizeOrDefault(this.props.windowSize), state, this._getFrameMetricsApprox, this._scrollMetrics);\n }\n }\n } else {\n var distanceFromEnd = contentLength - visibleLength - offset;\n var renderAhead = distanceFromEnd < onEndReachedThreshold * visibleLength ? maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch) : 0;\n newState = {\n first: 0,\n last: Math.min(state.last + renderAhead, getItemCount(data) - 1)\n };\n }\n\n if (newState && this._nestedChildLists.size > 0) {\n var newFirst = newState.first;\n var newLast = newState.last; // If some cell in the new state has a child list in it, we should only render\n // up through that item, so that we give that list a chance to render.\n // Otherwise there's churn from multiple child lists mounting and un-mounting\n // their items.\n\n for (var ii = newFirst; ii <= newLast; ii++) {\n var cellKeyForIndex = this._indicesToKeys.get(ii);\n\n var childListKeys = cellKeyForIndex && this._cellKeysToChildListKeys.get(cellKeyForIndex);\n\n if (!childListKeys) {\n continue;\n }\n\n var someChildHasMore = false; // For each cell, need to check whether any child list in it has more elements to render\n\n for (var _iterator = _createForOfIteratorHelperLoose(childListKeys), _step; !(_step = _iterator()).done;) {\n var childKey = _step.value;\n\n var childList = this._nestedChildLists.get(childKey);\n\n if (childList && childList.ref && childList.ref.hasMore()) {\n someChildHasMore = true;\n break;\n }\n }\n\n if (someChildHasMore) {\n // $FlowFixMe[incompatible-use] The newState definitely exists past \"if (newState &&\"\n newState.last = ii;\n break;\n }\n }\n }\n\n if (newState != null && newState.first === state.first && newState.last === state.last) {\n newState = null;\n }\n\n return newState;\n });\n };\n\n this._createViewToken = (index, isViewable) => {\n var _this$props4 = this.props,\n data = _this$props4.data,\n getItem = _this$props4.getItem;\n var item = getItem(data, index);\n return {\n index,\n item,\n key: this._keyExtractor(item, index),\n isViewable\n };\n };\n\n this._getFrameMetricsApprox = index => {\n var frame = this._getFrameMetrics(index);\n\n if (frame && frame.index === index) {\n // check for invalid frames due to row re-ordering\n return frame;\n } else {\n var getItemLayout = this.props.getItemLayout;\n invariant(!getItemLayout, 'Should not have to estimate frames when a measurement metrics function is provided');\n return {\n length: this._averageCellLength,\n offset: this._averageCellLength * index\n };\n }\n };\n\n this._getFrameMetrics = index => {\n var _this$props5 = this.props,\n data = _this$props5.data,\n getItem = _this$props5.getItem,\n getItemCount = _this$props5.getItemCount,\n getItemLayout = _this$props5.getItemLayout;\n invariant(getItemCount(data) > index, 'Tried to get frame for out of range index ' + index);\n var item = getItem(data, index);\n\n var frame = item && this._frames[this._keyExtractor(item, index)];\n\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n frame = getItemLayout(data, index);\n }\n }\n /* $FlowFixMe[prop-missing] (>=0.63.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.63 was deployed. To see the error\n * delete this comment and run Flow. */\n\n\n return frame;\n };\n\n invariant( // $FlowFixMe[prop-missing]\n !_props.onScroll || !_props.onScroll.__isNative, 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' + 'to support native onScroll events with useNativeDriver');\n invariant(windowSizeOrDefault(_props.windowSize) > 0, 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.');\n this._fillRateHelper = new FillRateHelper(this._getFrameMetrics);\n this._updateCellsToRenderBatcher = new Batchinator(this._updateCellsToRender, (_this$props$updateCel = this.props.updateCellsBatchingPeriod) !== null && _this$props$updateCel !== void 0 ? _this$props$updateCel : 50);\n\n if (this.props.viewabilityConfigCallbackPairs) {\n this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged\n }));\n } else if (this.props.onViewableItemsChanged) {\n this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(this.props.viewabilityConfig),\n // $FlowFixMe[incompatible-call]\n onViewableItemsChanged: this.props.onViewableItemsChanged\n });\n }\n\n var initialState = {\n first: this.props.initialScrollIndex || 0,\n last: Math.min(this.props.getItemCount(this.props.data), (this.props.initialScrollIndex || 0) + initialNumToRenderOrDefault(this.props.initialNumToRender)) - 1\n };\n\n if (this._isNestedWithSameOrientation()) {\n var storedState = this.context.getNestedChildState(this._getListKey());\n\n if (storedState) {\n initialState = storedState;\n this.state = storedState;\n this._frames = storedState.frames;\n }\n } // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n // For issue https://github.com/necolas/react-native-web/issues/995\n\n\n this.invertedWheelEventHandler = ev => {\n if (this.props.inverted && this._scrollRef && this._scrollRef.getScrollableNode) {\n var node = this._scrollRef.getScrollableNode();\n\n if (this.props.horizontal) {\n node.scrollLeft -= ev.deltaX || ev.wheelDeltaX;\n } else {\n node.scrollTop -= ev.deltaY || ev.wheelDeltaY;\n }\n\n ev.preventDefault();\n }\n };\n\n this.state = initialState;\n }\n\n componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.registerAsNestedChild({\n cellKey: this._getCellKey(),\n key: this._getListKey(),\n ref: this,\n // NOTE: When the child mounts (here) it's not necessarily safe to read\n // the parent's props. This is why we explicitly propagate debugInfo\n // \"down\" via context and \"up\" again via this method call on the\n // parent.\n parentDebugInfo: this.context.debugInfo\n });\n } // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n\n this.setupWebWheelHandler();\n }\n\n componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.unregisterAsNestedChild({\n key: this._getListKey(),\n state: {\n first: this.state.first,\n last: this.state.last,\n frames: this._frames\n }\n });\n }\n\n this._updateViewableItems(null);\n\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.dispose();\n });\n\n this._fillRateHelper.deactivateAndFlush(); // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n\n this.teardownWebWheelHandler();\n } // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n\n setupWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().addEventListener('wheel', this.invertedWheelEventHandler);\n } else {\n setTimeout(() => this.setupWebWheelHandler(), 50);\n return;\n }\n } // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n\n teardownWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().removeEventListener('wheel', this.invertedWheelEventHandler);\n }\n }\n\n static getDerivedStateFromProps(newProps, prevState) {\n var data = newProps.data,\n getItemCount = newProps.getItemCount;\n var maxToRenderPerBatch = maxToRenderPerBatchOrDefault(newProps.maxToRenderPerBatch); // first and last could be stale (e.g. if a new, shorter items props is passed in), so we make\n // sure we're rendering a reasonable range here.\n\n return {\n first: Math.max(0, Math.min(prevState.first, getItemCount(data) - 1 - maxToRenderPerBatch)),\n last: Math.max(0, Math.min(prevState.last, getItemCount(data) - 1))\n };\n }\n\n _pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, first, last, inversionStyle) {\n var _this = this;\n\n var _this$props6 = this.props,\n CellRendererComponent = _this$props6.CellRendererComponent,\n ItemSeparatorComponent = _this$props6.ItemSeparatorComponent,\n data = _this$props6.data,\n getItem = _this$props6.getItem,\n getItemCount = _this$props6.getItemCount,\n horizontal = _this$props6.horizontal;\n var stickyOffset = this.props.ListHeaderComponent ? 1 : 0;\n var end = getItemCount(data) - 1;\n var prevCellKey;\n last = Math.min(end, last);\n\n var _loop = function _loop(ii) {\n var item = getItem(data, ii);\n\n var key = _this._keyExtractor(item, ii);\n\n _this._indicesToKeys.set(ii, key);\n\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n stickyHeaderIndices.push(cells.length);\n }\n\n cells.push( /*#__PURE__*/React.createElement(CellRenderer, {\n CellRendererComponent: CellRendererComponent,\n ItemSeparatorComponent: ii < end ? ItemSeparatorComponent : undefined,\n cellKey: key,\n fillRateHelper: _this._fillRateHelper,\n horizontal: horizontal,\n index: ii,\n inversionStyle: inversionStyle,\n item: item,\n key: key,\n prevCellKey: prevCellKey,\n onUpdateSeparators: _this._onUpdateSeparators,\n onLayout: e => _this._onCellLayout(e, key, ii),\n onUnmount: _this._onCellUnmount,\n parentProps: _this.props,\n ref: _ref => {\n _this._cellRefs[key] = _ref;\n }\n }));\n prevCellKey = key;\n };\n\n for (var ii = first; ii <= last; ii++) {\n _loop(ii);\n }\n }\n\n _isVirtualizationDisabled() {\n return this.props.disableVirtualization || false;\n }\n\n _isNestedWithSameOrientation() {\n var nestedContext = this.context;\n return !!(nestedContext && !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal));\n }\n\n _keyExtractor(item, index) {\n if (this.props.keyExtractor != null) {\n return this.props.keyExtractor(item, index);\n }\n\n var key = defaultKeyExtractor(item, index);\n\n if (key === String(index)) {\n _usedIndexForKey = true;\n\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n }\n\n return key;\n }\n\n render() {\n if (__DEV__) {\n var flatStyles = flattenStyle(this.props.contentContainerStyle);\n\n if (flatStyles != null && flatStyles.flexWrap === 'wrap') {\n console.warn('`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' + 'Consider using `numColumns` with `FlatList` instead.');\n }\n }\n\n var _this$props7 = this.props,\n ListEmptyComponent = _this$props7.ListEmptyComponent,\n ListFooterComponent = _this$props7.ListFooterComponent,\n ListHeaderComponent = _this$props7.ListHeaderComponent;\n var _this$props8 = this.props,\n data = _this$props8.data,\n horizontal = _this$props8.horizontal;\n\n var isVirtualizationDisabled = this._isVirtualizationDisabled();\n\n var inversionStyle = this.props.inverted ? horizontalOrDefault(this.props.horizontal) ? styles.horizontallyInverted : styles.verticallyInverted : null;\n var cells = [];\n var stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n var stickyHeaderIndices = [];\n\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\n }\n\n var element = /*#__PURE__*/React.isValidElement(ListHeaderComponent) ? ListHeaderComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListHeaderComponent, null);\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getCellKey() + '-header',\n key: \"$header\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutHeader,\n style: StyleSheet.compose(inversionStyle, this.props.ListHeaderComponentStyle)\n }, // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n element)));\n }\n\n var itemCount = this.props.getItemCount(data);\n\n if (itemCount > 0) {\n _usedIndexForKey = false;\n _keylessItemComponentName = '';\n\n var spacerKey = this._getSpacerKey(!horizontal);\n\n var lastInitialIndex = this.props.initialScrollIndex ? -1 : initialNumToRenderOrDefault(this.props.initialNumToRender) - 1;\n var _this$state = this.state,\n first = _this$state.first,\n last = _this$state.last;\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, 0, lastInitialIndex, inversionStyle);\n\n var firstAfterInitial = Math.max(lastInitialIndex + 1, first);\n\n if (!isVirtualizationDisabled && first > lastInitialIndex + 1) {\n var insertedStickySpacer = false;\n\n if (stickyIndicesFromProps.size > 0) {\n var stickyOffset = ListHeaderComponent ? 1 : 0; // See if there are any sticky headers in the virtualized space that we need to render.\n\n for (var ii = firstAfterInitial - 1; ii > lastInitialIndex; ii--) {\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n var initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var stickyBlock = this._getFrameMetricsApprox(ii);\n\n var leadSpace = stickyBlock.offset - initBlock.offset - (this.props.initialScrollIndex ? 0 : initBlock.length);\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$sticky_lead\",\n style: {\n [spacerKey]: leadSpace\n }\n }));\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, ii, ii, inversionStyle);\n\n var trailSpace = this._getFrameMetricsApprox(first).offset - (stickyBlock.offset + stickyBlock.length);\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$sticky_trail\",\n style: {\n [spacerKey]: trailSpace\n }\n }));\n insertedStickySpacer = true;\n break;\n }\n }\n }\n\n if (!insertedStickySpacer) {\n var _initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var firstSpace = this._getFrameMetricsApprox(first).offset - (_initBlock.offset + _initBlock.length);\n\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$lead_spacer\",\n style: {\n [spacerKey]: firstSpace\n }\n }));\n }\n }\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, firstAfterInitial, last, inversionStyle);\n\n if (!this._hasWarned.keys && _usedIndexForKey) {\n console.warn('VirtualizedList: missing keys for items, make sure to specify a key or id property on each ' + 'item or provide a custom keyExtractor.', _keylessItemComponentName);\n this._hasWarned.keys = true;\n }\n\n if (!isVirtualizationDisabled && last < itemCount - 1) {\n var lastFrame = this._getFrameMetricsApprox(last); // Without getItemLayout, we limit our tail spacer to the _highestMeasuredFrameIndex to\n // prevent the user for hyperscrolling into un-measured area because otherwise content will\n // likely jump around as it renders in above the viewport.\n\n\n var end = this.props.getItemLayout ? itemCount - 1 : Math.min(itemCount - 1, this._highestMeasuredFrameIndex);\n\n var endFrame = this._getFrameMetricsApprox(end);\n\n var tailSpacerLength = endFrame.offset + endFrame.length - (lastFrame.offset + lastFrame.length);\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$tail_spacer\",\n style: {\n [spacerKey]: tailSpacerLength\n }\n }));\n }\n } else if (ListEmptyComponent) {\n var _element = /*#__PURE__*/React.isValidElement(ListEmptyComponent) ? ListEmptyComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListEmptyComponent, null);\n\n cells.push( /*#__PURE__*/React.cloneElement(_element, {\n key: '$empty',\n onLayout: event => {\n this._onLayoutEmpty(event);\n\n if (_element.props.onLayout) {\n _element.props.onLayout(event);\n }\n },\n style: StyleSheet.compose(inversionStyle, _element.props.style)\n }));\n }\n\n if (ListFooterComponent) {\n var _element2 = /*#__PURE__*/React.isValidElement(ListFooterComponent) ? ListFooterComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListFooterComponent, null);\n\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getFooterCellKey(),\n key: \"$footer\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutFooter,\n style: StyleSheet.compose(inversionStyle, this.props.ListFooterComponentStyle)\n }, // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n _element2)));\n }\n\n var scrollProps = _objectSpread(_objectSpread({}, this.props), {}, {\n onContentSizeChange: this._onContentSizeChange,\n onLayout: this._onLayout,\n onScroll: this._onScroll,\n onScrollBeginDrag: this._onScrollBeginDrag,\n onScrollEndDrag: this._onScrollEndDrag,\n onMomentumScrollBegin: this._onMomentumScrollBegin,\n onMomentumScrollEnd: this._onMomentumScrollEnd,\n scrollEventThrottle: scrollEventThrottleOrDefault(this.props.scrollEventThrottle),\n // TODO: Android support\n invertStickyHeaders: this.props.invertStickyHeaders !== undefined ? this.props.invertStickyHeaders : this.props.inverted,\n stickyHeaderIndices,\n style: inversionStyle ? [inversionStyle, this.props.style] : this.props.style\n });\n\n this._hasMore = this.state.last < this.props.getItemCount(this.props.data) - 1;\n var innerRet = /*#__PURE__*/React.createElement(VirtualizedListContextProvider, {\n value: {\n cellKey: null,\n getScrollMetrics: this._getScrollMetrics,\n horizontal: horizontalOrDefault(this.props.horizontal),\n getOutermostParentListRef: this._getOutermostParentListRef,\n getNestedChildState: this._getNestedChildState,\n registerAsNestedChild: this._registerAsNestedChild,\n unregisterAsNestedChild: this._unregisterAsNestedChild,\n debugInfo: this._getDebugInfo()\n }\n }, /*#__PURE__*/React.cloneElement((this.props.renderScrollComponent || this._defaultRenderScrollComponent)(scrollProps), {\n ref: this._captureScrollRef\n }, cells));\n var ret = innerRet;\n /* https://github.com/necolas/react-native-web/issues/2239: Re-enable when ScrollView.Context.Consumer is available.\n if (__DEV__) {\n ret = (\n \n {scrollContext => {\n if (\n scrollContext != null &&\n !scrollContext.horizontal ===\n !horizontalOrDefault(this.props.horizontal) &&\n !this._hasWarned.nesting &&\n this.context == null\n ) {\n // TODO (T46547044): use React.warn once 16.9 is sync'd: https://github.com/facebook/react/pull/15170\n console.error(\n 'VirtualizedLists should never be nested inside plain ScrollViews with the same ' +\n 'orientation because it can break windowing and other functionality - use another ' +\n 'VirtualizedList-backed container instead.',\n );\n this._hasWarned.nesting = true;\n }\n return innerRet;\n }}\n \n );\n }*/\n\n if (this.props.debug) {\n return /*#__PURE__*/React.createElement(View, {\n style: styles.debug\n }, ret, this._renderDebugOverlay());\n } else {\n return ret;\n }\n }\n\n componentDidUpdate(prevProps) {\n var _this$props9 = this.props,\n data = _this$props9.data,\n extraData = _this$props9.extraData;\n\n if (data !== prevProps.data || extraData !== prevProps.extraData) {\n // clear the viewableIndices cache to also trigger\n // the onViewableItemsChanged callback with the new data\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.resetViewableIndices();\n });\n } // The `this._hiPriInProgress` is guaranteeing a hiPri cell update will only happen\n // once per fiber update. The `_scheduleCellsToRenderUpdate` will set it to true\n // if a hiPri update needs to perform. If `componentDidUpdate` is triggered with\n // `this._hiPriInProgress=true`, means it's triggered by the hiPri update. The\n // `_scheduleCellsToRenderUpdate` will check this condition and not perform\n // another hiPri update.\n\n\n var hiPriInProgress = this._hiPriInProgress;\n\n this._scheduleCellsToRenderUpdate(); // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`\n // is triggered with `this._hiPriInProgress = true`\n\n\n if (hiPriInProgress) {\n this._hiPriInProgress = false;\n }\n }\n\n _computeBlankness() {\n this._fillRateHelper.computeBlankness(this.props, this.state, this._scrollMetrics);\n }\n\n _onCellLayout(e, cellKey, index) {\n var layout = e.nativeEvent.layout;\n var next = {\n offset: this._selectOffset(layout),\n length: this._selectLength(layout),\n index,\n inLayout: true\n };\n var curr = this._frames[cellKey];\n\n if (!curr || next.offset !== curr.offset || next.length !== curr.length || index !== curr.index) {\n this._totalCellLength += next.length - (curr ? curr.length : 0);\n this._totalCellsMeasured += curr ? 0 : 1;\n this._averageCellLength = this._totalCellLength / this._totalCellsMeasured;\n this._frames[cellKey] = next;\n this._highestMeasuredFrameIndex = Math.max(this._highestMeasuredFrameIndex, index);\n\n this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n\n this._triggerRemeasureForChildListsInCell(cellKey);\n\n this._computeBlankness();\n\n this._updateViewableItems(this.props.data);\n }\n\n _triggerRemeasureForChildListsInCell(cellKey) {\n var childListKeys = this._cellKeysToChildListKeys.get(cellKey);\n\n if (childListKeys) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(childListKeys), _step2; !(_step2 = _iterator2()).done;) {\n var childKey = _step2.value;\n\n var childList = this._nestedChildLists.get(childKey);\n\n childList && childList.ref && childList.ref.measureLayoutRelativeToContainingList();\n }\n }\n }\n\n measureLayoutRelativeToContainingList() {\n // TODO (T35574538): findNodeHandle sometimes crashes with \"Unable to find\n // node on an unmounted component\" during scrolling\n try {\n if (!this._scrollRef) {\n return;\n } // We are assuming that getOutermostParentListRef().getScrollRef()\n // is a non-null reference to a ScrollView\n\n\n this._scrollRef.measureLayout(this.context.getOutermostParentListRef().getScrollRef(), (x, y, width, height) => {\n this._offsetFromParentVirtualizedList = this._selectOffset({\n x,\n y\n });\n this._scrollMetrics.contentLength = this._selectLength({\n width,\n height\n });\n\n var scrollMetrics = this._convertParentScrollMetrics(this.context.getScrollMetrics());\n\n var metricsChanged = this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength || this._scrollMetrics.offset !== scrollMetrics.offset;\n\n if (metricsChanged) {\n this._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n this._scrollMetrics.offset = scrollMetrics.offset; // If metrics of the scrollView changed, then we triggered remeasure for child list\n // to ensure VirtualizedList has the right information.\n\n this._cellKeysToChildListKeys.forEach(childListKeys => {\n if (childListKeys) {\n for (var _iterator3 = _createForOfIteratorHelperLoose(childListKeys), _step3; !(_step3 = _iterator3()).done;) {\n var childKey = _step3.value;\n\n var childList = this._nestedChildLists.get(childKey);\n\n childList && childList.ref && childList.ref.measureLayoutRelativeToContainingList();\n }\n }\n });\n }\n }, error => {\n console.warn(\"VirtualizedList: Encountered an error while measuring a list's\" + ' offset from its containing VirtualizedList.');\n });\n } catch (error) {\n console.warn('measureLayoutRelativeToContainingList threw an error', error.stack);\n }\n }\n\n _getFooterCellKey() {\n return this._getCellKey() + '-footer';\n }\n\n _renderDebugOverlay() {\n var normalize = this._scrollMetrics.visibleLength / (this._scrollMetrics.contentLength || 1);\n var framesInLayout = [];\n var itemCount = this.props.getItemCount(this.props.data);\n\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = this._getFrameMetricsApprox(ii);\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the\n * error delete this comment and run Flow. */\n\n\n if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n\n var windowTop = this._getFrameMetricsApprox(this.state.first).offset;\n\n var frameLast = this._getFrameMetricsApprox(this.state.last);\n\n var windowLen = frameLast.offset + frameLast.length - windowTop;\n var visTop = this._scrollMetrics.offset;\n var visLen = this._scrollMetrics.visibleLength;\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlay]\n }, framesInLayout.map((f, ii) => /*#__PURE__*/React.createElement(View, {\n key: 'f' + ii,\n style: [styles.debugOverlayBase, styles.debugOverlayFrame, {\n top: f.offset * normalize,\n height: f.length * normalize\n }]\n })), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameLast, {\n top: windowTop * normalize,\n height: windowLen * normalize\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameVis, {\n top: visTop * normalize,\n height: visLen * normalize\n }]\n }));\n }\n\n _selectLength(metrics) {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.height : metrics.width;\n }\n\n _selectOffset(metrics) {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x;\n }\n\n _maybeCallOnEndReached() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n getItemCount = _this$props10.getItemCount,\n onEndReached = _this$props10.onEndReached,\n onEndReachedThreshold = _this$props10.onEndReachedThreshold;\n var _this$_scrollMetrics2 = this._scrollMetrics,\n contentLength = _this$_scrollMetrics2.contentLength,\n visibleLength = _this$_scrollMetrics2.visibleLength,\n offset = _this$_scrollMetrics2.offset;\n var distanceFromEnd = contentLength - visibleLength - offset;\n var threshold = onEndReachedThreshold != null ? onEndReachedThreshold * visibleLength : 2;\n\n if (onEndReached && this.state.last === getItemCount(data) - 1 && distanceFromEnd < threshold && this._scrollMetrics.contentLength !== this._sentEndForContentLength) {\n // Only call onEndReached once for a given content length\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({\n distanceFromEnd\n });\n } else if (distanceFromEnd > threshold) {\n // If the user scrolls away from the end and back again cause\n // an onEndReached to be triggered again\n this._sentEndForContentLength = 0;\n }\n }\n\n _scheduleCellsToRenderUpdate() {\n var _this$state2 = this.state,\n first = _this$state2.first,\n last = _this$state2.last;\n var _this$_scrollMetrics3 = this._scrollMetrics,\n offset = _this$_scrollMetrics3.offset,\n visibleLength = _this$_scrollMetrics3.visibleLength,\n velocity = _this$_scrollMetrics3.velocity;\n var itemCount = this.props.getItemCount(this.props.data);\n var hiPri = false;\n var onEndReachedThreshold = onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold);\n var scrollingThreshold = onEndReachedThreshold * visibleLength / 2; // Mark as high priority if we're close to the start of the first item\n // But only if there are items before the first rendered item\n\n if (first > 0) {\n var distTop = offset - this._getFrameMetricsApprox(first).offset;\n\n hiPri = hiPri || distTop < 0 || velocity < -2 && distTop < scrollingThreshold;\n } // Mark as high priority if we're close to the end of the last item\n // But only if there are items after the last rendered item\n\n\n if (last < itemCount - 1) {\n var distBottom = this._getFrameMetricsApprox(last).offset - (offset + visibleLength);\n hiPri = hiPri || distBottom < 0 || velocity > 2 && distBottom < scrollingThreshold;\n } // Only trigger high-priority updates if we've actually rendered cells,\n // and with that size estimate, accurately compute how many cells we should render.\n // Otherwise, it would just render as many cells as it can (of zero dimension),\n // each time through attempting to render more (limited by maxToRenderPerBatch),\n // starving the renderer from actually laying out the objects and computing _averageCellLength.\n // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate\n // We shouldn't do another hipri cellToRenderUpdate\n\n\n if (hiPri && (this._averageCellLength || this.props.getItemLayout) && !this._hiPriInProgress) {\n this._hiPriInProgress = true; // Don't worry about interactions when scrolling quickly; focus on filling content as fast\n // as possible.\n\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n\n this._updateCellsToRender();\n\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n }\n\n _updateViewableItems(data) {\n var getItemCount = this.props.getItemCount;\n\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.onUpdate(getItemCount(data), this._scrollMetrics.offset, this._scrollMetrics.visibleLength, this._getFrameMetrics, this._createViewToken, tuple.onViewableItemsChanged, this.state);\n });\n }\n\n}\n\nVirtualizedList.contextType = VirtualizedListContext;\n\nclass CellRenderer extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n separatorProps: {\n highlighted: false,\n leadingItem: this.props.item\n }\n };\n this._separators = {\n highlight: () => {\n var _this$props11 = this.props,\n cellKey = _this$props11.cellKey,\n prevCellKey = _this$props11.prevCellKey;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true\n });\n },\n unhighlight: () => {\n var _this$props12 = this.props,\n cellKey = _this$props12.cellKey,\n prevCellKey = _this$props12.prevCellKey;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false\n });\n },\n updateProps: (select, newProps) => {\n var _this$props13 = this.props,\n cellKey = _this$props13.cellKey,\n prevCellKey = _this$props13.prevCellKey;\n this.props.onUpdateSeparators([select === 'leading' ? prevCellKey : cellKey], newProps);\n }\n };\n }\n\n static getDerivedStateFromProps(props, prevState) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, prevState.separatorProps), {}, {\n leadingItem: props.item\n })\n };\n } // TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not\n // reused by SectionList and we can keep VirtualizedList simpler.\n\n\n updateSeparatorProps(newProps) {\n this.setState(state => ({\n separatorProps: _objectSpread(_objectSpread({}, state.separatorProps), newProps)\n }));\n }\n\n componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n }\n\n _renderElement(renderItem, ListItemComponent, item, index) {\n if (renderItem && ListItemComponent) {\n console.warn('VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take' + ' precedence over renderItem.');\n }\n\n if (ListItemComponent) {\n /* $FlowFixMe[not-a-component] (>=0.108.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.108 was deployed. To\n * see the error, delete this comment and run Flow. */\n\n /* $FlowFixMe[incompatible-type-arg] (>=0.108.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.108 was deployed.\n * To see the error, delete this comment and run Flow. */\n return /*#__PURE__*/React.createElement(ListItemComponent, {\n item,\n index,\n separators: this._separators\n });\n }\n\n if (renderItem) {\n return renderItem({\n item,\n index,\n separators: this._separators\n });\n }\n\n invariant(false, 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.');\n }\n\n render() {\n var _this$props14 = this.props,\n CellRendererComponent = _this$props14.CellRendererComponent,\n ItemSeparatorComponent = _this$props14.ItemSeparatorComponent,\n fillRateHelper = _this$props14.fillRateHelper,\n horizontal = _this$props14.horizontal,\n item = _this$props14.item,\n index = _this$props14.index,\n inversionStyle = _this$props14.inversionStyle,\n parentProps = _this$props14.parentProps;\n var renderItem = parentProps.renderItem,\n getItemLayout = parentProps.getItemLayout,\n ListItemComponent = parentProps.ListItemComponent;\n\n var element = this._renderElement(renderItem, ListItemComponent, item, index);\n\n var onLayout =\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the\n * error delete this comment and run Flow. */\n getItemLayout && !parentProps.debug && !fillRateHelper.enabled() ? undefined : this.props.onLayout; // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and\n // called explicitly by `ScrollViewStickyHeader`.\n\n var itemSeparator = ItemSeparatorComponent && /*#__PURE__*/React.createElement(ItemSeparatorComponent, this.state.separatorProps);\n var cellStyle = inversionStyle ? horizontal ? [styles.rowReverse, inversionStyle] : [styles.columnReverse, inversionStyle] : horizontal ? [styles.row, inversionStyle] : inversionStyle;\n var result = !CellRendererComponent ?\n /*#__PURE__*/\n\n /* $FlowFixMe[incompatible-type-arg] (>=0.89.0 site=react_native_fb) *\n This comment suppresses an error found when Flow v0.89 was deployed. *\n To see the error, delete this comment and run Flow. */\n React.createElement(View, {\n style: cellStyle,\n onLayout: onLayout\n }, element, itemSeparator) : /*#__PURE__*/React.createElement(CellRendererComponent, _extends({}, this.props, {\n style: cellStyle,\n onLayout: onLayout\n }), element, itemSeparator);\n return /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this.props.cellKey\n }, result);\n }\n\n}\n\nfunction describeNestedLists(childList) {\n var trace = 'VirtualizedList trace:\\n' + (\" Child (\" + (childList.horizontal ? 'horizontal' : 'vertical') + \"):\\n\") + (\" listKey: \" + childList.key + \"\\n\") + (\" cellKey: \" + childList.cellKey);\n var debugInfo = childList.parentDebugInfo;\n\n while (debugInfo) {\n trace += \"\\n Parent (\" + (debugInfo.horizontal ? 'horizontal' : 'vertical') + \"):\\n\" + (\" listKey: \" + debugInfo.listKey + \"\\n\") + (\" cellKey: \" + debugInfo.cellKey);\n debugInfo = debugInfo.parent;\n }\n\n return trace;\n}\n\nvar styles = StyleSheet.create({\n verticallyInverted: {\n transform: [{\n scaleY: -1\n }]\n },\n horizontallyInverted: {\n transform: [{\n scaleX: -1\n }]\n },\n row: {\n flexDirection: 'row'\n },\n rowReverse: {\n flexDirection: 'row-reverse'\n },\n columnReverse: {\n flexDirection: 'column-reverse'\n },\n debug: {\n flex: 1\n },\n debugOverlayBase: {\n position: 'absolute',\n top: 0,\n right: 0\n },\n debugOverlay: {\n bottom: 0,\n width: 20,\n borderColor: 'blue',\n borderWidth: 1\n },\n debugOverlayFrame: {\n left: 0,\n backgroundColor: 'orange'\n },\n debugOverlayFrameLast: {\n left: 0,\n borderColor: 'green',\n borderWidth: 2\n },\n debugOverlayFrameVis: {\n left: 0,\n borderColor: 'red',\n borderWidth: 2\n }\n});\nexport default VirtualizedList;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export var escapeUri = function (uri) {\n // AWS percent-encodes some extra non-standard characters in a URI\n return encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\n};\nvar hexEncode = function (c) { return \"%\" + c.charCodeAt(0).toString(16).toUpperCase(); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLXVyaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lc2NhcGUtdXJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxJQUFNLFNBQVMsR0FBRyxVQUFDLEdBQVc7SUFDbkMsa0VBQWtFO0lBQ2xFLE9BQUEsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7QUFBdEQsQ0FBc0QsQ0FBQztBQUV6RCxJQUFNLFNBQVMsR0FBRyxVQUFDLENBQVMsSUFBSyxPQUFBLE1BQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFJLEVBQWhELENBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZXNjYXBlVXJpID0gKHVyaTogc3RyaW5nKTogc3RyaW5nID0+XG4gIC8vIEFXUyBwZXJjZW50LWVuY29kZXMgc29tZSBleHRyYSBub24tc3RhbmRhcmQgY2hhcmFjdGVycyBpbiBhIFVSSVxuICBlbmNvZGVVUklDb21wb25lbnQodXJpKS5yZXBsYWNlKC9bIScoKSpdL2csIGhleEVuY29kZSk7XG5cbmNvbnN0IGhleEVuY29kZSA9IChjOiBzdHJpbmcpID0+IGAlJHtjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9YDtcbiJdfQ==","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nexport function buildQueryString(query) {\n var e_1, _a;\n var parts = [];\n try {\n for (var _b = __values(Object.keys(query).sort()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (var i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(key + \"=\" + escapeUri(value[i]));\n }\n }\n else {\n var qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += \"=\" + escapeUri(value);\n }\n parts.push(qsEntry);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return parts.join(\"&\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBd0I7O0lBQ3ZELElBQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQzs7UUFDM0IsS0FBZ0IsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxnQkFBQSw0QkFBRTtZQUF0QyxJQUFJLEdBQUcsV0FBQTtZQUNWLElBQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QixHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDbEQsS0FBSyxDQUFDLElBQUksQ0FBSSxHQUFHLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBRyxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNsQixJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7b0JBQ3RDLE9BQU8sSUFBSSxNQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUcsQ0FBQztpQkFDbkM7Z0JBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNyQjtTQUNGOzs7Ozs7Ozs7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5UGFyYW1ldGVyQmFnIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBlc2NhcGVVcmkgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11cmktZXNjYXBlXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFF1ZXJ5U3RyaW5nKHF1ZXJ5OiBRdWVyeVBhcmFtZXRlckJhZyk6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGxldCBrZXkgb2YgT2JqZWN0LmtleXMocXVlcnkpLnNvcnQoKSkge1xuICAgIGNvbnN0IHZhbHVlID0gcXVlcnlba2V5XTtcbiAgICBrZXkgPSBlc2NhcGVVcmkoa2V5KTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBpTGVuID0gdmFsdWUubGVuZ3RoOyBpIDwgaUxlbjsgaSsrKSB7XG4gICAgICAgIHBhcnRzLnB1c2goYCR7a2V5fT0ke2VzY2FwZVVyaSh2YWx1ZVtpXSl9YCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBxc0VudHJ5ID0ga2V5O1xuICAgICAgaWYgKHZhbHVlIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBxc0VudHJ5ICs9IGA9JHtlc2NhcGVVcmkodmFsdWUpfWA7XG4gICAgICB9XG4gICAgICBwYXJ0cy5wdXNoKHFzRW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJ0cy5qb2luKFwiJlwiKTtcbn1cbiJdfQ==","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar isDisabled = props => props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf('disabled') > -1;\n\nexport default isDisabled;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar accessibilityRoleToWebRole = {\n adjustable: 'slider',\n button: 'button',\n header: 'heading',\n image: 'img',\n imagebutton: null,\n keyboardkey: null,\n label: null,\n link: 'link',\n none: 'presentation',\n search: 'search',\n summary: 'region',\n text: null\n};\n\nvar propsToAriaRole = _ref => {\n var accessibilityRole = _ref.accessibilityRole;\n\n if (accessibilityRole) {\n var inferredRole = accessibilityRoleToWebRole[accessibilityRole];\n\n if (inferredRole !== null) {\n // ignore roles that don't map to web\n return inferredRole || accessibilityRole;\n }\n }\n};\n\nexport default propsToAriaRole;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport propsToAriaRole from './propsToAriaRole';\nvar roleComponents = {\n article: 'article',\n banner: 'header',\n blockquote: 'blockquote',\n code: 'code',\n complementary: 'aside',\n contentinfo: 'footer',\n deletion: 'del',\n emphasis: 'em',\n figure: 'figure',\n insertion: 'ins',\n form: 'form',\n list: 'ul',\n listitem: 'li',\n main: 'main',\n navigation: 'nav',\n region: 'section',\n strong: 'strong'\n};\nvar emptyObject = {};\n\nvar propsToAccessibilityComponent = function propsToAccessibilityComponent(props) {\n if (props === void 0) {\n props = emptyObject;\n }\n\n // special-case for \"label\" role which doesn't map to an ARIA role\n if (props.accessibilityRole === 'label') {\n return 'label';\n }\n\n var role = propsToAriaRole(props);\n\n if (role) {\n if (role === 'heading') {\n var level = props.accessibilityLevel || props['aria-level'];\n\n if (level != null) {\n return \"h\" + level;\n }\n\n return 'h1';\n }\n\n return roleComponents[role];\n }\n};\n\nexport default propsToAccessibilityComponent;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport isDisabled from './isDisabled';\nimport propsToAccessibilityComponent from './propsToAccessibilityComponent';\nimport propsToAriaRole from './propsToAriaRole';\nvar AccessibilityUtil = {\n isDisabled,\n propsToAccessibilityComponent,\n propsToAriaRole\n};\nexport default AccessibilityUtil;","import { val } from '../val';\nimport AnimatedNode from './AnimatedNode';\nimport invariant from 'invariant';\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\n\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\nfunction B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\nfunction C(aA1) {\n return 3.0 * aA1;\n}\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n}\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\n\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX = 0;\n var currentT = 0;\n var i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (\n Math.abs(currentX) > SUBDIVISION_PRECISION &&\n ++i < SUBDIVISION_MAX_ITERATIONS\n );\n return currentT;\n}\n\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\n\nfunction bezier(mX1, mY1, mX2, mY2) {\n // Precompute samples table\n var sampleValues = float32ArraySupported\n ? new Float32Array(kSplineTableSize)\n : new Array(kSplineTableSize);\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (\n ;\n currentSample !== lastSample && sampleValues[currentSample] <= aX;\n ++currentSample\n ) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n var dist =\n (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n\n var initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(\n aX,\n intervalStart,\n intervalStart + kSampleStepSize,\n mX1,\n mX2\n );\n }\n }\n\n return function BezierEasing(x) {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n }\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n\nexport default class AnimatedBezier extends AnimatedNode {\n _value;\n _bezier;\n\n constructor(value, mX1, mY1, mX2, mY2) {\n invariant(\n value instanceof AnimatedNode,\n `Reanimated: Bezier node argument should be of type AnimatedNode but got ${value}`\n );\n super({ type: 'bezier', mX1, mY1, mX2, mY2, input: value }, [value]);\n this._value = value;\n this._bezier = bezier(mX1, mY1, mX2, mY2);\n }\n\n toString() {\n return `AnimatedBezier, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n return this._bezier(val(this._value));\n }\n}\n","import {\n cond,\n lessThan,\n multiply,\n pow,\n cos,\n sqrt,\n sub,\n add,\n divide,\n} from './base';\nimport AnimatedBezier from './core/AnimatedBezier';\n\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\nexport default class Easing {\n /**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\n static linear(t) {\n return t;\n }\n\n /**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\n static ease(t) {\n return new AnimatedBezier(t, 0.42, 0, 1, 1);\n }\n\n /**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\n static quad(t) {\n return multiply(t, t);\n }\n\n /**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\n static cubic(t) {\n return multiply(t, t, t);\n }\n\n /**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\n static poly(n) {\n return (t) => pow(t, n);\n }\n\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n static sin(t) {\n return sub(1, cos(multiply(t, Math.PI, 0.5)));\n }\n\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n static circle(t) {\n return sub(1, sqrt(sub(1, multiply(t, t))));\n }\n\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n static exp(t) {\n return pow(2, multiply(10, sub(t, 1)));\n }\n\n /**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\n static elastic(bounciness = 1) {\n const p = bounciness * Math.PI;\n return (t) =>\n sub(\n 1,\n multiply(pow(cos(multiply(t, Math.PI, 0.5)), 3), cos(multiply(t, p)))\n );\n }\n\n /**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * Wolfram Plot:\n *\n * - http://tiny.cc/back_default (s = 1.70158, default)\n */\n static back(s) {\n if (s === undefined) {\n s = 1.70158;\n }\n return (t) => multiply(t, t, sub(multiply(add(s, 1), t), s));\n }\n\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n static bounce(t) {\n const sq = (v) => multiply(7.5625, v, v);\n return cond(\n lessThan(t, 1 / 2.75),\n sq(t),\n cond(\n lessThan(t, 2 / 2.75),\n add(0.75, sq(sub(t, 1.5 / 2.75))),\n cond(\n lessThan(t, 2.5 / 2.76),\n add(0.9375, sq(sub(t, 2.25 / 2.75))),\n add(0.984375, sq(sub(t, 2.625 / 2.75)))\n )\n )\n );\n }\n\n /**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\n static bezier(x1, y1, x2, y2) {\n return (t) => new AnimatedBezier(t, x1, y1, x2, y2);\n }\n\n /**\n * Runs an easing function forwards.\n */\n static in(easing) {\n return easing;\n }\n\n /**\n * Runs an easing function backwards.\n */\n static out(easing) {\n return (t) => sub(1, easing(sub(1, t)));\n }\n\n /**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\n static inOut(easing) {\n return (t) =>\n cond(\n lessThan(t, 0.5),\n divide(easing(multiply(t, 2)), 2),\n sub(1, divide(easing(multiply(sub(1, t), 2)), 2))\n );\n }\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar getBoundingClientRect = node => {\n if (node != null) {\n var isElement = node.nodeType === 1;\n /* Node.ELEMENT_NODE */\n\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n return node.getBoundingClientRect();\n }\n }\n};\n\nexport default getBoundingClientRect;","import ReanimatedModule from './ReanimatedModule';\nimport { NativeEventEmitter } from 'react-native';\nexport default new NativeEventEmitter(ReanimatedModule);\n","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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport var Source = /*#__PURE__*/function () {\n function Source(body) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'GraphQL request';\n var locationOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n line: 1,\n column: 1\n };\n typeof body === 'string' || devAssert(0, \"Body must be a string. Received: \".concat(inspect(body), \".\"));\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 || devAssert(0, 'line in locationOffset is 1-indexed and must be positive.');\n this.locationOffset.column > 0 || devAssert(0, 'column in locationOffset is 1-indexed and must be positive.');\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n\n _createClass(Source, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Source';\n }\n }]);\n\n return Source;\n}();\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\n// eslint-disable-next-line no-redeclare\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Token } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { dedentBlockStringValue } from \"./blockString.mjs\";\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport var Lexer = /*#__PURE__*/function () {\n /**\n * The previously focused non-ignored token.\n */\n\n /**\n * The currently focused non-ignored token.\n */\n\n /**\n * The (1-indexed) line containing the current token.\n */\n\n /**\n * The character offset at which the current line begins.\n */\n function Lexer(source) {\n var startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0, null);\n this.source = source;\n this.lastToken = startOfFileToken;\n this.token = startOfFileToken;\n this.line = 1;\n this.lineStart = 0;\n }\n /**\n * Advances the token stream to the next non-ignored token.\n */\n\n\n var _proto = Lexer.prototype;\n\n _proto.advance = function advance() {\n this.lastToken = this.token;\n var token = this.token = this.lookahead();\n return token;\n }\n /**\n * Looks ahead and returns the next non-ignored token, but does not change\n * the state of Lexer.\n */\n ;\n\n _proto.lookahead = function lookahead() {\n var token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n var _token$next;\n\n // Note: next is only mutable during parsing, so we cast to allow this.\n token = (_token$next = token.next) !== null && _token$next !== void 0 ? _token$next : token.next = readToken(this, token);\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n };\n\n return Lexer;\n}();\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n return kind === TokenKind.BANG || kind === TokenKind.DOLLAR || kind === TokenKind.AMP || kind === TokenKind.PAREN_L || kind === TokenKind.PAREN_R || kind === TokenKind.SPREAD || kind === TokenKind.COLON || kind === TokenKind.EQUALS || kind === TokenKind.AT || kind === TokenKind.BRACKET_L || kind === TokenKind.BRACKET_R || kind === TokenKind.BRACE_L || kind === TokenKind.PIPE || kind === TokenKind.BRACE_R;\n}\n\nfunction printCharCode(code) {\n return (// NaN/undefined represents access beyond the end of the file.\n isNaN(code) ? TokenKind.EOF : // Trust JSON for ASCII.\n code < 0x007f ? JSON.stringify(String.fromCharCode(code)) : // Otherwise print the escaped form.\n \"\\\"\\\\u\".concat(('00' + code.toString(16).toUpperCase()).slice(-4), \"\\\"\")\n );\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\n\nfunction readToken(lexer, prev) {\n var source = lexer.source;\n var body = source.body;\n var bodyLength = body.length;\n var pos = prev.end;\n\n while (pos < bodyLength) {\n var code = body.charCodeAt(pos);\n var _line = lexer.line;\n\n var _col = 1 + pos - lexer.lineStart; // SourceCharacter\n\n\n switch (code) {\n case 0xfeff: // \n\n case 9: // \\t\n\n case 32: // \n\n case 44:\n // ,\n ++pos;\n continue;\n\n case 10:\n // \\n\n ++pos;\n ++lexer.line;\n lexer.lineStart = pos;\n continue;\n\n case 13:\n // \\r\n if (body.charCodeAt(pos + 1) === 10) {\n pos += 2;\n } else {\n ++pos;\n }\n\n ++lexer.line;\n lexer.lineStart = pos;\n continue;\n\n case 33:\n // !\n return new Token(TokenKind.BANG, pos, pos + 1, _line, _col, prev);\n\n case 35:\n // #\n return readComment(source, pos, _line, _col, prev);\n\n case 36:\n // $\n return new Token(TokenKind.DOLLAR, pos, pos + 1, _line, _col, prev);\n\n case 38:\n // &\n return new Token(TokenKind.AMP, pos, pos + 1, _line, _col, prev);\n\n case 40:\n // (\n return new Token(TokenKind.PAREN_L, pos, pos + 1, _line, _col, prev);\n\n case 41:\n // )\n return new Token(TokenKind.PAREN_R, pos, pos + 1, _line, _col, prev);\n\n case 46:\n // .\n if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {\n return new Token(TokenKind.SPREAD, pos, pos + 3, _line, _col, prev);\n }\n\n break;\n\n case 58:\n // :\n return new Token(TokenKind.COLON, pos, pos + 1, _line, _col, prev);\n\n case 61:\n // =\n return new Token(TokenKind.EQUALS, pos, pos + 1, _line, _col, prev);\n\n case 64:\n // @\n return new Token(TokenKind.AT, pos, pos + 1, _line, _col, prev);\n\n case 91:\n // [\n return new Token(TokenKind.BRACKET_L, pos, pos + 1, _line, _col, prev);\n\n case 93:\n // ]\n return new Token(TokenKind.BRACKET_R, pos, pos + 1, _line, _col, prev);\n\n case 123:\n // {\n return new Token(TokenKind.BRACE_L, pos, pos + 1, _line, _col, prev);\n\n case 124:\n // |\n return new Token(TokenKind.PIPE, pos, pos + 1, _line, _col, prev);\n\n case 125:\n // }\n return new Token(TokenKind.BRACE_R, pos, pos + 1, _line, _col, prev);\n\n case 34:\n // \"\n if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {\n return readBlockString(source, pos, _line, _col, prev, lexer);\n }\n\n return readString(source, pos, _line, _col, prev);\n\n case 45: // -\n\n case 48: // 0\n\n case 49: // 1\n\n case 50: // 2\n\n case 51: // 3\n\n case 52: // 4\n\n case 53: // 5\n\n case 54: // 6\n\n case 55: // 7\n\n case 56: // 8\n\n case 57:\n // 9\n return readNumber(source, pos, code, _line, _col, prev);\n\n case 65: // A\n\n case 66: // B\n\n case 67: // C\n\n case 68: // D\n\n case 69: // E\n\n case 70: // F\n\n case 71: // G\n\n case 72: // H\n\n case 73: // I\n\n case 74: // J\n\n case 75: // K\n\n case 76: // L\n\n case 77: // M\n\n case 78: // N\n\n case 79: // O\n\n case 80: // P\n\n case 81: // Q\n\n case 82: // R\n\n case 83: // S\n\n case 84: // T\n\n case 85: // U\n\n case 86: // V\n\n case 87: // W\n\n case 88: // X\n\n case 89: // Y\n\n case 90: // Z\n\n case 95: // _\n\n case 97: // a\n\n case 98: // b\n\n case 99: // c\n\n case 100: // d\n\n case 101: // e\n\n case 102: // f\n\n case 103: // g\n\n case 104: // h\n\n case 105: // i\n\n case 106: // j\n\n case 107: // k\n\n case 108: // l\n\n case 109: // m\n\n case 110: // n\n\n case 111: // o\n\n case 112: // p\n\n case 113: // q\n\n case 114: // r\n\n case 115: // s\n\n case 116: // t\n\n case 117: // u\n\n case 118: // v\n\n case 119: // w\n\n case 120: // x\n\n case 121: // y\n\n case 122:\n // z\n return readName(source, pos, _line, _col, prev);\n }\n\n throw syntaxError(source, pos, unexpectedCharacterMessage(code));\n }\n\n var line = lexer.line;\n var col = 1 + pos - lexer.lineStart;\n return new Token(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);\n}\n/**\n * Report a message that an unexpected character was encountered.\n */\n\n\nfunction unexpectedCharacterMessage(code) {\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n return \"Cannot contain the invalid character \".concat(printCharCode(code), \".\");\n }\n\n if (code === 39) {\n // '\n return 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?';\n }\n\n return \"Cannot parse the unexpected character \".concat(printCharCode(code), \".\");\n}\n/**\n * Reads a comment token from the source file.\n *\n * #[\\u0009\\u0020-\\uFFFF]*\n */\n\n\nfunction readComment(source, start, line, col, prev) {\n var body = source.body;\n var code;\n var position = start;\n\n do {\n code = body.charCodeAt(++position);\n } while (!isNaN(code) && ( // SourceCharacter but not LineTerminator\n code > 0x001f || code === 0x0009));\n\n return new Token(TokenKind.COMMENT, start, position, line, col, prev, body.slice(start + 1, position));\n}\n/**\n * Reads a number token from the source file, either a float\n * or an int depending on whether a decimal point appears.\n *\n * Int: -?(0|[1-9][0-9]*)\n * Float: -?(0|[1-9][0-9]*)(\\.[0-9]+)?((E|e)(+|-)?[0-9]+)?\n */\n\n\nfunction readNumber(source, start, firstCode, line, col, prev) {\n var body = source.body;\n var code = firstCode;\n var position = start;\n var isFloat = false;\n\n if (code === 45) {\n // -\n code = body.charCodeAt(++position);\n }\n\n if (code === 48) {\n // 0\n code = body.charCodeAt(++position);\n\n if (code >= 48 && code <= 57) {\n throw syntaxError(source, position, \"Invalid number, unexpected digit after 0: \".concat(printCharCode(code), \".\"));\n }\n } else {\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 46) {\n // .\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 69 || code === 101) {\n // E e\n isFloat = true;\n code = body.charCodeAt(++position);\n\n if (code === 43 || code === 45) {\n // + -\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or NameStart\n\n\n if (code === 46 || isNameStart(code)) {\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n }\n\n return new Token(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, body.slice(start, position));\n}\n/**\n * Returns the new position in the source after reading digits.\n */\n\n\nfunction readDigits(source, start, firstCode) {\n var body = source.body;\n var position = start;\n var code = firstCode;\n\n if (code >= 48 && code <= 57) {\n // 0 - 9\n do {\n code = body.charCodeAt(++position);\n } while (code >= 48 && code <= 57); // 0 - 9\n\n\n return position;\n }\n\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n}\n/**\n * Reads a string token from the source file.\n *\n * \"([^\"\\\\\\u000A\\u000D]|(\\\\(u[0-9a-fA-F]{4}|[\"\\\\/bfnrt])))*\"\n */\n\n\nfunction readString(source, start, line, col, prev) {\n var body = source.body;\n var position = start + 1;\n var chunkStart = position;\n var code = 0;\n var value = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position)) && // not LineTerminator\n code !== 0x000a && code !== 0x000d) {\n // Closing Quote (\")\n if (code === 34) {\n value += body.slice(chunkStart, position);\n return new Token(TokenKind.STRING, start, position + 1, line, col, prev, value);\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n ++position;\n\n if (code === 92) {\n // \\\n value += body.slice(chunkStart, position - 1);\n code = body.charCodeAt(position);\n\n switch (code) {\n case 34:\n value += '\"';\n break;\n\n case 47:\n value += '/';\n break;\n\n case 92:\n value += '\\\\';\n break;\n\n case 98:\n value += '\\b';\n break;\n\n case 102:\n value += '\\f';\n break;\n\n case 110:\n value += '\\n';\n break;\n\n case 114:\n value += '\\r';\n break;\n\n case 116:\n value += '\\t';\n break;\n\n case 117:\n {\n // uXXXX\n var charCode = uniCharCode(body.charCodeAt(position + 1), body.charCodeAt(position + 2), body.charCodeAt(position + 3), body.charCodeAt(position + 4));\n\n if (charCode < 0) {\n var invalidSequence = body.slice(position + 1, position + 5);\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\u\".concat(invalidSequence, \".\"));\n }\n\n value += String.fromCharCode(charCode);\n position += 4;\n break;\n }\n\n default:\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\\".concat(String.fromCharCode(code), \".\"));\n }\n\n ++position;\n chunkStart = position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Reads a block string token from the source file.\n *\n * \"\"\"(\"?\"?(\\\\\"\"\"|\\\\(?!=\"\"\")|[^\"\\\\]))*\"\"\"\n */\n\n\nfunction readBlockString(source, start, line, col, prev, lexer) {\n var body = source.body;\n var position = start + 3;\n var chunkStart = position;\n var code = 0;\n var rawValue = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position))) {\n // Closing Triple-Quote (\"\"\")\n if (code === 34 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) {\n rawValue += body.slice(chunkStart, position);\n return new Token(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, dedentBlockStringValue(rawValue));\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n if (code === 10) {\n // new line\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n } else if (code === 13) {\n // carriage return\n if (body.charCodeAt(position + 1) === 10) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n } else if ( // Escape Triple-Quote (\\\"\"\")\n code === 92 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34 && body.charCodeAt(position + 3) === 34) {\n rawValue += body.slice(chunkStart, position) + '\"\"\"';\n position += 4;\n chunkStart = position;\n } else {\n ++position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Converts four hexadecimal chars to the integer that the\n * string represents. For example, uniCharCode('0','0','0','f')\n * will return 15, and uniCharCode('0','0','f','f') returns 255.\n *\n * Returns a negative number on error, if a char was invalid.\n *\n * This is implemented by noting that char2hex() returns -1 on error,\n * which means the result of ORing the char2hex() will also be negative.\n */\n\n\nfunction uniCharCode(a, b, c, d) {\n return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d);\n}\n/**\n * Converts a hex character to its integer value.\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 on error.\n */\n\n\nfunction char2hex(a) {\n return a >= 48 && a <= 57 ? a - 48 // 0-9\n : a >= 65 && a <= 70 ? a - 55 // A-F\n : a >= 97 && a <= 102 ? a - 87 // a-f\n : -1;\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * [_A-Za-z][_0-9A-Za-z]*\n */\n\n\nfunction readName(source, start, line, col, prev) {\n var body = source.body;\n var bodyLength = body.length;\n var position = start + 1;\n var code = 0;\n\n while (position !== bodyLength && !isNaN(code = body.charCodeAt(position)) && (code === 95 || // _\n code >= 48 && code <= 57 || // 0-9\n code >= 65 && code <= 90 || // A-Z\n code >= 97 && code <= 122) // a-z\n ) {\n ++position;\n }\n\n return new Token(TokenKind.NAME, start, position, line, col, prev, body.slice(start, position));\n} // _ A-Z a-z\n\n\nfunction isNameStart(code) {\n return code === 95 || code >= 65 && code <= 90 || code >= 97 && code <= 122;\n}\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.HmacSHA256;\n\n}));","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign } from \"tslib\";\nexport function resolveUserAgentConfig(input) {\n return __assign(__assign({}, input), { customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWdCQSxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLEtBQW9EO0lBRXBELDZCQUNLLEtBQUssS0FDUixlQUFlLEVBQUUsT0FBTyxLQUFLLENBQUMsZUFBZSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUM5RztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciwgVXNlckFnZW50IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5leHBvcnQgaW50ZXJmYWNlIFVzZXJBZ2VudElucHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gdXNlciBhZ2VudCBoZWFkZXIgdGhhdCB3b3VsZCBiZSBhcHBlbmRlZCB0byBkZWZhdWx0IG9uZVxuICAgKi9cbiAgY3VzdG9tVXNlckFnZW50Pzogc3RyaW5nIHwgVXNlckFnZW50O1xufVxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogUHJvdmlkZXI8VXNlckFnZW50PjtcbiAgcnVudGltZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyB7XG4gIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogUHJvdmlkZXI8VXNlckFnZW50PjtcbiAgY3VzdG9tVXNlckFnZW50PzogVXNlckFnZW50O1xuICBydW50aW1lOiBzdHJpbmc7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZzxUPihcbiAgaW5wdXQ6IFQgJiBQcmV2aW91c2x5UmVzb2x2ZWQgJiBVc2VyQWdlbnRJbnB1dENvbmZpZ1xuKTogVCAmIFVzZXJBZ2VudFJlc29sdmVkQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBjdXN0b21Vc2VyQWdlbnQ6IHR5cGVvZiBpbnB1dC5jdXN0b21Vc2VyQWdlbnQgPT09IFwic3RyaW5nXCIgPyBbW2lucHV0LmN1c3RvbVVzZXJBZ2VudF1dIDogaW5wdXQuY3VzdG9tVXNlckFnZW50LFxuICB9O1xufVxuIl19","export var USER_AGENT = \"user-agent\";\nexport var X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport var SPACE = \" \";\nexport var UA_ESCAPE_REGEX = /[^\\!\\#\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxJQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7QUFFekIsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFVTRVJfQUdFTlQgPSBcInVzZXItYWdlbnRcIjtcblxuZXhwb3J0IGNvbnN0IFhfQU1aX1VTRVJfQUdFTlQgPSBcIngtYW16LXVzZXItYWdlbnRcIjtcblxuZXhwb3J0IGNvbnN0IFNQQUNFID0gXCIgXCI7XG5cbmV4cG9ydCBjb25zdCBVQV9FU0NBUEVfUkVHRVggPSAvW15cXCFcXCNcXCRcXCVcXCZcXCdcXCpcXCtcXC1cXC5cXF5cXF9cXGBcXHxcXH5cXGRcXHddL2c7XG4iXX0=","import { __assign, __awaiter, __generator, __read, __spread } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { SPACE, UA_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT } from \"./constants\";\n/**\n * Build user agent header sections from:\n * 1. runtime-specific default user agent provider;\n * 2. custom user agent from `customUserAgent` client config;\n * 3. handler execution context set by internal SDK components;\n * The built user agent will be set to `x-amz-user-agent` header for ALL the\n * runtimes.\n * Please note that any override to the `user-agent` or `x-amz-user-agent` header\n * in the HTTP request is discouraged. Please use `customUserAgent` client\n * config or middleware setting the `userAgent` context to generate desired user\n * agent.\n */\nexport var userAgentMiddleware = function (options) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, headers, userAgent, defaultUserAgent, customUserAgent, normalUAValue;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n request = args.request;\n if (!HttpRequest.isInstance(request))\n return [2 /*return*/, next(args)];\n headers = request.headers;\n userAgent = ((_a = context === null || context === void 0 ? void 0 : context.userAgent) === null || _a === void 0 ? void 0 : _a.map(escapeUserAgent)) || [];\n return [4 /*yield*/, options.defaultUserAgentProvider()];\n case 1:\n defaultUserAgent = (_c.sent()).map(escapeUserAgent);\n customUserAgent = ((_b = options === null || options === void 0 ? void 0 : options.customUserAgent) === null || _b === void 0 ? void 0 : _b.map(escapeUserAgent)) || [];\n // Set value to AWS-specific user agent header\n headers[X_AMZ_USER_AGENT] = __spread(defaultUserAgent, userAgent, customUserAgent).join(SPACE);\n normalUAValue = __spread(defaultUserAgent.filter(function (section) { return section.startsWith(\"aws-sdk-\"); }), customUserAgent).join(SPACE);\n if (options.runtime !== \"browser\" && normalUAValue) {\n headers[USER_AGENT] = headers[USER_AGENT] ? headers[USER_AGENT] + \" \" + normalUAValue : normalUAValue;\n }\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n}); }; }; };\n/**\n * Escape the each pair according to https://tools.ietf.org/html/rfc5234 and join the pair with pattern `name/version`.\n * User agent name may include prefix like `md/`, `api/`, `os/` etc., we should not escape the `/` after the prefix.\n * @private\n */\nvar escapeUserAgent = function (_a) {\n var _b = __read(_a, 2), name = _b[0], version = _b[1];\n var prefixSeparatorIndex = name.indexOf(\"/\");\n var prefix = name.substring(0, prefixSeparatorIndex); // If no prefix, prefix is just \"\"\n var uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter(function (item) { return item && item.length > 0; })\n .map(function (item) { return item === null || item === void 0 ? void 0 : item.replace(UA_ESCAPE_REGEX, \"_\"); })\n .join(\"/\");\n};\nexport var getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nexport var getUserAgentPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VzZXItYWdlbnQtbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBY3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLFVBQUMsT0FBZ0MsSUFBSyxPQUFBLFVBQ3ZFLElBQTRCLEVBQzVCLE9BQWdDLElBQ0wsT0FBQSxVQUFPLElBQWdDOzs7Ozs7Z0JBQzFELE9BQU8sR0FBSyxJQUFJLFFBQVQsQ0FBVTtnQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO29CQUFFLHNCQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQztnQkFDaEQsT0FBTyxHQUFLLE9BQU8sUUFBWixDQUFhO2dCQUN0QixTQUFTLEdBQUcsT0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsU0FBUywwQ0FBRSxHQUFHLENBQUMsZUFBZSxNQUFLLEVBQUUsQ0FBQztnQkFDdkMscUJBQU0sT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUE7O2dCQUE1RCxnQkFBZ0IsR0FBRyxDQUFDLFNBQXdDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUNsRixlQUFlLEdBQUcsT0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsZUFBZSwwQ0FBRSxHQUFHLENBQUMsZUFBZSxNQUFLLEVBQUUsQ0FBQztnQkFDN0UsOENBQThDO2dCQUM5QyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxTQUFJLGdCQUFnQixFQUFLLFNBQVMsRUFBSyxlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUUxRixhQUFhLEdBQUcsU0FDakIsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQUMsT0FBTyxJQUFLLE9BQUEsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBOUIsQ0FBOEIsQ0FBQyxFQUNwRSxlQUFlLEVBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDZCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLGFBQWEsRUFBRTtvQkFDbEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFJLGFBQWUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO2lCQUN2RztnQkFFRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOzs7S0FDSixFQXRCNEIsQ0FzQjVCLEVBekJ3RSxDQXlCeEUsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxJQUFNLGVBQWUsR0FBRyxVQUFDLEVBQThCO1FBQTlCLEtBQUEsYUFBOEIsRUFBN0IsSUFBSSxRQUFBLEVBQUUsT0FBTyxRQUFBO0lBQ3JDLElBQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsa0NBQWtDO0lBQzFGLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEQsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO1FBQ3BCLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7S0FDL0I7SUFDRCxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7U0FDN0IsTUFBTSxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUF2QixDQUF1QixDQUFDO1NBQ3pDLEdBQUcsQ0FBQyxVQUFDLElBQUksV0FBSyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsT0FBTyxDQUFDLGVBQWUsRUFBRSxHQUFHLElBQUMsQ0FBQztTQUNsRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSw2QkFBNkIsR0FBMkM7SUFDbkYsSUFBSSxFQUFFLHdCQUF3QjtJQUM5QixJQUFJLEVBQUUsT0FBTztJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO0lBQ3RDLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLFVBQUMsTUFBK0IsSUFBMEIsT0FBQSxDQUFDO0lBQzNGLFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRixDQUFDLEVBSjBGLENBSTFGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBBYnNvbHV0ZUxvY2F0aW9uLFxuICBCdWlsZEhhbmRsZXIsXG4gIEJ1aWxkSGFuZGxlckFyZ3VtZW50cyxcbiAgQnVpbGRIYW5kbGVyT3B0aW9ucyxcbiAgQnVpbGRIYW5kbGVyT3V0cHV0LFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbiAgVXNlckFnZW50UGFpcixcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmltcG9ydCB7IFVzZXJBZ2VudFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnNcIjtcbmltcG9ydCB7IFNQQUNFLCBVQV9FU0NBUEVfUkVHRVgsIFVTRVJfQUdFTlQsIFhfQU1aX1VTRVJfQUdFTlQgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBCdWlsZCB1c2VyIGFnZW50IGhlYWRlciBzZWN0aW9ucyBmcm9tOlxuICogMS4gcnVudGltZS1zcGVjaWZpYyBkZWZhdWx0IHVzZXIgYWdlbnQgcHJvdmlkZXI7XG4gKiAyLiBjdXN0b20gdXNlciBhZ2VudCBmcm9tIGBjdXN0b21Vc2VyQWdlbnRgIGNsaWVudCBjb25maWc7XG4gKiAzLiBoYW5kbGVyIGV4ZWN1dGlvbiBjb250ZXh0IHNldCBieSBpbnRlcm5hbCBTREsgY29tcG9uZW50cztcbiAqIFRoZSBidWlsdCB1c2VyIGFnZW50IHdpbGwgYmUgc2V0IHRvIGB4LWFtei11c2VyLWFnZW50YCBoZWFkZXIgZm9yIEFMTCB0aGVcbiAqIHJ1bnRpbWVzLlxuICogUGxlYXNlIG5vdGUgdGhhdCBhbnkgb3ZlcnJpZGUgdG8gdGhlIGB1c2VyLWFnZW50YCBvciBgeC1hbXotdXNlci1hZ2VudGAgaGVhZGVyXG4gKiBpbiB0aGUgSFRUUCByZXF1ZXN0IGlzIGRpc2NvdXJhZ2VkLiBQbGVhc2UgdXNlIGBjdXN0b21Vc2VyQWdlbnRgIGNsaWVudFxuICogY29uZmlnIG9yIG1pZGRsZXdhcmUgc2V0dGluZyB0aGUgYHVzZXJBZ2VudGAgY29udGV4dCB0byBnZW5lcmF0ZSBkZXNpcmVkIHVzZXJcbiAqIGFnZW50LlxuICovXG5leHBvcnQgY29uc3QgdXNlckFnZW50TWlkZGxld2FyZSA9IChvcHRpb25zOiBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZykgPT4gPE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyPihcbiAgbmV4dDogQnVpbGRIYW5kbGVyPGFueSwgYW55PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IEJ1aWxkSGFuZGxlcjxhbnksIGFueT4gPT4gYXN5bmMgKGFyZ3M6IEJ1aWxkSGFuZGxlckFyZ3VtZW50czxhbnk+KTogUHJvbWlzZTxCdWlsZEhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gIGNvbnN0IHsgaGVhZGVycyB9ID0gcmVxdWVzdDtcbiAgY29uc3QgdXNlckFnZW50ID0gY29udGV4dD8udXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgY29uc3QgZGVmYXVsdFVzZXJBZ2VudCA9IChhd2FpdCBvcHRpb25zLmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcigpKS5tYXAoZXNjYXBlVXNlckFnZW50KTtcbiAgY29uc3QgY3VzdG9tVXNlckFnZW50ID0gb3B0aW9ucz8uY3VzdG9tVXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgLy8gU2V0IHZhbHVlIHRvIEFXUy1zcGVjaWZpYyB1c2VyIGFnZW50IGhlYWRlclxuICBoZWFkZXJzW1hfQU1aX1VTRVJfQUdFTlRdID0gWy4uLmRlZmF1bHRVc2VyQWdlbnQsIC4uLnVzZXJBZ2VudCwgLi4uY3VzdG9tVXNlckFnZW50XS5qb2luKFNQQUNFKTtcbiAgLy8gR2V0IHZhbHVlIHRvIGJlIHNlbnQgd2l0aCBub24tQVdTLXNwZWNpZmljIHVzZXIgYWdlbnQgaGVhZGVyLlxuICBjb25zdCBub3JtYWxVQVZhbHVlID0gW1xuICAgIC4uLmRlZmF1bHRVc2VyQWdlbnQuZmlsdGVyKChzZWN0aW9uKSA9PiBzZWN0aW9uLnN0YXJ0c1dpdGgoXCJhd3Mtc2RrLVwiKSksXG4gICAgLi4uY3VzdG9tVXNlckFnZW50LFxuICBdLmpvaW4oU1BBQ0UpO1xuICBpZiAob3B0aW9ucy5ydW50aW1lICE9PSBcImJyb3dzZXJcIiAmJiBub3JtYWxVQVZhbHVlKSB7XG4gICAgaGVhZGVyc1tVU0VSX0FHRU5UXSA9IGhlYWRlcnNbVVNFUl9BR0VOVF0gPyBgJHtoZWFkZXJzW1VTRVJfQUdFTlRdfSAke25vcm1hbFVBVmFsdWV9YCA6IG5vcm1hbFVBVmFsdWU7XG4gIH1cblxuICByZXR1cm4gbmV4dCh7XG4gICAgLi4uYXJncyxcbiAgICByZXF1ZXN0LFxuICB9KTtcbn07XG5cbi8qKlxuICogRXNjYXBlIHRoZSBlYWNoIHBhaXIgYWNjb3JkaW5nIHRvIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MjM0IGFuZCBqb2luIHRoZSBwYWlyIHdpdGggcGF0dGVybiBgbmFtZS92ZXJzaW9uYC5cbiAqIFVzZXIgYWdlbnQgbmFtZSBtYXkgaW5jbHVkZSBwcmVmaXggbGlrZSBgbWQvYCwgYGFwaS9gLCBgb3MvYCBldGMuLCB3ZSBzaG91bGQgbm90IGVzY2FwZSB0aGUgYC9gIGFmdGVyIHRoZSBwcmVmaXguXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBlc2NhcGVVc2VyQWdlbnQgPSAoW25hbWUsIHZlcnNpb25dOiBVc2VyQWdlbnRQYWlyKTogc3RyaW5nID0+IHtcbiAgY29uc3QgcHJlZml4U2VwYXJhdG9ySW5kZXggPSBuYW1lLmluZGV4T2YoXCIvXCIpO1xuICBjb25zdCBwcmVmaXggPSBuYW1lLnN1YnN0cmluZygwLCBwcmVmaXhTZXBhcmF0b3JJbmRleCk7IC8vIElmIG5vIHByZWZpeCwgcHJlZml4IGlzIGp1c3QgXCJcIlxuICBsZXQgdWFOYW1lID0gbmFtZS5zdWJzdHJpbmcocHJlZml4U2VwYXJhdG9ySW5kZXggKyAxKTtcbiAgaWYgKHByZWZpeCA9PT0gXCJhcGlcIikge1xuICAgIHVhTmFtZSA9IHVhTmFtZS50b0xvd2VyQ2FzZSgpO1xuICB9XG4gIHJldHVybiBbcHJlZml4LCB1YU5hbWUsIHZlcnNpb25dXG4gICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAmJiBpdGVtLmxlbmd0aCA+IDApXG4gICAgLm1hcCgoaXRlbSkgPT4gaXRlbT8ucmVwbGFjZShVQV9FU0NBUEVfUkVHRVgsIFwiX1wiKSlcbiAgICAuam9pbihcIi9cIik7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnM6IEJ1aWxkSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uID0ge1xuICBuYW1lOiBcImdldFVzZXJBZ2VudE1pZGRsZXdhcmVcIixcbiAgc3RlcDogXCJidWlsZFwiLFxuICBwcmlvcml0eTogXCJsb3dcIixcbiAgdGFnczogW1wiU0VUX1VTRVJfQUdFTlRcIiwgXCJVU0VSX0FHRU5UXCJdLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVc2VyQWdlbnRQbHVnaW4gPSAoY29uZmlnOiBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQodXNlckFnZW50TWlkZGxld2FyZShjb25maWcpLCBnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __values } from \"tslib\";\nimport { HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { buildQueryString } from \"@aws-sdk/querystring-builder\";\nimport { requestTimeout } from \"./request-timeout\";\nvar FetchHttpHandler = /** @class */ (function () {\n function FetchHttpHandler(_a) {\n var _b = _a === void 0 ? {} : _a, requestTimeout = _b.requestTimeout;\n this.requestTimeout = requestTimeout;\n }\n FetchHttpHandler.prototype.destroy = function () {\n // Do nothing. TLS and HTTP/2 connection pooling is handled by the browser.\n };\n FetchHttpHandler.prototype.handle = function (request, _a) {\n var _b = _a === void 0 ? {} : _a, abortSignal = _b.abortSignal;\n var requestTimeoutInMs = this.requestTimeout;\n // if the request was already aborted, prevent doing extra work\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n var abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return Promise.reject(abortError);\n }\n var path = request.path;\n if (request.query) {\n var queryString = buildQueryString(request.query);\n if (queryString) {\n path += \"?\" + queryString;\n }\n }\n var port = request.port, method = request.method;\n var url = request.protocol + \"//\" + request.hostname + (port ? \":\" + port : \"\") + path;\n // Request constructor doesn't allow GET/HEAD request with body\n // ref: https://github.com/whatwg/fetch/issues/551\n var body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n var requestOptions = {\n body: body,\n headers: new Headers(request.headers),\n method: method,\n };\n // some browsers support abort signal\n if (typeof AbortController !== \"undefined\") {\n requestOptions[\"signal\"] = abortSignal;\n }\n var fetchRequest = new Request(url, requestOptions);\n var raceOfPromises = [\n fetch(fetchRequest).then(function (response) {\n var e_1, _a;\n var fetchHeaders = response.headers;\n var transformedHeaders = {};\n try {\n for (var _b = __values(fetchHeaders.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var pair = _c.value;\n transformedHeaders[pair[0]] = pair[1];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var hasReadableStream = response.body !== undefined;\n // Return the response with buffered body\n if (!hasReadableStream) {\n return response.blob().then(function (body) { return ({\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: body,\n }),\n }); });\n }\n // Return the response with streaming body\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: response.body,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(new Promise(function (resolve, reject) {\n abortSignal.onabort = function () {\n var abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }));\n }\n return Promise.race(raceOfPromises);\n };\n return FetchHttpHandler;\n}());\nexport { FetchHttpHandler };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtaHR0cC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZldGNoLWh0dHAtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUE0QixZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFlbkQ7SUFHRSwwQkFBWSxFQUFnRDtZQUFoRCxxQkFBOEMsRUFBRSxLQUFBLEVBQTlDLGNBQWMsb0JBQUE7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVELGtDQUFPLEdBQVA7UUFDRSwyRUFBMkU7SUFDN0UsQ0FBQztJQUVELGlDQUFNLEdBQU4sVUFBTyxPQUFvQixFQUFFLEVBQXdDO1lBQXhDLHFCQUFzQyxFQUFFLEtBQUEsRUFBdEMsV0FBVyxpQkFBQTtRQUN4QyxJQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFFL0MsK0RBQStEO1FBQy9ELElBQUksV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLE9BQU8sRUFBRTtZQUN4QixJQUFNLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2hELFVBQVUsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1lBQy9CLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNuQztRQUVELElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxJQUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLElB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Q0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0gsdUJBQUM7QUFBRCxDQUFDLEFBM0ZELElBMkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhhbmRsZXIsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2UgfSBmcm9tIFwiQGF3cy1zZGsvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgYnVpbGRRdWVyeVN0cmluZyB9IGZyb20gXCJAYXdzLXNkay9xdWVyeXN0cmluZy1idWlsZGVyXCI7XG5pbXBvcnQgeyBIZWFkZXJCYWcsIEh0dHBIYW5kbGVyT3B0aW9ucyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyByZXF1ZXN0VGltZW91dCB9IGZyb20gXCIuL3JlcXVlc3QtdGltZW91dFwiO1xuXG5kZWNsYXJlIGxldCBBYm9ydENvbnRyb2xsZXI6IGFueTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBodHRwIG9wdGlvbnMgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIGEgYnJvd3NlciBodHRwIGNsaWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGZXRjaEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhIHJlcXVlc3QgY2FuIHRha2UgYmVmb3JlIGJlaW5nIGF1dG9tYXRpY2FsbHlcbiAgICogdGVybWluYXRlZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgRmV0Y2hIdHRwSGFuZGxlciBpbXBsZW1lbnRzIEh0dHBIYW5kbGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IHJlcXVlc3RUaW1lb3V0IH06IEZldGNoSHR0cEhhbmRsZXJPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLnJlcXVlc3RUaW1lb3V0ID0gcmVxdWVzdFRpbWVvdXQ7XG4gIH1cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIERvIG5vdGhpbmcuIFRMUyBhbmQgSFRUUC8yIGNvbm5lY3Rpb24gcG9vbGluZyBpcyBoYW5kbGVkIGJ5IHRoZSBicm93c2VyLlxuICB9XG5cbiAgaGFuZGxlKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCB7IGFib3J0U2lnbmFsIH06IEh0dHBIYW5kbGVyT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx7IHJlc3BvbnNlOiBIdHRwUmVzcG9uc2UgfT4ge1xuICAgIGNvbnN0IHJlcXVlc3RUaW1lb3V0SW5NcyA9IHRoaXMucmVxdWVzdFRpbWVvdXQ7XG5cbiAgICAvLyBpZiB0aGUgcmVxdWVzdCB3YXMgYWxyZWFkeSBhYm9ydGVkLCBwcmV2ZW50IGRvaW5nIGV4dHJhIHdvcmtcbiAgICBpZiAoYWJvcnRTaWduYWw/LmFib3J0ZWQpIHtcbiAgICAgIGNvbnN0IGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXCJSZXF1ZXN0IGFib3J0ZWRcIik7XG4gICAgICBhYm9ydEVycm9yLm5hbWUgPSBcIkFib3J0RXJyb3JcIjtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChhYm9ydEVycm9yKTtcbiAgICB9XG5cbiAgICBsZXQgcGF0aCA9IHJlcXVlc3QucGF0aDtcbiAgICBpZiAocmVxdWVzdC5xdWVyeSkge1xuICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBidWlsZFF1ZXJ5U3RyaW5nKHJlcXVlc3QucXVlcnkpO1xuICAgICAgaWYgKHF1ZXJ5U3RyaW5nKSB7XG4gICAgICAgIHBhdGggKz0gYD8ke3F1ZXJ5U3RyaW5nfWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgeyBwb3J0LCBtZXRob2QgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3QgdXJsID0gYCR7cmVxdWVzdC5wcm90b2NvbH0vLyR7cmVxdWVzdC5ob3N0bmFtZX0ke3BvcnQgPyBgOiR7cG9ydH1gIDogXCJcIn0ke3BhdGh9YDtcbiAgICAvLyBSZXF1ZXN0IGNvbnN0cnVjdG9yIGRvZXNuJ3QgYWxsb3cgR0VUL0hFQUQgcmVxdWVzdCB3aXRoIGJvZHlcbiAgICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvZmV0Y2gvaXNzdWVzLzU1MVxuICAgIGNvbnN0IGJvZHkgPSBtZXRob2QgPT09IFwiR0VUXCIgfHwgbWV0aG9kID09PSBcIkhFQURcIiA/IHVuZGVmaW5lZCA6IHJlcXVlc3QuYm9keTtcbiAgICBjb25zdCByZXF1ZXN0T3B0aW9uczogUmVxdWVzdEluaXQgPSB7XG4gICAgICBib2R5LFxuICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnMocmVxdWVzdC5oZWFkZXJzKSxcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgIH07XG5cbiAgICAvLyBzb21lIGJyb3dzZXJzIHN1cHBvcnQgYWJvcnQgc2lnbmFsXG4gICAgaWYgKHR5cGVvZiBBYm9ydENvbnRyb2xsZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIChyZXF1ZXN0T3B0aW9ucyBhcyBhbnkpW1wic2lnbmFsXCJdID0gYWJvcnRTaWduYWw7XG4gICAgfVxuXG4gICAgY29uc3QgZmV0Y2hSZXF1ZXN0ID0gbmV3IFJlcXVlc3QodXJsLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgY29uc3QgcmFjZU9mUHJvbWlzZXMgPSBbXG4gICAgICBmZXRjaChmZXRjaFJlcXVlc3QpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGNvbnN0IGZldGNoSGVhZGVyczogYW55ID0gcmVzcG9uc2UuaGVhZGVycztcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRIZWFkZXJzOiBIZWFkZXJCYWcgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBhaXIgb2YgPEFycmF5PHN0cmluZ1tdPj5mZXRjaEhlYWRlcnMuZW50cmllcygpKSB7XG4gICAgICAgICAgdHJhbnNmb3JtZWRIZWFkZXJzW3BhaXJbMF1dID0gcGFpclsxXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhhc1JlYWRhYmxlU3RyZWFtID0gcmVzcG9uc2UuYm9keSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2Ugd2l0aCBidWZmZXJlZCBib2R5XG4gICAgICAgIGlmICghaGFzUmVhZGFibGVTdHJlYW0pIHtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYmxvYigpLnRoZW4oKGJvZHkpID0+ICh7XG4gICAgICAgICAgICByZXNwb25zZTogbmV3IEh0dHBSZXNwb25zZSh7XG4gICAgICAgICAgICAgIGhlYWRlcnM6IHRyYW5zZm9ybWVkSGVhZGVycyxcbiAgICAgICAgICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2Ugd2l0aCBzdHJlYW1pbmcgYm9keVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlc3BvbnNlOiBuZXcgSHR0cFJlc3BvbnNlKHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHRyYW5zZm9ybWVkSGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgICAgIGJvZHk6IHJlc3BvbnNlLmJvZHksXG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgICAgIHJlcXVlc3RUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SW5NcyksXG4gICAgXTtcbiAgICBpZiAoYWJvcnRTaWduYWwpIHtcbiAgICAgIHJhY2VPZlByb21pc2VzLnB1c2goXG4gICAgICAgIG5ldyBQcm9taXNlPG5ldmVyPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgYWJvcnRTaWduYWwub25hYm9ydCA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXCJSZXF1ZXN0IGFib3J0ZWRcIik7XG4gICAgICAgICAgICBhYm9ydEVycm9yLm5hbWUgPSBcIkFib3J0RXJyb3JcIjtcbiAgICAgICAgICAgIHJlamVjdChhYm9ydEVycm9yKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmFjZShyYWNlT2ZQcm9taXNlcyk7XG4gIH1cbn1cbiJdfQ==","export function requestTimeout(timeoutInMs) {\n if (timeoutInMs === void 0) { timeoutInMs = 0; }\n return new Promise(function (resolve, reject) {\n if (timeoutInMs) {\n setTimeout(function () {\n var timeoutError = new Error(\"Request did not complete within \" + timeoutInMs + \" ms\");\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC10aW1lb3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlcXVlc3QtdGltZW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsY0FBYyxDQUFDLFdBQWU7SUFBZiw0QkFBQSxFQUFBLGVBQWU7SUFDNUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1FBQ2pDLElBQUksV0FBVyxFQUFFO1lBQ2YsVUFBVSxDQUFDO2dCQUNULElBQU0sWUFBWSxHQUFHLElBQUksS0FBSyxDQUFDLHFDQUFtQyxXQUFXLFFBQUssQ0FBQyxDQUFDO2dCQUNwRixZQUFZLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQztnQkFDbkMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUNqQjtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0VGltZW91dCh0aW1lb3V0SW5NcyA9IDApOiBQcm9taXNlPG5ldmVyPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgaWYgKHRpbWVvdXRJbk1zKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgdGltZW91dEVycm9yID0gbmV3IEVycm9yKGBSZXF1ZXN0IGRpZCBub3QgY29tcGxldGUgd2l0aGluICR7dGltZW91dEluTXN9IG1zYCk7XG4gICAgICAgIHRpbWVvdXRFcnJvci5uYW1lID0gXCJUaW1lb3V0RXJyb3JcIjtcbiAgICAgICAgcmVqZWN0KHRpbWVvdXRFcnJvcik7XG4gICAgICB9LCB0aW1lb3V0SW5Ncyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { fromBase64 } from \"@aws-sdk/util-base64-browser\";\n//reference: https://snack.expo.io/r1JCSWRGU\nexport var streamCollector = function (stream) {\n if (typeof Blob === \"function\" && stream instanceof Blob) {\n return collectBlob(stream);\n }\n return collectStream(stream);\n};\nfunction collectBlob(blob) {\n return __awaiter(this, void 0, void 0, function () {\n var base64, arrayBuffer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, readToBase64(blob)];\n case 1:\n base64 = _a.sent();\n arrayBuffer = fromBase64(base64);\n return [2 /*return*/, new Uint8Array(arrayBuffer)];\n }\n });\n });\n}\nfunction collectStream(stream) {\n return __awaiter(this, void 0, void 0, function () {\n var res, reader, isDone, _a, done, value, prior;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n res = new Uint8Array(0);\n reader = stream.getReader();\n isDone = false;\n _b.label = 1;\n case 1:\n if (!!isDone) return [3 /*break*/, 3];\n return [4 /*yield*/, reader.read()];\n case 2:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (value) {\n prior = res;\n res = new Uint8Array(prior.length + value.length);\n res.set(prior);\n res.set(value, prior.length);\n }\n isDone = done;\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/, res];\n }\n });\n });\n}\nfunction readToBase64(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onloadend = function () {\n var _a;\n // reference: https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL\n // response from readAsDataURL is always prepended with \"data:*/*;base64,\"\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n var result = ((_a = reader.result) !== null && _a !== void 0 ? _a : \"\");\n // Response can include only 'data:' for empty blob, return empty string in this case.\n // Otherwise, return the string after ','\n var commaIndex = result.indexOf(\",\");\n var dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = function () { return reject(new Error(\"Read aborted\")); };\n reader.onerror = function () { return reject(reader.error); };\n // reader.readAsArrayBuffer is not always available\n reader.readAsDataURL(blob);\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLWNvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJlYW0tY29sbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFMUQsNENBQTRDO0FBQzVDLE1BQU0sQ0FBQyxJQUFNLGVBQWUsR0FBb0IsVUFBQyxNQUE2QjtJQUM1RSxJQUFJLE9BQU8sSUFBSSxLQUFLLFVBQVUsSUFBSSxNQUFNLFlBQVksSUFBSSxFQUFFO1FBQ3hELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzVCO0lBRUQsT0FBTyxhQUFhLENBQUMsTUFBd0IsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQztBQUVGLFNBQWUsV0FBVyxDQUFDLElBQVU7Ozs7O3dCQUNwQixxQkFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUE7O29CQUFqQyxNQUFNLEdBQUcsU0FBd0I7b0JBQ2pDLFdBQVcsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3ZDLHNCQUFPLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFDOzs7O0NBQ3BDO0FBRUQsU0FBZSxhQUFhLENBQUMsTUFBc0I7Ozs7OztvQkFDN0MsR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN0QixNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUM5QixNQUFNLEdBQUcsS0FBSyxDQUFDOzs7eUJBQ1osQ0FBQyxNQUFNO29CQUNZLHFCQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBQTs7b0JBQXJDLEtBQWtCLFNBQW1CLEVBQW5DLElBQUksVUFBQSxFQUFFLEtBQUssV0FBQTtvQkFDbkIsSUFBSSxLQUFLLEVBQUU7d0JBQ0gsS0FBSyxHQUFHLEdBQUcsQ0FBQzt3QkFDbEIsR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUNsRCxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNmLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDOUI7b0JBQ0QsTUFBTSxHQUFHLElBQUksQ0FBQzs7d0JBRWhCLHNCQUFPLEdBQUcsRUFBQzs7OztDQUNaO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBVTtJQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07UUFDakMsSUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsU0FBUyxHQUFHOztZQUNqQix1RkFBdUY7WUFDdkYsMEVBQTBFO1lBQzFFLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxDQUFDLEVBQUU7Z0JBQzNCLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQzthQUN0RDtZQUNELElBQU0sTUFBTSxHQUFHLE9BQUMsTUFBTSxDQUFDLE1BQU0sbUNBQUksRUFBRSxDQUFXLENBQUM7WUFDL0Msc0ZBQXNGO1lBQ3RGLHlDQUF5QztZQUN6QyxJQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQU0sVUFBVSxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNwRSxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQztRQUNGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFqQyxDQUFpQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQXBCLENBQW9CLENBQUM7UUFDNUMsbURBQW1EO1FBQ25ELE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RyZWFtQ29sbGVjdG9yIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0IH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYmFzZTY0LWJyb3dzZXJcIjtcblxuLy9yZWZlcmVuY2U6IGh0dHBzOi8vc25hY2suZXhwby5pby9yMUpDU1dSR1VcbmV4cG9ydCBjb25zdCBzdHJlYW1Db2xsZWN0b3I6IFN0cmVhbUNvbGxlY3RvciA9IChzdHJlYW06IEJsb2IgfCBSZWFkYWJsZVN0cmVhbSk6IFByb21pc2U8VWludDhBcnJheT4gPT4ge1xuICBpZiAodHlwZW9mIEJsb2IgPT09IFwiZnVuY3Rpb25cIiAmJiBzdHJlYW0gaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgcmV0dXJuIGNvbGxlY3RCbG9iKHN0cmVhbSk7XG4gIH1cblxuICByZXR1cm4gY29sbGVjdFN0cmVhbShzdHJlYW0gYXMgUmVhZGFibGVTdHJlYW0pO1xufTtcblxuYXN5bmMgZnVuY3Rpb24gY29sbGVjdEJsb2IoYmxvYjogQmxvYik6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCBiYXNlNjQgPSBhd2FpdCByZWFkVG9CYXNlNjQoYmxvYik7XG4gIGNvbnN0IGFycmF5QnVmZmVyID0gZnJvbUJhc2U2NChiYXNlNjQpO1xuICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjb2xsZWN0U3RyZWFtKHN0cmVhbTogUmVhZGFibGVTdHJlYW0pOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgbGV0IHJlcyA9IG5ldyBVaW50OEFycmF5KDApO1xuICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7XG4gIGxldCBpc0RvbmUgPSBmYWxzZTtcbiAgd2hpbGUgKCFpc0RvbmUpIHtcbiAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgcHJpb3IgPSByZXM7XG4gICAgICByZXMgPSBuZXcgVWludDhBcnJheShwcmlvci5sZW5ndGggKyB2YWx1ZS5sZW5ndGgpO1xuICAgICAgcmVzLnNldChwcmlvcik7XG4gICAgICByZXMuc2V0KHZhbHVlLCBwcmlvci5sZW5ndGgpO1xuICAgIH1cbiAgICBpc0RvbmUgPSBkb25lO1xuICB9XG4gIHJldHVybiByZXM7XG59XG5cbmZ1bmN0aW9uIHJlYWRUb0Jhc2U2NChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiB7XG4gICAgICAvLyByZWZlcmVuY2U6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GaWxlUmVhZGVyL3JlYWRBc0RhdGFVUkxcbiAgICAgIC8vIHJlc3BvbnNlIGZyb20gcmVhZEFzRGF0YVVSTCBpcyBhbHdheXMgcHJlcGVuZGVkIHdpdGggXCJkYXRhOiovKjtiYXNlNjQsXCJcbiAgICAgIGlmIChyZWFkZXIucmVhZHlTdGF0ZSAhPT0gMikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBFcnJvcihcIlJlYWRlciBhYm9ydGVkIHRvbyBlYXJseVwiKSk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXN1bHQgPSAocmVhZGVyLnJlc3VsdCA/PyBcIlwiKSBhcyBzdHJpbmc7XG4gICAgICAvLyBSZXNwb25zZSBjYW4gaW5jbHVkZSBvbmx5ICdkYXRhOicgZm9yIGVtcHR5IGJsb2IsIHJldHVybiBlbXB0eSBzdHJpbmcgaW4gdGhpcyBjYXNlLlxuICAgICAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHN0cmluZyBhZnRlciAnLCdcbiAgICAgIGNvbnN0IGNvbW1hSW5kZXggPSByZXN1bHQuaW5kZXhPZihcIixcIik7XG4gICAgICBjb25zdCBkYXRhT2Zmc2V0ID0gY29tbWFJbmRleCA+IC0xID8gY29tbWFJbmRleCArIDEgOiByZXN1bHQubGVuZ3RoO1xuICAgICAgcmVzb2x2ZShyZXN1bHQuc3Vic3RyaW5nKGRhdGFPZmZzZXQpKTtcbiAgICB9O1xuICAgIHJlYWRlci5vbmFib3J0ID0gKCkgPT4gcmVqZWN0KG5ldyBFcnJvcihcIlJlYWQgYWJvcnRlZFwiKSk7XG4gICAgcmVhZGVyLm9uZXJyb3IgPSAoKSA9PiByZWplY3QocmVhZGVyLmVycm9yKTtcbiAgICAvLyByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIgaXMgbm90IGFsd2F5cyBhdmFpbGFibGVcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKTtcbiAgfSk7XG59XG4iXX0=","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __awaiter, __generator } from \"tslib\";\nexport var resolveEndpointsConfig = function (input) {\n var _a;\n return (__assign(__assign({}, input), { tls: (_a = input.tls) !== null && _a !== void 0 ? _a : true, endpoint: input.endpoint ? normalizeEndpoint(input) : function () { return getEndPointFromRegion(input); }, isCustomEndpoint: input.endpoint ? true : false }));\n};\nvar normalizeEndpoint = function (input) {\n var endpoint = input.endpoint, urlParser = input.urlParser;\n if (typeof endpoint === \"string\") {\n var promisified_1 = Promise.resolve(urlParser(endpoint));\n return function () { return promisified_1; };\n }\n else if (typeof endpoint === \"object\") {\n var promisified_2 = Promise.resolve(endpoint);\n return function () { return promisified_2; };\n }\n return endpoint;\n};\nvar getEndPointFromRegion = function (input) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, tls, region, dnsHostRegex, hostname;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = input.tls, tls = _a === void 0 ? true : _a;\n return [4 /*yield*/, input.region()];\n case 1:\n region = _c.sent();\n dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n return [4 /*yield*/, input.regionInfoProvider(region)];\n case 2:\n hostname = ((_b = (_c.sent())) !== null && _b !== void 0 ? _b : {}).hostname;\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n return [2 /*return*/, input.urlParser((tls ? \"https:\" : \"http:\") + \"//\" + hostname)];\n }\n });\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5kcG9pbnRzQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0VuZHBvaW50c0NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBeUJBLE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHLFVBQ3BDLEtBQW9EOztJQUNwQixPQUFBLHVCQUM3QixLQUFLLEtBQ1IsR0FBRyxRQUFFLEtBQUssQ0FBQyxHQUFHLG1DQUFJLElBQUksRUFDdEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFNLE9BQUEscUJBQXFCLENBQUMsS0FBSyxDQUFDLEVBQTVCLENBQTRCLEVBQ3hGLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUMvQyxDQUFBO0NBQUEsQ0FBQztBQUVILElBQU0saUJBQWlCLEdBQUcsVUFBQyxLQUFnRDtJQUNqRSxJQUFBLFFBQVEsR0FBZ0IsS0FBSyxTQUFyQixFQUFFLFNBQVMsR0FBSyxLQUFLLFVBQVYsQ0FBVztJQUN0QyxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtRQUNoQyxJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7U0FBTSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtRQUN2QyxJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLFFBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixJQUFNLHFCQUFxQixHQUFHLFVBQU8sS0FBZ0Q7Ozs7OztnQkFDM0UsS0FBZSxLQUFLLElBQVYsRUFBVixHQUFHLG1CQUFHLElBQUksS0FBQSxDQUFXO2dCQUNkLHFCQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBQTs7Z0JBQTdCLE1BQU0sR0FBRyxTQUFvQjtnQkFFN0IsWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLDBEQUEwRCxDQUFDLENBQUM7Z0JBQzVGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7aUJBQ3BEO2dCQUVxQixxQkFBTSxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUE7O2dCQUFwRCxRQUFRLFVBQUssQ0FBQyxTQUFzQyxDQUFDLG1DQUFJLEVBQUUsVUFBbkQ7Z0JBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO2lCQUMvRDtnQkFFRCxzQkFBTyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sV0FBSyxRQUFVLENBQUMsRUFBQzs7O0tBQ3BFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludCwgUHJvdmlkZXIsIFJlZ2lvbkluZm9Qcm92aWRlciwgVXJsUGFyc2VyIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnRzSW5wdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIGZ1bGx5IHF1YWxpZmllZCBlbmRwb2ludCBvZiB0aGUgd2Vic2VydmljZS4gVGhpcyBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgYSBjdXN0b20gZW5kcG9pbnQgKGZvciBleGFtcGxlLCB3aGVuIHVzaW5nIGEgbG9jYWwgdmVyc2lvbiBvZiBTMykuXG4gICAqL1xuICBlbmRwb2ludD86IHN0cmluZyB8IEVuZHBvaW50IHwgUHJvdmlkZXI8RW5kcG9pbnQ+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIFRMUyBpcyBlbmFibGVkIGZvciByZXF1ZXN0cy5cbiAgICovXG4gIHRscz86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICByZWdpb25JbmZvUHJvdmlkZXI6IFJlZ2lvbkluZm9Qcm92aWRlcjtcbiAgdXJsUGFyc2VyOiBVcmxQYXJzZXI7XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludHNSZXNvbHZlZENvbmZpZyBleHRlbmRzIFJlcXVpcmVkPEVuZHBvaW50c0lucHV0Q29uZmlnPiB7XG4gIGVuZHBvaW50OiBQcm92aWRlcjxFbmRwb2ludD47XG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlRW5kcG9pbnRzQ29uZmlnID0gPFQ+KFxuICBpbnB1dDogVCAmIEVuZHBvaW50c0lucHV0Q29uZmlnICYgUHJldmlvdXNseVJlc29sdmVkXG4pOiBUICYgRW5kcG9pbnRzUmVzb2x2ZWRDb25maWcgPT4gKHtcbiAgLi4uaW5wdXQsXG4gIHRsczogaW5wdXQudGxzID8/IHRydWUsXG4gIGVuZHBvaW50OiBpbnB1dC5lbmRwb2ludCA/IG5vcm1hbGl6ZUVuZHBvaW50KGlucHV0KSA6ICgpID0+IGdldEVuZFBvaW50RnJvbVJlZ2lvbihpbnB1dCksXG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGlucHV0LmVuZHBvaW50ID8gdHJ1ZSA6IGZhbHNlLFxufSk7XG5cbmNvbnN0IG5vcm1hbGl6ZUVuZHBvaW50ID0gKGlucHV0OiBFbmRwb2ludHNJbnB1dENvbmZpZyAmIFByZXZpb3VzbHlSZXNvbHZlZCk6IFByb3ZpZGVyPEVuZHBvaW50PiA9PiB7XG4gIGNvbnN0IHsgZW5kcG9pbnQsIHVybFBhcnNlciB9ID0gaW5wdXQ7XG4gIGlmICh0eXBlb2YgZW5kcG9pbnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBwcm9taXNpZmllZCA9IFByb21pc2UucmVzb2x2ZSh1cmxQYXJzZXIoZW5kcG9pbnQpKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVuZHBvaW50ID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUoZW5kcG9pbnQpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfVxuICByZXR1cm4gZW5kcG9pbnQhO1xufTtcblxuY29uc3QgZ2V0RW5kUG9pbnRGcm9tUmVnaW9uID0gYXN5bmMgKGlucHV0OiBFbmRwb2ludHNJbnB1dENvbmZpZyAmIFByZXZpb3VzbHlSZXNvbHZlZCkgPT4ge1xuICBjb25zdCB7IHRscyA9IHRydWUgfSA9IGlucHV0O1xuICBjb25zdCByZWdpb24gPSBhd2FpdCBpbnB1dC5yZWdpb24oKTtcblxuICBjb25zdCBkbnNIb3N0UmVnZXggPSBuZXcgUmVnRXhwKC9eKFthLXpBLVowLTldfFthLXpBLVowLTldW2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pJC8pO1xuICBpZiAoIWRuc0hvc3RSZWdleC50ZXN0KHJlZ2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHJlZ2lvbiBpbiBjbGllbnQgY29uZmlnXCIpO1xuICB9XG5cbiAgY29uc3QgeyBob3N0bmFtZSB9ID0gKGF3YWl0IGlucHV0LnJlZ2lvbkluZm9Qcm92aWRlcihyZWdpb24pKSA/PyB7fTtcbiAgaWYgKCFob3N0bmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCByZXNvbHZlIGhvc3RuYW1lIGZyb20gY2xpZW50IGNvbmZpZ1wiKTtcbiAgfVxuXG4gIHJldHVybiBpbnB1dC51cmxQYXJzZXIoYCR7dGxzID8gXCJodHRwczpcIiA6IFwiaHR0cDpcIn0vLyR7aG9zdG5hbWV9YCk7XG59O1xuIl19","import { __assign } from \"tslib\";\nexport var REGION_ENV_NAME = \"AWS_REGION\";\nexport var REGION_INI_NAME = \"region\";\nexport var NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) { return env[REGION_ENV_NAME]; },\n configFileSelector: function (profile) { return profile[REGION_INI_NAME]; },\n default: function () {\n throw new Error(\"Region is missing\");\n },\n};\nexport var NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\",\n};\nexport var resolveRegionConfig = function (input) {\n if (!input.region) {\n throw new Error(\"Region is missing\");\n }\n return __assign(__assign({}, input), { region: normalizeRegion(input.region) });\n};\nvar normalizeRegion = function (region) {\n if (typeof region === \"string\") {\n var promisified_1 = Promise.resolve(region);\n return function () { return promisified_1; };\n }\n return region;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaW9uQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JlZ2lvbkNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBR0EsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLFlBQVksQ0FBQztBQUM1QyxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxJQUFNLDBCQUEwQixHQUFrQztJQUN2RSwyQkFBMkIsRUFBRSxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBcEIsQ0FBb0I7SUFDMUQsa0JBQWtCLEVBQUUsVUFBQyxPQUFPLElBQUssT0FBQSxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQXhCLENBQXdCO0lBQ3pELE9BQU8sRUFBRTtRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLCtCQUErQixHQUF1QjtJQUNqRSxhQUFhLEVBQUUsYUFBYTtDQUM3QixDQUFDO0FBZUYsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsVUFBSSxLQUFpRDtJQUN0RixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDdEM7SUFDRCw2QkFDSyxLQUFLLEtBQ1IsTUFBTSxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTyxDQUFDLElBQ3RDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsSUFBTSxlQUFlLEdBQUcsVUFBQyxNQUFpQztJQUN4RCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLE1BQTBCLENBQUM7QUFDcEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9hZGVkQ29uZmlnU2VsZWN0b3JzLCBMb2NhbENvbmZpZ09wdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvbm9kZS1jb25maWctcHJvdmlkZXJcIjtcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBSRUdJT05fRU5WX05BTUUgPSBcIkFXU19SRUdJT05cIjtcbmV4cG9ydCBjb25zdCBSRUdJT05fSU5JX05BTUUgPSBcInJlZ2lvblwiO1xuXG5leHBvcnQgY29uc3QgTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlM6IExvYWRlZENvbmZpZ1NlbGVjdG9yczxzdHJpbmc+ID0ge1xuICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IGVudltSRUdJT05fRU5WX05BTUVdLFxuICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiBwcm9maWxlW1JFR0lPTl9JTklfTkFNRV0sXG4gIGRlZmF1bHQ6ICgpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWdpb24gaXMgbWlzc2luZ1wiKTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TOiBMb2NhbENvbmZpZ09wdGlvbnMgPSB7XG4gIHByZWZlcnJlZEZpbGU6IFwiY3JlZGVudGlhbHNcIixcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uSW5wdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIEFXUyByZWdpb24gdG8gd2hpY2ggdGhpcyBjbGllbnQgd2lsbCBzZW5kIHJlcXVlc3RzXG4gICAqL1xuICByZWdpb24/OiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+O1xufVxuXG5pbnRlcmZhY2UgUHJldmlvdXNseVJlc29sdmVkIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uUmVzb2x2ZWRDb25maWcge1xuICByZWdpb246IFByb3ZpZGVyPHN0cmluZz47XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlUmVnaW9uQ29uZmlnID0gPFQ+KGlucHV0OiBUICYgUmVnaW9uSW5wdXRDb25maWcgJiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBUICYgUmVnaW9uUmVzb2x2ZWRDb25maWcgPT4ge1xuICBpZiAoIWlucHV0LnJlZ2lvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlJlZ2lvbiBpcyBtaXNzaW5nXCIpO1xuICB9XG4gIHJldHVybiB7XG4gICAgLi4uaW5wdXQsXG4gICAgcmVnaW9uOiBub3JtYWxpemVSZWdpb24oaW5wdXQucmVnaW9uISksXG4gIH07XG59O1xuXG5jb25zdCBub3JtYWxpemVSZWdpb24gPSAocmVnaW9uOiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+KTogUHJvdmlkZXI8c3RyaW5nPiA9PiB7XG4gIGlmICh0eXBlb2YgcmVnaW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUocmVnaW9uKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH1cbiAgcmV0dXJuIHJlZ2lvbiBhcyBQcm92aWRlcjxzdHJpbmc+O1xufTtcbiJdfQ==","import { AuthenticationType, SecurityLevel } from './LocalAuthentication.types';\n\nexport default {\n get name(): string {\n return 'ExpoLocalAuthentication';\n },\n async hasHardwareAsync(): Promise {\n return false;\n },\n async isEnrolledAsync(): Promise {\n return false;\n },\n async getEnrolledLevelAsync(): Promise {\n return SecurityLevel.NONE;\n },\n async supportedAuthenticationTypesAsync(): Promise {\n return [];\n },\n};\n","import { UnavailabilityError } from 'expo-modules-core';\nimport invariant from 'invariant';\n\nimport ExpoLocalAuthentication from './ExpoLocalAuthentication';\nimport {\n LocalAuthenticationOptions,\n AuthenticationType,\n LocalAuthenticationResult,\n SecurityLevel,\n} from './LocalAuthentication.types';\n\nexport { LocalAuthenticationOptions, AuthenticationType, LocalAuthenticationResult, SecurityLevel };\n\n// @needsAudit\n/**\n * Determine whether a face or fingerprint scanner is available on the device.\n * @return Returns a promise which fulfils with a `boolean` value indicating whether a face or\n * fingerprint scanner is available on this device.\n */\nexport async function hasHardwareAsync(): Promise {\n if (!ExpoLocalAuthentication.hasHardwareAsync) {\n throw new UnavailabilityError('expo-local-authentication', 'hasHardwareAsync');\n }\n return await ExpoLocalAuthentication.hasHardwareAsync();\n}\n\n// @needsAudit\n/**\n * Determine what kinds of authentications are available on the device.\n * @return Returns a promise which fulfils to an array containing [`AuthenticationType`s](#authenticationtype).\n *\n * Devices can support multiple authentication methods- i.e. `[1,2]` means the device supports both\n * fingerprint and facial recognition. If none are supported, this method returns an empty array.\n */\nexport async function supportedAuthenticationTypesAsync(): Promise {\n if (!ExpoLocalAuthentication.supportedAuthenticationTypesAsync) {\n throw new UnavailabilityError('expo-local-authentication', 'supportedAuthenticationTypesAsync');\n }\n return await ExpoLocalAuthentication.supportedAuthenticationTypesAsync();\n}\n\n// @needsAudit\n/**\n * Determine whether the device has saved fingerprints or facial data to use for authentication.\n * @return Returns a promise which fulfils to `boolean` value indicating whether the device has\n * saved fingerprints or facial data for authentication.\n */\nexport async function isEnrolledAsync(): Promise {\n if (!ExpoLocalAuthentication.isEnrolledAsync) {\n throw new UnavailabilityError('expo-local-authentication', 'isEnrolledAsync');\n }\n return await ExpoLocalAuthentication.isEnrolledAsync();\n}\n\n// @needsAudit\n/**\n * Determine what kind of authentication is enrolled on the device.\n * @return Returns a promise which fulfils with [`SecurityLevel`](#securitylevel).\n * > **Note:** On Android devices prior to M, `SECRET` can be returned if only the SIM lock has been\n * enrolled, which is not the method that [`authenticateAsync`](#localauthenticationauthenticateasyncoptions)\n * prompts.\n */\nexport async function getEnrolledLevelAsync(): Promise {\n if (!ExpoLocalAuthentication.getEnrolledLevelAsync) {\n throw new UnavailabilityError('expo-local-authentication', 'getEnrolledLevelAsync');\n }\n return await ExpoLocalAuthentication.getEnrolledLevelAsync();\n}\n\n// @needsAudit\n/**\n * Attempts to authenticate via Fingerprint/TouchID (or FaceID if available on the device).\n * > **Note:** Apple requires apps which use FaceID to provide a description of why they use this API.\n * If you try to use FaceID on an iPhone with FaceID without providing `infoPlist.NSFaceIDUsageDescription`\n * in `app.json`, the module will authenticate using device passcode. For more information about\n * usage descriptions on iOS, see [permissions guide](/guides/permissions/#ios).\n * @param options\n * @return Returns a promise which fulfils with [`LocalAuthenticationResult`](#localauthenticationresult).\n */\nexport async function authenticateAsync(\n options: LocalAuthenticationOptions = {}\n): Promise {\n if (!ExpoLocalAuthentication.authenticateAsync) {\n throw new UnavailabilityError('expo-local-authentication', 'authenticateAsync');\n }\n\n if (options.hasOwnProperty('promptMessage')) {\n invariant(\n typeof options.promptMessage === 'string' && options.promptMessage.length,\n 'LocalAuthentication.authenticateAsync : `options.promptMessage` must be a non-empty string.'\n );\n }\n\n const promptMessage = options.promptMessage || 'Authenticate';\n const result = await ExpoLocalAuthentication.authenticateAsync({ ...options, promptMessage });\n\n return result;\n}\n\n// @needsAudit\n/**\n * Cancels authentication flow.\n * @platform android\n */\nexport async function cancelAuthenticate(): Promise {\n if (!ExpoLocalAuthentication.cancelAuthenticate) {\n throw new UnavailabilityError('expo-local-authentication', 'cancelAuthenticate');\n }\n await ExpoLocalAuthentication.cancelAuthenticate();\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n return input;\n}\nexport var hostHeaderMiddleware = function (options) { return function (next) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, _a, handlerProtocol;\n return __generator(this, function (_b) {\n if (!HttpRequest.isInstance(args.request))\n return [2 /*return*/, next(args)];\n request = args.request;\n _a = (options.requestHandler.metadata || {}).handlerProtocol, handlerProtocol = _a === void 0 ? \"\" : _a;\n //For H2 request, remove 'host' header and use ':authority' header instead\n //reference: https://nodejs.org/dist/latest-v13.x/docs/api/errors.html#ERR_HTTP2_INVALID_CONNECTION_HEADERS\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = \"\";\n //non-H2 request and 'host' header is not set, set the 'host' header to request's hostname.\n }\n else if (!request.headers[\"host\"]) {\n request.headers[\"host\"] = request.hostname;\n }\n return [2 /*return*/, next(args)];\n });\n}); }; }; };\nexport var hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nexport var getHostHeaderPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVVyRCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLEtBQXFEO0lBRXJELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLFVBQ2xDLE9BQWlDLElBQ0UsT0FBQSxVQUFDLElBQUksSUFBSyxPQUFBLFVBQU8sSUFBSTs7O1FBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFBRSxzQkFBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUM7UUFDckQsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFVO1FBQ2pCLEtBQXlCLENBQUEsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFBLGdCQUExQyxFQUFwQixlQUFlLG1CQUFHLEVBQUUsS0FBQSxDQUEyQztRQUN2RSwwRUFBMEU7UUFDMUUsMkdBQTJHO1FBQzNHLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMvQixPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNuQywyRkFBMkY7U0FDNUY7YUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDNUM7UUFDRCxzQkFBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUM7O0tBQ25CLEVBZDhDLENBYzlDLEVBZG9DLENBY3BDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSwyQkFBMkIsR0FBMkM7SUFDakYsSUFBSSxFQUFFLHNCQUFzQjtJQUM1QixJQUFJLEVBQUUsT0FBTztJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ2QsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsVUFBQyxPQUFpQyxJQUEwQixPQUFBLENBQUM7SUFDOUYsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNGLENBQUMsRUFKNkYsQ0FJN0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IEFic29sdXRlTG9jYXRpb24sIEJ1aWxkSGFuZGxlck9wdGlvbnMsIEJ1aWxkTWlkZGxld2FyZSwgUGx1Z2dhYmxlLCBSZXF1ZXN0SGFuZGxlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RIZWFkZXJJbnB1dENvbmZpZyB7fVxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlcjxhbnksIGFueT47XG59XG5leHBvcnQgaW50ZXJmYWNlIEhvc3RIZWFkZXJSZXNvbHZlZENvbmZpZyB7XG4gIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlcjxhbnksIGFueT47XG59XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWc8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgSG9zdEhlYWRlcklucHV0Q29uZmlnXG4pOiBUICYgSG9zdEhlYWRlclJlc29sdmVkQ29uZmlnIHtcbiAgcmV0dXJuIGlucHV0O1xufVxuXG5leHBvcnQgY29uc3QgaG9zdEhlYWRlck1pZGRsZXdhcmUgPSA8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCBleHRlbmRzIG9iamVjdD4oXG4gIG9wdGlvbnM6IEhvc3RIZWFkZXJSZXNvbHZlZENvbmZpZ1xuKTogQnVpbGRNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+ID0+IChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoYXJncy5yZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgY29uc3QgeyBoYW5kbGVyUHJvdG9jb2wgPSBcIlwiIH0gPSBvcHRpb25zLnJlcXVlc3RIYW5kbGVyLm1ldGFkYXRhIHx8IHt9O1xuICAvL0ZvciBIMiByZXF1ZXN0LCByZW1vdmUgJ2hvc3QnIGhlYWRlciBhbmQgdXNlICc6YXV0aG9yaXR5JyBoZWFkZXIgaW5zdGVhZFxuICAvL3JlZmVyZW5jZTogaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QvbGF0ZXN0LXYxMy54L2RvY3MvYXBpL2Vycm9ycy5odG1sI0VSUl9IVFRQMl9JTlZBTElEX0NPTk5FQ1RJT05fSEVBREVSU1xuICBpZiAoaGFuZGxlclByb3RvY29sLmluZGV4T2YoXCJoMlwiKSA+PSAwICYmICFyZXF1ZXN0LmhlYWRlcnNbXCI6YXV0aG9yaXR5XCJdKSB7XG4gICAgZGVsZXRlIHJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl07XG4gICAgcmVxdWVzdC5oZWFkZXJzW1wiOmF1dGhvcml0eVwiXSA9IFwiXCI7XG4gICAgLy9ub24tSDIgcmVxdWVzdCBhbmQgJ2hvc3QnIGhlYWRlciBpcyBub3Qgc2V0LCBzZXQgdGhlICdob3N0JyBoZWFkZXIgdG8gcmVxdWVzdCdzIGhvc3RuYW1lLlxuICB9IGVsc2UgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJob3N0XCJdKSB7XG4gICAgcmVxdWVzdC5oZWFkZXJzW1wiaG9zdFwiXSA9IHJlcXVlc3QuaG9zdG5hbWU7XG4gIH1cbiAgcmV0dXJuIG5leHQoYXJncyk7XG59O1xuXG5leHBvcnQgY29uc3QgaG9zdEhlYWRlck1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvbiA9IHtcbiAgbmFtZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHByaW9yaXR5OiBcImxvd1wiLFxuICB0YWdzOiBbXCJIT1NUXCJdLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIb3N0SGVhZGVyUGx1Z2luID0gKG9wdGlvbnM6IEhvc3RIZWFkZXJSZXNvbHZlZENvbmZpZyk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQoaG9zdEhlYWRlck1pZGRsZXdhcmUob3B0aW9ucyksIGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","const pick = (obj, ...keys) =>\n keys\n .flat()\n .filter(key => Object.prototype.hasOwnProperty.call(obj, key))\n .reduce((acc, key) => {\n acc[key] = obj[key];\n return acc;\n }, {});\n\nconst omit = (obj, ...keysToOmit) => {\n const keysToOmitSet = new Set(keysToOmit.flat());\n return Object.getOwnPropertyNames(obj)\n .filter(key => !keysToOmitSet.has(key))\n .reduce((acc, key) => {\n acc[key] = obj[key];\n return acc;\n }, {});\n};\n\nmodule.exports = { pick, omit };\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","import { useCallback } from 'react';\nimport { useAnimatedStyle } from './useAnimatedStyle';\n// TODO: we should make sure that when useAP is used we are not assigning styles\n// when you need styles to animated you should always use useAS\nexport const useAnimatedProps = useAnimatedStyle;\nexport function useWorkletCallback(fun, deps) {\n return useCallback(fun, deps !== null && deps !== void 0 ? deps : []);\n}\nexport { useEvent, useHandler } from './utils';\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","import invariant from 'invariant';\nimport ReanimatedEventEmitter from '../../ReanimatedEventEmitter';\nimport { val } from '../val';\nimport AnimatedNode from './AnimatedNode';\n\nconst NODE_MAPPING = new Map();\n\nfunction listener(data) {\n const node = NODE_MAPPING.get(data.id);\n node && node._callback(data.args);\n}\n\nclass AnimatedCall extends AnimatedNode {\n _callback;\n _args;\n\n constructor(args, jsFunction) {\n invariant(\n args.every((el) => el instanceof AnimatedNode),\n `Reanimated: Animated.call node args should be an array with elements of type AnimatedNode. One or more of them are not AnimatedNodes`\n );\n super({ type: 'call', input: args }, args);\n this._callback = jsFunction;\n this._args = args;\n }\n\n toString() {\n return `AnimatedCall, id: ${this.__nodeID}`;\n }\n\n __attach() {\n super.__attach();\n NODE_MAPPING.set(this.__nodeID, this);\n if (NODE_MAPPING.size === 1) {\n ReanimatedEventEmitter.addListener('onReanimatedCall', listener);\n }\n }\n\n __detach() {\n NODE_MAPPING.delete(this.__nodeID);\n if (NODE_MAPPING.size === 0) {\n ReanimatedEventEmitter.removeAllListeners('onReanimatedCall');\n }\n super.__detach();\n }\n\n __onEvaluate() {\n this._callback(this._args.map(val));\n return 0;\n }\n}\n\nexport function createAnimatedCall(args, func) {\n return new AnimatedCall(args, func);\n}\n","export type LocalAuthenticationResult =\n | { success: true }\n | { success: false; error: string; warning?: string };\n\n// @needsAudit\nexport enum AuthenticationType {\n /**\n * Indicates fingerprint support.\n */\n FINGERPRINT = 1,\n /**\n * Indicates facial recognition support.\n */\n FACIAL_RECOGNITION = 2,\n /**\n * Indicates iris recognition support.\n * @platform android\n */\n IRIS = 3,\n}\n\n// @needsAudit\nexport enum SecurityLevel {\n /**\n * Indicates no enrolled authentication.\n */\n NONE = 0,\n /**\n * Indicates non-biometric authentication (e.g. PIN, Pattern).\n */\n SECRET = 1,\n /**\n * Indicates biometric authentication.\n */\n BIOMETRIC = 2,\n}\n\n// @needsAudit\nexport type LocalAuthenticationOptions = {\n /**\n * A message that is shown alongside the TouchID or FaceID prompt.\n */\n promptMessage?: string;\n /**\n * Allows to customize the default `Cancel` label shown.\n */\n cancelLabel?: string;\n /**\n * After several failed attempts the system will fallback to the device passcode. This setting\n * allows you to disable this option and instead handle the fallback yourself. This can be\n * preferable in certain custom authentication workflows. This behaviour maps to using the iOS\n * [LAPolicyDeviceOwnerAuthenticationWithBiometrics](https://developer.apple.com/documentation/localauthentication/lapolicy/lapolicydeviceownerauthenticationwithbiometrics?language=objc)\n * policy rather than the [LAPolicyDeviceOwnerAuthentication](https://developer.apple.com/documentation/localauthentication/lapolicy/lapolicydeviceownerauthentication?language=objc)\n * policy. Defaults to `false`.\n */\n disableDeviceFallback?: boolean;\n /**\n * Sets a hint to the system for whether to require user confirmation after authentication.\n * This may be ignored by the system if the user has disabled implicit authentication in Settings\n * or if it does not apply to a particular biometric modality. Defaults to `true`.\n * @platform android\n */\n requireConfirmation?: boolean;\n /**\n * Allows to customize the default `Use Passcode` label shown after several failed\n * authentication attempts. Setting this option to an empty string disables this button from\n * showing in the prompt.\n * @platform ios\n */\n fallbackLabel?: string;\n};\n","declare global {\n // Add IE-specific interface to Window\n interface Window {\n attachEvent(event: string, listener: EventListener): boolean;\n }\n}\n\n// Used for delegating node actions when browser APIs aren't available\n// like in SSR websites.\nexport const isDOMAvailable = typeof window !== 'undefined' && !!window.document?.createElement;\nexport const canUseEventListeners =\n isDOMAvailable && !!(window.addEventListener || window.attachEvent);\nexport const canUseViewport = isDOMAvailable && !!window.screen;\nexport const isAsyncDebugging = false;\n","import { Platform as ReactNativePlatform, PlatformOSType } from 'react-native';\n\nimport {\n isDOMAvailable,\n canUseEventListeners,\n canUseViewport,\n isAsyncDebugging,\n} from './environment/browser';\n\nexport type PlatformSelectOSType = PlatformOSType | 'native' | 'electron' | 'default';\n\nexport type PlatformSelect = (specifics: { [platform in PlatformSelectOSType]?: T }) => T;\n\nconst Platform = {\n /**\n * Denotes the currently running platform.\n * Can be one of ios, android, web.\n */\n OS: ReactNativePlatform.OS,\n /**\n * Returns the value with the matching platform.\n * Object keys can be any of ios, android, native, web, default.\n *\n * @ios ios, native, default\n * @android android, native, default\n * @web web, default\n */\n select: ReactNativePlatform.select as PlatformSelect,\n /**\n * Denotes if the DOM API is available in the current environment.\n * The DOM is not available in native React runtimes and Node.js.\n */\n isDOMAvailable,\n /**\n * Denotes if the current environment can attach event listeners\n * to the window. This will return false in native React\n * runtimes and Node.js.\n */\n canUseEventListeners,\n /**\n * Denotes if the current environment can inspect properties of the\n * screen on which the current window is being rendered. This will\n * return false in native React runtimes and Node.js.\n */\n canUseViewport,\n /**\n * If the JavaScript is being executed in a remote JavaScript environment.\n * When `true`, synchronous native invocations cannot be executed.\n */\n isAsyncDebugging,\n};\n\nexport default Platform;\n","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","import { maybe } from \"./maybe.js\";\nexport default (maybe(function () { return globalThis; }) ||\n maybe(function () { return window; }) ||\n maybe(function () { return self; }) ||\n maybe(function () { return global; }) ||\n maybe(function () { return Function(\"return this\")(); }));\n//# sourceMappingURL=global.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = exports.Crc32 = exports.crc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nfunction crc32(data) {\n return new Crc32().update(data).digest();\n}\nexports.crc32 = crc32;\nvar Crc32 = /** @class */ (function () {\n function Crc32() {\n this.checksum = 0xffffffff;\n }\n Crc32.prototype.update = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = (0, tslib_1.__values)(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Crc32.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n return Crc32;\n}());\nexports.Crc32 = Crc32;\n// prettier-ignore\nvar a_lookUpTable = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nvar lookupTable = (0, util_1.uint32ArrayFrom)(a_lookUpTable);\nvar aws_crc32_1 = require(\"./aws_crc32\");\nObject.defineProperty(exports, \"AwsCrc32\", { enumerable: true, get: function () { return aws_crc32_1.AwsCrc32; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHlDQUFpRDtBQUVqRCxTQUFnQixLQUFLLENBQUMsSUFBZ0I7SUFDcEMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUMzQyxDQUFDO0FBRkQsc0JBRUM7QUFFRDtJQUFBO1FBQ1UsYUFBUSxHQUFHLFVBQVUsQ0FBQztJQWNoQyxDQUFDO0lBWkMsc0JBQU0sR0FBTixVQUFPLElBQWdCOzs7WUFDckIsS0FBbUIsSUFBQSxTQUFBLHNCQUFBLElBQUksQ0FBQSwwQkFBQSw0Q0FBRTtnQkFBcEIsSUFBTSxJQUFJLGlCQUFBO2dCQUNiLElBQUksQ0FBQyxRQUFRO29CQUNYLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQ3RFOzs7Ozs7Ozs7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxzQkFBTSxHQUFOO1FBQ0UsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDSCxZQUFDO0FBQUQsQ0FBQyxBQWZELElBZUM7QUFmWSxzQkFBSztBQWlCbEIsa0JBQWtCO0FBQ2xCLElBQU0sYUFBYSxHQUFHO0lBQ3BCLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7Q0FDL0MsQ0FBQztBQUNGLElBQU0sV0FBVyxHQUFnQixJQUFBLHNCQUFlLEVBQUMsYUFBYSxDQUFDLENBQUE7QUFDL0QseUNBQXVDO0FBQTlCLHFHQUFBLFFBQVEsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dWludDMyQXJyYXlGcm9tfSBmcm9tIFwiQGF3cy1jcnlwdG8vdXRpbFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JjMzIoZGF0YTogVWludDhBcnJheSk6IG51bWJlciB7XG4gIHJldHVybiBuZXcgQ3JjMzIoKS51cGRhdGUoZGF0YSkuZGlnZXN0KCk7XG59XG5cbmV4cG9ydCBjbGFzcyBDcmMzMiB7XG4gIHByaXZhdGUgY2hlY2tzdW0gPSAweGZmZmZmZmZmO1xuXG4gIHVwZGF0ZShkYXRhOiBVaW50OEFycmF5KTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBieXRlIG9mIGRhdGEpIHtcbiAgICAgIHRoaXMuY2hlY2tzdW0gPVxuICAgICAgICAodGhpcy5jaGVja3N1bSA+Pj4gOCkgXiBsb29rdXBUYWJsZVsodGhpcy5jaGVja3N1bSBeIGJ5dGUpICYgMHhmZl07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkaWdlc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMuY2hlY2tzdW0gXiAweGZmZmZmZmZmKSA+Pj4gMDtcbiAgfVxufVxuXG4vLyBwcmV0dGllci1pZ25vcmVcbmNvbnN0IGFfbG9va1VwVGFibGUgPSBbXG4gIDB4MDAwMDAwMDAsIDB4NzcwNzMwOTYsIDB4RUUwRTYxMkMsIDB4OTkwOTUxQkEsXG4gIDB4MDc2REM0MTksIDB4NzA2QUY0OEYsIDB4RTk2M0E1MzUsIDB4OUU2NDk1QTMsXG4gIDB4MEVEQjg4MzIsIDB4NzlEQ0I4QTQsIDB4RTBENUU5MUUsIDB4OTdEMkQ5ODgsXG4gIDB4MDlCNjRDMkIsIDB4N0VCMTdDQkQsIDB4RTdCODJEMDcsIDB4OTBCRjFEOTEsXG4gIDB4MURCNzEwNjQsIDB4NkFCMDIwRjIsIDB4RjNCOTcxNDgsIDB4ODRCRTQxREUsXG4gIDB4MUFEQUQ0N0QsIDB4NkREREU0RUIsIDB4RjRENEI1NTEsIDB4ODNEMzg1QzcsXG4gIDB4MTM2Qzk4NTYsIDB4NjQ2QkE4QzAsIDB4RkQ2MkY5N0EsIDB4OEE2NUM5RUMsXG4gIDB4MTQwMTVDNEYsIDB4NjMwNjZDRDksIDB4RkEwRjNENjMsIDB4OEQwODBERjUsXG4gIDB4M0I2RTIwQzgsIDB4NEM2OTEwNUUsIDB4RDU2MDQxRTQsIDB4QTI2NzcxNzIsXG4gIDB4M0MwM0U0RDEsIDB4NEIwNEQ0NDcsIDB4RDIwRDg1RkQsIDB4QTUwQUI1NkIsXG4gIDB4MzVCNUE4RkEsIDB4NDJCMjk4NkMsIDB4REJCQkM5RDYsIDB4QUNCQ0Y5NDAsXG4gIDB4MzJEODZDRTMsIDB4NDVERjVDNzUsIDB4RENENjBEQ0YsIDB4QUJEMTNENTksXG4gIDB4MjZEOTMwQUMsIDB4NTFERTAwM0EsIDB4QzhENzUxODAsIDB4QkZEMDYxMTYsXG4gIDB4MjFCNEY0QjUsIDB4NTZCM0M0MjMsIDB4Q0ZCQTk1OTksIDB4QjhCREE1MEYsXG4gIDB4MjgwMkI4OUUsIDB4NUYwNTg4MDgsIDB4QzYwQ0Q5QjIsIDB4QjEwQkU5MjQsXG4gIDB4MkY2RjdDODcsIDB4NTg2ODRDMTEsIDB4QzE2MTFEQUIsIDB4QjY2NjJEM0QsXG4gIDB4NzZEQzQxOTAsIDB4MDFEQjcxMDYsIDB4OThEMjIwQkMsIDB4RUZENTEwMkEsXG4gIDB4NzFCMTg1ODksIDB4MDZCNkI1MUYsIDB4OUZCRkU0QTUsIDB4RThCOEQ0MzMsXG4gIDB4NzgwN0M5QTIsIDB4MEYwMEY5MzQsIDB4OTYwOUE4OEUsIDB4RTEwRTk4MTgsXG4gIDB4N0Y2QTBEQkIsIDB4MDg2RDNEMkQsIDB4OTE2NDZDOTcsIDB4RTY2MzVDMDEsXG4gIDB4NkI2QjUxRjQsIDB4MUM2QzYxNjIsIDB4ODU2NTMwRDgsIDB4RjI2MjAwNEUsXG4gIDB4NkMwNjk1RUQsIDB4MUIwMUE1N0IsIDB4ODIwOEY0QzEsIDB4RjUwRkM0NTcsXG4gIDB4NjVCMEQ5QzYsIDB4MTJCN0U5NTAsIDB4OEJCRUI4RUEsIDB4RkNCOTg4N0MsXG4gIDB4NjJERDFEREYsIDB4MTVEQTJENDksIDB4OENEMzdDRjMsIDB4RkJENDRDNjUsXG4gIDB4NERCMjYxNTgsIDB4M0FCNTUxQ0UsIDB4QTNCQzAwNzQsIDB4RDRCQjMwRTIsXG4gIDB4NEFERkE1NDEsIDB4M0REODk1RDcsIDB4QTREMUM0NkQsIDB4RDNENkY0RkIsXG4gIDB4NDM2OUU5NkEsIDB4MzQ2RUQ5RkMsIDB4QUQ2Nzg4NDYsIDB4REE2MEI4RDAsXG4gIDB4NDQwNDJENzMsIDB4MzMwMzFERTUsIDB4QUEwQTRDNUYsIDB4REQwRDdDQzksXG4gIDB4NTAwNTcxM0MsIDB4MjcwMjQxQUEsIDB4QkUwQjEwMTAsIDB4QzkwQzIwODYsXG4gIDB4NTc2OEI1MjUsIDB4MjA2Rjg1QjMsIDB4Qjk2NkQ0MDksIDB4Q0U2MUU0OUYsXG4gIDB4NUVERUY5MEUsIDB4MjlEOUM5OTgsIDB4QjBEMDk4MjIsIDB4QzdEN0E4QjQsXG4gIDB4NTlCMzNEMTcsIDB4MkVCNDBEODEsIDB4QjdCRDVDM0IsIDB4QzBCQTZDQUQsXG4gIDB4RURCODgzMjAsIDB4OUFCRkIzQjYsIDB4MDNCNkUyMEMsIDB4NzRCMUQyOUEsXG4gIDB4RUFENTQ3MzksIDB4OUREMjc3QUYsIDB4MDREQjI2MTUsIDB4NzNEQzE2ODMsXG4gIDB4RTM2MzBCMTIsIDB4OTQ2NDNCODQsIDB4MEQ2RDZBM0UsIDB4N0E2QTVBQTgsXG4gIDB4RTQwRUNGMEIsIDB4OTMwOUZGOUQsIDB4MEEwMEFFMjcsIDB4N0QwNzlFQjEsXG4gIDB4RjAwRjkzNDQsIDB4ODcwOEEzRDIsIDB4MUUwMUYyNjgsIDB4NjkwNkMyRkUsXG4gIDB4Rjc2MjU3NUQsIDB4ODA2NTY3Q0IsIDB4MTk2QzM2NzEsIDB4NkU2QjA2RTcsXG4gIDB4RkVENDFCNzYsIDB4ODlEMzJCRTAsIDB4MTBEQTdBNUEsIDB4NjdERDRBQ0MsXG4gIDB4RjlCOURGNkYsIDB4OEVCRUVGRjksIDB4MTdCN0JFNDMsIDB4NjBCMDhFRDUsXG4gIDB4RDZENkEzRTgsIDB4QTFEMTkzN0UsIDB4MzhEOEMyQzQsIDB4NEZERkYyNTIsXG4gIDB4RDFCQjY3RjEsIDB4QTZCQzU3NjcsIDB4M0ZCNTA2REQsIDB4NDhCMjM2NEIsXG4gIDB4RDgwRDJCREEsIDB4QUYwQTFCNEMsIDB4MzYwMzRBRjYsIDB4NDEwNDdBNjAsXG4gIDB4REY2MEVGQzMsIDB4QTg2N0RGNTUsIDB4MzE2RThFRUYsIDB4NDY2OUJFNzksXG4gIDB4Q0I2MUIzOEMsIDB4QkM2NjgzMUEsIDB4MjU2RkQyQTAsIDB4NTI2OEUyMzYsXG4gIDB4Q0MwQzc3OTUsIDB4QkIwQjQ3MDMsIDB4MjIwMjE2QjksIDB4NTUwNTI2MkYsXG4gIDB4QzVCQTNCQkUsIDB4QjJCRDBCMjgsIDB4MkJCNDVBOTIsIDB4NUNCMzZBMDQsXG4gIDB4QzJEN0ZGQTcsIDB4QjVEMENGMzEsIDB4MkNEOTlFOEIsIDB4NUJERUFFMUQsXG4gIDB4OUI2NEMyQjAsIDB4RUM2M0YyMjYsIDB4NzU2QUEzOUMsIDB4MDI2RDkzMEEsXG4gIDB4OUMwOTA2QTksIDB4RUIwRTM2M0YsIDB4NzIwNzY3ODUsIDB4MDUwMDU3MTMsXG4gIDB4OTVCRjRBODIsIDB4RTJCODdBMTQsIDB4N0JCMTJCQUUsIDB4MENCNjFCMzgsXG4gIDB4OTJEMjhFOUIsIDB4RTVENUJFMEQsIDB4N0NEQ0VGQjcsIDB4MEJEQkRGMjEsXG4gIDB4ODZEM0QyRDQsIDB4RjFENEUyNDIsIDB4NjhEREIzRjgsIDB4MUZEQTgzNkUsXG4gIDB4ODFCRTE2Q0QsIDB4RjZCOTI2NUIsIDB4NkZCMDc3RTEsIDB4MThCNzQ3NzcsXG4gIDB4ODgwODVBRTYsIDB4RkYwRjZBNzAsIDB4NjYwNjNCQ0EsIDB4MTEwMTBCNUMsXG4gIDB4OEY2NTlFRkYsIDB4Rjg2MkFFNjksIDB4NjE2QkZGRDMsIDB4MTY2Q0NGNDUsXG4gIDB4QTAwQUUyNzgsIDB4RDcwREQyRUUsIDB4NEUwNDgzNTQsIDB4MzkwM0IzQzIsXG4gIDB4QTc2NzI2NjEsIDB4RDA2MDE2RjcsIDB4NDk2OTQ3NEQsIDB4M0U2RTc3REIsXG4gIDB4QUVEMTZBNEEsIDB4RDlENjVBREMsIDB4NDBERjBCNjYsIDB4MzdEODNCRjAsXG4gIDB4QTlCQ0FFNTMsIDB4REVCQjlFQzUsIDB4NDdCMkNGN0YsIDB4MzBCNUZGRTksXG4gIDB4QkRCREYyMUMsIDB4Q0FCQUMyOEEsIDB4NTNCMzkzMzAsIDB4MjRCNEEzQTYsXG4gIDB4QkFEMDM2MDUsIDB4Q0RENzA2OTMsIDB4NTRERTU3MjksIDB4MjNEOTY3QkYsXG4gIDB4QjM2NjdBMkUsIDB4QzQ2MTRBQjgsIDB4NUQ2ODFCMDIsIDB4MkE2RjJCOTQsXG4gIDB4QjQwQkJFMzcsIDB4QzMwQzhFQTEsIDB4NUEwNURGMUIsIDB4MkQwMkVGOEQsXG5dO1xuY29uc3QgbG9va3VwVGFibGU6IFVpbnQzMkFycmF5ID0gdWludDMyQXJyYXlGcm9tKGFfbG9va1VwVGFibGUpXG5leHBvcnQgeyBBd3NDcmMzMiB9IGZyb20gXCIuL2F3c19jcmMzMlwiO1xuIl19","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Observable } from \"./Observable.js\";\nimport { canUseSymbol } from \"../common/canUse.js\";\nexport function fixObservableSubclass(subclass) {\n function set(key) {\n Object.defineProperty(subclass, key, { value: Observable });\n }\n if (canUseSymbol && Symbol.species) {\n set(Symbol.species);\n }\n set(\"@@species\");\n return subclass;\n}\n//# sourceMappingURL=subclassing.js.map",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport { hydrate as domHydrate, render as domRender } from 'react-dom';\nimport { createSheet } from '../StyleSheet/dom';\nexport function hydrate(element, root, callback) {\n createSheet(root);\n return domHydrate(element, root, callback);\n}\nexport default function render(element, root, callback) {\n createSheet(root);\n return domRender(element, root, callback);\n}","import * as cookie from 'cookie';\r\nexport function hasDocumentCookie() {\r\n // Can we get/set cookies on document.cookie?\r\n return typeof document === 'object' && typeof document.cookie === 'string';\r\n}\r\nexport function cleanCookies() {\r\n document.cookie.split(';').forEach(function (c) {\r\n document.cookie = c\r\n .replace(/^ +/, '')\r\n .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\r\n });\r\n}\r\nexport function parseCookies(cookies, options) {\r\n if (typeof cookies === 'string') {\r\n return cookie.parse(cookies, options);\r\n }\r\n else if (typeof cookies === 'object' && cookies !== null) {\r\n return cookies;\r\n }\r\n else {\r\n return {};\r\n }\r\n}\r\nexport function isParsingCookie(value, doNotParse) {\r\n if (typeof doNotParse === 'undefined') {\r\n // We guess if the cookie start with { or [, it has been serialized\r\n doNotParse =\r\n !value || (value[0] !== '{' && value[0] !== '[' && value[0] !== '\"');\r\n }\r\n return !doNotParse;\r\n}\r\nexport function readCookie(value, options) {\r\n if (options === void 0) { options = {}; }\r\n var cleanValue = cleanupCookieValue(value);\r\n if (isParsingCookie(cleanValue, options.doNotParse)) {\r\n try {\r\n return JSON.parse(cleanValue);\r\n }\r\n catch (e) {\r\n // At least we tried\r\n }\r\n }\r\n // Ignore clean value if we failed the deserialization\r\n // It is not relevant anymore to trim those values\r\n return value;\r\n}\r\nfunction cleanupCookieValue(value) {\r\n // express prepend j: before serializing a cookie\r\n if (value && value[0] === 'j' && value[1] === ':') {\r\n return value.substr(2);\r\n }\r\n return value;\r\n}\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as cookie from 'cookie';\r\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\r\nvar Cookies = /** @class */ (function () {\r\n function Cookies(cookies, options) {\r\n var _this = this;\r\n this.changeListeners = [];\r\n this.HAS_DOCUMENT_COOKIE = false;\r\n this.cookies = parseCookies(cookies, options);\r\n new Promise(function () {\r\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\r\n }).catch(function () { });\r\n }\r\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\r\n if (!this.HAS_DOCUMENT_COOKIE) {\r\n return;\r\n }\r\n this.cookies = cookie.parse(document.cookie, parseOptions);\r\n };\r\n Cookies.prototype._emitChange = function (params) {\r\n for (var i = 0; i < this.changeListeners.length; ++i) {\r\n this.changeListeners[i](params);\r\n }\r\n };\r\n Cookies.prototype.get = function (name, options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n return readCookie(this.cookies[name], options);\r\n };\r\n Cookies.prototype.getAll = function (options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n var result = {};\r\n for (var name_1 in this.cookies) {\r\n result[name_1] = readCookie(this.cookies[name_1], options);\r\n }\r\n return result;\r\n };\r\n Cookies.prototype.set = function (name, value, options) {\r\n var _a;\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value);\r\n }\r\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, value, options);\r\n }\r\n this._emitChange({ name: name, value: value, options: options });\r\n };\r\n Cookies.prototype.remove = function (name, options) {\r\n var finalOptions = (options = __assign(__assign({}, options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\r\n this.cookies = __assign({}, this.cookies);\r\n delete this.cookies[name];\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, '', finalOptions);\r\n }\r\n this._emitChange({ name: name, value: undefined, options: options });\r\n };\r\n Cookies.prototype.addChangeListener = function (callback) {\r\n this.changeListeners.push(callback);\r\n };\r\n Cookies.prototype.removeChangeListener = function (callback) {\r\n var idx = this.changeListeners.indexOf(callback);\r\n if (idx >= 0) {\r\n this.changeListeners.splice(idx, 1);\r\n }\r\n };\r\n return Cookies;\r\n}());\r\nexport default Cookies;\r\n","import Cookies from './Cookies';\r\nexport default Cookies;\r\n","import Cookies from 'universal-cookie';\nimport { browserOrNode } from '../JS';\nvar isBrowser = browserOrNode().isBrowser;\nvar UniversalStorage = /** @class */ (function () {\n function UniversalStorage(context) {\n if (context === void 0) { context = {}; }\n this.cookies = new Cookies();\n this.store = isBrowser ? window.localStorage : Object.create(null);\n this.cookies = context.req\n ? new Cookies(context.req.headers.cookie)\n : new Cookies();\n Object.assign(this.store, this.cookies.getAll());\n }\n Object.defineProperty(UniversalStorage.prototype, \"length\", {\n get: function () {\n return Object.entries(this.store).length;\n },\n enumerable: true,\n configurable: true\n });\n UniversalStorage.prototype.clear = function () {\n var _this = this;\n Array.from(new Array(this.length))\n .map(function (_, i) { return _this.key(i); })\n .forEach(function (key) { return _this.removeItem(key); });\n };\n UniversalStorage.prototype.getItem = function (key) {\n return this.getLocalItem(key);\n };\n UniversalStorage.prototype.getLocalItem = function (key) {\n return Object.prototype.hasOwnProperty.call(this.store, key)\n ? this.store[key]\n : null;\n };\n UniversalStorage.prototype.getUniversalItem = function (key) {\n return this.cookies.get(key);\n };\n UniversalStorage.prototype.key = function (index) {\n return Object.keys(this.store)[index];\n };\n UniversalStorage.prototype.removeItem = function (key) {\n this.removeLocalItem(key);\n this.removeUniversalItem(key);\n };\n UniversalStorage.prototype.removeLocalItem = function (key) {\n delete this.store[key];\n };\n UniversalStorage.prototype.removeUniversalItem = function (key) {\n this.cookies.remove(key, {\n path: '/',\n });\n };\n UniversalStorage.prototype.setItem = function (key, value) {\n this.setLocalItem(key, value);\n // keys take the shape:\n // 1. `${ProviderPrefix}.${userPoolClientId}.${username}.${tokenType}\n // 2. `${ProviderPrefix}.${userPoolClientId}.LastAuthUser\n var tokenType = key.split('.').pop();\n switch (tokenType) {\n // LastAuthUser is needed for computing other key names\n case 'LastAuthUser':\n // accessToken is required for CognitoUserSession\n case 'accessToken':\n // refreshToken originates on the client, but SSR pages won't fail when this expires\n // Note: the new `accessToken` will also be refreshed on the client (since Amplify doesn't set server-side cookies)\n case 'refreshToken':\n // Required for CognitoUserSession\n case 'idToken':\n isBrowser\n ? this.setUniversalItem(key, value)\n : this.setLocalItem(key, value);\n // userData is used when `Auth.currentAuthenticatedUser({ bypassCache: false })`.\n // Can be persisted to speed up calls to `Auth.currentAuthenticatedUser()`\n // case 'userData':\n // Ignoring clockDrift on the server for now, but needs testing\n // case 'clockDrift':\n }\n };\n UniversalStorage.prototype.setLocalItem = function (key, value) {\n this.store[key] = value;\n };\n UniversalStorage.prototype.setUniversalItem = function (key, value) {\n this.cookies.set(key, value, {\n path: '/',\n // `httpOnly` cannot be set via JavaScript: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#JavaScript_access_using_Document.cookie\n sameSite: true,\n // Allow unsecure requests to http://localhost:3000/ when in development.\n secure: window.location.hostname === 'localhost' ? false : true,\n });\n };\n return UniversalStorage;\n}());\nexport { UniversalStorage };\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar SELF = '_self';\nexport var launchUri = function (url) {\n var windowProxy = window.open(url, SELF);\n if (windowProxy) {\n return Promise.resolve(windowProxy);\n }\n else {\n return Promise.reject();\n }\n};\n//# sourceMappingURL=urlOpener.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { parse } from 'url'; // Used for OAuth parsing of Cognito Hosted UI\nimport { launchUri } from './urlOpener';\nimport * as oAuthStorage from './oauthStorage';\nimport { isCognitoHostedOpts, CognitoHostedUIIdentityProvider, } from '../types/Auth';\nimport { ConsoleLogger as Logger, Hub, urlSafeEncode } from '@aws-amplify/core';\nimport sha256 from 'crypto-js/sha256';\nimport Base64 from 'crypto-js/enc-base64';\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' &&\n typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nvar dispatchAuthEvent = function (event, data, message) {\n Hub.dispatch('auth', { event: event, data: data, message: message }, 'Auth', AMPLIFY_SYMBOL);\n};\nvar logger = new Logger('OAuth');\nvar OAuth = /** @class */ (function () {\n function OAuth(_a) {\n var config = _a.config, cognitoClientId = _a.cognitoClientId, _b = _a.scopes, scopes = _b === void 0 ? [] : _b;\n this._urlOpener = config.urlOpener || launchUri;\n this._config = config;\n this._cognitoClientId = cognitoClientId;\n if (!this.isValidScopes(scopes))\n throw Error('scopes must be a String Array');\n this._scopes = scopes;\n }\n OAuth.prototype.isValidScopes = function (scopes) {\n return (Array.isArray(scopes) && scopes.every(function (scope) { return typeof scope === 'string'; }));\n };\n OAuth.prototype.oauthSignIn = function (responseType, domain, redirectSignIn, clientId, provider, customState) {\n if (responseType === void 0) { responseType = 'code'; }\n if (provider === void 0) { provider = CognitoHostedUIIdentityProvider.Cognito; }\n var generatedState = this._generateState(32);\n /* encodeURIComponent is not URL safe, use urlSafeEncode instead. Cognito\n single-encodes/decodes url on first sign in and double-encodes/decodes url\n when user already signed in. Using encodeURIComponent, Base32, Base64 add\n characters % or = which on further encoding becomes unsafe. '=' create issue\n for parsing query params.\n Refer: https://github.com/aws-amplify/amplify-js/issues/5218 */\n var state = customState\n ? generatedState + \"-\" + urlSafeEncode(customState)\n : generatedState;\n oAuthStorage.setState(state);\n var pkce_key = this._generateRandom(128);\n oAuthStorage.setPKCE(pkce_key);\n var code_challenge = this._generateChallenge(pkce_key);\n var code_challenge_method = 'S256';\n var scopesString = this._scopes.join(' ');\n var queryString = Object.entries(__assign(__assign({ redirect_uri: redirectSignIn, response_type: responseType, client_id: clientId, identity_provider: provider, scope: scopesString, state: state }, (responseType === 'code' ? { code_challenge: code_challenge } : {})), (responseType === 'code' ? { code_challenge_method: code_challenge_method } : {})))\n .map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return encodeURIComponent(k) + \"=\" + encodeURIComponent(v);\n })\n .join('&');\n var URL = \"https://\" + domain + \"/oauth2/authorize?\" + queryString;\n logger.debug(\"Redirecting to \" + URL);\n this._urlOpener(URL, redirectSignIn);\n };\n OAuth.prototype._handleCodeFlow = function (currentUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var code, currentUrlPathname, redirectSignInPathname, oAuthTokenEndpoint, client_id, redirect_uri, code_verifier, oAuthTokenBody, body, _a, access_token, refresh_token, id_token, error;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n code = (parse(currentUrl).query || '')\n .split('&')\n .map(function (pairings) { return pairings.split('='); })\n .reduce(function (accum, _a) {\n var _b;\n var _c = __read(_a, 2), k = _c[0], v = _c[1];\n return (__assign(__assign({}, accum), (_b = {}, _b[k] = v, _b)));\n }, { code: undefined }).code;\n currentUrlPathname = parse(currentUrl).pathname || '/';\n redirectSignInPathname = parse(this._config.redirectSignIn).pathname || '/';\n if (!code || currentUrlPathname !== redirectSignInPathname) {\n return [2 /*return*/];\n }\n oAuthTokenEndpoint = 'https://' + this._config.domain + '/oauth2/token';\n dispatchAuthEvent('codeFlow', {}, \"Retrieving tokens from \" + oAuthTokenEndpoint);\n client_id = isCognitoHostedOpts(this._config)\n ? this._cognitoClientId\n : this._config.clientID;\n redirect_uri = isCognitoHostedOpts(this._config)\n ? this._config.redirectSignIn\n : this._config.redirectUri;\n code_verifier = oAuthStorage.getPKCE();\n oAuthTokenBody = __assign({ grant_type: 'authorization_code', code: code,\n client_id: client_id,\n redirect_uri: redirect_uri }, (code_verifier ? { code_verifier: code_verifier } : {}));\n logger.debug(\"Calling token endpoint: \" + oAuthTokenEndpoint + \" with\", oAuthTokenBody);\n body = Object.entries(oAuthTokenBody)\n .map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return encodeURIComponent(k) + \"=\" + encodeURIComponent(v);\n })\n .join('&');\n return [4 /*yield*/, fetch(oAuthTokenEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: body,\n })];\n case 1: return [4 /*yield*/, (_b.sent()).json()];\n case 2:\n _a = _b.sent(), access_token = _a.access_token, refresh_token = _a.refresh_token, id_token = _a.id_token, error = _a.error;\n if (error) {\n throw new Error(error);\n }\n return [2 /*return*/, {\n accessToken: access_token,\n refreshToken: refresh_token,\n idToken: id_token,\n }];\n }\n });\n });\n };\n OAuth.prototype._handleImplicitFlow = function (currentUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, id_token, access_token;\n return __generator(this, function (_b) {\n _a = (parse(currentUrl).hash || '#')\n .substr(1) // Remove # from returned code\n .split('&')\n .map(function (pairings) { return pairings.split('='); })\n .reduce(function (accum, _a) {\n var _b;\n var _c = __read(_a, 2), k = _c[0], v = _c[1];\n return (__assign(__assign({}, accum), (_b = {}, _b[k] = v, _b)));\n }, {\n id_token: undefined,\n access_token: undefined,\n }), id_token = _a.id_token, access_token = _a.access_token;\n dispatchAuthEvent('implicitFlow', {}, \"Got tokens from \" + currentUrl);\n logger.debug(\"Retrieving implicit tokens from \" + currentUrl + \" with\");\n return [2 /*return*/, {\n accessToken: access_token,\n idToken: id_token,\n refreshToken: null,\n }];\n });\n });\n };\n OAuth.prototype.handleAuthResponse = function (currentUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var urlParams, error, error_description, state, _a, _b, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 5, , 6]);\n urlParams = currentUrl\n ? __assign(__assign({}, (parse(currentUrl).hash || '#')\n .substr(1)\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .reduce(function (acc, _a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return ((acc[k] = v), acc);\n }, {})), (parse(currentUrl).query || '')\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .reduce(function (acc, _a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return ((acc[k] = v), acc);\n }, {}))\n : {};\n error = urlParams.error, error_description = urlParams.error_description;\n if (error) {\n throw new Error(error_description);\n }\n state = this._validateState(urlParams);\n logger.debug(\"Starting \" + this._config.responseType + \" flow with \" + currentUrl);\n if (!(this._config.responseType === 'code')) return [3 /*break*/, 2];\n _a = [{}];\n return [4 /*yield*/, this._handleCodeFlow(currentUrl)];\n case 1: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_c.sent())])), { state: state }])];\n case 2:\n _b = [{}];\n return [4 /*yield*/, this._handleImplicitFlow(currentUrl)];\n case 3: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _b.concat([(_c.sent())])), { state: state }])];\n case 4: return [3 /*break*/, 6];\n case 5:\n e_1 = _c.sent();\n logger.error(\"Error handling auth response.\", e_1);\n throw e_1;\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n OAuth.prototype._validateState = function (urlParams) {\n if (!urlParams) {\n return;\n }\n var savedState = oAuthStorage.getState();\n var returnedState = urlParams.state;\n // This is because savedState only exists if the flow was initiated by Amplify\n if (savedState && savedState !== returnedState) {\n throw new Error('Invalid state in OAuth flow');\n }\n return returnedState;\n };\n OAuth.prototype.signOut = function () {\n return __awaiter(this, void 0, void 0, function () {\n var oAuthLogoutEndpoint, client_id, signout_uri;\n return __generator(this, function (_a) {\n oAuthLogoutEndpoint = 'https://' + this._config.domain + '/logout?';\n client_id = isCognitoHostedOpts(this._config)\n ? this._cognitoClientId\n : this._config.oauth.clientID;\n signout_uri = isCognitoHostedOpts(this._config)\n ? this._config.redirectSignOut\n : this._config.returnTo;\n oAuthLogoutEndpoint += Object.entries({\n client_id: client_id,\n logout_uri: encodeURIComponent(signout_uri),\n })\n .map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return k + \"=\" + v;\n })\n .join('&');\n dispatchAuthEvent('oAuthSignOut', { oAuth: 'signOut' }, \"Signing out from \" + oAuthLogoutEndpoint);\n logger.debug(\"Signing out from \" + oAuthLogoutEndpoint);\n return [2 /*return*/, this._urlOpener(oAuthLogoutEndpoint, signout_uri)];\n });\n });\n };\n OAuth.prototype._generateState = function (length) {\n var result = '';\n var i = length;\n var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n for (; i > 0; --i)\n result += chars[Math.round(Math.random() * (chars.length - 1))];\n return result;\n };\n OAuth.prototype._generateChallenge = function (code) {\n return this._base64URL(sha256(code));\n };\n OAuth.prototype._base64URL = function (string) {\n return string\n .toString(Base64)\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n };\n OAuth.prototype._generateRandom = function (size) {\n var CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\n var buffer = new Uint8Array(size);\n if (typeof window !== 'undefined' && !!window.crypto) {\n window.crypto.getRandomValues(buffer);\n }\n else {\n for (var i = 0; i < size; i += 1) {\n buffer[i] = (Math.random() * CHARSET.length) | 0;\n }\n }\n return this._bufferToString(buffer);\n };\n OAuth.prototype._bufferToString = function (buffer) {\n var CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var state = [];\n for (var i = 0; i < buffer.byteLength; i += 1) {\n var index = buffer[i] % CHARSET.length;\n state.push(CHARSET[index]);\n }\n return state.join('');\n };\n return OAuth;\n}());\nexport default OAuth;\n//# sourceMappingURL=OAuth.js.map","export function urlSafeEncode(str) {\n return str\n .split('')\n .map(function (char) {\n return char\n .charCodeAt(0)\n .toString(16)\n .padStart(2, '0');\n })\n .join('');\n}\nexport function urlSafeDecode(hex) {\n return hex\n .match(/.{2}/g)\n .map(function (char) { return String.fromCharCode(parseInt(char, 16)); })\n .join('');\n}\n//# sourceMappingURL=StringUtils.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nexport var setState = function (state) {\n window.sessionStorage.setItem('oauth_state', state);\n};\nexport var getState = function () {\n var oauth_state = window.sessionStorage.getItem('oauth_state');\n window.sessionStorage.removeItem('oauth_state');\n return oauth_state;\n};\nexport var setPKCE = function (private_key) {\n window.sessionStorage.setItem('ouath_pkce_key', private_key);\n};\nexport var getPKCE = function () {\n var ouath_pkce_key = window.sessionStorage.getItem('ouath_pkce_key');\n window.sessionStorage.removeItem('ouath_pkce_key');\n return ouath_pkce_key;\n};\nexport var clearAll = function () {\n window.sessionStorage.removeItem('ouath_pkce_key');\n window.sessionStorage.removeItem('oauth_state');\n};\n//# sourceMappingURL=oauthStorage.js.map","/*\n * Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { AuthErrorStrings } from './common/AuthErrorStrings';\nvar logger = new Logger('AuthError');\nvar AuthError = /** @class */ (function (_super) {\n __extends(AuthError, _super);\n function AuthError(type) {\n var _this = this;\n var _a = authErrorMessages[type], message = _a.message, log = _a.log;\n _this = _super.call(this, message) || this;\n // Hack for making the custom error class work when transpiled to es5\n // TODO: Delete the following 2 lines after we change the build target to >= es2015\n _this.constructor = AuthError;\n Object.setPrototypeOf(_this, AuthError.prototype);\n _this.name = 'AuthError';\n _this.log = log || message;\n logger.error(_this.log);\n return _this;\n }\n return AuthError;\n}(Error));\nexport { AuthError };\nvar NoUserPoolError = /** @class */ (function (_super) {\n __extends(NoUserPoolError, _super);\n function NoUserPoolError(type) {\n var _this = _super.call(this, type) || this;\n // Hack for making the custom error class work when transpiled to es5\n // TODO: Delete the following 2 lines after we change the build target to >= es2015\n _this.constructor = NoUserPoolError;\n Object.setPrototypeOf(_this, NoUserPoolError.prototype);\n _this.name = 'NoUserPoolError';\n return _this;\n }\n return NoUserPoolError;\n}(AuthError));\nexport { NoUserPoolError };\nexport var authErrorMessages = {\n noConfig: {\n message: AuthErrorStrings.DEFAULT_MSG,\n log: \"\\n Error: Amplify has not been configured correctly.\\n This error is typically caused by one of the following scenarios:\\n\\n 1. Make sure you're passing the awsconfig object to Amplify.configure() in your app's entry point\\n See https://aws-amplify.github.io/docs/js/authentication#configure-your-app for more information\\n \\n 2. There might be multiple conflicting versions of amplify packages in your node_modules.\\n\\t\\t\\t\\tRefer to our docs site for help upgrading Amplify packages (https://docs.amplify.aws/lib/troubleshooting/upgrading/q/platform/js)\\n \",\n },\n missingAuthConfig: {\n message: AuthErrorStrings.DEFAULT_MSG,\n log: \"\\n Error: Amplify has not been configured correctly. \\n The configuration object is missing required auth properties.\\n This error is typically caused by one of the following scenarios:\\n\\n 1. Did you run `amplify push` after adding auth via `amplify add auth`?\\n See https://aws-amplify.github.io/docs/js/authentication#amplify-project-setup for more information\\n\\n 2. This could also be caused by multiple conflicting versions of amplify packages, see (https://docs.amplify.aws/lib/troubleshooting/upgrading/q/platform/js) for help upgrading Amplify packages.\\n \",\n },\n emptyUsername: {\n message: AuthErrorStrings.EMPTY_USERNAME,\n },\n // TODO: should include a list of valid sign-in types\n invalidUsername: {\n message: AuthErrorStrings.INVALID_USERNAME,\n },\n emptyPassword: {\n message: AuthErrorStrings.EMPTY_PASSWORD,\n },\n emptyCode: {\n message: AuthErrorStrings.EMPTY_CODE,\n },\n signUpError: {\n message: AuthErrorStrings.SIGN_UP_ERROR,\n log: 'The first parameter should either be non-null string or object',\n },\n noMFA: {\n message: AuthErrorStrings.NO_MFA,\n },\n invalidMFA: {\n message: AuthErrorStrings.INVALID_MFA,\n },\n emptyChallengeResponse: {\n message: AuthErrorStrings.EMPTY_CHALLENGE,\n },\n noUserSession: {\n message: AuthErrorStrings.NO_USER_SESSION,\n },\n deviceConfig: {\n message: AuthErrorStrings.DEVICE_CONFIG,\n },\n networkError: {\n message: AuthErrorStrings.NETWORK_ERROR,\n },\n autoSignInError: {\n message: AuthErrorStrings.AUTOSIGNIN_ERROR,\n },\n default: {\n message: AuthErrorStrings.DEFAULT_MSG,\n },\n};\n//# sourceMappingURL=Errors.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n *\t http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { isUsernamePasswordOpts, isCognitoHostedOpts, isFederatedSignInOptions, isFederatedSignInOptionsCustom, hasCustomState, } from './types';\nimport { Amplify, ConsoleLogger as Logger, Credentials, Hub, StorageHelper, Parser, browserOrNode, UniversalStorage, urlSafeDecode, } from '@aws-amplify/core';\nimport { CookieStorage, CognitoUserPool, AuthenticationDetails, CognitoUser, CognitoUserSession, CognitoUserAttribute, CognitoIdToken, CognitoRefreshToken, CognitoAccessToken, } from 'amazon-cognito-identity-js';\nimport { parse } from 'url';\nimport OAuth from './OAuth/OAuth';\nimport { default as urlListener } from './urlListener';\nimport { AuthError, NoUserPoolError } from './Errors';\nimport { AuthErrorTypes, CognitoHostedUIIdentityProvider, } from './types/Auth';\nvar logger = new Logger('AuthClass');\nvar USER_ADMIN_SCOPE = 'aws.cognito.signin.user.admin';\n// 10 sec, following this guide https://www.nngroup.com/articles/response-times-3-important-limits/\nvar OAUTH_FLOW_MS_TIMEOUT = 10 * 1000;\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nvar dispatchAuthEvent = function (event, data, message) {\n Hub.dispatch('auth', { event: event, data: data, message: message }, 'Auth', AMPLIFY_SYMBOL);\n};\n// Cognito Documentation for max device\n// tslint:disable-next-line:max-line-length\n// https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListDevices.html#API_ListDevices_RequestSyntax\nvar MAX_DEVICES = 60;\nvar MAX_AUTOSIGNIN_POLLING_MS = 3 * 60 * 1000;\n/**\n * Provide authentication steps\n */\nvar AuthClass = /** @class */ (function () {\n /**\n * Initialize Auth with AWS configurations\n * @param {Object} config - Configuration of the Auth\n */\n function AuthClass(config) {\n var _this = this;\n this.userPool = null;\n this.user = null;\n this.oAuthFlowInProgress = false;\n this.autoSignInInitiated = false;\n this.Credentials = Credentials;\n this.wrapRefreshSessionCallback = function (callback) {\n var wrapped = function (error, data) {\n if (data) {\n dispatchAuthEvent('tokenRefresh', undefined, \"New token retrieved\");\n }\n else {\n dispatchAuthEvent('tokenRefresh_failure', error, \"Failed to retrieve new token\");\n }\n return callback(error, data);\n };\n return wrapped;\n }; // prettier-ignore\n this.configure(config);\n this.currentCredentials = this.currentCredentials.bind(this);\n this.currentUserCredentials = this.currentUserCredentials.bind(this);\n Hub.listen('auth', function (_a) {\n var payload = _a.payload;\n var event = payload.event;\n switch (event) {\n case 'signIn':\n _this._storage.setItem('amplify-signin-with-hostedUI', 'false');\n break;\n case 'signOut':\n _this._storage.removeItem('amplify-signin-with-hostedUI');\n break;\n case 'cognitoHostedUI':\n _this._storage.setItem('amplify-signin-with-hostedUI', 'true');\n break;\n }\n });\n }\n AuthClass.prototype.getModuleName = function () {\n return 'Auth';\n };\n AuthClass.prototype.configure = function (config) {\n var _this = this;\n if (!config)\n return this._config || {};\n logger.debug('configure Auth');\n var conf = Object.assign({}, this._config, Parser.parseMobilehubConfig(config).Auth, config);\n this._config = conf;\n var _a = this._config, userPoolId = _a.userPoolId, userPoolWebClientId = _a.userPoolWebClientId, cookieStorage = _a.cookieStorage, oauth = _a.oauth, region = _a.region, identityPoolId = _a.identityPoolId, mandatorySignIn = _a.mandatorySignIn, refreshHandlers = _a.refreshHandlers, identityPoolRegion = _a.identityPoolRegion, clientMetadata = _a.clientMetadata, endpoint = _a.endpoint;\n if (!this._config.storage) {\n // backward compatability\n if (cookieStorage)\n this._storage = new CookieStorage(cookieStorage);\n else {\n this._storage = config.ssr\n ? new UniversalStorage()\n : new StorageHelper().getStorage();\n }\n }\n else {\n if (!this._isValidAuthStorage(this._config.storage)) {\n logger.error('The storage in the Auth config is not valid!');\n throw new Error('Empty storage object');\n }\n this._storage = this._config.storage;\n }\n this._storageSync = Promise.resolve();\n if (typeof this._storage['sync'] === 'function') {\n this._storageSync = this._storage['sync']();\n }\n if (userPoolId) {\n var userPoolData = {\n UserPoolId: userPoolId,\n ClientId: userPoolWebClientId,\n endpoint: endpoint,\n };\n userPoolData.Storage = this._storage;\n this.userPool = new CognitoUserPool(userPoolData, this.wrapRefreshSessionCallback);\n }\n this.Credentials.configure({\n mandatorySignIn: mandatorySignIn,\n region: identityPoolRegion || region,\n userPoolId: userPoolId,\n identityPoolId: identityPoolId,\n refreshHandlers: refreshHandlers,\n storage: this._storage,\n });\n // initialize cognitoauth client if hosted ui options provided\n // to keep backward compatibility:\n var cognitoHostedUIConfig = oauth\n ? isCognitoHostedOpts(this._config.oauth)\n ? oauth\n : oauth.awsCognito\n : undefined;\n if (cognitoHostedUIConfig) {\n var cognitoAuthParams = Object.assign({\n cognitoClientId: userPoolWebClientId,\n UserPoolId: userPoolId,\n domain: cognitoHostedUIConfig['domain'],\n scopes: cognitoHostedUIConfig['scope'],\n redirectSignIn: cognitoHostedUIConfig['redirectSignIn'],\n redirectSignOut: cognitoHostedUIConfig['redirectSignOut'],\n responseType: cognitoHostedUIConfig['responseType'],\n Storage: this._storage,\n urlOpener: cognitoHostedUIConfig['urlOpener'],\n clientMetadata: clientMetadata,\n }, cognitoHostedUIConfig['options']);\n this._oAuthHandler = new OAuth({\n scopes: cognitoAuthParams.scopes,\n config: cognitoAuthParams,\n cognitoClientId: cognitoAuthParams.cognitoClientId,\n });\n // **NOTE** - Remove this in a future major release as it is a breaking change\n // Prevents _handleAuthResponse from being called multiple times in Expo\n // See https://github.com/aws-amplify/amplify-js/issues/4388\n var usedResponseUrls_1 = {};\n urlListener(function (_a) {\n var url = _a.url;\n if (usedResponseUrls_1[url]) {\n return;\n }\n usedResponseUrls_1[url] = true;\n _this._handleAuthResponse(url);\n });\n }\n dispatchAuthEvent('configured', null, \"The Auth category has been configured successfully\");\n if (!this.autoSignInInitiated &&\n typeof this._storage['getItem'] === 'function') {\n var pollingInitiated = this.isTrueStorageValue('amplify-polling-started');\n if (pollingInitiated) {\n dispatchAuthEvent('autoSignIn_failure', null, AuthErrorTypes.AutoSignInError);\n this._storage.removeItem('amplify-auto-sign-in');\n }\n this._storage.removeItem('amplify-polling-started');\n }\n return this._config;\n };\n /**\n * Sign up with username, password and other attributes like phone, email\n * @param {String | object} params - The user attributes used for signin\n * @param {String[]} restOfAttrs - for the backward compatability\n * @return - A promise resolves callback data if success\n */\n AuthClass.prototype.signUp = function (params) {\n var _this = this;\n var restOfAttrs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n restOfAttrs[_i - 1] = arguments[_i];\n }\n var _a, _b, _c;\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n var username = null;\n var password = null;\n var attributes = [];\n var validationData = null;\n var clientMetadata;\n var autoSignIn = { enabled: false };\n var autoSignInValidationData = {};\n var autoSignInClientMetaData = {};\n if (params && typeof params === 'string') {\n username = params;\n password = restOfAttrs ? restOfAttrs[0] : null;\n var email = restOfAttrs ? restOfAttrs[1] : null;\n var phone_number = restOfAttrs ? restOfAttrs[2] : null;\n if (email)\n attributes.push(new CognitoUserAttribute({ Name: 'email', Value: email }));\n if (phone_number)\n attributes.push(new CognitoUserAttribute({\n Name: 'phone_number',\n Value: phone_number,\n }));\n }\n else if (params && typeof params === 'object') {\n username = params['username'];\n password = params['password'];\n if (params && params.clientMetadata) {\n clientMetadata = params.clientMetadata;\n }\n else if (this._config.clientMetadata) {\n clientMetadata = this._config.clientMetadata;\n }\n var attrs_1 = params['attributes'];\n if (attrs_1) {\n Object.keys(attrs_1).map(function (key) {\n attributes.push(new CognitoUserAttribute({ Name: key, Value: attrs_1[key] }));\n });\n }\n var validationDataObject_1 = params['validationData'];\n if (validationDataObject_1) {\n validationData = [];\n Object.keys(validationDataObject_1).map(function (key) {\n validationData.push(new CognitoUserAttribute({\n Name: key,\n Value: validationDataObject_1[key],\n }));\n });\n }\n autoSignIn = (_a = params.autoSignIn) !== null && _a !== void 0 ? _a : { enabled: false };\n if (autoSignIn.enabled) {\n this._storage.setItem('amplify-auto-sign-in', 'true');\n autoSignInValidationData = (_b = autoSignIn.validationData) !== null && _b !== void 0 ? _b : {};\n autoSignInClientMetaData = (_c = autoSignIn.clientMetaData) !== null && _c !== void 0 ? _c : {};\n }\n }\n else {\n return this.rejectAuthError(AuthErrorTypes.SignUpError);\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\n logger.debug('signUp attrs:', attributes);\n logger.debug('signUp validation data:', validationData);\n return new Promise(function (resolve, reject) {\n _this.userPool.signUp(username, password, attributes, validationData, function (err, data) {\n if (err) {\n dispatchAuthEvent('signUp_failure', err, username + \" failed to signup\");\n reject(err);\n }\n else {\n dispatchAuthEvent('signUp', data, username + \" has signed up successfully\");\n if (autoSignIn.enabled) {\n _this.handleAutoSignIn(username, password, autoSignInValidationData, autoSignInClientMetaData, data);\n }\n resolve(data);\n }\n }, clientMetadata);\n });\n };\n AuthClass.prototype.handleAutoSignIn = function (username, password, validationData, clientMetadata, data) {\n this.autoSignInInitiated = true;\n var authDetails = new AuthenticationDetails({\n Username: username,\n Password: password,\n ValidationData: validationData,\n ClientMetadata: clientMetadata,\n });\n if (data.userConfirmed) {\n this.signInAfterUserConfirmed(authDetails);\n }\n else if (this._config.signUpVerificationMethod === 'link') {\n this.handleLinkAutoSignIn(authDetails);\n }\n else {\n this.handleCodeAutoSignIn(authDetails);\n }\n };\n AuthClass.prototype.handleCodeAutoSignIn = function (authDetails) {\n var _this = this;\n var listenEvent = function (_a) {\n var payload = _a.payload;\n if (payload.event === 'confirmSignUp') {\n _this.signInAfterUserConfirmed(authDetails, listenEvent);\n }\n };\n Hub.listen('auth', listenEvent);\n };\n AuthClass.prototype.handleLinkAutoSignIn = function (authDetails) {\n var _this = this;\n this._storage.setItem('amplify-polling-started', 'true');\n var start = Date.now();\n var autoSignInPollingIntervalId = setInterval(function () {\n if (Date.now() - start > MAX_AUTOSIGNIN_POLLING_MS) {\n clearInterval(autoSignInPollingIntervalId);\n dispatchAuthEvent('autoSignIn_failure', null, 'Please confirm your account and use your credentials to sign in.');\n _this._storage.removeItem('amplify-auto-sign-in');\n }\n else {\n _this.signInAfterUserConfirmed(authDetails, null, autoSignInPollingIntervalId);\n }\n }, 5000);\n };\n AuthClass.prototype.signInAfterUserConfirmed = function (authDetails, listenEvent, autoSignInPollingIntervalId) {\n return __awaiter(this, void 0, void 0, function () {\n var user, error_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n user = this.createCognitoUser(authDetails.getUsername());\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, user.authenticateUser(authDetails, this.authCallbacks(user, function (value) {\n dispatchAuthEvent('autoSignIn', value, authDetails.getUsername() + \" has signed in successfully\");\n if (listenEvent) {\n Hub.remove('auth', listenEvent);\n }\n if (autoSignInPollingIntervalId) {\n clearInterval(autoSignInPollingIntervalId);\n _this._storage.removeItem('amplify-polling-started');\n }\n _this._storage.removeItem('amplify-auto-sign-in');\n }, function (error) {\n logger.error(error);\n _this._storage.removeItem('amplify-auto-sign-in');\n }))];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n error_1 = _a.sent();\n logger.error(error_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Send the verification code to confirm sign up\n * @param {String} username - The username to be confirmed\n * @param {String} code - The verification code\n * @param {ConfirmSignUpOptions} options - other options for confirm signup\n * @return - A promise resolves callback data if success\n */\n AuthClass.prototype.confirmSignUp = function (username, code, options) {\n var _this = this;\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n var user = this.createCognitoUser(username);\n var forceAliasCreation = options && typeof options.forceAliasCreation === 'boolean'\n ? options.forceAliasCreation\n : true;\n var clientMetadata;\n if (options && options.clientMetadata) {\n clientMetadata = options.clientMetadata;\n }\n else if (this._config.clientMetadata) {\n clientMetadata = this._config.clientMetadata;\n }\n return new Promise(function (resolve, reject) {\n user.confirmRegistration(code, forceAliasCreation, function (err, data) {\n if (err) {\n reject(err);\n }\n else {\n dispatchAuthEvent('confirmSignUp', data, username + \" has been confirmed successfully\");\n var autoSignIn = _this.isTrueStorageValue('amplify-auto-sign-in');\n if (autoSignIn && !_this.autoSignInInitiated) {\n dispatchAuthEvent('autoSignIn_failure', null, AuthErrorTypes.AutoSignInError);\n _this._storage.removeItem('amplify-auto-sign-in');\n }\n resolve(data);\n }\n }, clientMetadata);\n });\n };\n AuthClass.prototype.isTrueStorageValue = function (value) {\n var item = this._storage.getItem(value);\n return item ? item === 'true' : false;\n };\n /**\n * Resend the verification code\n * @param {String} username - The username to be confirmed\n * @param {ClientMetadata} clientMetadata - Metadata to be passed to Cognito Lambda triggers\n * @return - A promise resolves code delivery details if successful\n */\n AuthClass.prototype.resendSignUp = function (username, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n var user = this.createCognitoUser(username);\n return new Promise(function (resolve, reject) {\n user.resendConfirmationCode(function (err, data) {\n if (err) {\n reject(err);\n }\n else {\n resolve(data);\n }\n }, clientMetadata);\n });\n };\n /**\n * Sign in\n * @param {String | SignInOpts} usernameOrSignInOpts - The username to be signed in or the sign in options\n * @param {String} pw - The password of the username\n * @param {ClientMetaData} clientMetadata - Client metadata for custom workflows\n * @return - A promise resolves the CognitoUser\n */\n AuthClass.prototype.signIn = function (usernameOrSignInOpts, pw, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n var username = null;\n var password = null;\n var validationData = {};\n // for backward compatibility\n if (typeof usernameOrSignInOpts === 'string') {\n username = usernameOrSignInOpts;\n password = pw;\n }\n else if (isUsernamePasswordOpts(usernameOrSignInOpts)) {\n if (typeof pw !== 'undefined') {\n logger.warn('The password should be defined under the first parameter object!');\n }\n username = usernameOrSignInOpts.username;\n password = usernameOrSignInOpts.password;\n validationData = usernameOrSignInOpts.validationData;\n }\n else {\n return this.rejectAuthError(AuthErrorTypes.InvalidUsername);\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n var authDetails = new AuthenticationDetails({\n Username: username,\n Password: password,\n ValidationData: validationData,\n ClientMetadata: clientMetadata,\n });\n if (password) {\n return this.signInWithPassword(authDetails);\n }\n else {\n return this.signInWithoutPassword(authDetails);\n }\n };\n /**\n * Return an object with the authentication callbacks\n * @param {CognitoUser} user - the cognito user object\n * @param {} resolve - function called when resolving the current step\n * @param {} reject - function called when rejecting the current step\n * @return - an object with the callback methods for user authentication\n */\n AuthClass.prototype.authCallbacks = function (user, resolve, reject) {\n var _this = this;\n var that = this;\n return {\n onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () {\n var cred, e_1, currentUser, e_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(session);\n delete user['challengeName'];\n delete user['challengeParam'];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, 5, 9]);\n return [4 /*yield*/, this.Credentials.clear()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3 /*break*/, 9];\n case 4:\n e_1 = _a.sent();\n logger.debug('cannot get cognito credentials', e_1);\n return [3 /*break*/, 9];\n case 5:\n _a.trys.push([5, 7, , 8]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 6:\n currentUser = _a.sent();\n that.user = currentUser;\n dispatchAuthEvent('signIn', currentUser, \"A user \" + user.getUsername() + \" has been signed in\");\n resolve(currentUser);\n return [3 /*break*/, 8];\n case 7:\n e_2 = _a.sent();\n logger.error('Failed to get the signed in user', e_2);\n reject(e_2);\n return [3 /*break*/, 8];\n case 8: return [7 /*endfinally*/];\n case 9: return [2 /*return*/];\n }\n });\n }); },\n onFailure: function (err) {\n logger.debug('signIn failure', err);\n dispatchAuthEvent('signIn_failure', err, user.getUsername() + \" failed to signin\");\n reject(err);\n },\n customChallenge: function (challengeParam) {\n logger.debug('signIn custom challenge answer required');\n user['challengeName'] = 'CUSTOM_CHALLENGE';\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n mfaRequired: function (challengeName, challengeParam) {\n logger.debug('signIn MFA required');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n mfaSetup: function (challengeName, challengeParam) {\n logger.debug('signIn mfa setup', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n newPasswordRequired: function (userAttributes, requiredAttributes) {\n logger.debug('signIn new password');\n user['challengeName'] = 'NEW_PASSWORD_REQUIRED';\n user['challengeParam'] = {\n userAttributes: userAttributes,\n requiredAttributes: requiredAttributes,\n };\n resolve(user);\n },\n totpRequired: function (challengeName, challengeParam) {\n logger.debug('signIn totpRequired');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n selectMFAType: function (challengeName, challengeParam) {\n logger.debug('signIn selectMFAType', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n };\n };\n /**\n * Sign in with a password\n * @private\n * @param {AuthenticationDetails} authDetails - the user sign in data\n * @return - A promise resolves the CognitoUser object if success or mfa required\n */\n AuthClass.prototype.signInWithPassword = function (authDetails) {\n var _this = this;\n if (this.pendingSignIn) {\n throw new Error('Pending sign-in attempt already in progress');\n }\n var user = this.createCognitoUser(authDetails.getUsername());\n this.pendingSignIn = new Promise(function (resolve, reject) {\n user.authenticateUser(authDetails, _this.authCallbacks(user, function (value) {\n _this.pendingSignIn = null;\n resolve(value);\n }, function (error) {\n _this.pendingSignIn = null;\n reject(error);\n }));\n });\n return this.pendingSignIn;\n };\n /**\n * Sign in without a password\n * @private\n * @param {AuthenticationDetails} authDetails - the user sign in data\n * @return - A promise resolves the CognitoUser object if success or mfa required\n */\n AuthClass.prototype.signInWithoutPassword = function (authDetails) {\n var _this = this;\n var user = this.createCognitoUser(authDetails.getUsername());\n user.setAuthenticationFlowType('CUSTOM_AUTH');\n return new Promise(function (resolve, reject) {\n user.initiateAuth(authDetails, _this.authCallbacks(user, resolve, reject));\n });\n };\n /**\n * This was previously used by an authenticated user to get MFAOptions,\n * but no longer returns a meaningful response. Refer to the documentation for\n * how to setup and use MFA: https://docs.amplify.aws/lib/auth/mfa/q/platform/js\n * @deprecated\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves the current preferred mfa option if success\n */\n AuthClass.prototype.getMFAOptions = function (user) {\n return new Promise(function (res, rej) {\n user.getMFAOptions(function (err, mfaOptions) {\n if (err) {\n logger.debug('get MFA Options failed', err);\n rej(err);\n return;\n }\n logger.debug('get MFA options success', mfaOptions);\n res(mfaOptions);\n return;\n });\n });\n };\n /**\n * get preferred mfa method\n * @param {CognitoUser} user - the current cognito user\n * @param {GetPreferredMFAOpts} params - options for getting the current user preferred MFA\n */\n AuthClass.prototype.getPreferredMFA = function (user, params) {\n var _this = this;\n var that = this;\n return new Promise(function (res, rej) {\n var clientMetadata = _this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n var bypassCache = params ? params.bypassCache : false;\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_1, mfaType;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('getting preferred mfa failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_1 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_1.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n mfaType = that._getMfaTypeFromUserData(data);\n if (!mfaType) {\n rej('invalid MFA Type');\n return [2 /*return*/];\n }\n else {\n res(mfaType);\n return [2 /*return*/];\n }\n return [2 /*return*/];\n }\n });\n }); }, { bypassCache: bypassCache, clientMetadata: clientMetadata });\n });\n };\n AuthClass.prototype._getMfaTypeFromUserData = function (data) {\n var ret = null;\n var preferredMFA = data.PreferredMfaSetting;\n // if the user has used Auth.setPreferredMFA() to setup the mfa type\n // then the \"PreferredMfaSetting\" would exist in the response\n if (preferredMFA) {\n ret = preferredMFA;\n }\n else {\n // if mfaList exists but empty, then its noMFA\n var mfaList = data.UserMFASettingList;\n if (!mfaList) {\n // if SMS was enabled by using Auth.enableSMS(),\n // the response would contain MFAOptions\n // as for now Cognito only supports for SMS, so we will say it is 'SMS_MFA'\n // if it does not exist, then it should be NOMFA\n var MFAOptions = data.MFAOptions;\n if (MFAOptions) {\n ret = 'SMS_MFA';\n }\n else {\n ret = 'NOMFA';\n }\n }\n else if (mfaList.length === 0) {\n ret = 'NOMFA';\n }\n else {\n logger.debug('invalid case for getPreferredMFA', data);\n }\n }\n return ret;\n };\n AuthClass.prototype._getUserData = function (user, params) {\n var _this = this;\n return new Promise(function (res, rej) {\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('getting user data failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_2 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_2.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n res(data);\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n }); }, params);\n });\n };\n /**\n * set preferred MFA method\n * @param {CognitoUser} user - the current Cognito user\n * @param {string} mfaMethod - preferred mfa method\n * @return - A promise resolve if success\n */\n AuthClass.prototype.setPreferredMFA = function (user, mfaMethod) {\n return __awaiter(this, void 0, void 0, function () {\n var clientMetadata, userData, smsMfaSettings, totpMfaSettings, _a, mfaList, currentMFAType, that;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n clientMetadata = this._config.clientMetadata;\n return [4 /*yield*/, this._getUserData(user, {\n bypassCache: true,\n clientMetadata: clientMetadata,\n })];\n case 1:\n userData = _b.sent();\n smsMfaSettings = null;\n totpMfaSettings = null;\n _a = mfaMethod;\n switch (_a) {\n case 'TOTP': return [3 /*break*/, 2];\n case 'SOFTWARE_TOKEN_MFA': return [3 /*break*/, 2];\n case 'SMS': return [3 /*break*/, 3];\n case 'SMS_MFA': return [3 /*break*/, 3];\n case 'NOMFA': return [3 /*break*/, 4];\n }\n return [3 /*break*/, 6];\n case 2:\n totpMfaSettings = {\n PreferredMfa: true,\n Enabled: true,\n };\n return [3 /*break*/, 7];\n case 3:\n smsMfaSettings = {\n PreferredMfa: true,\n Enabled: true,\n };\n return [3 /*break*/, 7];\n case 4:\n mfaList = userData['UserMFASettingList'];\n return [4 /*yield*/, this._getMfaTypeFromUserData(userData)];\n case 5:\n currentMFAType = _b.sent();\n if (currentMFAType === 'NOMFA') {\n return [2 /*return*/, Promise.resolve('No change for mfa type')];\n }\n else if (currentMFAType === 'SMS_MFA') {\n smsMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n else if (currentMFAType === 'SOFTWARE_TOKEN_MFA') {\n totpMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n else {\n return [2 /*return*/, this.rejectAuthError(AuthErrorTypes.InvalidMFA)];\n }\n // if there is a UserMFASettingList in the response\n // we need to disable every mfa type in that list\n if (mfaList && mfaList.length !== 0) {\n // to disable SMS or TOTP if exists in that list\n mfaList.forEach(function (mfaType) {\n if (mfaType === 'SMS_MFA') {\n smsMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n else if (mfaType === 'SOFTWARE_TOKEN_MFA') {\n totpMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n });\n }\n return [3 /*break*/, 7];\n case 6:\n logger.debug('no validmfa method provided');\n return [2 /*return*/, this.rejectAuthError(AuthErrorTypes.NoMFA)];\n case 7:\n that = this;\n return [2 /*return*/, new Promise(function (res, rej) {\n user.setUserMfaPreference(smsMfaSettings, totpMfaSettings, function (err, result) {\n if (err) {\n logger.debug('Set user mfa preference error', err);\n return rej(err);\n }\n logger.debug('Set user mfa success', result);\n logger.debug('Caching the latest user data into local');\n // cache the latest result into user data\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('getting user data failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_3 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_3.message));\n return [2 /*return*/];\n case 4: return [2 /*return*/, rej(err)];\n case 5: return [2 /*return*/, res(result)];\n }\n });\n }); }, {\n bypassCache: true,\n clientMetadata: clientMetadata,\n });\n });\n })];\n }\n });\n });\n };\n /**\n * disable SMS\n * @deprecated\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves is success\n */\n AuthClass.prototype.disableSMS = function (user) {\n return new Promise(function (res, rej) {\n user.disableMFA(function (err, data) {\n if (err) {\n logger.debug('disable mfa failed', err);\n rej(err);\n return;\n }\n logger.debug('disable mfa succeed', data);\n res(data);\n return;\n });\n });\n };\n /**\n * enable SMS\n * @deprecated\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves is success\n */\n AuthClass.prototype.enableSMS = function (user) {\n return new Promise(function (res, rej) {\n user.enableMFA(function (err, data) {\n if (err) {\n logger.debug('enable mfa failed', err);\n rej(err);\n return;\n }\n logger.debug('enable mfa succeed', data);\n res(data);\n return;\n });\n });\n };\n /**\n * Setup TOTP\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves with the secret code if success\n */\n AuthClass.prototype.setupTOTP = function (user) {\n return new Promise(function (res, rej) {\n user.associateSoftwareToken({\n onFailure: function (err) {\n logger.debug('associateSoftwareToken failed', err);\n rej(err);\n return;\n },\n associateSecretCode: function (secretCode) {\n logger.debug('associateSoftwareToken sucess', secretCode);\n res(secretCode);\n return;\n },\n });\n });\n };\n /**\n * verify TOTP setup\n * @param {CognitoUser} user - the current user\n * @param {string} challengeAnswer - challenge answer\n * @return - A promise resolves is success\n */\n AuthClass.prototype.verifyTotpToken = function (user, challengeAnswer) {\n logger.debug('verification totp token', user, challengeAnswer);\n return new Promise(function (res, rej) {\n user.verifySoftwareToken(challengeAnswer, 'My TOTP device', {\n onFailure: function (err) {\n logger.debug('verifyTotpToken failed', err);\n rej(err);\n return;\n },\n onSuccess: function (data) {\n dispatchAuthEvent('signIn', user, \"A user \" + user.getUsername() + \" has been signed in\");\n logger.debug('verifyTotpToken success', data);\n res(data);\n return;\n },\n });\n });\n };\n /**\n * Send MFA code to confirm sign in\n * @param {Object} user - The CognitoUser object\n * @param {String} code - The confirmation code\n */\n AuthClass.prototype.confirmSignIn = function (user, code, mfaType, clientMetadata) {\n var _this = this;\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n var that = this;\n return new Promise(function (resolve, reject) {\n user.sendMFACode(code, {\n onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () {\n var cred, e_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(session);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, 5, 6]);\n return [4 /*yield*/, this.Credentials.clear()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3 /*break*/, 6];\n case 4:\n e_3 = _a.sent();\n logger.debug('cannot get cognito credentials', e_3);\n return [3 /*break*/, 6];\n case 5:\n that.user = user;\n dispatchAuthEvent('signIn', user, \"A user \" + user.getUsername() + \" has been signed in\");\n resolve(user);\n return [7 /*endfinally*/];\n case 6: return [2 /*return*/];\n }\n });\n }); },\n onFailure: function (err) {\n logger.debug('confirm signIn failure', err);\n reject(err);\n },\n }, mfaType, clientMetadata);\n });\n };\n AuthClass.prototype.completeNewPassword = function (user, password, requiredAttributes, clientMetadata) {\n var _this = this;\n if (requiredAttributes === void 0) { requiredAttributes = {}; }\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\n var that = this;\n return new Promise(function (resolve, reject) {\n user.completeNewPasswordChallenge(password, requiredAttributes, {\n onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () {\n var cred, e_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(session);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, 5, 6]);\n return [4 /*yield*/, this.Credentials.clear()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3 /*break*/, 6];\n case 4:\n e_4 = _a.sent();\n logger.debug('cannot get cognito credentials', e_4);\n return [3 /*break*/, 6];\n case 5:\n that.user = user;\n dispatchAuthEvent('signIn', user, \"A user \" + user.getUsername() + \" has been signed in\");\n resolve(user);\n return [7 /*endfinally*/];\n case 6: return [2 /*return*/];\n }\n });\n }); },\n onFailure: function (err) {\n logger.debug('completeNewPassword failure', err);\n dispatchAuthEvent('completeNewPassword_failure', err, _this.user + \" failed to complete the new password flow\");\n reject(err);\n },\n mfaRequired: function (challengeName, challengeParam) {\n logger.debug('signIn MFA required');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n mfaSetup: function (challengeName, challengeParam) {\n logger.debug('signIn mfa setup', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n totpRequired: function (challengeName, challengeParam) {\n logger.debug('signIn mfa setup', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n }, clientMetadata);\n });\n };\n /**\n * Send the answer to a custom challenge\n * @param {CognitoUser} user - The CognitoUser object\n * @param {String} challengeResponses - The confirmation code\n */\n AuthClass.prototype.sendCustomChallengeAnswer = function (user, challengeResponses, clientMetadata) {\n var _this = this;\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!challengeResponses) {\n return this.rejectAuthError(AuthErrorTypes.EmptyChallengeResponse);\n }\n var that = this;\n return new Promise(function (resolve, reject) {\n user.sendCustomChallengeAnswer(challengeResponses, _this.authCallbacks(user, resolve, reject), clientMetadata);\n });\n };\n /**\n * Delete an authenticated users' attributes\n * @param {CognitoUser} - The currently logged in user object\n * @return {Promise}\n **/\n AuthClass.prototype.deleteUserAttributes = function (user, attributeNames) {\n var that = this;\n return new Promise(function (resolve, reject) {\n that.userSession(user).then(function (session) {\n user.deleteAttributes(attributeNames, function (err, result) {\n if (err) {\n return reject(err);\n }\n else {\n return resolve(result);\n }\n });\n });\n });\n };\n /**\n * Delete the current authenticated user\n * @return {Promise}\n **/\n // TODO: Check return type void\n AuthClass.prototype.deleteUser = function () {\n return __awaiter(this, void 0, void 0, function () {\n var e_5, isSignedInHostedUI;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this._storageSync];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_5 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_5);\n throw new Error(e_5);\n case 3:\n isSignedInHostedUI = this._oAuthHandler &&\n this._storage.getItem('amplify-signin-with-hostedUI') === 'true';\n return [2 /*return*/, new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () {\n var user_1;\n var _this = this;\n return __generator(this, function (_a) {\n if (this.userPool) {\n user_1 = this.userPool.getCurrentUser();\n if (!user_1) {\n logger.debug('Failed to get user from user pool');\n return [2 /*return*/, rej(new Error('No current user.'))];\n }\n else {\n user_1.getSession(function (err, session) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_4;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('Failed to get the user session', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user_1)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_4 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_4.message));\n return [2 /*return*/];\n case 4: return [2 /*return*/, rej(err)];\n case 5:\n user_1.deleteUser(function (err, result) {\n if (err) {\n rej(err);\n }\n else {\n dispatchAuthEvent('userDeleted', result, 'The authenticated user has been deleted.');\n user_1.signOut();\n _this.user = null;\n try {\n _this.cleanCachedItems(); // clean aws credentials\n }\n catch (e) {\n // TODO: change to rejects in refactor\n logger.debug('failed to clear cached items');\n }\n if (isSignedInHostedUI) {\n _this.oAuthSignOutRedirect(res, rej);\n }\n else {\n dispatchAuthEvent('signOut', _this.user, \"A user has been signed out\");\n res(result);\n }\n }\n });\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n }); });\n }\n }\n else {\n logger.debug('no Congito User pool');\n rej(new Error('Cognito User pool does not exist'));\n }\n return [2 /*return*/];\n });\n }); })];\n }\n });\n });\n };\n /**\n * Update an authenticated users' attributes\n * @param {CognitoUser} - The currently logged in user object\n * @return {Promise}\n **/\n AuthClass.prototype.updateUserAttributes = function (user, attributes, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n var attributeList = [];\n var that = this;\n return new Promise(function (resolve, reject) {\n that.userSession(user).then(function (session) {\n for (var key in attributes) {\n if (key !== 'sub' && key.indexOf('_verified') < 0) {\n var attr = {\n Name: key,\n Value: attributes[key],\n };\n attributeList.push(attr);\n }\n }\n user.updateAttributes(attributeList, function (err, result) {\n if (err) {\n return reject(err);\n }\n else {\n return resolve(result);\n }\n }, clientMetadata);\n });\n });\n };\n /**\n * Return user attributes\n * @param {Object} user - The CognitoUser object\n * @return - A promise resolves to user attributes if success\n */\n AuthClass.prototype.userAttributes = function (user) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.userSession(user).then(function (session) {\n user.getUserAttributes(function (err, attributes) {\n if (err) {\n reject(err);\n }\n else {\n resolve(attributes);\n }\n });\n });\n });\n };\n AuthClass.prototype.verifiedContact = function (user) {\n var that = this;\n return this.userAttributes(user).then(function (attributes) {\n var attrs = that.attributesToObject(attributes);\n var unverified = {};\n var verified = {};\n if (attrs['email']) {\n if (attrs['email_verified']) {\n verified['email'] = attrs['email'];\n }\n else {\n unverified['email'] = attrs['email'];\n }\n }\n if (attrs['phone_number']) {\n if (attrs['phone_number_verified']) {\n verified['phone_number'] = attrs['phone_number'];\n }\n else {\n unverified['phone_number'] = attrs['phone_number'];\n }\n }\n return {\n verified: verified,\n unverified: unverified,\n };\n });\n };\n AuthClass.prototype.isErrorWithMessage = function (err) {\n return (typeof err === 'object' &&\n Object.prototype.hasOwnProperty.call(err, 'message'));\n };\n // Session revoked by another app\n AuthClass.prototype.isTokenRevokedError = function (err) {\n return (this.isErrorWithMessage(err) &&\n err.message === 'Access Token has been revoked');\n };\n AuthClass.prototype.isRefreshTokenRevokedError = function (err) {\n return (this.isErrorWithMessage(err) &&\n err.message === 'Refresh Token has been revoked');\n };\n AuthClass.prototype.isUserDisabledError = function (err) {\n return this.isErrorWithMessage(err) && err.message === 'User is disabled.';\n };\n AuthClass.prototype.isUserDoesNotExistError = function (err) {\n return (this.isErrorWithMessage(err) && err.message === 'User does not exist.');\n };\n AuthClass.prototype.isRefreshTokenExpiredError = function (err) {\n return (this.isErrorWithMessage(err) &&\n err.message === 'Refresh Token has expired');\n };\n AuthClass.prototype.isSignedInHostedUI = function () {\n return (this._oAuthHandler &&\n this._storage.getItem('amplify-signin-with-hostedUI') === 'true');\n };\n AuthClass.prototype.isSessionInvalid = function (err) {\n return (this.isUserDisabledError(err) ||\n this.isUserDoesNotExistError(err) ||\n this.isTokenRevokedError(err) ||\n this.isRefreshTokenRevokedError(err) ||\n this.isRefreshTokenExpiredError(err));\n };\n AuthClass.prototype.cleanUpInvalidSession = function (user) {\n return __awaiter(this, void 0, void 0, function () {\n var e_6;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n user.signOut();\n this.user = null;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanCachedItems()];\n case 2:\n _a.sent(); // clean aws credentials\n return [3 /*break*/, 4];\n case 3:\n e_6 = _a.sent();\n logger.debug('failed to clear cached items');\n return [3 /*break*/, 4];\n case 4:\n if (this.isSignedInHostedUI()) {\n return [2 /*return*/, new Promise(function (res, rej) {\n _this.oAuthSignOutRedirect(res, rej);\n })];\n }\n else {\n dispatchAuthEvent('signOut', this.user, \"A user has been signed out\");\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Get current authenticated user\n * @return - A promise resolves to current authenticated CognitoUser if success\n */\n AuthClass.prototype.currentUserPoolUser = function (params) {\n var _this = this;\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n return new Promise(function (res, rej) {\n _this._storageSync\n .then(function () { return __awaiter(_this, void 0, void 0, function () {\n var user, clientMetadata;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isOAuthInProgress()) return [3 /*break*/, 2];\n logger.debug('OAuth signIn in progress, waiting for resolution...');\n return [4 /*yield*/, new Promise(function (res) {\n var timeoutId = setTimeout(function () {\n logger.debug('OAuth signIn in progress timeout');\n Hub.remove('auth', hostedUISignCallback);\n res();\n }, OAUTH_FLOW_MS_TIMEOUT);\n Hub.listen('auth', hostedUISignCallback);\n function hostedUISignCallback(_a) {\n var payload = _a.payload;\n var event = payload.event;\n if (event === 'cognitoHostedUI' ||\n event === 'cognitoHostedUI_failure') {\n logger.debug(\"OAuth signIn resolved: \" + event);\n clearTimeout(timeoutId);\n Hub.remove('auth', hostedUISignCallback);\n res();\n }\n }\n })];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n user = this.userPool.getCurrentUser();\n if (!user) {\n logger.debug('Failed to get user from user pool');\n rej('No current user');\n return [2 /*return*/];\n }\n clientMetadata = this._config.clientMetadata;\n // refresh the session if the session expired.\n user.getSession(function (err, session) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_5, bypassCache, clientMetadata, _a, scope;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('Failed to get the user session', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _b.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_5 = _b.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_5.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n bypassCache = params ? params.bypassCache : false;\n if (!bypassCache) return [3 /*break*/, 7];\n return [4 /*yield*/, this.Credentials.clear()];\n case 6:\n _b.sent();\n _b.label = 7;\n case 7:\n clientMetadata = this._config.clientMetadata;\n _a = session.getAccessToken().decodePayload().scope, scope = _a === void 0 ? '' : _a;\n if (scope.split(' ').includes(USER_ADMIN_SCOPE)) {\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_6, preferredMFA, attributeList, i, attribute, userAttribute, attributes;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 7];\n logger.debug('getting user data failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_6 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_6.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [3 /*break*/, 6];\n case 5:\n res(user);\n _a.label = 6;\n case 6: return [2 /*return*/];\n case 7:\n preferredMFA = data.PreferredMfaSetting || 'NOMFA';\n attributeList = [];\n for (i = 0; i < data.UserAttributes.length; i++) {\n attribute = {\n Name: data.UserAttributes[i].Name,\n Value: data.UserAttributes[i].Value,\n };\n userAttribute = new CognitoUserAttribute(attribute);\n attributeList.push(userAttribute);\n }\n attributes = this.attributesToObject(attributeList);\n Object.assign(user, { attributes: attributes, preferredMFA: preferredMFA });\n return [2 /*return*/, res(user)];\n }\n });\n }); }, { bypassCache: bypassCache, clientMetadata: clientMetadata });\n }\n else {\n logger.debug(\"Unable to get the user data because the \" + USER_ADMIN_SCOPE + \" \" +\n \"is not in the scopes of the access token\");\n return [2 /*return*/, res(user)];\n }\n return [2 /*return*/];\n }\n });\n }); }, { clientMetadata: clientMetadata });\n return [2 /*return*/];\n }\n });\n }); })\n .catch(function (e) {\n logger.debug('Failed to sync cache info into memory', e);\n return rej(e);\n });\n });\n };\n AuthClass.prototype.isOAuthInProgress = function () {\n return this.oAuthFlowInProgress;\n };\n /**\n * Get current authenticated user\n * @param {CurrentUserOpts} - options for getting the current user\n * @return - A promise resolves to current authenticated CognitoUser if success\n */\n AuthClass.prototype.currentAuthenticatedUser = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n var federatedUser, e_7, federatedInfo, user, e_8;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('getting current authenticated user');\n federatedUser = null;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n e_7 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_7);\n throw e_7;\n case 4:\n try {\n federatedInfo = JSON.parse(this._storage.getItem('aws-amplify-federatedInfo'));\n if (federatedInfo) {\n federatedUser = __assign(__assign({}, federatedInfo.user), { token: federatedInfo.token });\n }\n }\n catch (e) {\n logger.debug('cannot load federated user from auth storage');\n }\n if (!federatedUser) return [3 /*break*/, 5];\n this.user = federatedUser;\n logger.debug('get current authenticated federated user', this.user);\n return [2 /*return*/, this.user];\n case 5:\n logger.debug('get current authenticated userpool user');\n user = null;\n _a.label = 6;\n case 6:\n _a.trys.push([6, 8, , 9]);\n return [4 /*yield*/, this.currentUserPoolUser(params)];\n case 7:\n user = _a.sent();\n return [3 /*break*/, 9];\n case 8:\n e_8 = _a.sent();\n if (e_8 === 'No userPool') {\n logger.error('Cannot get the current user because the user pool is missing. ' +\n 'Please make sure the Auth module is configured with a valid Cognito User Pool ID');\n }\n logger.debug('The user is not authenticated by the error', e_8);\n return [2 /*return*/, Promise.reject('The user is not authenticated')];\n case 9:\n this.user = user;\n return [2 /*return*/, this.user];\n }\n });\n });\n };\n /**\n * Get current user's session\n * @return - A promise resolves to session object if success\n */\n AuthClass.prototype.currentSession = function () {\n var that = this;\n logger.debug('Getting current session');\n // Purposely not calling the reject method here because we don't need a console error\n if (!this.userPool) {\n return Promise.reject(new Error('No User Pool in the configuration.'));\n }\n return new Promise(function (res, rej) {\n that\n .currentUserPoolUser()\n .then(function (user) {\n that\n .userSession(user)\n .then(function (session) {\n res(session);\n return;\n })\n .catch(function (e) {\n logger.debug('Failed to get the current session', e);\n rej(e);\n return;\n });\n })\n .catch(function (e) {\n logger.debug('Failed to get the current user', e);\n rej(e);\n return;\n });\n });\n };\n /**\n * Get the corresponding user session\n * @param {Object} user - The CognitoUser object\n * @return - A promise resolves to the session\n */\n AuthClass.prototype.userSession = function (user) {\n var _this = this;\n if (!user) {\n logger.debug('the user is null');\n return this.rejectAuthError(AuthErrorTypes.NoUserSession);\n }\n var clientMetadata = this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n return new Promise(function (res, rej) {\n logger.debug('Getting the session from this user:', user);\n user.getSession(function (err, session) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_7;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('Failed to get the session from user', user);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_7 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_7.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n logger.debug('Succeed to get the user session', session);\n res(session);\n return [2 /*return*/];\n }\n });\n }); }, { clientMetadata: clientMetadata });\n });\n };\n /**\n * Get authenticated credentials of current user.\n * @return - A promise resolves to be current user's credentials\n */\n AuthClass.prototype.currentUserCredentials = function () {\n return __awaiter(this, void 0, void 0, function () {\n var e_9, federatedInfo;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('Getting current user credentials');\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n e_9 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_9);\n throw e_9;\n case 4:\n federatedInfo = null;\n try {\n federatedInfo = JSON.parse(this._storage.getItem('aws-amplify-federatedInfo'));\n }\n catch (e) {\n logger.debug('failed to get or parse item aws-amplify-federatedInfo', e);\n }\n if (federatedInfo) {\n // refresh the jwt token here if necessary\n return [2 /*return*/, this.Credentials.refreshFederatedToken(federatedInfo)];\n }\n else {\n return [2 /*return*/, this.currentSession()\n .then(function (session) {\n logger.debug('getting session success', session);\n return _this.Credentials.set(session, 'session');\n })\n .catch(function () {\n logger.debug('getting guest credentials');\n return _this.Credentials.set(null, 'guest');\n })];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AuthClass.prototype.currentCredentials = function () {\n logger.debug('getting current credentials');\n return this.Credentials.get();\n };\n /**\n * Initiate an attribute confirmation request\n * @param {Object} user - The CognitoUser\n * @param {Object} attr - The attributes to be verified\n * @return - A promise resolves to callback data if success\n */\n AuthClass.prototype.verifyUserAttribute = function (user, attr, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n return new Promise(function (resolve, reject) {\n user.getAttributeVerificationCode(attr, {\n onSuccess: function (success) {\n return resolve(success);\n },\n onFailure: function (err) {\n return reject(err);\n },\n }, clientMetadata);\n });\n };\n /**\n * Confirm an attribute using a confirmation code\n * @param {Object} user - The CognitoUser\n * @param {Object} attr - The attribute to be verified\n * @param {String} code - The confirmation code\n * @return - A promise resolves to callback data if success\n */\n AuthClass.prototype.verifyUserAttributeSubmit = function (user, attr, code) {\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n return new Promise(function (resolve, reject) {\n user.verifyAttribute(attr, code, {\n onSuccess: function (data) {\n resolve(data);\n return;\n },\n onFailure: function (err) {\n reject(err);\n return;\n },\n });\n });\n };\n AuthClass.prototype.verifyCurrentUserAttribute = function (attr) {\n var that = this;\n return that\n .currentUserPoolUser()\n .then(function (user) { return that.verifyUserAttribute(user, attr); });\n };\n /**\n * Confirm current user's attribute using a confirmation code\n * @param {Object} attr - The attribute to be verified\n * @param {String} code - The confirmation code\n * @return - A promise resolves to callback data if success\n */\n AuthClass.prototype.verifyCurrentUserAttributeSubmit = function (attr, code) {\n var that = this;\n return that\n .currentUserPoolUser()\n .then(function (user) { return that.verifyUserAttributeSubmit(user, attr, code); });\n };\n AuthClass.prototype.cognitoIdentitySignOut = function (opts, user) {\n return __awaiter(this, void 0, void 0, function () {\n var e_10, isSignedInHostedUI;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this._storageSync];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_10 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_10);\n throw e_10;\n case 3:\n isSignedInHostedUI = this._oAuthHandler &&\n this._storage.getItem('amplify-signin-with-hostedUI') === 'true';\n return [2 /*return*/, new Promise(function (res, rej) {\n if (opts && opts.global) {\n logger.debug('user global sign out', user);\n // in order to use global signout\n // we must validate the user as an authenticated user by using getSession\n var clientMetadata = _this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n user.getSession(function (err, result) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_8;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('failed to get the user session', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_8 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_8.message));\n return [2 /*return*/];\n case 4: return [2 /*return*/, rej(err)];\n case 5:\n user.globalSignOut({\n onSuccess: function (data) {\n logger.debug('global sign out success');\n if (isSignedInHostedUI) {\n _this.oAuthSignOutRedirect(res, rej);\n }\n else {\n return res();\n }\n },\n onFailure: function (err) {\n logger.debug('global sign out failed', err);\n return rej(err);\n },\n });\n return [2 /*return*/];\n }\n });\n }); }, { clientMetadata: clientMetadata });\n }\n else {\n logger.debug('user sign out', user);\n user.signOut(function () {\n if (isSignedInHostedUI) {\n _this.oAuthSignOutRedirect(res, rej);\n }\n else {\n return res();\n }\n });\n }\n })];\n }\n });\n });\n };\n AuthClass.prototype.oAuthSignOutRedirect = function (resolve, reject) {\n var isBrowser = browserOrNode().isBrowser;\n if (isBrowser) {\n this.oAuthSignOutRedirectOrReject(reject);\n }\n else {\n this.oAuthSignOutAndResolve(resolve);\n }\n };\n AuthClass.prototype.oAuthSignOutAndResolve = function (resolve) {\n this._oAuthHandler.signOut();\n resolve();\n };\n AuthClass.prototype.oAuthSignOutRedirectOrReject = function (reject) {\n this._oAuthHandler.signOut(); // this method redirects url\n // App should be redirected to another url otherwise it will reject\n setTimeout(function () { return reject(Error('Signout timeout fail')); }, 3000);\n };\n /**\n * Sign out method\n * @\n * @return - A promise resolved if success\n */\n AuthClass.prototype.signOut = function (opts) {\n return __awaiter(this, void 0, void 0, function () {\n var e_11, user;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.cleanCachedItems()];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_11 = _a.sent();\n logger.debug('failed to clear cached items');\n return [3 /*break*/, 3];\n case 3:\n if (!this.userPool) return [3 /*break*/, 7];\n user = this.userPool.getCurrentUser();\n if (!user) return [3 /*break*/, 5];\n return [4 /*yield*/, this.cognitoIdentitySignOut(opts, user)];\n case 4:\n _a.sent();\n return [3 /*break*/, 6];\n case 5:\n logger.debug('no current Cognito user');\n _a.label = 6;\n case 6: return [3 /*break*/, 8];\n case 7:\n logger.debug('no Cognito User pool');\n _a.label = 8;\n case 8:\n /**\n * Note for future refactor - no reliable way to get username with\n * Cognito User Pools vs Identity when federating with Social Providers\n * This is why we need a well structured session object that can be inspected\n * and information passed back in the message below for Hub dispatch\n */\n dispatchAuthEvent('signOut', this.user, \"A user has been signed out\");\n this.user = null;\n return [2 /*return*/];\n }\n });\n });\n };\n AuthClass.prototype.cleanCachedItems = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: \n // clear cognito cached item\n return [4 /*yield*/, this.Credentials.clear()];\n case 1:\n // clear cognito cached item\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Change a password for an authenticated user\n * @param {Object} user - The CognitoUser object\n * @param {String} oldPassword - the current password\n * @param {String} newPassword - the requested new password\n * @return - A promise resolves if success\n */\n AuthClass.prototype.changePassword = function (user, oldPassword, newPassword, clientMetadata) {\n var _this = this;\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n return new Promise(function (resolve, reject) {\n _this.userSession(user).then(function (session) {\n user.changePassword(oldPassword, newPassword, function (err, data) {\n if (err) {\n logger.debug('change password failure', err);\n return reject(err);\n }\n else {\n return resolve(data);\n }\n }, clientMetadata);\n });\n });\n };\n /**\n * Initiate a forgot password request\n * @param {String} username - the username to change password\n * @return - A promise resolves if success\n */\n AuthClass.prototype.forgotPassword = function (username, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n var user = this.createCognitoUser(username);\n return new Promise(function (resolve, reject) {\n user.forgotPassword({\n onSuccess: function () {\n resolve();\n return;\n },\n onFailure: function (err) {\n logger.debug('forgot password failure', err);\n dispatchAuthEvent('forgotPassword_failure', err, username + \" forgotPassword failed\");\n reject(err);\n return;\n },\n inputVerificationCode: function (data) {\n dispatchAuthEvent('forgotPassword', user, username + \" has initiated forgot password flow\");\n resolve(data);\n return;\n },\n }, clientMetadata);\n });\n };\n /**\n * Confirm a new password using a confirmation Code\n * @param {String} username - The username\n * @param {String} code - The confirmation code\n * @param {String} password - The new password\n * @return - A promise that resolves if success\n */\n AuthClass.prototype.forgotPasswordSubmit = function (username, code, password, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\n var user = this.createCognitoUser(username);\n return new Promise(function (resolve, reject) {\n user.confirmPassword(code, password, {\n onSuccess: function (success) {\n dispatchAuthEvent('forgotPasswordSubmit', user, username + \" forgotPasswordSubmit successful\");\n resolve(success);\n return;\n },\n onFailure: function (err) {\n dispatchAuthEvent('forgotPasswordSubmit_failure', err, username + \" forgotPasswordSubmit failed\");\n reject(err);\n return;\n },\n }, clientMetadata);\n });\n };\n /**\n * Get user information\n * @async\n * @return {Object }- current User's information\n */\n AuthClass.prototype.currentUserInfo = function () {\n return __awaiter(this, void 0, void 0, function () {\n var source, user, attributes, userAttrs, credentials, e_12, info, err_1, user;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n source = this.Credentials.getCredSource();\n if (!(!source || source === 'aws' || source === 'userPool')) return [3 /*break*/, 9];\n return [4 /*yield*/, this.currentUserPoolUser().catch(function (err) {\n return logger.error(err);\n })];\n case 1:\n user = _a.sent();\n if (!user) {\n return [2 /*return*/, null];\n }\n _a.label = 2;\n case 2:\n _a.trys.push([2, 8, , 9]);\n return [4 /*yield*/, this.userAttributes(user)];\n case 3:\n attributes = _a.sent();\n userAttrs = this.attributesToObject(attributes);\n credentials = null;\n _a.label = 4;\n case 4:\n _a.trys.push([4, 6, , 7]);\n return [4 /*yield*/, this.currentCredentials()];\n case 5:\n credentials = _a.sent();\n return [3 /*break*/, 7];\n case 6:\n e_12 = _a.sent();\n logger.debug('Failed to retrieve credentials while getting current user info', e_12);\n return [3 /*break*/, 7];\n case 7:\n info = {\n id: credentials ? credentials.identityId : undefined,\n username: user.getUsername(),\n attributes: userAttrs,\n };\n return [2 /*return*/, info];\n case 8:\n err_1 = _a.sent();\n logger.error('currentUserInfo error', err_1);\n return [2 /*return*/, {}];\n case 9:\n if (source === 'federated') {\n user = this.user;\n return [2 /*return*/, user ? user : {}];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AuthClass.prototype.federatedSignIn = function (providerOrOptions, response, user) {\n return __awaiter(this, void 0, void 0, function () {\n var options, provider, customState, client_id, redirect_uri, provider, loggedInUser, token, identity_id, expires_at, credentials, currentUser;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._config.identityPoolId && !this._config.userPoolId) {\n throw new Error(\"Federation requires either a User Pool or Identity Pool in config\");\n }\n // Ensure backwards compatability\n if (typeof providerOrOptions === 'undefined') {\n if (this._config.identityPoolId && !this._config.userPoolId) {\n throw new Error(\"Federation with Identity Pools requires tokens passed as arguments\");\n }\n }\n if (!(isFederatedSignInOptions(providerOrOptions) ||\n isFederatedSignInOptionsCustom(providerOrOptions) ||\n hasCustomState(providerOrOptions) ||\n typeof providerOrOptions === 'undefined')) return [3 /*break*/, 1];\n options = providerOrOptions || {\n provider: CognitoHostedUIIdentityProvider.Cognito,\n };\n provider = isFederatedSignInOptions(options)\n ? options.provider\n : options.customProvider;\n customState = isFederatedSignInOptions(options)\n ? options.customState\n : options.customState;\n if (this._config.userPoolId) {\n client_id = isCognitoHostedOpts(this._config.oauth)\n ? this._config.userPoolWebClientId\n : this._config.oauth.clientID;\n redirect_uri = isCognitoHostedOpts(this._config.oauth)\n ? this._config.oauth.redirectSignIn\n : this._config.oauth.redirectUri;\n this._oAuthHandler.oauthSignIn(this._config.oauth.responseType, this._config.oauth.domain, redirect_uri, client_id, provider, customState);\n }\n return [3 /*break*/, 4];\n case 1:\n provider = providerOrOptions;\n // To check if the user is already logged in\n try {\n loggedInUser = JSON.stringify(JSON.parse(this._storage.getItem('aws-amplify-federatedInfo')).user);\n if (loggedInUser) {\n logger.warn(\"There is already a signed in user: \" + loggedInUser + \" in your app.\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tYou should not call Auth.federatedSignIn method again as it may cause unexpected behavior.\");\n }\n }\n catch (e) { }\n token = response.token, identity_id = response.identity_id, expires_at = response.expires_at;\n return [4 /*yield*/, this.Credentials.set({ provider: provider, token: token, identity_id: identity_id, user: user, expires_at: expires_at }, 'federation')];\n case 2:\n credentials = _a.sent();\n return [4 /*yield*/, this.currentAuthenticatedUser()];\n case 3:\n currentUser = _a.sent();\n dispatchAuthEvent('signIn', currentUser, \"A user \" + currentUser.username + \" has been signed in\");\n logger.debug('federated sign in credentials', credentials);\n return [2 /*return*/, credentials];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Used to complete the OAuth flow with or without the Cognito Hosted UI\n * @param {String} URL - optional parameter for customers to pass in the response URL\n */\n AuthClass.prototype._handleAuthResponse = function (URL) {\n return __awaiter(this, void 0, void 0, function () {\n var currentUrl, hasCodeOrError, hasTokenOrError, _a, accessToken, idToken, refreshToken, state, session, credentials, isCustomStateIncluded, currentUser, customState, err_2;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (this.oAuthFlowInProgress) {\n logger.debug(\"Skipping URL \" + URL + \" current flow in progress\");\n return [2 /*return*/];\n }\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 8, 9]);\n this.oAuthFlowInProgress = true;\n if (!this._config.userPoolId) {\n throw new Error(\"OAuth responses require a User Pool defined in config\");\n }\n dispatchAuthEvent('parsingCallbackUrl', { url: URL }, \"The callback url is being parsed\");\n currentUrl = URL || (browserOrNode().isBrowser ? window.location.href : '');\n hasCodeOrError = !!(parse(currentUrl).query || '')\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .find(function (_a) {\n var _b = __read(_a, 1), k = _b[0];\n return k === 'code' || k === 'error';\n });\n hasTokenOrError = !!(parse(currentUrl).hash || '#')\n .substr(1)\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .find(function (_a) {\n var _b = __read(_a, 1), k = _b[0];\n return k === 'access_token' || k === 'error';\n });\n if (!(hasCodeOrError || hasTokenOrError)) return [3 /*break*/, 7];\n this._storage.setItem('amplify-redirected-from-hosted-ui', 'true');\n _b.label = 2;\n case 2:\n _b.trys.push([2, 6, , 7]);\n return [4 /*yield*/, this._oAuthHandler.handleAuthResponse(currentUrl)];\n case 3:\n _a = _b.sent(), accessToken = _a.accessToken, idToken = _a.idToken, refreshToken = _a.refreshToken, state = _a.state;\n session = new CognitoUserSession({\n IdToken: new CognitoIdToken({ IdToken: idToken }),\n RefreshToken: new CognitoRefreshToken({\n RefreshToken: refreshToken,\n }),\n AccessToken: new CognitoAccessToken({\n AccessToken: accessToken,\n }),\n });\n credentials = void 0;\n if (!this._config.identityPoolId) return [3 /*break*/, 5];\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 4:\n credentials = _b.sent();\n logger.debug('AWS credentials', credentials);\n _b.label = 5;\n case 5:\n isCustomStateIncluded = /-/.test(state);\n currentUser = this.createCognitoUser(session.getIdToken().decodePayload()['cognito:username']);\n // This calls cacheTokens() in Cognito SDK\n currentUser.setSignInUserSession(session);\n if (window && typeof window.history !== 'undefined') {\n window.history.replaceState({}, null, this._config.oauth.redirectSignIn);\n }\n dispatchAuthEvent('signIn', currentUser, \"A user \" + currentUser.getUsername() + \" has been signed in\");\n dispatchAuthEvent('cognitoHostedUI', currentUser, \"A user \" + currentUser.getUsername() + \" has been signed in via Cognito Hosted UI\");\n if (isCustomStateIncluded) {\n customState = state.split('-').splice(1).join('-');\n dispatchAuthEvent('customOAuthState', urlSafeDecode(customState), \"State for user \" + currentUser.getUsername());\n }\n //#endregion\n return [2 /*return*/, credentials];\n case 6:\n err_2 = _b.sent();\n logger.debug('Error in cognito hosted auth response', err_2);\n // Just like a successful handling of `?code`, replace the window history to \"dispose\" of the `code`.\n // Otherwise, reloading the page will throw errors as the `code` has already been spent.\n if (window && typeof window.history !== 'undefined') {\n window.history.replaceState({}, null, this._config.oauth.redirectSignIn);\n }\n dispatchAuthEvent('signIn_failure', err_2, \"The OAuth response flow failed\");\n dispatchAuthEvent('cognitoHostedUI_failure', err_2, \"A failure occurred when returning to the Cognito Hosted UI\");\n dispatchAuthEvent('customState_failure', err_2, \"A failure occurred when returning state\");\n return [3 /*break*/, 7];\n case 7: return [3 /*break*/, 9];\n case 8:\n this.oAuthFlowInProgress = false;\n return [7 /*endfinally*/];\n case 9: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Compact version of credentials\n * @param {Object} credentials\n * @return {Object} - Credentials\n */\n AuthClass.prototype.essentialCredentials = function (credentials) {\n return {\n accessKeyId: credentials.accessKeyId,\n sessionToken: credentials.sessionToken,\n secretAccessKey: credentials.secretAccessKey,\n identityId: credentials.identityId,\n authenticated: credentials.authenticated,\n };\n };\n AuthClass.prototype.attributesToObject = function (attributes) {\n var _this = this;\n var obj = {};\n if (attributes) {\n attributes.map(function (attribute) {\n if (attribute.Name === 'email_verified' ||\n attribute.Name === 'phone_number_verified') {\n obj[attribute.Name] =\n _this.isTruthyString(attribute.Value) || attribute.Value === true;\n }\n else {\n obj[attribute.Name] = attribute.Value;\n }\n });\n }\n return obj;\n };\n AuthClass.prototype.isTruthyString = function (value) {\n return (typeof value.toLowerCase === 'function' && value.toLowerCase() === 'true');\n };\n AuthClass.prototype.createCognitoUser = function (username) {\n var userData = {\n Username: username,\n Pool: this.userPool,\n };\n userData.Storage = this._storage;\n var authenticationFlowType = this._config.authenticationFlowType;\n var user = new CognitoUser(userData);\n if (authenticationFlowType) {\n user.setAuthenticationFlowType(authenticationFlowType);\n }\n return user;\n };\n AuthClass.prototype._isValidAuthStorage = function (obj) {\n // We need to check if the obj has the functions of Storage\n return (!!obj &&\n typeof obj.getItem === 'function' &&\n typeof obj.setItem === 'function' &&\n typeof obj.removeItem === 'function' &&\n typeof obj.clear === 'function');\n };\n AuthClass.prototype.noUserPoolErrorHandler = function (config) {\n if (config) {\n if (!config.userPoolId || !config.identityPoolId) {\n return AuthErrorTypes.MissingAuthConfig;\n }\n }\n return AuthErrorTypes.NoConfig;\n };\n AuthClass.prototype.rejectAuthError = function (type) {\n return Promise.reject(new AuthError(type));\n };\n AuthClass.prototype.rejectNoUserPool = function () {\n var type = this.noUserPoolErrorHandler(this._config);\n return Promise.reject(new NoUserPoolError(type));\n };\n AuthClass.prototype.rememberDevice = function () {\n return __awaiter(this, void 0, void 0, function () {\n var currUser, error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 1:\n currUser = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_2 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_2);\n return [2 /*return*/, Promise.reject('The user is not authenticated')];\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2 /*return*/, new Promise(function (res, rej) {\n currUser.setDeviceStatusRemembered({\n onSuccess: function (data) {\n res(data);\n },\n onFailure: function (err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n }\n else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n }\n else {\n rej(err);\n }\n },\n });\n })];\n }\n });\n });\n };\n AuthClass.prototype.forgetDevice = function () {\n return __awaiter(this, void 0, void 0, function () {\n var currUser, error_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 1:\n currUser = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_3 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_3);\n return [2 /*return*/, Promise.reject('The user is not authenticated')];\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2 /*return*/, new Promise(function (res, rej) {\n currUser.forgetDevice({\n onSuccess: function (data) {\n res(data);\n },\n onFailure: function (err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n }\n else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n }\n else {\n rej(err);\n }\n },\n });\n })];\n }\n });\n });\n };\n AuthClass.prototype.fetchDevices = function () {\n return __awaiter(this, void 0, void 0, function () {\n var currUser, error_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 1:\n currUser = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_4 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_4);\n throw new Error('The user is not authenticated');\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2 /*return*/, new Promise(function (res, rej) {\n var cb = {\n onSuccess: function (data) {\n var deviceList = data.Devices.map(function (device) {\n var deviceName = device.DeviceAttributes.find(function (_a) {\n var Name = _a.Name;\n return Name === 'device_name';\n }) || {};\n var deviceInfo = {\n id: device.DeviceKey,\n name: deviceName.Value,\n };\n return deviceInfo;\n });\n res(deviceList);\n },\n onFailure: function (err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n }\n else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n }\n else {\n rej(err);\n }\n },\n };\n currUser.listDevices(MAX_DEVICES, null, cb);\n })];\n }\n });\n });\n };\n return AuthClass;\n}());\nexport { AuthClass };\nexport var Auth = new AuthClass(null);\nAmplify.register(Auth);\n//# sourceMappingURL=Auth.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { browserOrNode } from '@aws-amplify/core';\nexport default (function (callback) {\n if (browserOrNode().isBrowser && window.location) {\n var url = window.location.href;\n callback({ url: url });\n }\n else if (browserOrNode().isNode) {\n // continue building on ssr\n (function () { }); // noop\n }\n else {\n throw new Error('Not supported');\n }\n});\n//# sourceMappingURL=urlListener.js.map","import { DeviceEventEmitter, EmitterSubscription } from 'react-native';\nimport { State } from '../../State';\nimport { TouchEventType } from '../../TouchEventType';\nimport {\n GestureTouchEvent,\n GestureUpdateEvent,\n GestureStateChangeEvent,\n} from '../gestureHandlerCommon';\nimport { findHandler, findOldGestureHandler } from '../handlersRegistry';\nimport { BaseGesture } from './gesture';\nimport {\n GestureStateManager,\n GestureStateManagerType,\n} from './gestureStateManager';\n\nlet gestureHandlerEventSubscription: EmitterSubscription | null = null;\nlet gestureHandlerStateChangeEventSubscription: EmitterSubscription | null =\n null;\n\nconst gestureStateManagers: Map = new Map<\n number,\n GestureStateManagerType\n>();\n\nconst lastUpdateEvent: (GestureUpdateEvent | undefined)[] = [];\n\nfunction isStateChangeEvent(\n event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent\n): event is GestureStateChangeEvent {\n // @ts-ignore oldState doesn't exist on GestureTouchEvent and that's the point\n return event.oldState != null;\n}\n\nfunction isTouchEvent(\n event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent\n): event is GestureTouchEvent {\n return event.eventType != null;\n}\n\nexport function onGestureHandlerEvent(\n event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent\n) {\n const handler = findHandler(event.handlerTag) as BaseGesture<\n Record\n >;\n\n if (handler) {\n if (isStateChangeEvent(event)) {\n if (\n event.oldState === State.UNDETERMINED &&\n event.state === State.BEGAN\n ) {\n handler.handlers.onBegin?.(event);\n } else if (\n (event.oldState === State.BEGAN ||\n event.oldState === State.UNDETERMINED) &&\n event.state === State.ACTIVE\n ) {\n handler.handlers.onStart?.(event);\n lastUpdateEvent[handler.handlers.handlerTag] = event;\n } else if (event.oldState !== event.state && event.state === State.END) {\n if (event.oldState === State.ACTIVE) {\n handler.handlers.onEnd?.(event, true);\n }\n handler.handlers.onFinalize?.(event, true);\n lastUpdateEvent[handler.handlers.handlerTag] = undefined;\n } else if (\n (event.state === State.FAILED || event.state === State.CANCELLED) &&\n event.oldState !== event.state\n ) {\n if (event.oldState === State.ACTIVE) {\n handler.handlers.onEnd?.(event, false);\n }\n handler.handlers.onFinalize?.(event, false);\n gestureStateManagers.delete(event.handlerTag);\n lastUpdateEvent[handler.handlers.handlerTag] = undefined;\n }\n } else if (isTouchEvent(event)) {\n if (!gestureStateManagers.has(event.handlerTag)) {\n gestureStateManagers.set(\n event.handlerTag,\n GestureStateManager.create(event.handlerTag)\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const manager = gestureStateManagers.get(event.handlerTag)!;\n\n switch (event.eventType) {\n case TouchEventType.TOUCHES_DOWN:\n handler.handlers?.onTouchesDown?.(event, manager);\n break;\n case TouchEventType.TOUCHES_MOVE:\n handler.handlers?.onTouchesMove?.(event, manager);\n break;\n case TouchEventType.TOUCHES_UP:\n handler.handlers?.onTouchesUp?.(event, manager);\n break;\n case TouchEventType.TOUCHES_CANCELLED:\n handler.handlers?.onTouchesCancelled?.(event, manager);\n break;\n }\n } else {\n handler.handlers.onUpdate?.(event);\n\n if (handler.handlers.onChange && handler.handlers.changeEventCalculator) {\n handler.handlers.onChange?.(\n handler.handlers.changeEventCalculator?.(\n event,\n lastUpdateEvent[handler.handlers.handlerTag]\n )\n );\n\n lastUpdateEvent[handler.handlers.handlerTag] = event;\n }\n }\n } else {\n const oldHandler = findOldGestureHandler(event.handlerTag);\n if (oldHandler) {\n const nativeEvent = { nativeEvent: event };\n if (isStateChangeEvent(event)) {\n oldHandler.onGestureStateChange(nativeEvent);\n } else {\n oldHandler.onGestureEvent(nativeEvent);\n }\n return;\n }\n }\n}\n\nexport function startListening() {\n stopListening();\n\n gestureHandlerEventSubscription = DeviceEventEmitter.addListener(\n 'onGestureHandlerEvent',\n onGestureHandlerEvent\n );\n\n gestureHandlerStateChangeEventSubscription = DeviceEventEmitter.addListener(\n 'onGestureHandlerStateChange',\n onGestureHandlerEvent\n );\n}\n\nexport function stopListening() {\n if (gestureHandlerEventSubscription) {\n gestureHandlerEventSubscription.remove();\n gestureHandlerEventSubscription = null;\n }\n\n if (gestureHandlerStateChangeEventSubscription) {\n gestureHandlerStateChangeEventSubscription.remove();\n gestureHandlerStateChangeEventSubscription = null;\n }\n}\n","import NodeManager from '../../web/tools/NodeManager';\nimport { GestureStateManagerType } from './gestureStateManager';\n\nexport const GestureStateManager = {\n create(handlerTag: number): GestureStateManagerType {\n return {\n begin: () => {\n NodeManager.getHandler(handlerTag).begin();\n },\n\n activate: () => {\n NodeManager.getHandler(handlerTag).activate();\n },\n\n fail: () => {\n NodeManager.getHandler(handlerTag).fail();\n },\n\n end: () => {\n NodeManager.getHandler(handlerTag).end();\n },\n };\n },\n};\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport normalizeColor from './compiler/normalizeColor';\nimport normalizeValueWithProperty from './compiler/normalizeValueWithProperty';\nvar emptyObject = {};\n/**\n * Shadows\n */\n\nvar defaultOffset = {\n height: 0,\n width: 0\n};\nexport var createBoxShadowValue = style => {\n var shadowColor = style.shadowColor,\n shadowOffset = style.shadowOffset,\n shadowOpacity = style.shadowOpacity,\n shadowRadius = style.shadowRadius;\n\n var _ref = shadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(shadowRadius || 0);\n var color = normalizeColor(shadowColor || 'black', shadowOpacity);\n\n if (color != null && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\nexport var createTextShadowValue = style => {\n var textShadowColor = style.textShadowColor,\n textShadowOffset = style.textShadowOffset,\n textShadowRadius = style.textShadowRadius;\n\n var _ref2 = textShadowOffset || defaultOffset,\n height = _ref2.height,\n width = _ref2.width;\n\n var radius = textShadowRadius || 0;\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(radius);\n var color = normalizeValueWithProperty(textShadowColor, 'textShadowColor');\n\n if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\n/**\n * Preprocess styles\n */\n\nexport var preprocess = originalStyle => {\n var style = originalStyle || emptyObject;\n var nextStyle = {};\n\n for (var originalProp in style) {\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue;\n\n if (!Object.prototype.hasOwnProperty.call(style, originalProp) || originalValue == null) {\n continue;\n } // Convert shadow styles\n\n\n if (prop === 'shadowColor' || prop === 'shadowOffset' || prop === 'shadowOpacity' || prop === 'shadowRadius') {\n var boxShadowValue = createBoxShadowValue(style);\n\n if (boxShadowValue != null && nextStyle.boxShadow == null) {\n var boxShadow = style.boxShadow;\n prop = 'boxShadow';\n value = boxShadow ? boxShadow + \", \" + boxShadowValue : boxShadowValue;\n } else {\n continue;\n }\n } // Convert text shadow styles\n\n\n if (prop === 'textShadowColor' || prop === 'textShadowOffset' || prop === 'textShadowRadius') {\n var textShadowValue = createTextShadowValue(style);\n\n if (textShadowValue != null && nextStyle.textShadow == null) {\n var textShadow = style.textShadow;\n prop = 'textShadow';\n value = textShadow ? textShadow + \", \" + textShadowValue : textShadowValue;\n } else {\n continue;\n }\n }\n\n nextStyle[prop] = value;\n } // $FlowIgnore\n\n\n return nextStyle;\n};\nexport default preprocess;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nvar UNINITIALIZED = typeof Symbol === 'function' && typeof Symbol() === 'symbol' ? Symbol() : Object.freeze({});\nexport default function useStable(getInitialValue) {\n var ref = React.useRef(UNINITIALIZED);\n\n if (ref.current === UNINITIALIZED) {\n ref.current = getInitialValue();\n } // $FlowFixMe (#64650789) Trouble refining types where `Symbol` is concerned.\n\n\n return ref.current;\n}","import AnimatedValue from '../core/InternalAnimatedValue';\nimport { createAnimatedSet as set } from '../core/AnimatedSet';\nimport { createAnimatedCall as call } from '../core/AnimatedCall';\nimport { createAnimatedAlways as always } from '../core/AnimatedAlways';\nimport { createAnimatedCond as cond } from '../core/AnimatedCond';\n\n/**\n * evaluate given node and notify children\n * @param node - node to be evaluated\n * @param input - nodes (or one node) representing values which states input for node.\n * @param callback - after callback\n */\n\nexport function evaluateOnce(node, input = [], callback) {\n if (!Array.isArray(input)) {\n input = [input];\n }\n const done = new AnimatedValue(0);\n const evalNode = cond(\n done,\n 0,\n call([node, set(done, 1)], () => {\n callback && callback();\n for (let i = 0; i < input.length; i++) {\n input[i].__removeChild(alwaysNode);\n alwaysNode.__detach();\n }\n })\n );\n const alwaysNode = always(evalNode);\n for (let i = 0; i < input.length; i++) {\n input[i].__addChild(alwaysNode);\n alwaysNode.__attach();\n }\n}\n","import JSReanimated from './JSReanimated';\nconst reanimatedJS = new JSReanimated();\nexport const _updatePropsJS = (updates, viewRef) => {\n if (viewRef._component) {\n const component = viewRef._component;\n const [rawStyles] = Object.keys(updates).reduce((acc, key) => {\n const value = updates[key];\n const index = typeof value === 'function' ? 1 : 0;\n acc[index][key] = value;\n return acc;\n }, [{}, {}]);\n if (typeof component.setNativeProps === 'function') {\n setNativeProps(component, rawStyles);\n }\n else if (Object.keys(component.props).length > 0) {\n Object.keys(component.props).forEach((key) => {\n if (!rawStyles[key]) {\n return;\n }\n const dashedKey = key.replace(/[A-Z]/g, (m) => '-' + m.toLowerCase());\n component._touchableNode.setAttribute(dashedKey, rawStyles[key]);\n });\n }\n else {\n console.warn('It is not possible to manipulate component');\n }\n }\n};\nconst setNativeProps = (component, style) => {\n const previousStyle = component.previousStyle ? component.previousStyle : {};\n const currentStyle = Object.assign(Object.assign({}, previousStyle), style);\n component.previousStyle = currentStyle;\n component.setNativeProps({ style: currentStyle });\n};\nexport default reanimatedJS;\n","// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nvar nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') : undefined;\nexport default nodejsCustomInspectSymbol;\n","/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n var lineRegexp = /\\r\\n|[\\n\\r]/g;\n var line = 1;\n var column = position + 1;\n var match;\n\n while ((match = lineRegexp.exec(source.body)) && match.index < position) {\n line += 1;\n column = position + 1 - (match.index + match[0].length);\n }\n\n return {\n line: line,\n column: column\n };\n}\n","export function isNonEmptyArray(value) {\n return Array.isArray(value) && value.length > 0;\n}\n//# sourceMappingURL=arrays.js.map","export function compact() {\n var objects = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n objects[_i] = arguments[_i];\n }\n var result = Object.create(null);\n objects.forEach(function (obj) {\n if (!obj)\n return;\n Object.keys(obj).forEach(function (key) {\n var value = obj[key];\n if (value !== void 0) {\n result[key] = value;\n }\n });\n });\n return result;\n}\n//# sourceMappingURL=compact.js.map",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));","import { Platform } from 'expo-modules-core';\nimport { PixelRatio } from 'react-native';\nimport { PackagerAsset } from 'react-native/Libraries/Image/AssetRegistry';\n\nexport type ResolvedAssetSource = {\n __packager_asset: boolean;\n width?: number;\n height?: number;\n uri: string;\n scale: number;\n};\n\n// Returns the Metro dev server-specific asset location.\nfunction getScaledAssetPath(asset): string {\n const scale = AssetSourceResolver.pickScale(asset.scales, PixelRatio.get());\n const scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';\n const type = !asset.type ? '' : `.${asset.type}`;\n if (__DEV__) {\n return asset.httpServerLocation + '/' + asset.name + scaleSuffix + type;\n } else {\n return asset.httpServerLocation.replace(/\\.\\.\\//g, '_') + '/' + asset.name + scaleSuffix + type;\n }\n}\n\nexport default class AssetSourceResolver {\n serverUrl: string;\n // where the jsbundle is being run from\n // NOTE(EvanBacon): Never defined on web.\n jsbundleUrl?: string | null;\n // the asset to resolve\n asset: PackagerAsset;\n\n constructor(\n serverUrl: string | undefined | null,\n jsbundleUrl: string | undefined | null,\n asset: PackagerAsset\n ) {\n this.serverUrl = serverUrl || 'https://expo.dev';\n this.jsbundleUrl = null;\n this.asset = asset;\n }\n\n // Always true for web runtimes\n isLoadedFromServer(): boolean {\n return true;\n }\n\n // Always false for web runtimes\n isLoadedFromFileSystem(): boolean {\n return false;\n }\n\n defaultAsset(): ResolvedAssetSource {\n return this.assetServerURL();\n }\n\n /**\n * @returns absolute remote URL for the hosted asset.\n */\n assetServerURL(): ResolvedAssetSource {\n const fromUrl = new URL(getScaledAssetPath(this.asset), this.serverUrl);\n fromUrl.searchParams.set('platform', Platform.OS);\n fromUrl.searchParams.set('hash', this.asset.hash);\n return this.fromSource(\n // Relative on web\n fromUrl.toString().replace(fromUrl.origin, '')\n );\n }\n\n fromSource(source: string): ResolvedAssetSource {\n return {\n __packager_asset: true,\n width: this.asset.width ?? undefined,\n height: this.asset.height ?? undefined,\n uri: source,\n scale: AssetSourceResolver.pickScale(this.asset.scales, PixelRatio.get()),\n };\n }\n\n static pickScale(scales: number[], deviceScale: number): number {\n for (let i = 0; i < scales.length; i++) {\n if (scales[i] >= deviceScale) {\n return scales[i];\n }\n }\n return scales[scales.length - 1] || 1;\n }\n}\n","export default function memoize(callback) {\n let previous;\n let result;\n return function () {\n let hasChanged = false;\n for (var _len = arguments.length, dependencies = new Array(_len), _key = 0; _key < _len; _key++) {\n dependencies[_key] = arguments[_key];\n }\n if (previous) {\n if (previous.length !== dependencies.length) {\n hasChanged = true;\n } else {\n for (let i = 0; i < previous.length; i++) {\n if (previous[i] !== dependencies[i]) {\n hasChanged = true;\n break;\n }\n }\n }\n } else {\n hasChanged = true;\n }\n previous = dependencies;\n if (hasChanged || result === undefined) {\n result = callback(...dependencies);\n }\n return result;\n };\n}\n//# sourceMappingURL=memoize.js.map","const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { 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']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _linear = require('./linear');\n\nvar _linear2 = _interopRequireDefault(_linear);\n\nvar _sector = require('./sector');\n\nvar _sector2 = _interopRequireDefault(_sector);\n\nvar _ops = require('./ops');\n\nexports['default'] = function (_ref) {\n var data = _ref.data;\n var accessor = _ref.accessor;\n var center = _ref.center;\n var r = _ref.r;\n var R = _ref.R;\n var compute = _ref.compute;\n\n var values = data.map(accessor);\n var s = (0, _ops.sum)(values);\n s = s === 0 ? 1 : s;\n var scale = (0, _linear2['default'])([0, s], [0, 2 * Math.PI]);\n var curves = [];\n var t = 0;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = data.entries()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _step$value = _slicedToArray(_step.value, 2);\n\n var i = _step$value[0];\n var item = _step$value[1];\n\n var value = values[i];\n curves.push((0, _ops.enhance)(compute, {\n item: item,\n index: i,\n sector: (0, _sector2['default'])({\n center: center,\n r: r,\n R: R,\n start: scale(t),\n end: scale(t + value)\n })\n }));\n t += value;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator['return']) {\n _iterator['return']();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return { curves: curves };\n};\n\nmodule.exports = exports['default'];","const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export var ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport var CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport var AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport var SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport var EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport var SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport var TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport var AUTH_HEADER = \"authorization\";\nexport var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport var DATE_HEADER = \"date\";\nexport var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport var SHA256_HEADER = \"x-amz-content-sha256\";\nexport var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport var HOST_HEADER = \"host\";\nexport var ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nexport var PROXY_HEADER_PATTERN = /^proxy-/;\nexport var SEC_HEADER_PATTERN = /^sec-/;\nexport var UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport var ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport var EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport var UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport var MAX_CACHE_SIZE = 50;\nexport var KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxxQkFBcUIsR0FBRyxpQkFBaUIsQ0FBQztBQUN2RCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQztBQUN6RCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxZQUFZLENBQUM7QUFDakQsTUFBTSxDQUFDLElBQU0sMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDaEUsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsZUFBZSxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxJQUFNLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxJQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBRXhELE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFDM0MsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDbEMsTUFBTSxDQUFDLElBQU0saUJBQWlCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzdFLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQztBQUNwRCxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDNUQsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUVsQyxNQUFNLENBQUMsSUFBTSx5QkFBeUIsR0FBRztJQUN2QyxhQUFhLEVBQUUsSUFBSTtJQUNuQixlQUFlLEVBQUUsSUFBSTtJQUNyQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsWUFBWSxFQUFFLElBQUk7SUFDbEIsY0FBYyxFQUFFLElBQUk7SUFDcEIsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsSUFBSTtJQUNiLEVBQUUsRUFBRSxJQUFJO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsWUFBWSxFQUFFLElBQUk7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSTtDQUN4QixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUUxQyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUUxRCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxrQkFBa0IsQ0FBQztBQUV2RCxNQUFNLENBQUMsSUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQztBQUVyRSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUVuRCxNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUVsRCxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQUxHT1JJVEhNX1FVRVJZX1BBUkFNID0gXCJYLUFtei1BbGdvcml0aG1cIjtcbmV4cG9ydCBjb25zdCBDUkVERU5USUFMX1FVRVJZX1BBUkFNID0gXCJYLUFtei1DcmVkZW50aWFsXCI7XG5leHBvcnQgY29uc3QgQU1aX0RBVEVfUVVFUllfUEFSQU0gPSBcIlgtQW16LURhdGVcIjtcbmV4cG9ydCBjb25zdCBTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTSA9IFwiWC1BbXotU2lnbmVkSGVhZGVyc1wiO1xuZXhwb3J0IGNvbnN0IEVYUElSRVNfUVVFUllfUEFSQU0gPSBcIlgtQW16LUV4cGlyZXNcIjtcbmV4cG9ydCBjb25zdCBTSUdOQVRVUkVfUVVFUllfUEFSQU0gPSBcIlgtQW16LVNpZ25hdHVyZVwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX1FVRVJZX1BBUkFNID0gXCJYLUFtei1TZWN1cml0eS1Ub2tlblwiO1xuXG5leHBvcnQgY29uc3QgQVVUSF9IRUFERVIgPSBcImF1dGhvcml6YXRpb25cIjtcbmV4cG9ydCBjb25zdCBBTVpfREFURV9IRUFERVIgPSBBTVpfREFURV9RVUVSWV9QQVJBTS50b0xvd2VyQ2FzZSgpO1xuZXhwb3J0IGNvbnN0IERBVEVfSEVBREVSID0gXCJkYXRlXCI7XG5leHBvcnQgY29uc3QgR0VORVJBVEVEX0hFQURFUlMgPSBbQVVUSF9IRUFERVIsIEFNWl9EQVRFX0hFQURFUiwgREFURV9IRUFERVJdO1xuZXhwb3J0IGNvbnN0IFNJR05BVFVSRV9IRUFERVIgPSBTSUdOQVRVUkVfUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmV4cG9ydCBjb25zdCBTSEEyNTZfSEVBREVSID0gXCJ4LWFtei1jb250ZW50LXNoYTI1NlwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX0hFQURFUiA9IFRPS0VOX1FVRVJZX1BBUkFNLnRvTG93ZXJDYXNlKCk7XG5leHBvcnQgY29uc3QgSE9TVF9IRUFERVIgPSBcImhvc3RcIjtcblxuZXhwb3J0IGNvbnN0IEFMV0FZU19VTlNJR05BQkxFX0hFQURFUlMgPSB7XG4gIGF1dGhvcml6YXRpb246IHRydWUsXG4gIFwiY2FjaGUtY29udHJvbFwiOiB0cnVlLFxuICBjb25uZWN0aW9uOiB0cnVlLFxuICBleHBlY3Q6IHRydWUsXG4gIGZyb206IHRydWUsXG4gIFwia2VlcC1hbGl2ZVwiOiB0cnVlLFxuICBcIm1heC1mb3J3YXJkc1wiOiB0cnVlLFxuICBwcmFnbWE6IHRydWUsXG4gIHJlZmVyZXI6IHRydWUsXG4gIHRlOiB0cnVlLFxuICB0cmFpbGVyOiB0cnVlLFxuICBcInRyYW5zZmVyLWVuY29kaW5nXCI6IHRydWUsXG4gIHVwZ3JhZGU6IHRydWUsXG4gIFwidXNlci1hZ2VudFwiOiB0cnVlLFxuICBcIngtYW16bi10cmFjZS1pZFwiOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IFBST1hZX0hFQURFUl9QQVRURVJOID0gL15wcm94eS0vO1xuXG5leHBvcnQgY29uc3QgU0VDX0hFQURFUl9QQVRURVJOID0gL15zZWMtLztcblxuZXhwb3J0IGNvbnN0IFVOU0lHTkFCTEVfUEFUVEVSTlMgPSBbL15wcm94eS0vaSwgL15zZWMtL2ldO1xuXG5leHBvcnQgY29uc3QgQUxHT1JJVEhNX0lERU5USUZJRVIgPSBcIkFXUzQtSE1BQy1TSEEyNTZcIjtcblxuZXhwb3J0IGNvbnN0IEVWRU5UX0FMR09SSVRITV9JREVOVElGSUVSID0gXCJBV1M0LUhNQUMtU0hBMjU2LVBBWUxPQURcIjtcblxuZXhwb3J0IGNvbnN0IFVOU0lHTkVEX1BBWUxPQUQgPSBcIlVOU0lHTkVELVBBWUxPQURcIjtcblxuZXhwb3J0IGNvbnN0IE1BWF9DQUNIRV9TSVpFID0gNTA7XG5leHBvcnQgY29uc3QgS0VZX1RZUEVfSURFTlRJRklFUiA9IFwiYXdzNF9yZXF1ZXN0XCI7XG5cbmV4cG9ydCBjb25zdCBNQVhfUFJFU0lHTkVEX1RUTCA9IDYwICogNjAgKiAyNCAqIDc7XG4iXX0=","import { __awaiter, __generator, __values } from \"tslib\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { KEY_TYPE_IDENTIFIER, MAX_CACHE_SIZE } from \"./constants\";\nvar signingKeyCache = {};\nvar cacheQueue = [];\n/**\n * Create a string describing the scope of credentials used to sign a request.\n *\n * @param shortDate The current calendar date in the form YYYYMMDD.\n * @param region The AWS region in which the service resides.\n * @param service The service to which the signed request is being sent.\n */\nexport function createScope(shortDate, region, service) {\n return shortDate + \"/\" + region + \"/\" + service + \"/\" + KEY_TYPE_IDENTIFIER;\n}\n/**\n * Derive a signing key from its composite parts\n *\n * @param sha256Constructor A constructor function that can instantiate SHA-256\n * hash objects.\n * @param credentials The credentials with which the request will be\n * signed.\n * @param shortDate The current calendar date in the form YYYYMMDD.\n * @param region The AWS region in which the service resides.\n * @param service The service to which the signed request is being\n * sent.\n */\nexport var getSigningKey = function (sha256Constructor, credentials, shortDate, region, service) { return __awaiter(void 0, void 0, void 0, function () {\n var credsHash, cacheKey, key, _a, _b, signable, e_1_1;\n var e_1, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId)];\n case 1:\n credsHash = _d.sent();\n cacheKey = shortDate + \":\" + region + \":\" + service + \":\" + toHex(credsHash) + \":\" + credentials.sessionToken;\n if (cacheKey in signingKeyCache) {\n return [2 /*return*/, signingKeyCache[cacheKey]];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n key = \"AWS4\" + credentials.secretAccessKey;\n _d.label = 2;\n case 2:\n _d.trys.push([2, 7, 8, 9]);\n _a = __values([shortDate, region, service, KEY_TYPE_IDENTIFIER]), _b = _a.next();\n _d.label = 3;\n case 3:\n if (!!_b.done) return [3 /*break*/, 6];\n signable = _b.value;\n return [4 /*yield*/, hmac(sha256Constructor, key, signable)];\n case 4:\n key = _d.sent();\n _d.label = 5;\n case 5:\n _b = _a.next();\n return [3 /*break*/, 3];\n case 6: return [3 /*break*/, 9];\n case 7:\n e_1_1 = _d.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 9];\n case 8:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 9: return [2 /*return*/, (signingKeyCache[cacheKey] = key)];\n }\n });\n}); };\n/**\n * @internal\n */\nexport function clearCredentialCache() {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach(function (cacheKey) {\n delete signingKeyCache[cacheKey];\n });\n}\nfunction hmac(ctor, secret, data) {\n var hash = new ctor(secret);\n hash.update(data);\n return hash.digest();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbERlcml2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlZGVudGlhbERlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxFLElBQU0sZUFBZSxHQUFrQyxFQUFFLENBQUM7QUFDMUQsSUFBTSxVQUFVLEdBQWtCLEVBQUUsQ0FBQztBQUVyQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLFNBQWlCLEVBQUUsTUFBYyxFQUFFLE9BQWU7SUFDNUUsT0FBVSxTQUFTLFNBQUksTUFBTSxTQUFJLE9BQU8sU0FBSSxtQkFBcUIsQ0FBQztBQUNwRSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsVUFDM0IsaUJBQWtDLEVBQ2xDLFdBQXdCLEVBQ3hCLFNBQWlCLEVBQ2pCLE1BQWMsRUFDZCxPQUFlOzs7OztvQkFFRyxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUE7O2dCQUEvRixTQUFTLEdBQUcsU0FBbUY7Z0JBQy9GLFFBQVEsR0FBTSxTQUFTLFNBQUksTUFBTSxTQUFJLE9BQU8sU0FBSSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQUksV0FBVyxDQUFDLFlBQWMsQ0FBQztnQkFDckcsSUFBSSxRQUFRLElBQUksZUFBZSxFQUFFO29CQUMvQixzQkFBTyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUM7aUJBQ2xDO2dCQUVELFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sVUFBVSxDQUFDLE1BQU0sR0FBRyxjQUFjLEVBQUU7b0JBQ3pDLE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQVksQ0FBQyxDQUFDO2lCQUN0RDtnQkFFRyxHQUFHLEdBQWUsU0FBTyxXQUFXLENBQUMsZUFBaUIsQ0FBQzs7OztnQkFDcEMsS0FBQSxTQUFBLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTs7OztnQkFBN0QsUUFBUTtnQkFDWCxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFBOztnQkFBbEQsR0FBRyxHQUFHLFNBQTRDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBRXJELHNCQUFPLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQWlCLENBQUMsRUFBQzs7O0tBQ3hELENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxRQUFRO1FBQzVDLE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsSUFBSSxDQUFDLElBQXFCLEVBQUUsTUFBa0IsRUFBRSxJQUFnQjtJQUN2RSxJQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVkZW50aWFscywgSGFzaENvbnN0cnVjdG9yLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBLRVlfVFlQRV9JREVOVElGSUVSLCBNQVhfQ0FDSEVfU0laRSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5jb25zdCBzaWduaW5nS2V5Q2FjaGU6IHsgW2tleTogc3RyaW5nXTogVWludDhBcnJheSB9ID0ge307XG5jb25zdCBjYWNoZVF1ZXVlOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbi8qKlxuICogQ3JlYXRlIGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHNjb3BlIG9mIGNyZWRlbnRpYWxzIHVzZWQgdG8gc2lnbiBhIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIHNob3J0RGF0ZSBUaGUgY3VycmVudCBjYWxlbmRhciBkYXRlIGluIHRoZSBmb3JtIFlZWVlNTURELlxuICogQHBhcmFtIHJlZ2lvbiAgICBUaGUgQVdTIHJlZ2lvbiBpbiB3aGljaCB0aGUgc2VydmljZSByZXNpZGVzLlxuICogQHBhcmFtIHNlcnZpY2UgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmcgc2VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNjb3BlKHNob3J0RGF0ZTogc3RyaW5nLCByZWdpb246IHN0cmluZywgc2VydmljZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3Nob3J0RGF0ZX0vJHtyZWdpb259LyR7c2VydmljZX0vJHtLRVlfVFlQRV9JREVOVElGSUVSfWA7XG59XG5cbi8qKlxuICogRGVyaXZlIGEgc2lnbmluZyBrZXkgZnJvbSBpdHMgY29tcG9zaXRlIHBhcnRzXG4gKlxuICogQHBhcmFtIHNoYTI1NkNvbnN0cnVjdG9yIEEgY29uc3RydWN0b3IgZnVuY3Rpb24gdGhhdCBjYW4gaW5zdGFudGlhdGUgU0hBLTI1NlxuICogICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2ggb2JqZWN0cy5cbiAqIEBwYXJhbSBjcmVkZW50aWFscyAgICAgICBUaGUgY3JlZGVudGlhbHMgd2l0aCB3aGljaCB0aGUgcmVxdWVzdCB3aWxsIGJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkLlxuICogQHBhcmFtIHNob3J0RGF0ZSAgICAgICAgIFRoZSBjdXJyZW50IGNhbGVuZGFyIGRhdGUgaW4gdGhlIGZvcm0gWVlZWU1NREQuXG4gKiBAcGFyYW0gcmVnaW9uICAgICAgICAgICAgVGhlIEFXUyByZWdpb24gaW4gd2hpY2ggdGhlIHNlcnZpY2UgcmVzaWRlcy5cbiAqIEBwYXJhbSBzZXJ2aWNlICAgICAgICAgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmdcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50LlxuICovXG5leHBvcnQgY29uc3QgZ2V0U2lnbmluZ0tleSA9IGFzeW5jIChcbiAgc2hhMjU2Q29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvcixcbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzLFxuICBzaG9ydERhdGU6IHN0cmluZyxcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIHNlcnZpY2U6IHN0cmluZ1xuKTogUHJvbWlzZTxVaW50OEFycmF5PiA9PiB7XG4gIGNvbnN0IGNyZWRzSGFzaCA9IGF3YWl0IGhtYWMoc2hhMjU2Q29uc3RydWN0b3IsIGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSwgY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQpO1xuICBjb25zdCBjYWNoZUtleSA9IGAke3Nob3J0RGF0ZX06JHtyZWdpb259OiR7c2VydmljZX06JHt0b0hleChjcmVkc0hhc2gpfToke2NyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbn1gO1xuICBpZiAoY2FjaGVLZXkgaW4gc2lnbmluZ0tleUNhY2hlKSB7XG4gICAgcmV0dXJuIHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV07XG4gIH1cblxuICBjYWNoZVF1ZXVlLnB1c2goY2FjaGVLZXkpO1xuICB3aGlsZSAoY2FjaGVRdWV1ZS5sZW5ndGggPiBNQVhfQ0FDSEVfU0laRSkge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVRdWV1ZS5zaGlmdCgpIGFzIHN0cmluZ107XG4gIH1cblxuICBsZXQga2V5OiBTb3VyY2VEYXRhID0gYEFXUzQke2NyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleX1gO1xuICBmb3IgKGNvbnN0IHNpZ25hYmxlIG9mIFtzaG9ydERhdGUsIHJlZ2lvbiwgc2VydmljZSwgS0VZX1RZUEVfSURFTlRJRklFUl0pIHtcbiAgICBrZXkgPSBhd2FpdCBobWFjKHNoYTI1NkNvbnN0cnVjdG9yLCBrZXksIHNpZ25hYmxlKTtcbiAgfVxuICByZXR1cm4gKHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV0gPSBrZXkgYXMgVWludDhBcnJheSk7XG59O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJDcmVkZW50aWFsQ2FjaGUoKTogdm9pZCB7XG4gIGNhY2hlUXVldWUubGVuZ3RoID0gMDtcbiAgT2JqZWN0LmtleXMoc2lnbmluZ0tleUNhY2hlKS5mb3JFYWNoKChjYWNoZUtleSkgPT4ge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVLZXldO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaG1hYyhjdG9yOiBIYXNoQ29uc3RydWN0b3IsIHNlY3JldDogU291cmNlRGF0YSwgZGF0YTogU291cmNlRGF0YSk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCBoYXNoID0gbmV3IGN0b3Ioc2VjcmV0KTtcbiAgaGFzaC51cGRhdGUoZGF0YSk7XG4gIHJldHVybiBoYXNoLmRpZ2VzdCgpO1xufVxuIl19","import { __values } from \"tslib\";\nimport { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\n/**\n * @internal\n */\nexport function getCanonicalHeaders(_a, unsignableHeaders, signableHeaders) {\n var e_1, _b;\n var headers = _a.headers;\n var canonical = {};\n try {\n for (var _c = __values(Object.keys(headers).sort()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var headerName = _d.value;\n var canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || (unsignableHeaders === null || unsignableHeaders === void 0 ? void 0 : unsignableHeaders.has(canonicalHeaderName)) ||\n PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return canonical;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsSGVhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZXRDYW5vbmljYWxIZWFkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEc7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEVBQXdCLEVBQ3hCLGlCQUErQixFQUMvQixlQUE2Qjs7UUFGM0IsT0FBTyxhQUFBO0lBSVQsSUFBTSxTQUFTLEdBQWMsRUFBRSxDQUFDOztRQUNoQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBLGdCQUFBLDRCQUFFO1lBQWpELElBQU0sVUFBVSxXQUFBO1lBQ25CLElBQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JELElBQ0UsbUJBQW1CLElBQUkseUJBQXlCLEtBQ2hELGlCQUFpQixhQUFqQixpQkFBaUIsdUJBQWpCLGlCQUFpQixDQUFFLEdBQUcsQ0FBQyxtQkFBbUIsRUFBQztnQkFDM0Msb0JBQW9CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2dCQUM5QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFDNUM7Z0JBQ0EsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFO29CQUN0RixTQUFTO2lCQUNWO2FBQ0Y7WUFFRCxTQUFTLENBQUMsbUJBQW1CLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNsRjs7Ozs7Ozs7O0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhlYWRlckJhZywgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQUxXQVlTX1VOU0lHTkFCTEVfSEVBREVSUywgUFJPWFlfSEVBREVSX1BBVFRFUk4sIFNFQ19IRUFERVJfUEFUVEVSTiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2Fub25pY2FsSGVhZGVycyhcbiAgeyBoZWFkZXJzIH06IEh0dHBSZXF1ZXN0LFxuICB1bnNpZ25hYmxlSGVhZGVycz86IFNldDxzdHJpbmc+LFxuICBzaWduYWJsZUhlYWRlcnM/OiBTZXQ8c3RyaW5nPlxuKTogSGVhZGVyQmFnIHtcbiAgY29uc3QgY2Fub25pY2FsOiBIZWFkZXJCYWcgPSB7fTtcbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKSkge1xuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlck5hbWUgPSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKFxuICAgICAgY2Fub25pY2FsSGVhZGVyTmFtZSBpbiBBTFdBWVNfVU5TSUdOQUJMRV9IRUFERVJTIHx8XG4gICAgICB1bnNpZ25hYmxlSGVhZGVycz8uaGFzKGNhbm9uaWNhbEhlYWRlck5hbWUpIHx8XG4gICAgICBQUk9YWV9IRUFERVJfUEFUVEVSTi50ZXN0KGNhbm9uaWNhbEhlYWRlck5hbWUpIHx8XG4gICAgICBTRUNfSEVBREVSX1BBVFRFUk4udGVzdChjYW5vbmljYWxIZWFkZXJOYW1lKVxuICAgICkge1xuICAgICAgaWYgKCFzaWduYWJsZUhlYWRlcnMgfHwgKHNpZ25hYmxlSGVhZGVycyAmJiAhc2lnbmFibGVIZWFkZXJzLmhhcyhjYW5vbmljYWxIZWFkZXJOYW1lKSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2Fub25pY2FsW2Nhbm9uaWNhbEhlYWRlck5hbWVdID0gaGVhZGVyc1toZWFkZXJOYW1lXS50cmltKCkucmVwbGFjZSgvXFxzKy9nLCBcIiBcIik7XG4gIH1cblxuICByZXR1cm4gY2Fub25pY2FsO1xufVxuIl19","export var escapeUri = function (uri) {\n // AWS percent-encodes some extra non-standard characters in a URI\n return encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\n};\nvar hexEncode = function (c) { return \"%\" + c.charCodeAt(0).toString(16).toUpperCase(); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLXVyaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lc2NhcGUtdXJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxJQUFNLFNBQVMsR0FBRyxVQUFDLEdBQVc7SUFDbkMsa0VBQWtFO0lBQ2xFLE9BQUEsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7QUFBdEQsQ0FBc0QsQ0FBQztBQUV6RCxJQUFNLFNBQVMsR0FBRyxVQUFDLENBQVMsSUFBSyxPQUFBLE1BQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFJLEVBQWhELENBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZXNjYXBlVXJpID0gKHVyaTogc3RyaW5nKTogc3RyaW5nID0+XG4gIC8vIEFXUyBwZXJjZW50LWVuY29kZXMgc29tZSBleHRyYSBub24tc3RhbmRhcmQgY2hhcmFjdGVycyBpbiBhIFVSSVxuICBlbmNvZGVVUklDb21wb25lbnQodXJpKS5yZXBsYWNlKC9bIScoKSpdL2csIGhleEVuY29kZSk7XG5cbmNvbnN0IGhleEVuY29kZSA9IChjOiBzdHJpbmcpID0+IGAlJHtjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9YDtcbiJdfQ==","import { __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayBuffer } from \"@aws-sdk/is-array-buffer\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\n/**\n * @internal\n */\nexport function getPayloadHash(_a, hashConstructor) {\n var headers = _a.headers, body = _a.body;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c, headerName, hashCtor, _d;\n var e_1, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n try {\n for (_b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n headerName = _c.value;\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return [2 /*return*/, headers[headerName]];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_e = _b.return)) _e.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!(body == undefined)) return [3 /*break*/, 1];\n return [2 /*return*/, \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"];\n case 1:\n if (!(typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer(body))) return [3 /*break*/, 3];\n hashCtor = new hashConstructor();\n hashCtor.update(body);\n _d = toHex;\n return [4 /*yield*/, hashCtor.digest()];\n case 2: return [2 /*return*/, _d.apply(void 0, [_f.sent()])];\n case 3: \n // As any defined body that is not a string or binary data is a stream, this\n // body is unsignable. Attempt to send the request with an unsigned payload,\n // which may or may not be accepted by the service.\n return [2 /*return*/, UNSIGNED_PAYLOAD];\n }\n });\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGF5bG9hZEhhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0UGF5bG9hZEhhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sVUFBZ0IsY0FBYyxDQUNsQyxFQUE4QixFQUM5QixlQUFnQztRQUQ5QixPQUFPLGFBQUEsRUFBRSxJQUFJLFVBQUE7Ozs7Ozs7O3dCQUdmLEtBQXlCLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLDRDQUFFOzRCQUFwQyxVQUFVOzRCQUNuQixJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxhQUFhLEVBQUU7Z0NBQzlDLHNCQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBQzs2QkFDNUI7eUJBQ0Y7Ozs7Ozs7Ozt5QkFFRyxDQUFBLElBQUksSUFBSSxTQUFTLENBQUEsRUFBakIsd0JBQWlCO29CQUNuQixzQkFBTyxrRUFBa0UsRUFBQzs7eUJBQ2pFLENBQUEsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBLEVBQTNFLHdCQUEyRTtvQkFDOUUsUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ3ZDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2YsS0FBQSxLQUFLLENBQUE7b0JBQUMscUJBQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFBO3dCQUFwQyxzQkFBTyxrQkFBTSxTQUF1QixFQUFDLEVBQUM7O2dCQUd4Qyw0RUFBNEU7Z0JBQzVFLDRFQUE0RTtnQkFDNUUsbURBQW1EO2dCQUNuRCxzQkFBTyxnQkFBZ0IsRUFBQzs7OztDQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQXJyYXlCdWZmZXIgfSBmcm9tIFwiQGF3cy1zZGsvaXMtYXJyYXktYnVmZmVyXCI7XG5pbXBvcnQgeyBIYXNoQ29uc3RydWN0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBTSEEyNTZfSEVBREVSLCBVTlNJR05FRF9QQVlMT0FEIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQYXlsb2FkSGFzaChcbiAgeyBoZWFkZXJzLCBib2R5IH06IEh0dHBSZXF1ZXN0LFxuICBoYXNoQ29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvclxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgaWYgKGhlYWRlck5hbWUudG9Mb3dlckNhc2UoKSA9PT0gU0hBMjU2X0hFQURFUikge1xuICAgICAgcmV0dXJuIGhlYWRlcnNbaGVhZGVyTmFtZV07XG4gICAgfVxuICB9XG5cbiAgaWYgKGJvZHkgPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFwiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NVwiO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBib2R5ID09PSBcInN0cmluZ1wiIHx8IEFycmF5QnVmZmVyLmlzVmlldyhib2R5KSB8fCBpc0FycmF5QnVmZmVyKGJvZHkpKSB7XG4gICAgY29uc3QgaGFzaEN0b3IgPSBuZXcgaGFzaENvbnN0cnVjdG9yKCk7XG4gICAgaGFzaEN0b3IudXBkYXRlKGJvZHkpO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoQ3Rvci5kaWdlc3QoKSk7XG4gIH1cblxuICAvLyBBcyBhbnkgZGVmaW5lZCBib2R5IHRoYXQgaXMgbm90IGEgc3RyaW5nIG9yIGJpbmFyeSBkYXRhIGlzIGEgc3RyZWFtLCB0aGlzXG4gIC8vIGJvZHkgaXMgdW5zaWduYWJsZS4gQXR0ZW1wdCB0byBzZW5kIHRoZSByZXF1ZXN0IHdpdGggYW4gdW5zaWduZWQgcGF5bG9hZCxcbiAgLy8gd2hpY2ggbWF5IG9yIG1heSBub3QgYmUgYWNjZXB0ZWQgYnkgdGhlIHNlcnZpY2UuXG4gIHJldHVybiBVTlNJR05FRF9QQVlMT0FEO1xufVxuIl19","import { __assign, __read, __rest, __spread } from \"tslib\";\n/**\n * @internal\n */\nexport function cloneRequest(_a) {\n var headers = _a.headers, query = _a.query, rest = __rest(_a, [\"headers\", \"query\"]);\n return __assign(__assign({}, rest), { headers: __assign({}, headers), query: query ? cloneQuery(query) : undefined });\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spread(param) : param, _a));\n }, {});\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmVSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nsb25lUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEVBQXdDO0lBQXRDLElBQUEsT0FBTyxhQUFBLEVBQUUsS0FBSyxXQUFBLEVBQUssSUFBSSxjQUF6QixvQkFBMkIsQ0FBRjtJQUNwRCw2QkFDSyxJQUFJLEtBQ1AsT0FBTyxlQUFPLE9BQU8sR0FDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQzVDO0FBQ0osQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQXdCO0lBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUF3QixFQUFFLFNBQWlCOztRQUMzRSxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsNkJBQ0ssS0FBSyxnQkFDUCxTQUFTLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQ3REO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVSZXF1ZXN0KHsgaGVhZGVycywgcXVlcnksIC4uLnJlc3QgfTogSHR0cFJlcXVlc3QpOiBIdHRwUmVxdWVzdCB7XG4gIHJldHVybiB7XG4gICAgLi4ucmVzdCxcbiAgICBoZWFkZXJzOiB7IC4uLmhlYWRlcnMgfSxcbiAgICBxdWVyeTogcXVlcnkgPyBjbG9uZVF1ZXJ5KHF1ZXJ5KSA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2xvbmVRdWVyeShxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWcpOiBRdWVyeVBhcmFtZXRlckJhZyB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhxdWVyeSkucmVkdWNlKChjYXJyeTogUXVlcnlQYXJhbWV0ZXJCYWcsIHBhcmFtTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcGFyYW0gPSBxdWVyeVtwYXJhbU5hbWVdO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jYXJyeSxcbiAgICAgIFtwYXJhbU5hbWVdOiBBcnJheS5pc0FycmF5KHBhcmFtKSA/IFsuLi5wYXJhbV0gOiBwYXJhbSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG4iXX0=","import { __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\nimport { GENERATED_HEADERS } from \"./constants\";\n/**\n * @internal\n */\nexport function prepareRequest(request) {\n var e_1, _a;\n // Create a clone of the request object that does not clone the body\n request = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n try {\n for (var _b = __values(Object.keys(request.headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return request;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZVJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJlcGFyZVJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQW9COztJQUNqRCxvRUFBb0U7SUFDcEUsT0FBTyxHQUFHLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDOztRQUUxRyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtZQUFsRCxJQUFNLFVBQVUsV0FBQTtZQUNuQixJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDNUQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3BDO1NBQ0Y7Ozs7Ozs7OztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcbmltcG9ydCB7IEdFTkVSQVRFRF9IRUFERVJTIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlUmVxdWVzdChyZXF1ZXN0OiBIdHRwUmVxdWVzdCk6IEh0dHBSZXF1ZXN0IHtcbiAgLy8gQ3JlYXRlIGEgY2xvbmUgb2YgdGhlIHJlcXVlc3Qgb2JqZWN0IHRoYXQgZG9lcyBub3QgY2xvbmUgdGhlIGJvZHlcbiAgcmVxdWVzdCA9IHR5cGVvZiAocmVxdWVzdCBhcyBhbnkpLmNsb25lID09PSBcImZ1bmN0aW9uXCIgPyAocmVxdWVzdCBhcyBhbnkpLmNsb25lKCkgOiBjbG9uZVJlcXVlc3QocmVxdWVzdCk7XG5cbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKHJlcXVlc3QuaGVhZGVycykpIHtcbiAgICBpZiAoR0VORVJBVEVEX0hFQURFUlMuaW5kZXhPZihoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkpID4gLTEpIHtcbiAgICAgIGRlbGV0ZSByZXF1ZXN0LmhlYWRlcnNbaGVhZGVyTmFtZV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlcXVlc3Q7XG59XG4iXX0=","export function iso8601(time) {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\n}\nexport function toDate(time) {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbERhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbERhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUE0QjtJQUNsRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDaEIsV0FBVyxFQUFFO1NBQ2IsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUE0QjtJQUNqRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztLQUM5QjtJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc284NjAxKHRpbWU6IG51bWJlciB8IHN0cmluZyB8IERhdGUpOiBzdHJpbmcge1xuICByZXR1cm4gdG9EYXRlKHRpbWUpXG4gICAgLnRvSVNPU3RyaW5nKClcbiAgICAucmVwbGFjZSgvXFwuXFxkezN9WiQvLCBcIlpcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGUodGltZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSk6IERhdGUge1xuICBpZiAodHlwZW9mIHRpbWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodGltZSAqIDEwMDApO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0aW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgaWYgKE51bWJlcih0aW1lKSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKE51bWJlcih0aW1lKSAqIDEwMDApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUodGltZSk7XG4gIH1cblxuICByZXR1cm4gdGltZTtcbn1cbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { ALGORITHM_IDENTIFIER, ALGORITHM_QUERY_PARAM, AMZ_DATE_HEADER, AMZ_DATE_QUERY_PARAM, AUTH_HEADER, CREDENTIAL_QUERY_PARAM, EVENT_ALGORITHM_IDENTIFIER, EXPIRES_QUERY_PARAM, MAX_PRESIGNED_TTL, SHA256_HEADER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_HEADER, TOKEN_QUERY_PARAM, } from \"./constants\";\nimport { createScope, getSigningKey } from \"./credentialDerivation\";\nimport { getCanonicalHeaders } from \"./getCanonicalHeaders\";\nimport { getCanonicalQuery } from \"./getCanonicalQuery\";\nimport { getPayloadHash } from \"./getPayloadHash\";\nimport { hasHeader } from \"./hasHeader\";\nimport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nimport { prepareRequest } from \"./prepareRequest\";\nimport { iso8601 } from \"./utilDate\";\nvar SignatureV4 = /** @class */ (function () {\n function SignatureV4(_a) {\n var applyChecksum = _a.applyChecksum, credentials = _a.credentials, region = _a.region, service = _a.service, sha256 = _a.sha256, _b = _a.uriEscapePath, uriEscapePath = _b === void 0 ? true : _b;\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n // default to true if applyChecksum isn't set\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = normalizeRegionProvider(region);\n this.credentialProvider = normalizeCredentialsProvider(credentials);\n }\n SignatureV4.prototype.presign = function (originalRequest, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, signingDate, _b, expiresIn, unsignableHeaders, unhoistableHeaders, signableHeaders, signingRegion, signingService, credentials, region, _c, _d, longDate, shortDate, scope, request, canonicalHeaders, _e, _f, _g, _h, _j, _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = options.signingDate, signingDate = _a === void 0 ? new Date() : _a, _b = options.expiresIn, expiresIn = _b === void 0 ? 3600 : _b, unsignableHeaders = options.unsignableHeaders, unhoistableHeaders = options.unhoistableHeaders, signableHeaders = options.signableHeaders, signingRegion = options.signingRegion, signingService = options.signingService;\n return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _l.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _c = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _c = (_l.sent());\n _l.label = 4;\n case 4:\n region = _c;\n _d = formatDate(signingDate), longDate = _d.longDate, shortDate = _d.shortDate;\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return [2 /*return*/, Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\")];\n }\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders: unhoistableHeaders });\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n request.query[CREDENTIAL_QUERY_PARAM] = credentials.accessKeyId + \"/\" + scope;\n request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n _e = request.query;\n _f = SIGNATURE_QUERY_PARAM;\n _g = this.getSignature;\n _h = [longDate,\n scope,\n this.getSigningKey(credentials, region, shortDate, signingService)];\n _j = this.createCanonicalRequest;\n _k = [request, canonicalHeaders];\n return [4 /*yield*/, getPayloadHash(originalRequest, this.sha256)];\n case 5: return [4 /*yield*/, _g.apply(this, _h.concat([_j.apply(this, _k.concat([_l.sent()]))]))];\n case 6:\n _e[_f] = _l.sent();\n return [2 /*return*/, request];\n }\n });\n });\n };\n SignatureV4.prototype.sign = function (toSign, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (typeof toSign === \"string\") {\n return [2 /*return*/, this.signString(toSign, options)];\n }\n else if (toSign.headers && toSign.payload) {\n return [2 /*return*/, this.signEvent(toSign, options)];\n }\n else {\n return [2 /*return*/, this.signRequest(toSign, options)];\n }\n return [2 /*return*/];\n });\n });\n };\n SignatureV4.prototype.signEvent = function (_a, _b) {\n var headers = _a.headers, payload = _a.payload;\n var _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, priorSignature = _b.priorSignature, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var region, _d, _e, shortDate, longDate, scope, hashedPayload, hash, hashedHeaders, _f, stringToSign;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 1];\n _d = signingRegion;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.regionProvider()];\n case 2:\n _d = (_g.sent());\n _g.label = 3;\n case 3:\n region = _d;\n _e = formatDate(signingDate), shortDate = _e.shortDate, longDate = _e.longDate;\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n return [4 /*yield*/, getPayloadHash({ headers: {}, body: payload }, this.sha256)];\n case 4:\n hashedPayload = _g.sent();\n hash = new this.sha256();\n hash.update(headers);\n _f = toHex;\n return [4 /*yield*/, hash.digest()];\n case 5:\n hashedHeaders = _f.apply(void 0, [_g.sent()]);\n stringToSign = [\n EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return [2 /*return*/, this.signString(stringToSign, { signingDate: signingDate, signingRegion: region, signingService: signingService })];\n }\n });\n });\n };\n SignatureV4.prototype.signString = function (stringToSign, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, shortDate, hash, _e, _f, _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0: return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _h.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _d = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _d = (_h.sent());\n _h.label = 4;\n case 4:\n region = _d;\n shortDate = formatDate(signingDate).shortDate;\n _f = (_e = this.sha256).bind;\n return [4 /*yield*/, this.getSigningKey(credentials, region, shortDate, signingService)];\n case 5:\n hash = new (_f.apply(_e, [void 0, _h.sent()]))();\n hash.update(stringToSign);\n _g = toHex;\n return [4 /*yield*/, hash.digest()];\n case 6: return [2 /*return*/, _g.apply(void 0, [_h.sent()])];\n }\n });\n });\n };\n SignatureV4.prototype.signRequest = function (requestToSign, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signableHeaders = _b.signableHeaders, unsignableHeaders = _b.unsignableHeaders, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, request, _e, longDate, shortDate, scope, payloadHash, canonicalHeaders, signature;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0: return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _f.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _d = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _d = (_f.sent());\n _f.label = 4;\n case 4:\n region = _d;\n request = prepareRequest(requestToSign);\n _e = formatDate(signingDate), longDate = _e.longDate, shortDate = _e.shortDate;\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request.headers[AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n return [4 /*yield*/, getPayloadHash(request, this.sha256)];\n case 5:\n payloadHash = _f.sent();\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n return [4 /*yield*/, this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash))];\n case 6:\n signature = _f.sent();\n request.headers[AUTH_HEADER] =\n ALGORITHM_IDENTIFIER + \" \" +\n (\"Credential=\" + credentials.accessKeyId + \"/\" + scope + \", \") +\n (\"SignedHeaders=\" + getCanonicalHeaderList(canonicalHeaders) + \", \") +\n (\"Signature=\" + signature);\n return [2 /*return*/, request];\n }\n });\n });\n };\n SignatureV4.prototype.createCanonicalRequest = function (request, canonicalHeaders, payloadHash) {\n var sortedHeaders = Object.keys(canonicalHeaders).sort();\n return request.method + \"\\n\" + this.getCanonicalPath(request) + \"\\n\" + getCanonicalQuery(request) + \"\\n\" + sortedHeaders.map(function (name) { return name + \":\" + canonicalHeaders[name]; }).join(\"\\n\") + \"\\n\\n\" + sortedHeaders.join(\";\") + \"\\n\" + payloadHash;\n };\n SignatureV4.prototype.createStringToSign = function (longDate, credentialScope, canonicalRequest) {\n return __awaiter(this, void 0, void 0, function () {\n var hash, hashedRequest;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n hash = new this.sha256();\n hash.update(canonicalRequest);\n return [4 /*yield*/, hash.digest()];\n case 1:\n hashedRequest = _a.sent();\n return [2 /*return*/, ALGORITHM_IDENTIFIER + \"\\n\" + longDate + \"\\n\" + credentialScope + \"\\n\" + toHex(hashedRequest)];\n }\n });\n });\n };\n SignatureV4.prototype.getCanonicalPath = function (_a) {\n var path = _a.path;\n if (this.uriEscapePath) {\n var doubleEncoded = encodeURIComponent(path.replace(/^\\//, \"\"));\n return \"/\" + doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n };\n SignatureV4.prototype.getSignature = function (longDate, credentialScope, keyPromise, canonicalRequest) {\n return __awaiter(this, void 0, void 0, function () {\n var stringToSign, hash, _a, _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, this.createStringToSign(longDate, credentialScope, canonicalRequest)];\n case 1:\n stringToSign = _d.sent();\n _b = (_a = this.sha256).bind;\n return [4 /*yield*/, keyPromise];\n case 2:\n hash = new (_b.apply(_a, [void 0, _d.sent()]))();\n hash.update(stringToSign);\n _c = toHex;\n return [4 /*yield*/, hash.digest()];\n case 3: return [2 /*return*/, _c.apply(void 0, [_d.sent()])];\n }\n });\n });\n };\n SignatureV4.prototype.getSigningKey = function (credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n };\n return SignatureV4;\n}());\nexport { SignatureV4 };\nvar formatDate = function (now) {\n var longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate: longDate,\n shortDate: longDate.substr(0, 8),\n };\n};\nvar getCanonicalHeaderList = function (headers) { return Object.keys(headers).sort().join(\";\"); };\nvar normalizeRegionProvider = function (region) {\n if (typeof region === \"string\") {\n var promisified_1 = Promise.resolve(region);\n return function () { return promisified_1; };\n }\n else {\n return region;\n }\n};\nvar normalizeCredentialsProvider = function (credentials) {\n if (typeof credentials === \"object\") {\n var promisified_2 = Promise.resolve(credentials);\n return function () { return promisified_2; };\n }\n else {\n return credentials;\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lnbmF0dXJlVjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2lnbmF0dXJlVjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWlCQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzFCLFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQWtEckM7SUFRRSxxQkFBWSxFQU84QjtZQU54QyxhQUFhLG1CQUFBLEVBQ2IsV0FBVyxpQkFBQSxFQUNYLE1BQU0sWUFBQSxFQUNOLE9BQU8sYUFBQSxFQUNQLE1BQU0sWUFBQSxFQUNOLHFCQUFvQixFQUFwQixhQUFhLG1CQUFHLElBQUksS0FBQTtRQUVwQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJ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YztJQUNoQyxJQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxPQUFPO1FBQ0wsUUFBUSxVQUFBO1FBQ1IsU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNqQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsSUFBTSxzQkFBc0IsR0FBRyxVQUFDLE9BQWUsSUFBYSxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFyQyxDQUFxQyxDQUFDO0FBRWxHLElBQU0sdUJBQXVCLEdBQUcsVUFBQyxNQUFpQztJQUNoRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7QUFDSCxDQUFDLENBQUM7QUFFRixJQUFNLDRCQUE0QixHQUFHLFVBQUMsV0FBZ0Q7SUFDcEYsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUU7UUFDbkMsSUFBTSxhQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxPQUFPLGNBQU0sT0FBQSxhQUFXLEVBQVgsQ0FBVyxDQUFDO0tBQzFCO1NBQU07UUFDTCxPQUFPLFdBQVcsQ0FBQztLQUNwQjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENyZWRlbnRpYWxzLFxuICBEYXRlSW5wdXQsXG4gIEV2ZW50U2lnbmVyLFxuICBFdmVudFNpZ25pbmdBcmd1bWVudHMsXG4gIEZvcm1hdHRlZEV2ZW50LFxuICBIYXNoQ29uc3RydWN0b3IsXG4gIEhlYWRlckJhZyxcbiAgSHR0cFJlcXVlc3QsXG4gIFByb3ZpZGVyLFxuICBSZXF1ZXN0UHJlc2lnbmVyLFxuICBSZXF1ZXN0UHJlc2lnbmluZ0FyZ3VtZW50cyxcbiAgUmVxdWVzdFNpZ25lcixcbiAgUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMsXG4gIFNpZ25pbmdBcmd1bWVudHMsXG4gIFN0cmluZ1NpZ25lcixcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQge1xuICBBTEdPUklUSE1fSURFTlRJRklFUixcbiAgQUxHT1JJVEhNX1FVRVJZX1BBUkFNLFxuICBBTVpfREFURV9IRUFERVIsXG4gIEFNWl9EQVRFX1FVRVJZX1BBUkFNLFxuICBBVVRIX0hFQURFUixcbiAgQ1JFREVOVElBTF9RVUVSWV9QQVJBTSxcbiAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gIEVYUElSRVNfUVVFUllfUEFSQU0sXG4gIE1BWF9QUkVTSUdORURfVFRMLFxuICBTSEEyNTZfSEVBREVSLFxuICBTSUdOQVRVUkVfUVVFUllfUEFSQU0sXG4gIFNJR05FRF9IRUFERVJTX1FVRVJZX1BBUkFNLFxuICBUT0tFTl9IRUFERVIsXG4gIFRPS0VOX1FVRVJZX1BBUkFNLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNyZWF0ZVNjb3BlLCBnZXRTaWduaW5nS2V5IH0gZnJvbSBcIi4vY3JlZGVudGlhbERlcml2YXRpb25cIjtcbmltcG9ydCB7IGdldENhbm9uaWNhbEhlYWRlcnMgfSBmcm9tIFwiLi9nZXRDYW5vbmljYWxIZWFkZXJzXCI7XG5pbXBvcnQgeyBnZXRDYW5vbmljYWxRdWVyeSB9IGZyb20gXCIuL2dldENhbm9uaWNhbFF1ZXJ5XCI7XG5pbXBvcnQgeyBnZXRQYXlsb2FkSGFzaCB9IGZyb20gXCIuL2dldFBheWxvYWRIYXNoXCI7XG5pbXBvcnQgeyBoYXNIZWFkZXIgfSBmcm9tIFwiLi9oYXNIZWFkZXJcIjtcbmltcG9ydCB7IG1vdmVIZWFkZXJzVG9RdWVyeSB9IGZyb20gXCIuL21vdmVIZWFkZXJzVG9RdWVyeVwiO1xuaW1wb3J0IHsgcHJlcGFyZVJlcXVlc3QgfSBmcm9tIFwiLi9wcmVwYXJlUmVxdWVzdFwiO1xuaW1wb3J0IHsgaXNvODYwMSB9IGZyb20gXCIuL3V0aWxEYXRlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRJbml0IHtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHNpZ25pbmcgbmFtZS5cbiAgICovXG4gIHNlcnZpY2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBuYW1lIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHdpbGwgYmVcbiAgICogcmVzb2x2ZWQgd2l0aCB0aGUgcmVnaW9uIG5hbWUuXG4gICAqL1xuICByZWdpb246IHN0cmluZyB8IFByb3ZpZGVyPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFscyB3aXRoIHdoaWNoIHRoZSByZXF1ZXN0IHNob3VsZCBiZSBzaWduZWQgb3IgYSBmdW5jdGlvblxuICAgKiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHRoYXQgd2lsbCBiZSByZXNvbHZlZCB3aXRoIGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzIHwgUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuXG4gIC8qKlxuICAgKiBBIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciBhIGhhc2ggb2JqZWN0IHRoYXQgd2lsbCBjYWxjdWxhdGUgU0hBLTI1NiBITUFDXG4gICAqIGNoZWNrc3Vtcy5cbiAgICovXG4gIHNoYTI1Nj86IEhhc2hDb25zdHJ1Y3RvcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1cmktZXNjYXBlIHRoZSByZXF1ZXN0IFVSSSBwYXRoIGFzIHBhcnQgb2YgY29tcHV0aW5nIHRoZVxuICAgKiBjYW5vbmljYWwgcmVxdWVzdCBzdHJpbmcuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGV2ZXJ5IEFXUyBzZXJ2aWNlLCBleGNlcHRcbiAgICogQW1hem9uIFMzLCBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgdXJpRXNjYXBlUGF0aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2FsY3VsYXRlIGEgY2hlY2tzdW0gb2YgdGhlIHJlcXVlc3QgYm9keSBhbmQgaW5jbHVkZSBpdCBhc1xuICAgKiBlaXRoZXIgYSByZXF1ZXN0IGhlYWRlciAod2hlbiBzaWduaW5nKSBvciBhcyBhIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJcbiAgICogKHdoZW4gcHJlc2lnbmluZykuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIEFXUyBHbGFjaWVyIGFuZCBBbWF6b24gUzMgYW5kIG9wdGlvbmFsIGZvclxuICAgKiBldmVyeSBvdGhlciBBV1Mgc2VydmljZSBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgYXBwbHlDaGVja3N1bT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRDcnlwdG9Jbml0IHtcbiAgc2hhMjU2OiBIYXNoQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBjbGFzcyBTaWduYXR1cmVWNCBpbXBsZW1lbnRzIFJlcXVlc3RQcmVzaWduZXIsIFJlcXVlc3RTaWduZXIsIFN0cmluZ1NpZ25lciwgRXZlbnRTaWduZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZWdpb25Qcm92aWRlcjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcHJpdmF0ZSByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXI6IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcbiAgcHJpdmF0ZSByZWFkb25seSBzaGEyNTY6IEhhc2hDb25zdHJ1Y3RvcjtcbiAgcHJpdmF0ZSByZWFkb25seSB1cmlFc2NhcGVQYXRoOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGx5Q2hlY2tzdW06IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIGFwcGx5Q2hlY2tzdW0sXG4gICAgY3JlZGVudGlhbHMsXG4gICAgcmVnaW9uLFxuICAgIHNlcnZpY2UsXG4gICAgc2hhMjU2LFxuICAgIHVyaUVzY2FwZVBhdGggPSB0cnVlLFxuICB9OiBTaWduYXR1cmVWNEluaXQgJiBTaWduYXR1cmVWNENyeXB0b0luaXQpIHtcbiAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlO1xuICAgIHRoaXMuc2hhMjU2ID0gc2hhMjU2O1xuICAgIHRoaXMudXJpRXNjYXBlUGF0aCA9IHVyaUVzY2FwZVBhdGg7XG4gICAgLy8gZGVmYXVsdCB0byB0cnVlIGlmIGFwcGx5Q2hlY2tzdW0gaXNuJ3Qgc2V0XG4gICAgdGhpcy5hcHBseUNoZWNrc3VtID0gdHlwZW9mIGFwcGx5Q2hlY2tzdW0gPT09IFwiYm9vbGVhblwiID8gYXBwbHlDaGVja3N1bSA6IHRydWU7XG4gICAgdGhpcy5yZWdpb25Qcm92aWRlciA9IG5vcm1hbGl6ZVJlZ2lvblByb3ZpZGVyKHJlZ2lvbik7XG4gICAgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIgPSBub3JtYWxpemVDcmVkZW50aWFsc1Byb3ZpZGVyKGNyZWRlbnRpYWxzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcmVzaWduKG9yaWdpbmFsUmVxdWVzdDogSHR0cFJlcXVlc3QsIG9wdGlvbnM6IFJlcXVlc3RQcmVzaWduaW5nQXJndW1lbnRzID0ge30pOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3Qge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgZXhwaXJlc0luID0gMzYwMCxcbiAgICAgIHVuc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5ob2lzdGFibGVIZWFkZXJzLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgIHNpZ25pbmdTZXJ2aWNlLFxuICAgIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuXG4gICAgY29uc3QgeyBsb25nRGF0ZSwgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcbiAgICBpZiAoZXhwaXJlc0luID4gTUFYX1BSRVNJR05FRF9UVEwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgXCJTaWduYXR1cmUgdmVyc2lvbiA0IHByZXNpZ25lZCBVUkxzXCIgKyBcIiBtdXN0IGhhdmUgYW4gZXhwaXJhdGlvbiBkYXRlIGxlc3MgdGhhbiBvbmUgd2VlayBpblwiICsgXCIgdGhlIGZ1dHVyZVwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNjb3BlID0gY3JlYXRlU2NvcGUoc2hvcnREYXRlLCByZWdpb24sIHNpZ25pbmdTZXJ2aWNlID8/IHRoaXMuc2VydmljZSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IG1vdmVIZWFkZXJzVG9RdWVyeShwcmVwYXJlUmVxdWVzdChvcmlnaW5hbFJlcXVlc3QpLCB7IHVuaG9pc3RhYmxlSGVhZGVycyB9KTtcblxuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHJlcXVlc3QucXVlcnlbVE9LRU5fUVVFUllfUEFSQU1dID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cbiAgICByZXF1ZXN0LnF1ZXJ5W0FMR09SSVRITV9RVUVSWV9QQVJBTV0gPSBBTEdPUklUSE1fSURFTlRJRklFUjtcbiAgICByZXF1ZXN0LnF1ZXJ5W0NSRURFTlRJQUxfUVVFUllfUEFSQU1dID0gYCR7Y3JlZGVudGlhbHMuYWNjZXNzS2V5SWR9LyR7c2NvcGV9YDtcbiAgICByZXF1ZXN0LnF1ZXJ5W0FNWl9EQVRFX1FVRVJZX1BBUkFNXSA9IGxvbmdEYXRlO1xuICAgIHJlcXVlc3QucXVlcnlbRVhQSVJFU19RVUVSWV9QQVJBTV0gPSBleHBpcmVzSW4udG9TdHJpbmcoMTApO1xuXG4gICAgY29uc3QgY2Fub25pY2FsSGVhZGVycyA9IGdldENhbm9uaWNhbEhlYWRlcnMocmVxdWVzdCwgdW5zaWduYWJsZUhlYWRlcnMsIHNpZ25hYmxlSGVhZGVycyk7XG4gICAgcmVxdWVzdC5xdWVyeVtTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTV0gPSBnZXRDYW5vbmljYWxIZWFkZXJMaXN0KGNhbm9uaWNhbEhlYWRlcnMpO1xuXG4gICAgcmVxdWVzdC5xdWVyeVtTSUdOQVRVUkVfUVVFUllfUEFSQU1dID0gYXdhaXQgdGhpcy5nZXRTaWduYXR1cmUoXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpLFxuICAgICAgdGhpcy5jcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3QsIGNhbm9uaWNhbEhlYWRlcnMsIGF3YWl0IGdldFBheWxvYWRIYXNoKG9yaWdpbmFsUmVxdWVzdCwgdGhpcy5zaGEyNTYpKVxuICAgICk7XG5cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzaWduKHN0cmluZ1RvU2lnbjogc3RyaW5nLCBvcHRpb25zPzogU2lnbmluZ0FyZ3VtZW50cyk6IFByb21pc2U8c3RyaW5nPjtcbiAgcHVibGljIGFzeW5jIHNpZ24oZXZlbnQ6IEZvcm1hdHRlZEV2ZW50LCBvcHRpb25zOiBFdmVudFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPHN0cmluZz47XG4gIHB1YmxpYyBhc3luYyBzaWduKHJlcXVlc3RUb1NpZ246IEh0dHBSZXF1ZXN0LCBvcHRpb25zPzogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPEh0dHBSZXF1ZXN0PjtcbiAgcHVibGljIGFzeW5jIHNpZ24odG9TaWduOiBhbnksIG9wdGlvbnM6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHR5cGVvZiB0b1NpZ24gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnNpZ25TdHJpbmcodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2UgaWYgKHRvU2lnbi5oZWFkZXJzICYmIHRvU2lnbi5wYXlsb2FkKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaWduRXZlbnQodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuc2lnblJlcXVlc3QodG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25FdmVudChcbiAgICB7IGhlYWRlcnMsIHBheWxvYWQgfTogRm9ybWF0dGVkRXZlbnQsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHByaW9yU2lnbmF0dXJlLCBzaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSB9OiBFdmVudFNpZ25pbmdBcmd1bWVudHNcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlLCBsb25nRGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcbiAgICBjb25zdCBoYXNoZWRQYXlsb2FkID0gYXdhaXQgZ2V0UGF5bG9hZEhhc2goeyBoZWFkZXJzOiB7fSwgYm9keTogcGF5bG9hZCB9IGFzIGFueSwgdGhpcy5zaGEyNTYpO1xuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoKTtcbiAgICBoYXNoLnVwZGF0ZShoZWFkZXJzKTtcbiAgICBjb25zdCBoYXNoZWRIZWFkZXJzID0gdG9IZXgoYXdhaXQgaGFzaC5kaWdlc3QoKSk7XG4gICAgY29uc3Qgc3RyaW5nVG9TaWduID0gW1xuICAgICAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgcHJpb3JTaWduYXR1cmUsXG4gICAgICBoYXNoZWRIZWFkZXJzLFxuICAgICAgaGFzaGVkUGF5bG9hZCxcbiAgICBdLmpvaW4oXCJcXG5cIik7XG4gICAgcmV0dXJuIHRoaXMuc2lnblN0cmluZyhzdHJpbmdUb1NpZ24sIHsgc2lnbmluZ0RhdGUsIHNpZ25pbmdSZWdpb246IHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25TdHJpbmcoXG4gICAgc3RyaW5nVG9TaWduOiBzdHJpbmcsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH06IFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcblxuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoYXdhaXQgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2lnblJlcXVlc3QoXG4gICAgcmVxdWVzdFRvU2lnbjogSHR0cFJlcXVlc3QsXG4gICAge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5zaWduYWJsZUhlYWRlcnMsXG4gICAgICBzaWduaW5nUmVnaW9uLFxuICAgICAgc2lnbmluZ1NlcnZpY2UsXG4gICAgfTogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNyZWRlbnRpYWxQcm92aWRlcigpO1xuICAgIGNvbnN0IHJlZ2lvbiA9IHNpZ25pbmdSZWdpb24gPz8gKGF3YWl0IHRoaXMucmVnaW9uUHJvdmlkZXIoKSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IHByZXBhcmVSZXF1ZXN0KHJlcXVlc3RUb1NpZ24pO1xuICAgIGNvbnN0IHsgbG9uZ0RhdGUsIHNob3J0RGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcblxuICAgIHJlcXVlc3QuaGVhZGVyc1tBTVpfREFURV9IRUFERVJdID0gbG9uZ0RhdGU7XG4gICAgaWYgKGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbikge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW1RPS0VOX0hFQURFUl0gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgfVxuXG4gICAgY29uc3QgcGF5bG9hZEhhc2ggPSBhd2FpdCBnZXRQYXlsb2FkSGFzaChyZXF1ZXN0LCB0aGlzLnNoYTI1Nik7XG4gICAgaWYgKCFoYXNIZWFkZXIoU0hBMjU2X0hFQURFUiwgcmVxdWVzdC5oZWFkZXJzKSAmJiB0aGlzLmFwcGx5Q2hlY2tzdW0pIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVyc1tTSEEyNTZfSEVBREVSXSA9IHBheWxvYWRIYXNoO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlcnMgPSBnZXRDYW5vbmljYWxIZWFkZXJzKHJlcXVlc3QsIHVuc2lnbmFibGVIZWFkZXJzLCBzaWduYWJsZUhlYWRlcnMpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHRoaXMuZ2V0U2lnbmF0dXJlKFxuICAgICAgbG9uZ0RhdGUsXG4gICAgICBzY29wZSxcbiAgICAgIHRoaXMuZ2V0U2lnbmluZ0tleShjcmVkZW50aWFscywgcmVnaW9uLCBzaG9ydERhdGUsIHNpZ25pbmdTZXJ2aWNlKSxcbiAgICAgIHRoaXMuY3JlYXRlQ2Fub25pY2FsUmVxdWVzdChyZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzLCBwYXlsb2FkSGFzaClcbiAgICApO1xuXG4gICAgcmVxdWVzdC5oZWFkZXJzW0FVVEhfSEVBREVSXSA9XG4gICAgICBgJHtBTEdPUklUSE1fSURFTlRJRklFUn0gYCArXG4gICAgICBgQ3JlZGVudGlhbD0ke2NyZWRlbnRpYWxzLmFjY2Vzc0tleUlkfS8ke3Njb3BlfSwgYCArXG4gICAgICBgU2lnbmVkSGVhZGVycz0ke2dldENhbm9uaWNhbEhlYWRlckxpc3QoY2Fub25pY2FsSGVhZGVycyl9LCBgICtcbiAgICAgIGBTaWduYXR1cmU9JHtzaWduYXR1cmV9YDtcblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzOiBIZWFkZXJCYWcsIHBheWxvYWRIYXNoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNvcnRlZEhlYWRlcnMgPSBPYmplY3Qua2V5cyhjYW5vbmljYWxIZWFkZXJzKS5zb3J0KCk7XG4gICAgcmV0dXJuIGAke3JlcXVlc3QubWV0aG9kfVxuJHt0aGlzLmdldENhbm9uaWNhbFBhdGgocmVxdWVzdCl9XG4ke2dldENhbm9uaWNhbFF1ZXJ5KHJlcXVlc3QpfVxuJHtzb3J0ZWRIZWFkZXJzLm1hcCgobmFtZSkgPT4gYCR7bmFtZX06JHtjYW5vbmljYWxIZWFkZXJzW25hbWVdfWApLmpvaW4oXCJcXG5cIil9XG5cbiR7c29ydGVkSGVhZGVycy5qb2luKFwiO1wiKX1cbiR7cGF5bG9hZEhhc2h9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlU3RyaW5nVG9TaWduKFxuICAgIGxvbmdEYXRlOiBzdHJpbmcsXG4gICAgY3JlZGVudGlhbFNjb3BlOiBzdHJpbmcsXG4gICAgY2Fub25pY2FsUmVxdWVzdDogc3RyaW5nXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1NigpO1xuICAgIGhhc2gudXBkYXRlKGNhbm9uaWNhbFJlcXVlc3QpO1xuICAgIGNvbnN0IGhhc2hlZFJlcXVlc3QgPSBhd2FpdCBoYXNoLmRpZ2VzdCgpO1xuXG4gICAgcmV0dXJuIGAke0FMR09SSVRITV9JREVOVElGSUVSfVxuJHtsb25nRGF0ZX1cbiR7Y3JlZGVudGlhbFNjb3BlfVxuJHt0b0hleChoYXNoZWRSZXF1ZXN0KX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYW5vbmljYWxQYXRoKHsgcGF0aCB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudXJpRXNjYXBlUGF0aCkge1xuICAgICAgY29uc3QgZG91YmxlRW5jb2RlZCA9IGVuY29kZVVSSUNvbXBvbmVudChwYXRoLnJlcGxhY2UoL15cXC8vLCBcIlwiKSk7XG4gICAgICByZXR1cm4gYC8ke2RvdWJsZUVuY29kZWQucmVwbGFjZSgvJTJGL2csIFwiL1wiKX1gO1xuICAgIH1cblxuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRTaWduYXR1cmUoXG4gICAgbG9uZ0RhdGU6IHN0cmluZyxcbiAgICBjcmVkZW50aWFsU2NvcGU6IHN0cmluZyxcbiAgICBrZXlQcm9taXNlOiBQcm9taXNlPFVpbnQ4QXJyYXk+LFxuICAgIGNhbm9uaWNhbFJlcXVlc3Q6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHN0cmluZ1RvU2lnbiA9IGF3YWl0IHRoaXMuY3JlYXRlU3RyaW5nVG9TaWduKGxvbmdEYXRlLCBjcmVkZW50aWFsU2NvcGUsIGNhbm9uaWNhbFJlcXVlc3QpO1xuXG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1Nihhd2FpdCBrZXlQcm9taXNlKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2lnbmluZ0tleShcbiAgICBjcmVkZW50aWFsczogQ3JlZGVudGlhbHMsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgc2hvcnREYXRlOiBzdHJpbmcsXG4gICAgc2VydmljZT86IHN0cmluZ1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gZ2V0U2lnbmluZ0tleSh0aGlzLnNoYTI1NiwgY3JlZGVudGlhbHMsIHNob3J0RGF0ZSwgcmVnaW9uLCBzZXJ2aWNlIHx8IHRoaXMuc2VydmljZSk7XG4gIH1cbn1cblxuY29uc3QgZm9ybWF0RGF0ZSA9IChub3c6IERhdGVJbnB1dCk6IHsgbG9uZ0RhdGU6IHN0cmluZzsgc2hvcnREYXRlOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IGxvbmdEYXRlID0gaXNvODYwMShub3cpLnJlcGxhY2UoL1tcXC06XS9nLCBcIlwiKTtcbiAgcmV0dXJuIHtcbiAgICBsb25nRGF0ZSxcbiAgICBzaG9ydERhdGU6IGxvbmdEYXRlLnN1YnN0cigwLCA4KSxcbiAgfTtcbn07XG5cbmNvbnN0IGdldENhbm9uaWNhbEhlYWRlckxpc3QgPSAoaGVhZGVyczogb2JqZWN0KTogc3RyaW5nID0+IE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKS5qb2luKFwiO1wiKTtcblxuY29uc3Qgbm9ybWFsaXplUmVnaW9uUHJvdmlkZXIgPSAocmVnaW9uOiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+KTogUHJvdmlkZXI8c3RyaW5nPiA9PiB7XG4gIGlmICh0eXBlb2YgcmVnaW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUocmVnaW9uKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJlZ2lvbjtcbiAgfVxufTtcblxuY29uc3Qgbm9ybWFsaXplQ3JlZGVudGlhbHNQcm92aWRlciA9IChjcmVkZW50aWFsczogQ3JlZGVudGlhbHMgfCBQcm92aWRlcjxDcmVkZW50aWFscz4pOiBQcm92aWRlcjxDcmVkZW50aWFscz4gPT4ge1xuICBpZiAodHlwZW9mIGNyZWRlbnRpYWxzID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH1cbn07XG4iXX0=","import { __assign, __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\n/**\n * @internal\n */\nexport function moveHeadersToQuery(request, options) {\n var e_1, _a;\n var _b;\n if (options === void 0) { options = {}; }\n var _c = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request), headers = _c.headers, _d = _c.query, query = _d === void 0 ? {} : _d;\n try {\n for (var _e = __values(Object.keys(headers)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var name = _f.value;\n var lname = name.toLowerCase();\n if (lname.substr(0, 6) === \"x-amz-\" && !((_b = options.unhoistableHeaders) === null || _b === void 0 ? void 0 : _b.has(lname))) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return __assign(__assign({}, request), { headers: headers,\n query: query });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZUhlYWRlcnNUb1F1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vdmVIZWFkZXJzVG9RdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxPQUFvQixFQUNwQixPQUFrRDs7O0lBQWxELHdCQUFBLEVBQUEsWUFBa0Q7SUFFNUMsSUFBQSxLQUNKLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUR6RixPQUFPLGFBQUEsRUFBRSxhQUErQixFQUEvQixLQUFLLG1CQUFHLEVBQXVCLEtBQ2lELENBQUM7O1FBQ2xHLEtBQW1CLElBQUEsS0FBQSxTQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7WUFBcEMsSUFBTSxJQUFJLFdBQUE7WUFDYixJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksUUFBQyxPQUFPLENBQUMsa0JBQWtCLDBDQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUMsRUFBRTtnQkFDOUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEI7U0FDRjs7Ozs7Ozs7O0lBRUQsNkJBQ0ssT0FBTyxLQUNWLE9BQU8sU0FBQTtRQUNQLEtBQUssT0FBQSxJQUNMO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vdmVIZWFkZXJzVG9RdWVyeShcbiAgcmVxdWVzdDogSHR0cFJlcXVlc3QsXG4gIG9wdGlvbnM6IHsgdW5ob2lzdGFibGVIZWFkZXJzPzogU2V0PHN0cmluZz4gfSA9IHt9XG4pOiBIdHRwUmVxdWVzdCAmIHsgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnIH0ge1xuICBjb25zdCB7IGhlYWRlcnMsIHF1ZXJ5ID0ge30gYXMgUXVlcnlQYXJhbWV0ZXJCYWcgfSA9XG4gICAgdHlwZW9mIChyZXF1ZXN0IGFzIGFueSkuY2xvbmUgPT09IFwiZnVuY3Rpb25cIiA/IChyZXF1ZXN0IGFzIGFueSkuY2xvbmUoKSA6IGNsb25lUmVxdWVzdChyZXF1ZXN0KTtcbiAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgY29uc3QgbG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxuYW1lLnN1YnN0cigwLCA2KSA9PT0gXCJ4LWFtei1cIiAmJiAhb3B0aW9ucy51bmhvaXN0YWJsZUhlYWRlcnM/LmhhcyhsbmFtZSkpIHtcbiAgICAgIHF1ZXJ5W25hbWVdID0gaGVhZGVyc1tuYW1lXTtcbiAgICAgIGRlbGV0ZSBoZWFkZXJzW25hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVxdWVzdCxcbiAgICBoZWFkZXJzLFxuICAgIHF1ZXJ5LFxuICB9O1xufVxuIl19","import { __values } from \"tslib\";\nexport function hasHeader(soughtHeader, headers) {\n var e_1, _a;\n soughtHeader = soughtHeader.toLowerCase();\n try {\n for (var _b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return false;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzSGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhc0hlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsTUFBTSxVQUFVLFNBQVMsQ0FBQyxZQUFvQixFQUFFLE9BQWtCOztJQUNoRSxZQUFZLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDOztRQUMxQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO1lBQTFDLElBQU0sVUFBVSxXQUFBO1lBQ25CLElBQUksWUFBWSxLQUFLLFVBQVUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDN0MsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGOzs7Ozs7Ozs7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0hlYWRlcihzb3VnaHRIZWFkZXI6IHN0cmluZywgaGVhZGVyczogSGVhZGVyQmFnKTogYm9vbGVhbiB7XG4gIHNvdWdodEhlYWRlciA9IHNvdWdodEhlYWRlci50b0xvd2VyQ2FzZSgpO1xuICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICBpZiAoc291Z2h0SGVhZGVyID09PSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\n/**\n * @internal\n */\nexport function getCanonicalQuery(_a) {\n var e_1, _b;\n var _c = _a.query, query = _c === void 0 ? {} : _c;\n var keys = [];\n var serialized = {};\n var _loop_1 = function (key) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n return \"continue\";\n }\n keys.push(key);\n var value = query[key];\n if (typeof value === \"string\") {\n serialized[key] = escapeUri(key) + \"=\" + escapeUri(value);\n }\n else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(function (encoded, value) { return encoded.concat([escapeUri(key) + \"=\" + escapeUri(value)]); }, [])\n .join(\"&\");\n }\n };\n try {\n for (var _d = __values(Object.keys(query).sort()), _e = _d.next(); !_e.done; _e = _d.next()) {\n var key = _e.value;\n _loop_1(key);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return keys\n .map(function (key) { return serialized[key]; })\n .filter(function (serialized) { return serialized; }) // omit any falsy values\n .join(\"&\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsUXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0Q2Fub25pY2FsUXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBMkI7O1FBQXpCLGFBQVUsRUFBVixLQUFLLG1CQUFHLEVBQUUsS0FBQTtJQUM1QyxJQUFNLElBQUksR0FBa0IsRUFBRSxDQUFDO0lBQy9CLElBQU0sVUFBVSxHQUE4QixFQUFFLENBQUM7NEJBQ3RDLEdBQUc7UUFDWixJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRTs7U0FFM0M7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBTSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBRyxDQUFDO1NBQzNEO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLO2lCQUNwQixLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUNSLElBQUksRUFBRTtpQkFDTixNQUFNLENBQ0wsVUFBQyxPQUFzQixFQUFFLEtBQWEsSUFBSyxPQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBSSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBRyxDQUFDLENBQUMsRUFBekQsQ0FBeUQsRUFDcEcsRUFBRSxDQUNIO2lCQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNkOzs7UUFsQkgsS0FBa0IsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxnQkFBQTtZQUF0QyxJQUFNLEdBQUcsV0FBQTtvQkFBSCxHQUFHO1NBbUJiOzs7Ozs7Ozs7SUFFRCxPQUFPLElBQUk7U0FDUixHQUFHLENBQUMsVUFBQyxHQUFHLElBQUssT0FBQSxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQWYsQ0FBZSxDQUFDO1NBQzdCLE1BQU0sQ0FBQyxVQUFDLFVBQVUsSUFBSyxPQUFBLFVBQVUsRUFBVixDQUFVLENBQUMsQ0FBQyx3QkFBd0I7U0FDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBlc2NhcGVVcmkgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11cmktZXNjYXBlXCI7XG5cbmltcG9ydCB7IFNJR05BVFVSRV9IRUFERVIgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhbm9uaWNhbFF1ZXJ5KHsgcXVlcnkgPSB7fSB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gIGNvbnN0IGtleXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgY29uc3Qgc2VyaWFsaXplZDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhxdWVyeSkuc29ydCgpKSB7XG4gICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSBTSUdOQVRVUkVfSEVBREVSKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBrZXlzLnB1c2goa2V5KTtcbiAgICBjb25zdCB2YWx1ZSA9IHF1ZXJ5W2tleV07XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgc2VyaWFsaXplZFtrZXldID0gYCR7ZXNjYXBlVXJpKGtleSl9PSR7ZXNjYXBlVXJpKHZhbHVlKX1gO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHNlcmlhbGl6ZWRba2V5XSA9IHZhbHVlXG4gICAgICAgIC5zbGljZSgwKVxuICAgICAgICAuc29ydCgpXG4gICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgKGVuY29kZWQ6IEFycmF5PHN0cmluZz4sIHZhbHVlOiBzdHJpbmcpID0+IGVuY29kZWQuY29uY2F0KFtgJHtlc2NhcGVVcmkoa2V5KX09JHtlc2NhcGVVcmkodmFsdWUpfWBdKSxcbiAgICAgICAgICBbXVxuICAgICAgICApXG4gICAgICAgIC5qb2luKFwiJlwiKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2V5c1xuICAgIC5tYXAoKGtleSkgPT4gc2VyaWFsaXplZFtrZXldKVxuICAgIC5maWx0ZXIoKHNlcmlhbGl6ZWQpID0+IHNlcmlhbGl6ZWQpIC8vIG9taXQgYW55IGZhbHN5IHZhbHVlc1xuICAgIC5qb2luKFwiJlwiKTtcbn1cbiJdfQ==","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { SignatureV4 } from \"@aws-sdk/signature-v4\";\nexport function resolveAwsAuthConfig(input) {\n var _this = this;\n var credentials = input.credentials || input.credentialDefaultProvider(input);\n var normalizedCreds = normalizeProvider(credentials);\n var _a = input.signingEscapePath, signingEscapePath = _a === void 0 ? true : _a, _b = input.systemClockOffset, systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b, sha256 = input.sha256;\n var signer;\n if (input.signer) {\n //if signer is supplied by user, normalize it to a function returning a promise for signer.\n signer = normalizeProvider(input.signer);\n }\n else {\n //construct a provider inferring signing from region.\n signer = function () {\n return normalizeProvider(input.region)()\n .then(function (region) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, input.regionInfoProvider(region)];\n case 1: return [2 /*return*/, [(_a.sent()) || {}, region]];\n }\n }); }); })\n .then(function (_a) {\n var _b = __read(_a, 2), regionInfo = _b[0], region = _b[1];\n var signingRegion = regionInfo.signingRegion, signingService = regionInfo.signingService;\n //update client's singing region and signing service config if they are resolved.\n //signing region resolving order: user supplied signingRegion -> endpoints.json inferred region -> client region\n input.signingRegion = input.signingRegion || signingRegion || region;\n //signing name resolving order:\n //user supplied signingName -> endpoints.json inferred (credential scope -> model arnNamespace) -> model service id\n input.signingName = input.signingName || signingService || input.serviceId;\n return new SignatureV4({\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256: sha256,\n uriEscapePath: signingEscapePath,\n });\n });\n };\n }\n return __assign(__assign({}, input), { systemClockOffset: systemClockOffset,\n signingEscapePath: signingEscapePath, credentials: normalizedCreds, signer: signer });\n}\nfunction normalizeProvider(input) {\n if (typeof input === \"object\") {\n var promisified_1 = Promise.resolve(input);\n return function () { return promisified_1; };\n }\n return input;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQTRDcEQsTUFBTSxVQUFVLG9CQUFvQixDQUFJLEtBQWtEO0lBQTFGLGlCQXVDQztJQXRDQyxJQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxLQUFZLENBQUMsQ0FBQztJQUN2RixJQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxJQUFBLEtBQXVGLEtBQUssa0JBQXBFLEVBQXhCLGlCQUFpQixtQkFBRyxJQUFJLEtBQUEsRUFBRSxLQUE2RCxLQUFLLGtCQUFsQixFQUFoRCxpQkFBaUIsbUJBQUcsS0FBSyxDQUFDLGlCQUFpQixJQUFJLENBQUMsS0FBQSxFQUFFLE1BQU0sR0FBSyxLQUFLLE9BQVYsQ0FBVztJQUNyRyxJQUFJLE1BQStCLENBQUM7SUFDcEMsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2hCLDJGQUEyRjtRQUMzRixNQUFNLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzFDO1NBQU07UUFDTCxxREFBcUQ7UUFDckQsTUFBTSxHQUFHO1lBQ1AsT0FBQSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7aUJBQzlCLElBQUksQ0FBQyxVQUFPLE1BQU07OzRCQUFPLHFCQUFNLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBQTs0QkFBeEMsc0JBQUEsQ0FBQyxDQUFDLFNBQXNDLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxDQUF5QixFQUFBOztxQkFBQSxDQUFDO2lCQUN4RyxJQUFJLENBQUMsVUFBQyxFQUFvQjtvQkFBcEIsS0FBQSxhQUFvQixFQUFuQixVQUFVLFFBQUEsRUFBRSxNQUFNLFFBQUE7Z0JBQ2hCLElBQUEsYUFBYSxHQUFxQixVQUFVLGNBQS9CLEVBQUUsY0FBYyxHQUFLLFVBQVUsZUFBZixDQUFnQjtnQkFDckQsaUZBQWlGO2dCQUNqRixnSEFBZ0g7Z0JBQ2hILEtBQUssQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsSUFBSSxhQUFhLElBQUksTUFBTSxDQUFDO2dCQUNyRSwrQkFBK0I7Z0JBQy9CLG1IQUFtSDtnQkFDbkgsS0FBSyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxJQUFJLGNBQWMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDO2dCQUUzRSxPQUFPLElBQUksV0FBVyxDQUFDO29CQUNyQixXQUFXLEVBQUUsZUFBZTtvQkFDNUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxhQUFhO29CQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLFdBQVc7b0JBQzFCLE1BQU0sUUFBQTtvQkFDTixhQUFhLEVBQUUsaUJBQWlCO2lCQUNqQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUM7UUFsQkosQ0FrQkksQ0FBQztLQUNSO0lBRUQsNkJBQ0ssS0FBSyxLQUNSLGlCQUFpQixtQkFBQTtRQUNqQixpQkFBaUIsbUJBQUEsRUFDakIsV0FBVyxFQUFFLGVBQWUsRUFDNUIsTUFBTSxRQUFBLElBQ047QUFDSixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBSSxLQUFzQjtJQUNsRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLEtBQW9CLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hdHVyZVY0IH0gZnJvbSBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NFwiO1xuaW1wb3J0IHsgQ3JlZGVudGlhbHMsIEhhc2hDb25zdHJ1Y3RvciwgUHJvdmlkZXIsIFJlZ2lvbkluZm8sIFJlZ2lvbkluZm9Qcm92aWRlciwgUmVxdWVzdFNpZ25lciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF3c0F1dGhJbnB1dENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgY3JlZGVudGlhbHMgdXNlZCB0byBzaWduIHJlcXVlc3RzLlxuICAgKi9cbiAgY3JlZGVudGlhbHM/OiBDcmVkZW50aWFscyB8IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcblxuICAvKipcbiAgICogVGhlIHNpZ25lciB0byB1c2Ugd2hlbiBzaWduaW5nIHJlcXVlc3RzLlxuICAgKi9cbiAgc2lnbmVyPzogUmVxdWVzdFNpZ25lciB8IFByb3ZpZGVyPFJlcXVlc3RTaWduZXI+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVzY2FwZSByZXF1ZXN0IHBhdGggd2hlbiBzaWduaW5nIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgc2lnbmluZ0VzY2FwZVBhdGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbiBvZmZzZXQgdmFsdWUgaW4gbWlsbGlzZWNvbmRzIHRvIGFwcGx5IHRvIGFsbCBzaWduaW5nIHRpbWVzLlxuICAgKi9cbiAgc3lzdGVtQ2xvY2tPZmZzZXQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb24gd2hlcmUgeW91IHdhbnQgdG8gc2lnbiB5b3VyIHJlcXVlc3QgYWdhaW5zdC4gVGhpc1xuICAgKiBjYW4gYmUgZGlmZmVyZW50IHRvIHRoZSByZWdpb24gaW4gdGhlIGVuZHBvaW50LlxuICAgKi9cbiAgc2lnbmluZ1JlZ2lvbj86IHN0cmluZztcbn1cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICBjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyOiAoaW5wdXQ6IGFueSkgPT4gUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuICByZWdpb246IHN0cmluZyB8IFByb3ZpZGVyPHN0cmluZz47XG4gIHJlZ2lvbkluZm9Qcm92aWRlcjogUmVnaW9uSW5mb1Byb3ZpZGVyO1xuICBzaWduaW5nTmFtZT86IHN0cmluZztcbiAgc2VydmljZUlkOiBzdHJpbmc7XG4gIHNoYTI1NjogSGFzaENvbnN0cnVjdG9yO1xufVxuZXhwb3J0IGludGVyZmFjZSBBd3NBdXRoUmVzb2x2ZWRDb25maWcge1xuICBjcmVkZW50aWFsczogUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuICBzaWduZXI6IFByb3ZpZGVyPFJlcXVlc3RTaWduZXI+O1xuICBzaWduaW5nRXNjYXBlUGF0aDogYm9vbGVhbjtcbiAgc3lzdGVtQ2xvY2tPZmZzZXQ6IG51bWJlcjtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQXdzQXV0aENvbmZpZzxUPihpbnB1dDogVCAmIEF3c0F1dGhJbnB1dENvbmZpZyAmIFByZXZpb3VzbHlSZXNvbHZlZCk6IFQgJiBBd3NBdXRoUmVzb2x2ZWRDb25maWcge1xuICBjb25zdCBjcmVkZW50aWFscyA9IGlucHV0LmNyZWRlbnRpYWxzIHx8IGlucHV0LmNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIoaW5wdXQgYXMgYW55KTtcbiAgY29uc3Qgbm9ybWFsaXplZENyZWRzID0gbm9ybWFsaXplUHJvdmlkZXIoY3JlZGVudGlhbHMpO1xuICBjb25zdCB7IHNpZ25pbmdFc2NhcGVQYXRoID0gdHJ1ZSwgc3lzdGVtQ2xvY2tPZmZzZXQgPSBpbnB1dC5zeXN0ZW1DbG9ja09mZnNldCB8fCAwLCBzaGEyNTYgfSA9IGlucHV0O1xuICBsZXQgc2lnbmVyOiBQcm92aWRlcjxSZXF1ZXN0U2lnbmVyPjtcbiAgaWYgKGlucHV0LnNpZ25lcikge1xuICAgIC8vaWYgc2lnbmVyIGlzIHN1cHBsaWVkIGJ5IHVzZXIsIG5vcm1hbGl6ZSBpdCB0byBhIGZ1bmN0aW9uIHJldHVybmluZyBhIHByb21pc2UgZm9yIHNpZ25lci5cbiAgICBzaWduZXIgPSBub3JtYWxpemVQcm92aWRlcihpbnB1dC5zaWduZXIpO1xuICB9IGVsc2Uge1xuICAgIC8vY29uc3RydWN0IGEgcHJvdmlkZXIgaW5mZXJyaW5nIHNpZ25pbmcgZnJvbSByZWdpb24uXG4gICAgc2lnbmVyID0gKCkgPT5cbiAgICAgIG5vcm1hbGl6ZVByb3ZpZGVyKGlucHV0LnJlZ2lvbikoKVxuICAgICAgICAudGhlbihhc3luYyAocmVnaW9uKSA9PiBbKGF3YWl0IGlucHV0LnJlZ2lvbkluZm9Qcm92aWRlcihyZWdpb24pKSB8fCB7fSwgcmVnaW9uXSBhcyBbUmVnaW9uSW5mbywgc3RyaW5nXSlcbiAgICAgICAgLnRoZW4oKFtyZWdpb25JbmZvLCByZWdpb25dKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBzaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSB9ID0gcmVnaW9uSW5mbztcbiAgICAgICAgICAvL3VwZGF0ZSBjbGllbnQncyBzaW5naW5nIHJlZ2lvbiBhbmQgc2lnbmluZyBzZXJ2aWNlIGNvbmZpZyBpZiB0aGV5IGFyZSByZXNvbHZlZC5cbiAgICAgICAgICAvL3NpZ25pbmcgcmVnaW9uIHJlc29sdmluZyBvcmRlcjogdXNlciBzdXBwbGllZCBzaWduaW5nUmVnaW9uIC0+IGVuZHBvaW50cy5qc29uIGluZmVycmVkIHJlZ2lvbiAtPiBjbGllbnQgcmVnaW9uXG4gICAgICAgICAgaW5wdXQuc2lnbmluZ1JlZ2lvbiA9IGlucHV0LnNpZ25pbmdSZWdpb24gfHwgc2lnbmluZ1JlZ2lvbiB8fCByZWdpb247XG4gICAgICAgICAgLy9zaWduaW5nIG5hbWUgcmVzb2x2aW5nIG9yZGVyOlxuICAgICAgICAgIC8vdXNlciBzdXBwbGllZCBzaWduaW5nTmFtZSAtPiBlbmRwb2ludHMuanNvbiBpbmZlcnJlZCAoY3JlZGVudGlhbCBzY29wZSAtPiBtb2RlbCBhcm5OYW1lc3BhY2UpIC0+IG1vZGVsIHNlcnZpY2UgaWRcbiAgICAgICAgICBpbnB1dC5zaWduaW5nTmFtZSA9IGlucHV0LnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlIHx8IGlucHV0LnNlcnZpY2VJZDtcblxuICAgICAgICAgIHJldHVybiBuZXcgU2lnbmF0dXJlVjQoe1xuICAgICAgICAgICAgY3JlZGVudGlhbHM6IG5vcm1hbGl6ZWRDcmVkcyxcbiAgICAgICAgICAgIHJlZ2lvbjogaW5wdXQuc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgIHNlcnZpY2U6IGlucHV0LnNpZ25pbmdOYW1lLFxuICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgdXJpRXNjYXBlUGF0aDogc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBzeXN0ZW1DbG9ja09mZnNldCxcbiAgICBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICBjcmVkZW50aWFsczogbm9ybWFsaXplZENyZWRzLFxuICAgIHNpZ25lcixcbiAgfTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplUHJvdmlkZXI8VD4oaW5wdXQ6IFQgfCBQcm92aWRlcjxUPik6IFByb3ZpZGVyPFQ+IHtcbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJvYmplY3RcIikge1xuICAgIGNvbnN0IHByb21pc2lmaWVkID0gUHJvbWlzZS5yZXNvbHZlKGlucHV0KTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH1cbiAgcmV0dXJuIGlucHV0IGFzIFByb3ZpZGVyPFQ+O1xufVxuIl19","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nvar isClockSkewed = function (newServerTime, systemClockOffset) {\n return Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - newServerTime) >= 300000;\n};\nvar getSkewCorrectedDate = function (systemClockOffset) { return new Date(Date.now() + systemClockOffset); };\nexport function awsAuthMiddleware(options) {\n return function (next, context) {\n return function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var signer, _a, output, _b, _c, headers, dateHeader, serverTime;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (!HttpRequest.isInstance(args.request))\n return [2 /*return*/, next(args)];\n if (!(typeof options.signer === \"function\")) return [3 /*break*/, 2];\n return [4 /*yield*/, options.signer()];\n case 1:\n _a = _e.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = options.signer;\n _e.label = 3;\n case 3:\n signer = _a;\n _b = next;\n _c = [__assign({}, args)];\n _d = {};\n return [4 /*yield*/, signer.sign(args.request, {\n signingDate: new Date(Date.now() + options.systemClockOffset),\n signingRegion: context[\"signing_region\"],\n signingService: context[\"signing_service\"],\n })];\n case 4: return [4 /*yield*/, _b.apply(void 0, [__assign.apply(void 0, _c.concat([(_d.request = _e.sent(), _d)]))])];\n case 5:\n output = _e.sent();\n headers = output.response.headers;\n dateHeader = headers && (headers.date || headers.Date);\n if (dateHeader) {\n serverTime = Date.parse(dateHeader);\n if (isClockSkewed(serverTime, options.systemClockOffset)) {\n options.systemClockOffset = serverTime - Date.now();\n }\n }\n return [2 /*return*/, output];\n }\n });\n });\n };\n };\n}\nexport var awsAuthMiddlewareOptions = {\n name: \"awsAuthMiddleware\",\n tags: [\"SIGNATURE\", \"AWSAUTH\"],\n relation: \"after\",\n toMiddleware: \"retryMiddleware\",\n override: true,\n};\nexport var getAwsAuthPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.addRelativeTo(awsAuthMiddleware(options), awsAuthMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFhckQsSUFBTSxhQUFhLEdBQUcsVUFBQyxhQUFxQixFQUFFLGlCQUF5QjtJQUNyRSxPQUFBLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxhQUFhLENBQUMsSUFBSSxNQUFNO0FBQXJGLENBQXFGLENBQUM7QUFFeEYsSUFBTSxvQkFBb0IsR0FBRyxVQUFDLGlCQUF5QixJQUFLLE9BQUEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLGlCQUFpQixDQUFDLEVBQXhDLENBQXdDLENBQUM7QUFFckcsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixPQUE4QjtJQUU5QixPQUFPLFVBQUMsSUFBb0MsRUFBRSxPQUFnQztRQUM1RSxPQUFBLFVBQWdCLElBQXFDOzs7Ozs7OzRCQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2dDQUFFLHNCQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQztpQ0FDOUMsQ0FBQSxPQUFPLE9BQU8sQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFBLEVBQXBDLHdCQUFvQzs0QkFBRyxxQkFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUE7OzRCQUF0QixLQUFBLFNBQXNCLENBQUE7Ozs0QkFBRyxLQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUE7Ozs0QkFBdkYsTUFBTSxLQUFpRjs0QkFDeEUsS0FBQSxJQUFJLENBQUE7K0NBQ3BCLElBQUk7OzRCQUNFLHFCQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQ0FDdkMsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7b0NBQzdELGFBQWEsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUM7b0NBQ3hDLGNBQWMsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7aUNBQzNDLENBQUMsRUFBQTtnQ0FOVyxxQkFBTSxxREFFbkIsVUFBTyxHQUFFLFNBSVAsVUFDRixFQUFBOzs0QkFQSSxNQUFNLEdBQUcsU0FPYjs0QkFFTSxPQUFPLEdBQUssTUFBTSxDQUFDLFFBQWUsUUFBM0IsQ0FBNEI7NEJBQ3JDLFVBQVUsR0FBRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDN0QsSUFBSSxVQUFVLEVBQUU7Z0NBQ1IsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7Z0NBQzFDLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRTtvQ0FDeEQsT0FBTyxDQUFDLGlCQUFpQixHQUFHLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7aUNBQ3JEOzZCQUNGOzRCQUVELHNCQUFPLE1BQU0sRUFBQzs7OztTQUNmO0lBdEJELENBc0JDLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxDQUFDLElBQU0sd0JBQXdCLEdBQThCO0lBQ2pFLElBQUksRUFBRSxtQkFBbUI7SUFDekIsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQztJQUM5QixRQUFRLEVBQUUsT0FBTztJQUNqQixZQUFZLEVBQUUsaUJBQWlCO0lBQy9CLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLFVBQUMsT0FBOEIsSUFBMEIsT0FBQSxDQUFDO0lBQ3hGLFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7Q0FDRixDQUFDLEVBSnVGLENBSXZGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBGaW5hbGl6ZUhhbmRsZXIsXG4gIEZpbmFsaXplSGFuZGxlckFyZ3VtZW50cyxcbiAgRmluYWxpemVIYW5kbGVyT3V0cHV0LFxuICBGaW5hbGl6ZVJlcXVlc3RNaWRkbGV3YXJlLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgUGx1Z2dhYmxlLFxuICBSZWxhdGl2ZU1pZGRsZXdhcmVPcHRpb25zLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQXdzQXV0aFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnNcIjtcblxuY29uc3QgaXNDbG9ja1NrZXdlZCA9IChuZXdTZXJ2ZXJUaW1lOiBudW1iZXIsIHN5c3RlbUNsb2NrT2Zmc2V0OiBudW1iZXIpID0+XG4gIE1hdGguYWJzKGdldFNrZXdDb3JyZWN0ZWREYXRlKHN5c3RlbUNsb2NrT2Zmc2V0KS5nZXRUaW1lKCkgLSBuZXdTZXJ2ZXJUaW1lKSA+PSAzMDAwMDA7XG5cbmNvbnN0IGdldFNrZXdDb3JyZWN0ZWREYXRlID0gKHN5c3RlbUNsb2NrT2Zmc2V0OiBudW1iZXIpID0+IG5ldyBEYXRlKERhdGUubm93KCkgKyBzeXN0ZW1DbG9ja09mZnNldCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBhd3NBdXRoTWlkZGxld2FyZTxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0PihcbiAgb3B0aW9uczogQXdzQXV0aFJlc29sdmVkQ29uZmlnXG4pOiBGaW5hbGl6ZVJlcXVlc3RNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+IHtcbiAgcmV0dXJuIChuZXh0OiBGaW5hbGl6ZUhhbmRsZXI8SW5wdXQsIE91dHB1dD4sIGNvbnRleHQ6IEhhbmRsZXJFeGVjdXRpb25Db250ZXh0KTogRmluYWxpemVIYW5kbGVyPElucHV0LCBPdXRwdXQ+ID0+XG4gICAgYXN5bmMgZnVuY3Rpb24gKGFyZ3M6IEZpbmFsaXplSGFuZGxlckFyZ3VtZW50czxJbnB1dD4pOiBQcm9taXNlPEZpbmFsaXplSGFuZGxlck91dHB1dDxPdXRwdXQ+PiB7XG4gICAgICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoYXJncy5yZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgICBjb25zdCBzaWduZXIgPSB0eXBlb2Ygb3B0aW9ucy5zaWduZXIgPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IG9wdGlvbnMuc2lnbmVyKCkgOiBvcHRpb25zLnNpZ25lcjtcbiAgICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IG5leHQoe1xuICAgICAgICAuLi5hcmdzLFxuICAgICAgICByZXF1ZXN0OiBhd2FpdCBzaWduZXIuc2lnbihhcmdzLnJlcXVlc3QsIHtcbiAgICAgICAgICBzaWduaW5nRGF0ZTogbmV3IERhdGUoRGF0ZS5ub3coKSArIG9wdGlvbnMuc3lzdGVtQ2xvY2tPZmZzZXQpLFxuICAgICAgICAgIHNpZ25pbmdSZWdpb246IGNvbnRleHRbXCJzaWduaW5nX3JlZ2lvblwiXSxcbiAgICAgICAgICBzaWduaW5nU2VydmljZTogY29udGV4dFtcInNpZ25pbmdfc2VydmljZVwiXSxcbiAgICAgICAgfSksXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgeyBoZWFkZXJzIH0gPSBvdXRwdXQucmVzcG9uc2UgYXMgYW55O1xuICAgICAgY29uc3QgZGF0ZUhlYWRlciA9IGhlYWRlcnMgJiYgKGhlYWRlcnMuZGF0ZSB8fCBoZWFkZXJzLkRhdGUpO1xuICAgICAgaWYgKGRhdGVIZWFkZXIpIHtcbiAgICAgICAgY29uc3Qgc2VydmVyVGltZSA9IERhdGUucGFyc2UoZGF0ZUhlYWRlcik7XG4gICAgICAgIGlmIChpc0Nsb2NrU2tld2VkKHNlcnZlclRpbWUsIG9wdGlvbnMuc3lzdGVtQ2xvY2tPZmZzZXQpKSB7XG4gICAgICAgICAgb3B0aW9ucy5zeXN0ZW1DbG9ja09mZnNldCA9IHNlcnZlclRpbWUgLSBEYXRlLm5vdygpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGF3c0F1dGhNaWRkbGV3YXJlT3B0aW9uczogUmVsYXRpdmVNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgbmFtZTogXCJhd3NBdXRoTWlkZGxld2FyZVwiLFxuICB0YWdzOiBbXCJTSUdOQVRVUkVcIiwgXCJBV1NBVVRIXCJdLFxuICByZWxhdGlvbjogXCJhZnRlclwiLFxuICB0b01pZGRsZXdhcmU6IFwicmV0cnlNaWRkbGV3YXJlXCIsXG4gIG92ZXJyaWRlOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IGdldEF3c0F1dGhQbHVnaW4gPSAob3B0aW9uczogQXdzQXV0aFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oYXdzQXV0aE1pZGRsZXdhcmUob3B0aW9ucyksIGF3c0F1dGhNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport canUseDOM from '../../../modules/canUseDom'; // $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696\n\nexport default function createCSSStyleSheet(id, rootNode, textContent) {\n if (canUseDOM) {\n var root = rootNode != null ? rootNode : document;\n var element = root.getElementById(id);\n\n if (element == null) {\n element = document.createElement('style');\n element.setAttribute('id', id);\n\n if (typeof textContent === 'string') {\n element.appendChild(document.createTextNode(textContent));\n }\n\n if (root instanceof ShadowRoot) {\n root.insertBefore(element, root.firstChild);\n } else {\n var head = root.head;\n\n if (head) {\n head.insertBefore(element, head.firstChild);\n }\n }\n } // $FlowFixMe: HTMLElement is incorrectly typed\n\n\n return element.sheet;\n } else {\n return null;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar slice = Array.prototype.slice;\n/**\n * Order-based insertion of CSS.\n *\n * Each rule is associated with a numerically defined group.\n * Groups are ordered within the style sheet according to their number, with the\n * lowest first.\n *\n * Groups are implemented using marker rules. The selector of the first rule of\n * each group is used only to encode the group number for hydration. An\n * alternative implementation could rely on CSSMediaRule, allowing groups to be\n * treated as a sub-sheet, but the Edge implementation of CSSMediaRule is\n * broken.\n * https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule\n * https://gist.github.com/necolas/aa0c37846ad6bd3b05b727b959e82674\n */\n\nexport default function createOrderedCSSStyleSheet(sheet) {\n var groups = {};\n var selectors = {};\n /**\n * Hydrate approximate record from any existing rules in the sheet.\n */\n\n if (sheet != null) {\n var group;\n slice.call(sheet.cssRules).forEach((cssRule, i) => {\n var cssText = cssRule.cssText; // Create record of existing selectors and rules\n\n if (cssText.indexOf('stylesheet-group') > -1) {\n group = decodeGroupRule(cssRule);\n groups[group] = {\n start: i,\n rules: [cssText]\n };\n } else {\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null) {\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n }\n }\n });\n }\n\n function sheetInsert(sheet, group, text) {\n var orderedGroups = getOrderedGroups(groups);\n var groupIndex = orderedGroups.indexOf(group);\n var nextGroupIndex = groupIndex + 1;\n var nextGroup = orderedGroups[nextGroupIndex]; // Insert rule before the next group, or at the end of the stylesheet\n\n var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet.cssRules.length;\n var isInserted = insertRuleAt(sheet, text, position);\n\n if (isInserted) {\n // Set the starting index of the new group\n if (groups[group].start == null) {\n groups[group].start = position;\n } // Increment the starting index of all subsequent groups\n\n\n for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n var groupNumber = orderedGroups[i];\n var previousStart = groups[groupNumber].start || 0;\n groups[groupNumber].start = previousStart + 1;\n }\n }\n\n return isInserted;\n }\n\n var OrderedCSSStyleSheet = {\n /**\n * The textContent of the style sheet.\n */\n getTextContent() {\n return getOrderedGroups(groups).map(group => {\n var rules = groups[group].rules; // Sorting provides deterministic order of styles in group for\n // build-time extraction of the style sheet.\n\n var marker = rules.shift();\n rules.sort();\n rules.unshift(marker);\n return rules.join('\\n');\n }).join('\\n');\n },\n\n /**\n * Insert a rule into the style sheet\n */\n insert(cssText, groupValue) {\n var group = Number(groupValue); // Create a new group.\n\n if (groups[group] == null) {\n var markerRule = encodeGroupRule(group); // Create the internal record.\n\n groups[group] = {\n start: null,\n rules: [markerRule]\n }; // Update CSSOM.\n\n if (sheet != null) {\n sheetInsert(sheet, group, markerRule);\n }\n } // selectorText is more reliable than cssText for insertion checks. The\n // browser excludes vendor-prefixed properties and rewrites certain values\n // making cssText more likely to be different from what was inserted.\n\n\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null && selectors[selectorText] == null) {\n // Update the internal records.\n selectors[selectorText] = true;\n groups[group].rules.push(cssText); // Update CSSOM.\n\n if (sheet != null) {\n var isInserted = sheetInsert(sheet, group, cssText);\n\n if (!isInserted) {\n // Revert internal record change if a rule was rejected (e.g.,\n // unrecognized pseudo-selector)\n groups[group].rules.pop();\n }\n }\n }\n }\n\n };\n return OrderedCSSStyleSheet;\n}\n/**\n * Helper functions\n */\n\nfunction encodeGroupRule(group) {\n return \"[stylesheet-group=\\\"\" + group + \"\\\"]{}\";\n}\n\nvar groupPattern = /[\"']/g;\n\nfunction decodeGroupRule(cssRule) {\n return Number(cssRule.selectorText.split(groupPattern)[1]);\n}\n\nfunction getOrderedGroups(obj) {\n return Object.keys(obj).map(Number).sort((a, b) => a > b ? 1 : -1);\n}\n\nvar selectorPattern = /\\s*([,])\\s*/g;\n\nfunction getSelectorText(cssText) {\n var selector = cssText.split('{')[0].trim();\n return selector !== '' ? selector.replace(selectorPattern, '$1') : null;\n}\n\nfunction insertRuleAt(root, cssText, position) {\n try {\n // $FlowFixMe: Flow is missing CSSOM types needed to type 'root'.\n root.insertRule(cssText, position);\n return true;\n } catch (e) {\n // JSDOM doesn't support `CSSSMediaRule#insertRule`.\n // Also ignore errors that occur from attempting to insert vendor-prefixed selectors.\n return false;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport canUseDOM from '../../../modules/canUseDom';\nimport createCSSStyleSheet from './createCSSStyleSheet';\nimport createOrderedCSSStyleSheet from './createOrderedCSSStyleSheet';\nvar defaultId = 'react-native-stylesheet';\nvar roots = new WeakMap();\nvar sheets = [];\nvar initialRules = [// minimal top-level reset\n'html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}', 'body{margin:0;}', // minimal form pseudo-element reset\n'button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}', 'input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}'];\nexport function createSheet(root, id) {\n if (id === void 0) {\n id = defaultId;\n }\n\n var sheet;\n\n if (canUseDOM) {\n var rootNode = root != null ? root.getRootNode() : document; // Create the initial style sheet\n\n if (sheets.length === 0) {\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id));\n initialRules.forEach(rule => {\n sheet.insert(rule, 0);\n });\n roots.set(rootNode, sheets.length);\n sheets.push(sheet);\n } else {\n var index = roots.get(rootNode);\n\n if (index == null) {\n var initialSheet = sheets[0]; // If we're creating a new sheet, populate it with existing styles\n\n var textContent = initialSheet != null ? initialSheet.getTextContent() : ''; // Cast rootNode to 'any' because Flow types for getRootNode are wrong\n\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id, rootNode, textContent));\n roots.set(rootNode, sheets.length);\n sheets.push(sheet);\n } else {\n sheet = sheets[index];\n }\n }\n } else {\n // Create the initial style sheet\n if (sheets.length === 0) {\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id));\n initialRules.forEach(rule => {\n sheet.insert(rule, 0);\n });\n sheets.push(sheet);\n } else {\n sheet = sheets[0];\n }\n }\n\n return {\n getTextContent() {\n return sheet.getTextContent();\n },\n\n id,\n\n insert(cssText, groupValue) {\n sheets.forEach(s => {\n s.insert(cssText, groupValue);\n });\n }\n\n };\n}","import * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\n\ntype State = {\n portals: Array<{\n key: number;\n children: React.ReactNode;\n }>;\n};\n\n/**\n * Portal host is the component which actually renders all Portals.\n */\nexport default class PortalManager extends React.PureComponent<{}, State> {\n state: State = {\n portals: [],\n };\n\n mount = (key: number, children: React.ReactNode) => {\n this.setState((state) => ({\n portals: [...state.portals, { key, children }],\n }));\n };\n\n update = (key: number, children: React.ReactNode) =>\n this.setState((state) => ({\n portals: state.portals.map((item) => {\n if (item.key === key) {\n return { ...item, children };\n }\n return item;\n }),\n }));\n\n unmount = (key: number) =>\n this.setState((state) => ({\n portals: state.portals.filter((item) => item.key !== key),\n }));\n\n render() {\n return this.state.portals.map(({ key, children }) => (\n \n {children}\n \n ));\n }\n}\n","import * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport PortalManager from './PortalManager';\n\nexport type Props = {\n children: React.ReactNode;\n};\n\ntype Operation =\n | { type: 'mount'; key: number; children: React.ReactNode }\n | { type: 'update'; key: number; children: React.ReactNode }\n | { type: 'unmount'; key: number };\n\nexport type PortalMethods = {\n mount: (children: React.ReactNode) => number;\n update: (key: number, children: React.ReactNode) => void;\n unmount: (key: number) => void;\n};\n\nexport const PortalContext = React.createContext(null as any);\n\n/**\n * Portal host renders all of its children `Portal` elements.\n * For example, you can wrap a screen in `Portal.Host` to render items above the screen.\n * If you're using the `Provider` component, it already includes `Portal.Host`.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Text } from 'react-native';\n * import { Portal } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * Content of the app\n * \n * );\n *\n * export default MyComponent;\n * ```\n *\n * Here any `Portal` elements under `` are rendered alongside `` and will appear above `` like a `Modal`.\n */\nexport default class PortalHost extends React.Component {\n static displayName = 'Portal.Host';\n\n componentDidMount() {\n const manager = this.manager;\n const queue = this.queue;\n\n while (queue.length && manager) {\n const action = queue.pop();\n if (action) {\n // eslint-disable-next-line default-case\n switch (action.type) {\n case 'mount':\n manager.mount(action.key, action.children);\n break;\n case 'update':\n manager.update(action.key, action.children);\n break;\n case 'unmount':\n manager.unmount(action.key);\n break;\n }\n }\n }\n }\n\n private setManager = (manager: PortalManager | undefined | null) => {\n this.manager = manager;\n };\n\n private mount = (children: React.ReactNode) => {\n const key = this.nextKey++;\n\n if (this.manager) {\n this.manager.mount(key, children);\n } else {\n this.queue.push({ type: 'mount', key, children });\n }\n\n return key;\n };\n\n private update = (key: number, children: React.ReactNode) => {\n if (this.manager) {\n this.manager.update(key, children);\n } else {\n const op: Operation = { type: 'mount', key, children };\n const index = this.queue.findIndex(\n (o) => o.type === 'mount' || (o.type === 'update' && o.key === key)\n );\n\n if (index > -1) {\n this.queue[index] = op;\n } else {\n this.queue.push(op as Operation);\n }\n }\n };\n\n private unmount = (key: number) => {\n if (this.manager) {\n this.manager.unmount(key);\n } else {\n this.queue.push({ type: 'unmount', key });\n }\n };\n\n private nextKey = 0;\n private queue: Operation[] = [];\n private manager: PortalManager | null | undefined;\n\n render() {\n return (\n \n {/* Need collapsable=false here to clip the elevations, otherwise they appear above Portal components */}\n \n {this.props.children}\n \n \n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n});\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nconst util = require('./util');\nconst buildOptions = require('./util').buildOptions;\nconst xmlNode = require('./xmlNode');\nconst toNumber = require(\"strnum\");\n\nconst regx =\n '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\n//polyfill\nif (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n}\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attrNodeName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n ignoreNameSpace: false,\n allowBooleanAttributes: false, //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseNodeValue: true,\n parseAttributeValue: false,\n arrayMode: false,\n trimValues: true, //Trim string values of tag and attributes\n cdataTagName: false,\n cdataPositionChar: '\\\\c',\n numParseOptions: {\n hex: true,\n leadingZeros: true\n },\n tagValueProcessor: function(a, tagName) {\n return a;\n },\n attrValueProcessor: function(a, attrName) {\n return a;\n },\n stopNodes: [],\n alwaysCreateTextNode: false\n //decodeStrict: false,\n};\n\nexports.defaultOptions = defaultOptions;\n\nconst props = [\n 'attributeNamePrefix',\n 'attrNodeName',\n 'textNodeName',\n 'ignoreAttributes',\n 'ignoreNameSpace',\n 'allowBooleanAttributes',\n 'parseNodeValue',\n 'parseAttributeValue',\n 'arrayMode',\n 'trimValues',\n 'cdataTagName',\n 'cdataPositionChar',\n 'tagValueProcessor',\n 'attrValueProcessor',\n 'parseTrueNumberOnly',\n 'numParseOptions',\n 'stopNodes',\n 'alwaysCreateTextNode'\n];\nexports.props = props;\n\n/**\n * Trim -> valueProcessor -> parse value\n * @param {string} tagName\n * @param {string} val\n * @param {object} options\n */\nfunction processTagValue(tagName, val, options) {\n if (val) {\n if (options.trimValues) {\n val = val.trim();\n }\n val = options.tagValueProcessor(val, tagName);\n val = parseValue(val, options.parseNodeValue, options.numParseOptions);\n }\n\n return val;\n}\n\nfunction resolveNameSpace(tagname, options) {\n if (options.ignoreNameSpace) {\n const tags = tagname.split(':');\n const prefix = tagname.charAt(0) === '/' ? '/' : '';\n if (tags[0] === 'xmlns') {\n return '';\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n}\n\nfunction parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === 'string') {\n //console.log(options)\n const newval = val.trim();\n if(newval === 'true' ) return true;\n else if(newval === 'false' ) return false;\n else return toNumber(val, options);\n } else {\n if (util.isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])(.*?)\\\\3)?', 'g');\n\nfunction buildAttributesMap(attrStr, options) {\n if (!options.ignoreAttributes && typeof attrStr === 'string') {\n attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n //attrStr = attrStr || attrStr.trim();\n\n const matches = util.getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n const attrs = {};\n for (let i = 0; i < len; i++) {\n const attrName = resolveNameSpace(matches[i][1], options);\n if (attrName.length) {\n if (matches[i][4] !== undefined) {\n if (options.trimValues) {\n matches[i][4] = matches[i][4].trim();\n }\n matches[i][4] = options.attrValueProcessor(matches[i][4], attrName);\n attrs[options.attributeNamePrefix + attrName] = parseValue(\n matches[i][4],\n options.parseAttributeValue,\n options.numParseOptions\n );\n } else if (options.allowBooleanAttributes) {\n attrs[options.attributeNamePrefix + attrName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (options.attrNodeName) {\n const attrCollection = {};\n attrCollection[options.attrNodeName] = attrs;\n return attrCollection;\n }\n return attrs;\n }\n}\n\nconst getTraversalObj = function(xmlData, options) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n options = buildOptions(options, defaultOptions, props);\n const xmlObj = new xmlNode('!xml');\n let currentNode = xmlObj;\n let textData = \"\";\n\n//function match(xmlData){\n for(let i=0; i< xmlData.length; i++){\n const ch = xmlData[i];\n if(ch === '<'){\n if( xmlData[i+1] === '/') {//Closing Tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n if(options.ignoreNameSpace){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n }\n }\n\n /* if (currentNode.parent) {\n currentNode.parent.val = util.getValue(currentNode.parent.val) + '' + processTagValue2(tagName, textData , options);\n } */\n if(currentNode){\n if(currentNode.val){\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(tagName, textData , options);\n }else{\n currentNode.val = processTagValue(tagName, textData , options);\n }\n }\n\n if (options.stopNodes.length && options.stopNodes.includes(currentNode.tagname)) {\n currentNode.child = []\n if (currentNode.attrsMap == undefined) { currentNode.attrsMap = {}}\n currentNode.val = xmlData.substr(currentNode.startIndex + 1, i - currentNode.startIndex - 1)\n }\n currentNode = currentNode.parent;\n textData = \"\";\n i = closeIndex;\n } else if( xmlData[i+1] === '?') {\n i = findClosingIndex(xmlData, \"?>\", i, \"Pi Tag is not closed.\")\n } else if(xmlData.substr(i + 1, 3) === '!--') {\n i = findClosingIndex(xmlData, \"-->\", i, \"Comment is not closed.\")\n } else if( xmlData.substr(i + 1, 2) === '!D') {\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"DOCTYPE is not closed.\")\n const tagExp = xmlData.substring(i, closeIndex);\n if(tagExp.indexOf(\"[\") >= 0){\n i = xmlData.indexOf(\"]>\", i) + 1;\n }else{\n i = closeIndex;\n }\n }else if(xmlData.substr(i + 1, 2) === '![') {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2\n const tagExp = xmlData.substring(i + 9,closeIndex);\n\n //considerations\n //1. CDATA will always have parent node\n //2. A tag with CDATA is not a leaf node so it's value would be string type.\n if(textData){\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(currentNode.tagname, textData , options);\n textData = \"\";\n }\n\n if (options.cdataTagName) {\n //add cdata node\n const childNode = new xmlNode(options.cdataTagName, currentNode, tagExp);\n currentNode.addChild(childNode);\n //for backtracking\n currentNode.val = util.getValue(currentNode.val) + options.cdataPositionChar;\n //add rest value to parent node\n if (tagExp) {\n childNode.val = tagExp;\n }\n } else {\n currentNode.val = (currentNode.val || '') + (tagExp || '');\n }\n\n i = closeIndex + 2;\n }else {//Opening tag\n const result = closingIndexForOpeningTag(xmlData, i+1)\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.indexOf(\" \");\n let tagName = tagExp;\n let shouldBuildAttributesMap = true;\n if(separatorIndex !== -1){\n tagName = tagExp.substr(0, separatorIndex).replace(/\\s\\s*$/, '');\n tagExp = tagExp.substr(separatorIndex + 1);\n }\n\n if(options.ignoreNameSpace){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n shouldBuildAttributesMap = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n\n //save text to parent node\n if (currentNode && textData) {\n if(currentNode.tagname !== '!xml'){\n currentNode.val = util.getValue(currentNode.val) + '' + processTagValue( currentNode.tagname, textData, options);\n }\n }\n\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){//selfClosing tag\n\n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n\n const childNode = new xmlNode(tagName, currentNode, '');\n if(tagName !== tagExp){\n childNode.attrsMap = buildAttributesMap(tagExp, options);\n }\n currentNode.addChild(childNode);\n }else{//opening tag\n\n const childNode = new xmlNode( tagName, currentNode );\n if (options.stopNodes.length && options.stopNodes.includes(childNode.tagname)) {\n childNode.startIndex=closeIndex;\n }\n if(tagName !== tagExp && shouldBuildAttributesMap){\n childNode.attrsMap = buildAttributesMap(tagExp, options);\n }\n currentNode.addChild(childNode);\n currentNode = childNode;\n }\n textData = \"\";\n i = closeIndex;\n }\n }else{\n textData += xmlData[i];\n }\n }\n return xmlObj;\n}\n\nfunction closingIndexForOpeningTag(data, i){\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i; index < data.length; index++) {\n let ch = data[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";//reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === '>') {\n return {\n data: tagExp,\n index: index\n }\n } else if (ch === '\\t') {\n ch = \" \"\n }\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n const closingIndex = xmlData.indexOf(str, i);\n if(closingIndex === -1){\n throw new Error(errMsg)\n }else{\n return closingIndex + str.length - 1;\n }\n}\n\nexports.getTraversalObj = getTraversalObj;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import \"../../utilities/globals/index.js\";\nexport { parseAndCheckHttpResponse } from \"./parseAndCheckHttpResponse.js\";\nexport { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nexport { fallbackHttpConfig, selectHttpOptionsAndBody } from \"./selectHttpOptionsAndBody.js\";\nexport { checkFetcher } from \"./checkFetcher.js\";\nexport { createSignalIfSupported } from \"./createSignalIfSupported.js\";\nexport { selectURI } from \"./selectURI.js\";\nexport { createHttpLink } from \"./createHttpLink.js\";\nexport { HttpLink } from \"./HttpLink.js\";\nexport { rewriteURIForGET } from \"./rewriteURIForGET.js\";\n//# sourceMappingURL=index.js.map","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BAD_CONFIG_MESSAGE = exports.INIT_REQUIRED_MESSAGE = exports.REFRESH_POLL_AGE_SECONDS = exports.ANIMATION_DURATION = exports.DRAFT_POLL_PATH = exports.POLL_PATH = exports.QA_DOMAIN_SUFFIX = exports.WEBVIEW_ORIGIN_WHITELIST = exports.ERROR_PREFIX = exports.TOP_LEVEL_DOMAIN = exports.DEFAULT_URL_SCHEME = exports.API_BASE_URL = void 0;\nconst API_BASE_URL = \"https://polls-api.com/partner/v1\";\nexports.API_BASE_URL = API_BASE_URL;\nconst DEFAULT_URL_SCHEME = \"https://\";\nexports.DEFAULT_URL_SCHEME = DEFAULT_URL_SCHEME;\nconst TOP_LEVEL_DOMAIN = \"pollsplatform.com\";\nexports.TOP_LEVEL_DOMAIN = TOP_LEVEL_DOMAIN;\nconst ERROR_PREFIX = \"[Polls Platform] \";\nexports.ERROR_PREFIX = ERROR_PREFIX;\nconst WEBVIEW_ORIGIN_WHITELIST = [\"https://*.pollsplatform.com\", \"http://*.pollsplatform.com\"];\nexports.WEBVIEW_ORIGIN_WHITELIST = WEBVIEW_ORIGIN_WHITELIST;\nconst QA_DOMAIN_SUFFIX = \"-qa\";\nexports.QA_DOMAIN_SUFFIX = QA_DOMAIN_SUFFIX;\nconst POLL_PATH = \"polls\";\nexports.POLL_PATH = POLL_PATH;\nconst DRAFT_POLL_PATH = \"poll-drafts\";\nexports.DRAFT_POLL_PATH = DRAFT_POLL_PATH;\nconst ANIMATION_DURATION = 250;\nexports.ANIMATION_DURATION = ANIMATION_DURATION;\nconst REFRESH_POLL_AGE_SECONDS = 60 * 60 * 24 * 30; // 1 month ------ 60 * 3; // 3 minutes\nexports.REFRESH_POLL_AGE_SECONDS = REFRESH_POLL_AGE_SECONDS;\n// error messages\nconst INIT_REQUIRED_MESSAGE = \"attempted to use the SDK before initializing\";\nexports.INIT_REQUIRED_MESSAGE = INIT_REQUIRED_MESSAGE;\nconst BAD_CONFIG_MESSAGE = \"config does not match required schema\";\nexports.BAD_CONFIG_MESSAGE = BAD_CONFIG_MESSAGE;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bytesToString = exports.stringToBytes = exports.NIL = exports.X500 = exports.OID = exports.URL = exports.DNS = exports.hexToByte = exports.byteToHex = void 0;\nlet _byteToHex = [];\nlet _hexToByte = {};\nfor (var i = 0; i < 256; i++) {\n _byteToHex[i] = (i + 0x100).toString(16).substr(1);\n _hexToByte[_byteToHex[i]] = i;\n}\nexports.byteToHex = _byteToHex;\nexports.hexToByte = _hexToByte;\nexports.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.OID = '6ba7b812-9dad-11d1-80b4-00c04fd430c8';\nexports.X500 = '6ba7b814-9dad-11d1-80b4-00c04fd430c8';\nexports.NIL = '00000000-0000-0000-0000-000000000000';\nconst stringToBytes = (str) => {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n const bytes = new Uint8Array(str.length);\n for (let j = 0; j < str.length; ++j) {\n bytes[j] = str.charCodeAt(j);\n }\n return bytes;\n};\nexports.stringToBytes = stringToBytes;\nconst bytesToString = (buf) => {\n const bufferView = new Uint8Array(buf, 0, buf.byteLength);\n return String.fromCharCode.apply(null, Array.from(bufferView));\n};\nexports.bytesToString = bytesToString;\n//# sourceMappingURL=utils.js.map","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","/* global _frameTimestamp */\nimport { useEffect, useRef } from 'react';\nimport { startMapper, stopMapper, makeRemote, requestFrame, getTimestamp, makeMutable, } from '../core';\nimport updateProps, { updatePropsJestWrapper } from '../UpdateProps';\nimport { initialUpdaterRun } from '../animation';\nimport NativeReanimatedModule from '../NativeReanimated';\nimport { useSharedValue } from './useSharedValue';\nimport { buildWorkletsHash, canApplyOptimalisation, getStyleWithoutAnimations, hasColorProps, isAnimated, parseColors, styleDiff, validateAnimatedStyles, } from './utils';\nimport { makeViewDescriptorsSet, makeViewsRefSet, } from '../ViewDescriptorsSet';\nimport { isJest, shouldBeUseWeb } from '../PlatformChecker';\nfunction prepareAnimation(animatedProp, lastAnimation, lastValue) {\n 'worklet';\n if (Array.isArray(animatedProp)) {\n animatedProp.forEach((prop, index) => prepareAnimation(prop, lastAnimation && lastAnimation[index], lastValue && lastValue[index]));\n // return animatedProp;\n }\n if (typeof animatedProp === 'object' && animatedProp.onFrame) {\n const animation = animatedProp;\n let value = animation.current;\n if (lastValue !== undefined) {\n if (typeof lastValue === 'object') {\n if (lastValue.value !== undefined) {\n // previously it was a shared value\n value = lastValue.value;\n }\n else if (lastValue.onFrame !== undefined) {\n if ((lastAnimation === null || lastAnimation === void 0 ? void 0 : lastAnimation.current) !== undefined) {\n // it was an animation before, copy its state\n value = lastAnimation.current;\n }\n else if ((lastValue === null || lastValue === void 0 ? void 0 : lastValue.current) !== undefined) {\n // it was initialized\n value = lastValue.current;\n }\n }\n }\n else {\n // previously it was a plain value, just set it as starting point\n value = lastValue;\n }\n }\n animation.callStart = (timestamp) => {\n animation.onStart(animation, value, timestamp, lastAnimation);\n };\n animation.callStart(getTimestamp());\n animation.callStart = null;\n }\n else if (typeof animatedProp === 'object') {\n // it is an object\n Object.keys(animatedProp).forEach((key) => prepareAnimation(animatedProp[key], lastAnimation && lastAnimation[key], lastValue && lastValue[key]));\n }\n}\nfunction runAnimations(animation, timestamp, key, result, animationsActive) {\n 'worklet';\n if (!animationsActive.value) {\n return true;\n }\n if (Array.isArray(animation)) {\n result[key] = [];\n let allFinished = true;\n animation.forEach((entry, index) => {\n if (!runAnimations(entry, timestamp, index, result[key], animationsActive)) {\n allFinished = false;\n }\n });\n return allFinished;\n }\n else if (typeof animation === 'object' && animation.onFrame) {\n let finished = true;\n if (!animation.finished) {\n if (animation.callStart) {\n animation.callStart(timestamp);\n animation.callStart = null;\n }\n finished = animation.onFrame(animation, timestamp);\n animation.timestamp = timestamp;\n if (finished) {\n animation.finished = true;\n animation.callback && animation.callback(true /* finished */);\n }\n }\n result[key] = animation.current;\n return finished;\n }\n else if (typeof animation === 'object') {\n result[key] = {};\n let allFinished = true;\n Object.keys(animation).forEach((k) => {\n if (!runAnimations(animation[k], timestamp, k, result[key], animationsActive)) {\n allFinished = false;\n }\n });\n return allFinished;\n }\n else {\n result[key] = animation;\n return true;\n }\n}\nfunction styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsActive) {\n 'worklet';\n var _a, _b;\n const animations = (_a = state.animations) !== null && _a !== void 0 ? _a : {};\n const newValues = (_b = updater()) !== null && _b !== void 0 ? _b : {};\n const oldValues = state.last;\n let hasAnimations = false;\n for (const key in newValues) {\n const value = newValues[key];\n if (isAnimated(value)) {\n prepareAnimation(value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n }\n else {\n delete animations[key];\n }\n }\n if (hasAnimations) {\n const frame = (timestamp) => {\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n const updates = {};\n let allFinished = true;\n for (const propName in animations) {\n const finished = runAnimations(animations[propName], timestamp, propName, updates, animationsActive);\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n }\n else {\n allFinished = false;\n }\n }\n if (updates) {\n updateProps(viewDescriptors, updates, maybeViewRef);\n }\n if (!allFinished) {\n requestFrame(frame);\n }\n else {\n state.isAnimationRunning = false;\n }\n };\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n if (_frameTimestamp) {\n frame(_frameTimestamp);\n }\n else {\n requestFrame(frame);\n }\n }\n state.last = Object.assign({}, oldValues, newValues);\n const style = getStyleWithoutAnimations(state.last);\n if (style) {\n updateProps(viewDescriptors, style, maybeViewRef);\n }\n }\n else {\n state.isAnimationCancelled = true;\n state.animations = [];\n const diff = styleDiff(oldValues, newValues);\n state.last = Object.assign({}, oldValues, diff);\n if (diff) {\n updateProps(viewDescriptors, newValues, maybeViewRef);\n }\n }\n}\nfunction jestStyleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsActive, animatedStyle, adapters = []) {\n 'worklet';\n var _a, _b;\n const animations = (_a = state.animations) !== null && _a !== void 0 ? _a : {};\n const newValues = (_b = updater()) !== null && _b !== void 0 ? _b : {};\n const oldValues = state.last;\n // extract animated props\n let hasAnimations = false;\n Object.keys(animations).forEach((key) => {\n const value = newValues[key];\n if (!isAnimated(value)) {\n delete animations[key];\n }\n });\n Object.keys(newValues).forEach((key) => {\n const value = newValues[key];\n if (isAnimated(value)) {\n prepareAnimation(value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n }\n });\n function frame(timestamp) {\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n const updates = {};\n let allFinished = true;\n Object.keys(animations).forEach((propName) => {\n const finished = runAnimations(animations[propName], timestamp, propName, updates, animationsActive);\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n }\n else {\n allFinished = false;\n }\n });\n if (Object.keys(updates).length) {\n updatePropsJestWrapper(viewDescriptors, updates, maybeViewRef, animatedStyle, adapters);\n }\n if (!allFinished) {\n requestFrame(frame);\n }\n else {\n state.isAnimationRunning = false;\n }\n }\n if (hasAnimations) {\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n if (_frameTimestamp) {\n frame(_frameTimestamp);\n }\n else {\n requestFrame(frame);\n }\n }\n }\n else {\n state.isAnimationCancelled = true;\n state.animations = [];\n }\n // calculate diff\n const diff = styleDiff(oldValues, newValues);\n state.last = Object.assign({}, oldValues, diff);\n if (Object.keys(diff).length !== 0) {\n updatePropsJestWrapper(viewDescriptors, diff, maybeViewRef, animatedStyle, adapters);\n }\n}\n// check for invalid usage of shared values in returned object\nfunction checkSharedValueUsage(prop, currentKey) {\n if (Array.isArray(prop)) {\n // if it's an array (i.ex. transform) validate all its elements\n for (const element of prop) {\n checkSharedValueUsage(element, currentKey);\n }\n }\n else if (typeof prop === 'object' && prop.value === undefined) {\n // if it's a nested object, run validation for all its props\n for (const key of Object.keys(prop)) {\n checkSharedValueUsage(prop[key], key);\n }\n }\n else if (currentKey !== undefined &&\n typeof prop === 'object' &&\n prop.value !== undefined) {\n // if shared value is passed insted of its value, throw an error\n throw new Error(`invalid value passed to \\`${currentKey}\\`, maybe you forgot to use \\`.value\\`?`);\n }\n}\nexport function useAnimatedStyle(updater, dependencies, adapters) {\n var _a, _b;\n const viewsRef = makeViewsRefSet();\n const viewDescriptors = makeViewDescriptorsSet();\n const initRef = useRef();\n const inputs = Object.values((_a = updater._closure) !== null && _a !== void 0 ? _a : {});\n const adaptersArray = adapters\n ? Array.isArray(adapters)\n ? adapters\n : [adapters]\n : [];\n const adaptersHash = adapters ? buildWorkletsHash(adaptersArray) : null;\n const animationsActive = useSharedValue(true);\n const animatedStyle = useRef({});\n // build dependencies\n if (!dependencies) {\n dependencies = [...inputs, updater.__workletHash];\n }\n else {\n dependencies.push(updater.__workletHash);\n }\n adaptersHash && dependencies.push(adaptersHash);\n if (!initRef.current) {\n const initialStyle = initialUpdaterRun(updater);\n validateAnimatedStyles(initialStyle);\n initRef.current = {\n initial: {\n value: initialStyle,\n updater: updater,\n },\n remoteState: makeRemote({ last: initialStyle }),\n sharableViewDescriptors: makeMutable([]),\n };\n viewDescriptors.rebuildsharableViewDescriptors(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n initRef.current.sharableViewDescriptors);\n }\n dependencies.push((_b = initRef.current) === null || _b === void 0 ? void 0 : _b.sharableViewDescriptors.value);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { initial, remoteState, sharableViewDescriptors } = initRef.current;\n const maybeViewRef = NativeReanimatedModule.native ? undefined : viewsRef;\n useEffect(() => {\n let fun;\n let updaterFn = updater;\n let optimalization = updater.__optimalization;\n if (adapters) {\n updaterFn = () => {\n 'worklet';\n const newValues = updater();\n adaptersArray.forEach((adapter) => {\n adapter(newValues);\n });\n return newValues;\n };\n }\n if (canApplyOptimalisation(updaterFn) && !shouldBeUseWeb()) {\n if (hasColorProps(updaterFn())) {\n updaterFn = () => {\n 'worklet';\n const newValues = updaterFn();\n const oldValues = remoteState.last;\n const diff = styleDiff(oldValues, newValues);\n remoteState.last = Object.assign({}, oldValues, newValues);\n parseColors(diff);\n return diff;\n };\n }\n else {\n updaterFn = () => {\n 'worklet';\n const newValues = updaterFn();\n const oldValues = remoteState.last;\n const diff = styleDiff(oldValues, newValues);\n remoteState.last = Object.assign({}, oldValues, newValues);\n return diff;\n };\n }\n }\n else if (!shouldBeUseWeb()) {\n optimalization = 0;\n updaterFn = () => {\n 'worklet';\n const style = updaterFn();\n parseColors(style);\n return style;\n };\n }\n if (typeof updater.__optimalization !== undefined) {\n updaterFn.__optimalization = optimalization;\n }\n if (isJest()) {\n fun = () => {\n 'worklet';\n jestStyleUpdater(sharableViewDescriptors, updater, remoteState, maybeViewRef, animationsActive, animatedStyle, adaptersArray);\n };\n }\n else {\n fun = () => {\n 'worklet';\n styleUpdater(sharableViewDescriptors, updaterFn, remoteState, maybeViewRef, animationsActive);\n };\n }\n const mapperId = startMapper(fun, inputs, [], updaterFn, \n // TODO fix this\n sharableViewDescriptors);\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n useEffect(() => {\n animationsActive.value = true;\n return () => {\n // initRef.current = null;\n // viewsRef = null;\n animationsActive.value = false;\n };\n }, []);\n checkSharedValueUsage(initial.value);\n if (process.env.JEST_WORKER_ID) {\n return { viewDescriptors, initial: initial, viewsRef, animatedStyle };\n }\n else {\n return { viewDescriptors, initial: initial, viewsRef };\n }\n}\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"colors\", \"enabled\", \"onRefresh\", \"progressBackgroundColor\", \"progressViewOffset\", \"refreshing\", \"size\", \"tintColor\", \"title\", \"titleColor\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport View from '../View';\nimport React from 'react';\n\nfunction RefreshControl(props) {\n var colors = props.colors,\n enabled = props.enabled,\n onRefresh = props.onRefresh,\n progressBackgroundColor = props.progressBackgroundColor,\n progressViewOffset = props.progressViewOffset,\n refreshing = props.refreshing,\n size = props.size,\n tintColor = props.tintColor,\n title = props.title,\n titleColor = props.titleColor,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n return /*#__PURE__*/React.createElement(View, rest);\n}\n\nexport default RefreshControl;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport VirtualizedList from '../../vendor/react-native/VirtualizedList';\nexport default VirtualizedList;","import { __assign, __rest } from \"tslib\";\nimport \"../../utilities/globals/index.js\";\nimport { visit } from 'graphql';\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nimport { selectURI } from \"./selectURI.js\";\nimport { parseAndCheckHttpResponse } from \"./parseAndCheckHttpResponse.js\";\nimport { checkFetcher } from \"./checkFetcher.js\";\nimport { selectHttpOptionsAndBody, fallbackHttpConfig } from \"./selectHttpOptionsAndBody.js\";\nimport { createSignalIfSupported } from \"./createSignalIfSupported.js\";\nimport { rewriteURIForGET } from \"./rewriteURIForGET.js\";\nimport { fromError } from \"../utils/index.js\";\nimport { maybe } from \"../../utilities/index.js\";\nvar backupFetch = maybe(function () { return fetch; });\nexport var createHttpLink = function (linkOptions) {\n if (linkOptions === void 0) { linkOptions = {}; }\n var _a = linkOptions.uri, uri = _a === void 0 ? '/graphql' : _a, preferredFetch = linkOptions.fetch, includeExtensions = linkOptions.includeExtensions, useGETForQueries = linkOptions.useGETForQueries, _b = linkOptions.includeUnusedVariables, includeUnusedVariables = _b === void 0 ? false : _b, requestOptions = __rest(linkOptions, [\"uri\", \"fetch\", \"includeExtensions\", \"useGETForQueries\", \"includeUnusedVariables\"]);\n if (__DEV__) {\n checkFetcher(preferredFetch || backupFetch);\n }\n var linkConfig = {\n http: { includeExtensions: includeExtensions },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n return new ApolloLink(function (operation) {\n var chosenURI = selectURI(operation, uri);\n var context = operation.getContext();\n var clientAwarenessHeaders = {};\n if (context.clientAwareness) {\n var _a = context.clientAwareness, name_1 = _a.name, version = _a.version;\n if (name_1) {\n clientAwarenessHeaders['apollographql-client-name'] = name_1;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n var contextHeaders = __assign(__assign({}, clientAwarenessHeaders), context.headers);\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n var _b = selectHttpOptionsAndBody(operation, fallbackHttpConfig, linkConfig, contextConfig), options = _b.options, body = _b.body;\n if (body.variables && !includeUnusedVariables) {\n var unusedNames_1 = new Set(Object.keys(body.variables));\n visit(operation.query, {\n Variable: function (node, _key, parent) {\n if (parent && parent.kind !== 'VariableDefinition') {\n unusedNames_1.delete(node.name.value);\n }\n },\n });\n if (unusedNames_1.size) {\n body.variables = __assign({}, body.variables);\n unusedNames_1.forEach(function (name) {\n delete body.variables[name];\n });\n }\n }\n var controller;\n if (!options.signal) {\n var _c = createSignalIfSupported(), _controller = _c.controller, signal = _c.signal;\n controller = _controller;\n if (controller)\n options.signal = signal;\n }\n var definitionIsMutation = function (d) {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n if (useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)) {\n options.method = 'GET';\n }\n if (options.method === 'GET') {\n var _d = rewriteURIForGET(chosenURI, body), newURI = _d.newURI, parseError = _d.parseError;\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n }\n else {\n try {\n options.body = serializeFetchParameter(body, 'Payload');\n }\n catch (parseError) {\n return fromError(parseError);\n }\n }\n return new Observable(function (observer) {\n var currentFetch = preferredFetch || maybe(function () { return fetch; }) || backupFetch;\n currentFetch(chosenURI, options)\n .then(function (response) {\n operation.setContext({ response: response });\n return response;\n })\n .then(parseAndCheckHttpResponse(operation))\n .then(function (result) {\n observer.next(result);\n observer.complete();\n return result;\n })\n .catch(function (err) {\n if (err.name === 'AbortError')\n return;\n if (err.result && err.result.errors && err.result.data) {\n observer.next(err.result);\n }\n observer.error(err);\n });\n return function () {\n if (controller)\n controller.abort();\n };\n });\n });\n};\n//# sourceMappingURL=createHttpLink.js.map","export var selectURI = function (operation, fallbackURI) {\n var context = operation.getContext();\n var contextURI = context.uri;\n if (contextURI) {\n return contextURI;\n }\n else if (typeof fallbackURI === 'function') {\n return fallbackURI(operation);\n }\n else {\n return fallbackURI || '/graphql';\n }\n};\n//# sourceMappingURL=selectURI.js.map","export var createSignalIfSupported = function () {\n if (typeof AbortController === 'undefined')\n return { controller: false, signal: false };\n var controller = new AbortController();\n var signal = controller.signal;\n return { controller: controller, signal: signal };\n};\n//# sourceMappingURL=createSignalIfSupported.js.map","import { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nexport function rewriteURIForGET(chosenURI, body) {\n var queryParams = [];\n var addQueryParam = function (key, value) {\n queryParams.push(key + \"=\" + encodeURIComponent(value));\n };\n if ('query' in body) {\n addQueryParam('query', body.query);\n }\n if (body.operationName) {\n addQueryParam('operationName', body.operationName);\n }\n if (body.variables) {\n var serializedVariables = void 0;\n try {\n serializedVariables = serializeFetchParameter(body.variables, 'Variables map');\n }\n catch (parseError) {\n return { parseError: parseError };\n }\n addQueryParam('variables', serializedVariables);\n }\n if (body.extensions) {\n var serializedExtensions = void 0;\n try {\n serializedExtensions = serializeFetchParameter(body.extensions, 'Extensions map');\n }\n catch (parseError) {\n return { parseError: parseError };\n }\n addQueryParam('extensions', serializedExtensions);\n }\n var fragment = '', preFragment = chosenURI;\n var fragmentStart = chosenURI.indexOf('#');\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n var queryParamsPrefix = preFragment.indexOf('?') === -1 ? '?' : '&';\n var newURI = preFragment + queryParamsPrefix + queryParams.join('&') + fragment;\n return { newURI: newURI };\n}\n//# sourceMappingURL=rewriteURIForGET.js.map","import { throwServerError } from \"../utils/index.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function parseAndCheckHttpResponse(operations) {\n return function (response) { return response\n .text()\n .then(function (bodyText) {\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n var parseError = err;\n parseError.name = 'ServerParseError';\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n throw parseError;\n }\n })\n .then(function (result) {\n if (response.status >= 300) {\n throwServerError(response, result, \"Response not successful: Received status code \" + response.status);\n }\n if (!Array.isArray(result) &&\n !hasOwnProperty.call(result, 'data') &&\n !hasOwnProperty.call(result, 'errors')) {\n throwServerError(response, result, \"Server response was missing for query '\" + (Array.isArray(operations)\n ? operations.map(function (op) { return op.operationName; })\n : operations.operationName) + \"'.\");\n }\n return result;\n }); };\n}\n//# sourceMappingURL=parseAndCheckHttpResponse.js.map","var prefixCounts = new Map();\nexport function makeUniqueId(prefix) {\n var count = prefixCounts.get(prefix) || 1;\n prefixCounts.set(prefix, count + 1);\n return prefix + \":\" + count + \":\" + Math.random().toString(36).slice(2);\n}\n//# sourceMappingURL=makeUniqueId.js.map","import { Platform, PlatformOSType } from 'react-native';\nimport type { Fonts } from '../types';\n\nconst fontConfig = {\n web: {\n regular: {\n fontFamily: 'Roboto, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\n fontWeight: '400' as '400',\n },\n medium: {\n fontFamily: 'Roboto, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\n fontWeight: '500' as '500',\n },\n light: {\n fontFamily: 'Roboto, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\n fontWeight: '300' as '300',\n },\n thin: {\n fontFamily: 'Roboto, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\n fontWeight: '100' as '100',\n },\n },\n ios: {\n regular: {\n fontFamily: 'System',\n fontWeight: '400' as '400',\n },\n medium: {\n fontFamily: 'System',\n fontWeight: '500' as '500',\n },\n light: {\n fontFamily: 'System',\n fontWeight: '300' as '300',\n },\n thin: {\n fontFamily: 'System',\n fontWeight: '100' as '100',\n },\n },\n default: {\n regular: {\n fontFamily: 'sans-serif',\n fontWeight: 'normal' as 'normal',\n },\n medium: {\n fontFamily: 'sans-serif-medium',\n fontWeight: 'normal' as 'normal',\n },\n light: {\n fontFamily: 'sans-serif-light',\n fontWeight: 'normal' as 'normal',\n },\n thin: {\n fontFamily: 'sans-serif-thin',\n fontWeight: 'normal' as 'normal',\n },\n },\n};\n\nexport default function configureFonts(config?: {\n [platform in PlatformOSType | 'default']?: Fonts;\n}): Fonts {\n const fonts = Platform.select({ ...fontConfig, ...config }) as Fonts;\n return fonts;\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport { unmountComponentAtNode } from 'react-dom';\nexport default unmountComponentAtNode;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport canUseDOM from '../../modules/canUseDom';\n\nfunction isScreenReaderEnabled() {\n return new Promise((resolve, reject) => {\n resolve(true);\n });\n}\n\nvar prefersReducedMotionMedia = canUseDOM && typeof window.matchMedia === 'function' ? window.matchMedia('(prefers-reduced-motion: reduce)') : null;\n\nfunction isReduceMotionEnabled() {\n return new Promise((resolve, reject) => {\n resolve(prefersReducedMotionMedia ? prefersReducedMotionMedia.matches : true);\n });\n}\n\nfunction addChangeListener(fn) {\n if (prefersReducedMotionMedia != null) {\n prefersReducedMotionMedia.addEventListener != null ? prefersReducedMotionMedia.addEventListener('change', fn) : prefersReducedMotionMedia.addListener(fn);\n }\n}\n\nfunction removeChangeListener(fn) {\n if (prefersReducedMotionMedia != null) {\n prefersReducedMotionMedia.removeEventListener != null ? prefersReducedMotionMedia.removeEventListener('change', fn) : prefersReducedMotionMedia.removeListener(fn);\n }\n}\n\nvar handlers = {};\nvar AccessibilityInfo = {\n /**\n * Query whether a screen reader is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n */\n isScreenReaderEnabled,\n\n /**\n * Query whether the user prefers reduced motion.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n */\n isReduceMotionEnabled,\n\n /**\n * Deprecated\n */\n fetch: isScreenReaderEnabled,\n\n /**\n * Add an event handler. Supported events: reduceMotionChanged\n */\n addEventListener: function addEventListener(eventName, handler) {\n if (eventName === 'reduceMotionChanged') {\n if (!prefersReducedMotionMedia) {\n return;\n }\n\n var listener = event => {\n handler(event.matches);\n };\n\n addChangeListener(listener);\n handlers[handler] = listener;\n }\n\n return {\n remove: () => AccessibilityInfo.removeEventListener(eventName, handler)\n };\n },\n\n /**\n * Set accessibility focus to a react component.\n */\n setAccessibilityFocus: function setAccessibilityFocus(reactTag) {},\n\n /**\n * Post a string to be announced by the screen reader.\n */\n announceForAccessibility: function announceForAccessibility(announcement) {},\n\n /**\n * Remove an event handler.\n */\n removeEventListener: function removeEventListener(eventName, handler) {\n if (eventName === 'reduceMotionChanged') {\n var listener = handlers[handler];\n\n if (!listener || !prefersReducedMotionMedia) {\n return;\n }\n\n removeChangeListener(listener);\n }\n\n return;\n }\n};\nexport default AccessibilityInfo;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport invariant from 'fbjs/lib/invariant';\n\nclass Share {\n static share(content, options) {\n if (options === void 0) {\n options = {};\n }\n\n invariant(typeof content === 'object' && content !== null, 'Content to share must be a valid object');\n invariant(typeof content.url === 'string' || typeof content.message === 'string', 'At least one of URL and message is required');\n invariant(typeof options === 'object' && options !== null, 'Options must be a valid object');\n invariant(!content.title || typeof content.title === 'string', 'Invalid title: title should be a string.');\n\n if (window.navigator.share !== undefined) {\n return window.navigator.share({\n title: content.title,\n text: content.message,\n url: content.url\n });\n } else {\n return Promise.reject(new Error('Share is not supported in this browser'));\n }\n }\n /**\n * The content was successfully shared.\n */\n\n\n static get sharedAction() {\n return 'sharedAction';\n }\n /**\n * The dialog has been dismissed.\n * @platform ios\n */\n\n\n static get dismissedAction() {\n return 'dismissedAction';\n }\n\n}\n\nexport default Share;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animating\", \"color\", \"hidesWhenStopped\", \"size\", \"style\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\nvar createSvgCircle = style => /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"16\",\n cy: \"16\",\n fill: \"none\",\n r: \"14\",\n strokeWidth: \"4\",\n style: style\n});\n\nvar ActivityIndicator = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var _props$animating = props.animating,\n animating = _props$animating === void 0 ? true : _props$animating,\n _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$hidesWhenStopp = props.hidesWhenStopped,\n hidesWhenStopped = _props$hidesWhenStopp === void 0 ? true : _props$hidesWhenStopp,\n _props$size = props.size,\n size = _props$size === void 0 ? 'small' : _props$size,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n var svg = /*#__PURE__*/React.createElement(\"svg\", {\n height: \"100%\",\n viewBox: \"0 0 32 32\",\n width: \"100%\"\n }, createSvgCircle({\n stroke: color,\n opacity: 0.2\n }), createSvgCircle({\n stroke: color,\n strokeDasharray: 80,\n strokeDashoffset: 60\n }));\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityRole: \"progressbar\",\n accessibilityValueMax: 1,\n accessibilityValueMin: 0,\n ref: forwardedRef,\n style: [styles.container, style]\n }), /*#__PURE__*/React.createElement(View, {\n children: svg,\n style: [typeof size === 'number' ? {\n height: size,\n width: size\n } : indicatorSizes[size], styles.animation, !animating && styles.animationPause, !animating && hidesWhenStopped && styles.hidesWhenStopped]\n }));\n});\nActivityIndicator.displayName = 'ActivityIndicator';\nvar styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n hidesWhenStopped: {\n visibility: 'hidden'\n },\n animation: {\n animationDuration: '0.75s',\n animationKeyframes: [{\n '0%': {\n transform: [{\n rotate: '0deg'\n }]\n },\n '100%': {\n transform: [{\n rotate: '360deg'\n }]\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n },\n animationPause: {\n animationPlayState: 'paused'\n }\n});\nvar indicatorSizes = StyleSheet.create({\n small: {\n width: 20,\n height: 20\n },\n large: {\n width: 36,\n height: 36\n }\n});\nexport default ActivityIndicator;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"activeOpacity\", \"children\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onHideUnderlay\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"onShowUnderlay\", \"rejectResponderTermination\", \"style\", \"testOnly_pressed\", \"underlayColor\"];\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\nfunction createExtraStyles(activeOpacity, underlayColor) {\n return {\n child: {\n opacity: activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.85\n },\n underlay: {\n backgroundColor: underlayColor === undefined ? 'black' : underlayColor\n }\n };\n}\n\nfunction hasPressHandler(props) {\n return props.onPress != null || props.onPressIn != null || props.onPressOut != null || props.onLongPress != null;\n}\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, which allows\n * the underlay color to show through, darkening or tinting the view.\n *\n * The underlay comes from wrapping the child in a new View, which can affect\n * layout, and sometimes cause unwanted visual artifacts if not used correctly,\n * for example if the backgroundColor of the wrapped view isn't explicitly set\n * to an opaque color.\n *\n * TouchableHighlight must have one child (not zero or more than one).\n * If you wish to have several child components, wrap them in a View.\n */\n\n\nfunction TouchableHighlight(props, forwardedRef) {\n var activeOpacity = props.activeOpacity,\n children = props.children,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onHideUnderlay = props.onHideUnderlay,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n onShowUnderlay = props.onShowUnderlay,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n testOnly_pressed = props.testOnly_pressed,\n underlayColor = props.underlayColor,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n\n var _useState = useState(testOnly_pressed === true ? createExtraStyles(activeOpacity, underlayColor) : null),\n extraStyles = _useState[0],\n setExtraStyles = _useState[1];\n\n var showUnderlay = useCallback(() => {\n if (!hasPressHandler(props)) {\n return;\n }\n\n setExtraStyles(createExtraStyles(activeOpacity, underlayColor));\n\n if (onShowUnderlay != null) {\n onShowUnderlay();\n }\n }, [activeOpacity, onShowUnderlay, props, underlayColor]);\n var hideUnderlay = useCallback(() => {\n if (testOnly_pressed === true) {\n return;\n }\n\n if (hasPressHandler(props)) {\n setExtraStyles(null);\n\n if (onHideUnderlay != null) {\n onHideUnderlay();\n }\n }\n }, [onHideUnderlay, props, testOnly_pressed]);\n var pressConfig = useMemo(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n\n onPressStart(event) {\n showUnderlay();\n\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n\n onPressEnd(event) {\n hideUnderlay();\n\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n\n }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, showUnderlay, hideUnderlay]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var child = React.Children.only(children);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n pointerEvents: disabled ? 'none' : undefined,\n ref: setRef,\n style: [styles.root, style, !disabled && styles.actionable, extraStyles && extraStyles.underlay]\n }), /*#__PURE__*/React.cloneElement(child, {\n style: StyleSheet.compose(child.props.style, extraStyles && extraStyles.child)\n }));\n}\n\nvar styles = StyleSheet.create({\n root: {\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableHighlight = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableHighlight));\nMemoedTouchableHighlight.displayName = 'TouchableHighlight';\nexport default MemoedTouchableHighlight;","/**\n * Copyright (c) 2016-present, Nicolas Gallagher.\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 */\nvar LogBox = {\n ignoreLogs() {},\n\n ignoreAllLogs() {},\n\n uninstall() {},\n\n install() {}\n\n};\nexport default LogBox;","import * as React from 'react';\nimport { Text, StyleSheet } from 'react-native';\nimport StyledText from './StyledText';\n\nexport type Props = React.ComponentProps & {\n children: React.ReactNode;\n};\n\n// @component-group Typography\n\n/**\n * Typography component for showing a title.\n *\n *
\n * \n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Title } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * Title\n * );\n *\n * export default MyComponent;\n * ```\n */\nconst Title = (props: Props) => (\n \n);\n\nexport default Title;\n\nconst styles = StyleSheet.create({\n text: {\n fontSize: 20,\n lineHeight: 30,\n marginVertical: 2,\n letterSpacing: 0.15,\n },\n});\n","import color from 'color';\nimport { Animated } from 'react-native';\nimport DarkTheme from './DarkTheme';\n\nconst isAnimatedValue = (\n it: number | Animated.AnimatedInterpolation\n): it is Animated.Value => it instanceof Animated.Value;\n\nexport default function overlay(\n elevation: T,\n surfaceColor: string = DarkTheme.colors.surface\n): T extends number ? string : Animated.AnimatedInterpolation {\n if (isAnimatedValue(elevation)) {\n const inputRange = [0, 1, 2, 3, 8, 24];\n\n // @ts-expect-error: TS doesn't seem to refine the type correctly\n return elevation.interpolate({\n inputRange,\n outputRange: inputRange.map((elevation) => {\n return calculateColor(surfaceColor, elevation);\n }),\n });\n }\n\n // @ts-expect-error: TS doesn't seem to refine the type correctly\n return calculateColor(surfaceColor, elevation);\n}\n\nfunction calculateColor(surfaceColor: string, elevation: number = 1) {\n let overlayTransparency: number;\n if (elevation >= 1 && elevation <= 24) {\n overlayTransparency = elevationOverlayTransparency[elevation];\n } else if (elevation > 24) {\n overlayTransparency = elevationOverlayTransparency[24];\n } else {\n overlayTransparency = elevationOverlayTransparency[1];\n }\n return color(surfaceColor)\n .mix(color('white'), overlayTransparency * 0.01)\n .hex();\n}\n\nconst elevationOverlayTransparency: Record = {\n 1: 5,\n 2: 7,\n 3: 8,\n 4: 9,\n 5: 10,\n 6: 11,\n 7: 11.5,\n 8: 12,\n 9: 12.5,\n 10: 13,\n 11: 13.5,\n 12: 14,\n 13: 14.25,\n 14: 14.5,\n 15: 14.75,\n 16: 15,\n 17: 15.12,\n 18: 15.24,\n 19: 15.36,\n 20: 15.48,\n 21: 15.6,\n 22: 15.72,\n 23: 15.84,\n 24: 16,\n};\n","import * as Colors from './colors';\nimport { Animated } from 'react-native';\n\nconst SHADOW_COLOR = Colors.black;\nconst SHADOW_OPACITY = 0.24;\n\nexport default function shadow(elevation: number | Animated.Value = 0) {\n if (elevation instanceof Animated.Value) {\n const inputRange = [0, 1, 2, 3, 8, 24];\n\n return {\n shadowColor: SHADOW_COLOR,\n shadowOffset: {\n width: new Animated.Value(0),\n height: elevation.interpolate({\n inputRange,\n outputRange: [0, 0.5, 0.75, 2, 7, 23],\n }),\n },\n shadowOpacity: elevation.interpolate({\n inputRange: [0, 1],\n outputRange: [0, SHADOW_OPACITY],\n extrapolate: 'clamp',\n }),\n shadowRadius: elevation.interpolate({\n inputRange,\n outputRange: [0, 0.75, 1.5, 3, 8, 24],\n }),\n };\n } else {\n if (elevation === 0) {\n return {};\n }\n\n let height, radius;\n switch (elevation) {\n case 1:\n height = 0.5;\n radius = 0.75;\n break;\n case 2:\n height = 0.75;\n radius = 1.5;\n break;\n default:\n height = elevation - 1;\n radius = elevation;\n }\n\n return {\n shadowColor: SHADOW_COLOR,\n shadowOffset: {\n width: 0,\n height,\n },\n shadowOpacity: SHADOW_OPACITY,\n shadowRadius: radius,\n };\n }\n}\n","import * as React from 'react';\nimport {\n Animated,\n Easing,\n Platform,\n StyleProp,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\nimport { withTheme } from '../core/theming';\n\nexport type Props = React.ComponentPropsWithRef & {\n /**\n * Whether to show the indicator or hide it.\n */\n animating?: boolean;\n /**\n * The color of the spinner.\n */\n color?: string;\n /**\n * Size of the indicator.\n */\n size?: 'small' | 'large' | number;\n /**\n * Whether the indicator should hide when not animating.\n */\n hidesWhenStopped?: boolean;\n style?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\nconst DURATION = 2400;\n\n/**\n * Activity indicator is used to present progress of some activity in the app.\n * It can be used as a drop-in for the ActivityIndicator shipped with React Native.\n *\n *
\n * \n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { ActivityIndicator, Colors } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst ActivityIndicator = ({\n animating = true,\n color: indicatorColor,\n hidesWhenStopped = true,\n size: indicatorSize = 'small',\n style,\n theme,\n ...rest\n}: Props) => {\n const { current: timer } = React.useRef(\n new Animated.Value(0)\n );\n const { current: fade } = React.useRef(\n new Animated.Value(!animating && hidesWhenStopped ? 0 : 1)\n );\n\n const rotation = React.useRef(\n undefined\n );\n\n const {\n animation: { scale },\n } = theme;\n\n const startRotation = React.useCallback(() => {\n // Show indicator\n Animated.timing(fade, {\n duration: 200 * scale,\n toValue: 1,\n isInteraction: false,\n useNativeDriver: true,\n }).start();\n\n // Circular animation in loop\n if (rotation.current) {\n timer.setValue(0);\n // $FlowFixMe\n Animated.loop(rotation.current).start();\n }\n }, [scale, fade, timer]);\n\n const stopRotation = () => {\n if (rotation.current) {\n rotation.current.stop();\n }\n };\n\n React.useEffect(() => {\n if (rotation.current === undefined) {\n // Circular animation in loop\n rotation.current = Animated.timing(timer, {\n duration: DURATION,\n easing: Easing.linear,\n // Animated.loop does not work if useNativeDriver is true on web\n useNativeDriver: Platform.OS !== 'web',\n toValue: 1,\n isInteraction: false,\n });\n }\n\n if (animating) {\n startRotation();\n } else if (hidesWhenStopped) {\n // Hide indicator first and then stop rotation\n Animated.timing(fade, {\n duration: 200 * scale,\n toValue: 0,\n useNativeDriver: true,\n isInteraction: false,\n }).start(stopRotation);\n } else {\n stopRotation();\n }\n }, [animating, fade, hidesWhenStopped, startRotation, scale, timer]);\n\n const color = indicatorColor || theme.colors.primary;\n const size =\n typeof indicatorSize === 'string'\n ? indicatorSize === 'small'\n ? 24\n : 48\n : indicatorSize\n ? indicatorSize\n : 24;\n\n const frames = (60 * DURATION) / 1000;\n const easing = Easing.bezier(0.4, 0.0, 0.7, 1.0);\n const containerStyle = {\n width: size,\n height: size / 2,\n overflow: 'hidden' as const,\n };\n\n return (\n \n \n {[0, 1].map((index) => {\n // Thanks to https://github.com/n4kz/react-native-indicators for the great work\n const inputRange = Array.from(\n new Array(frames),\n (_, frameIndex) => frameIndex / (frames - 1)\n );\n const outputRange = Array.from(new Array(frames), (_, frameIndex) => {\n let progress = (2 * frameIndex) / (frames - 1);\n const rotation = index ? +(360 - 15) : -(180 - 15);\n\n if (progress > 1.0) {\n progress = 2.0 - progress;\n }\n\n const direction = index ? -1 : +1;\n\n return `${direction * (180 - 30) * easing(progress) + rotation}deg`;\n });\n\n const layerStyle = {\n width: size,\n height: size,\n transform: [\n {\n rotate: timer.interpolate({\n inputRange: [0, 1],\n outputRange: [`${0 + 30 + 15}deg`, `${2 * 360 + 30 + 15}deg`],\n }),\n },\n ],\n };\n\n const viewportStyle = {\n width: size,\n height: size,\n transform: [\n {\n translateY: index ? -size / 2 : 0,\n },\n {\n rotate: timer.interpolate({ inputRange, outputRange }),\n },\n ],\n };\n\n const offsetStyle = index ? { top: size / 2 } : null;\n\n const lineStyle = {\n width: size,\n height: size,\n borderColor: color,\n borderWidth: size / 10,\n borderRadius: size / 2,\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n })}\n \n \n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n justifyContent: 'center',\n alignItems: 'center',\n },\n\n layer: {\n ...StyleSheet.absoluteFillObject,\n\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport default withTheme(ActivityIndicator);\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, Easing, Platform, Pressable } from 'react-native';\nconst AnimatedPressable = Animated.createAnimatedComponent(Pressable);\nconst ANDROID_VERSION_LOLLIPOP = 21;\nconst ANDROID_SUPPORTS_RIPPLE = Platform.OS === 'android' && Platform.Version >= ANDROID_VERSION_LOLLIPOP;\n\n/**\n * PlatformPressable provides an abstraction on top of Pressable to handle platform differences.\n */\nexport default function PlatformPressable(_ref) {\n let {\n onPressIn,\n onPressOut,\n android_ripple,\n pressColor,\n pressOpacity = 0.3,\n style,\n ...rest\n } = _ref;\n const {\n dark\n } = useTheme();\n const [opacity] = React.useState(() => new Animated.Value(1));\n const animateTo = (toValue, duration) => {\n if (ANDROID_SUPPORTS_RIPPLE) {\n return;\n }\n Animated.timing(opacity, {\n toValue,\n duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: true\n }).start();\n };\n const handlePressIn = e => {\n animateTo(pressOpacity, 0);\n onPressIn === null || onPressIn === void 0 ? void 0 : onPressIn(e);\n };\n const handlePressOut = e => {\n animateTo(1, 200);\n onPressOut === null || onPressOut === void 0 ? void 0 : onPressOut(e);\n };\n return /*#__PURE__*/React.createElement(AnimatedPressable, _extends({\n onPressIn: handlePressIn,\n onPressOut: handlePressOut,\n android_ripple: ANDROID_SUPPORTS_RIPPLE ? {\n color: pressColor !== undefined ? pressColor : dark ? 'rgba(255, 255, 255, .32)' : 'rgba(0, 0, 0, .32)',\n ...android_ripple\n } : undefined,\n style: [{\n opacity: !ANDROID_SUPPORTS_RIPPLE ? opacity : 1\n }, style]\n }, rest));\n}\n//# sourceMappingURL=PlatformPressable.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, Platform, StyleSheet } from 'react-native';\nexport default function HeaderTitle(_ref) {\n let {\n tintColor,\n style,\n ...rest\n } = _ref;\n const {\n colors\n } = useTheme();\n return /*#__PURE__*/React.createElement(Animated.Text, _extends({\n accessibilityRole: \"header\",\n \"aria-level\": \"1\",\n numberOfLines: 1\n }, rest, {\n style: [styles.title, {\n color: tintColor === undefined ? colors.text : tintColor\n }, style]\n }));\n}\nconst styles = StyleSheet.create({\n title: Platform.select({\n ios: {\n fontSize: 17,\n fontWeight: '600'\n },\n android: {\n fontSize: 20,\n fontFamily: 'sans-serif-medium',\n fontWeight: 'normal'\n },\n default: {\n fontSize: 18,\n fontWeight: '500'\n }\n })\n});\n//# sourceMappingURL=HeaderTitle.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, Platform, StyleSheet } from 'react-native';\nexport default function HeaderBackground(_ref) {\n let {\n style,\n ...rest\n } = _ref;\n const {\n colors\n } = useTheme();\n return /*#__PURE__*/React.createElement(Animated.View, _extends({\n style: [styles.container, {\n backgroundColor: colors.card,\n borderBottomColor: colors.border,\n shadowColor: colors.border\n }, style]\n }, rest));\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n ...Platform.select({\n android: {\n elevation: 4\n },\n ios: {\n shadowOpacity: 0.85,\n shadowRadius: 0,\n shadowOffset: {\n width: 0,\n height: StyleSheet.hairlineWidth\n }\n },\n default: {\n borderBottomWidth: StyleSheet.hairlineWidth\n }\n })\n }\n});\n//# sourceMappingURL=HeaderBackground.js.map","import * as React from 'react';\nexport default /*#__PURE__*/React.createContext(undefined);\n//# sourceMappingURL=CardAnimationContext.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { View } from 'react-native';\nexport default function Background(_ref) {\n let {\n style,\n ...rest\n } = _ref;\n const {\n colors\n } = useTheme();\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n style: [{\n flex: 1,\n backgroundColor: colors.background\n }, style]\n }));\n}\n//# sourceMappingURL=Background.js.map","import * as React from 'react';\nimport { Text, TextStyle, StyleSheet, StyleProp } from 'react-native';\nimport StyledText from './StyledText';\n\nexport type Props = React.ComponentProps & {\n style?: StyleProp;\n children: React.ReactNode;\n};\n\n// @component-group Typography\n\n/**\n * Typography component for showing a caption.\n *\n *
\n * \n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Caption } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * Caption\n * );\n *\n * export default MyComponent;\n * ```\n */\nconst Caption = (props: Props) => (\n \n);\n\nexport default Caption;\n\nconst styles = StyleSheet.create({\n text: {\n fontSize: 12,\n lineHeight: 20,\n marginVertical: 2,\n letterSpacing: 0.4,\n },\n});\n","import * as React from 'react';\nimport { View } from 'react-native';\nconst Dummy = _ref => {\n let {\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, children);\n};\nexport const PanGestureHandler = Dummy;\nexport const GestureHandlerRootView = View;\nexport const GestureState = {\n UNDETERMINED: 0,\n FAILED: 1,\n BEGAN: 2,\n CANCELLED: 3,\n ACTIVE: 4,\n END: 5\n};\n//# sourceMappingURL=GestureHandler.js.map","import { getHeaderTitle, HeaderBackContext } from '@react-navigation/elements';\nimport { NavigationContext, NavigationRouteContext } from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\nimport { forNoAnimation, forSlideLeft, forSlideRight, forSlideUp } from '../../TransitionConfigs/HeaderStyleInterpolators';\nimport Header from './Header';\nexport default function HeaderContainer(_ref) {\n let {\n mode,\n scenes,\n layout,\n getPreviousScene,\n getFocusedRoute,\n onContentHeightChange,\n style\n } = _ref;\n const focusedRoute = getFocusedRoute();\n const parentHeaderBack = React.useContext(HeaderBackContext);\n return /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"box-none\",\n style: style\n }, scenes.slice(-3).map((scene, i, self) => {\n var _self, _self2;\n if (mode === 'screen' && i !== self.length - 1 || !scene) {\n return null;\n }\n const {\n header,\n headerMode,\n headerShown = true,\n headerTransparent,\n headerStyleInterpolator\n } = scene.descriptor.options;\n if (headerMode !== mode || !headerShown) {\n return null;\n }\n const isFocused = focusedRoute.key === scene.descriptor.route.key;\n const previousScene = getPreviousScene({\n route: scene.descriptor.route\n });\n let headerBack = parentHeaderBack;\n if (previousScene) {\n const {\n options,\n route\n } = previousScene.descriptor;\n headerBack = previousScene ? {\n title: getHeaderTitle(options, route.name)\n } : parentHeaderBack;\n }\n\n // If the screen is next to a headerless screen, we need to make the header appear static\n // This makes the header look like it's moving with the screen\n const previousDescriptor = (_self = self[i - 1]) === null || _self === void 0 ? void 0 : _self.descriptor;\n const nextDescriptor = (_self2 = self[i + 1]) === null || _self2 === void 0 ? void 0 : _self2.descriptor;\n const {\n headerShown: previousHeaderShown = true,\n headerMode: previousHeaderMode\n } = (previousDescriptor === null || previousDescriptor === void 0 ? void 0 : previousDescriptor.options) || {};\n\n // If any of the next screens don't have a header or header is part of the screen\n // Then we need to move this header offscreen so that it doesn't cover it\n const nextHeaderlessScene = self.slice(i + 1).find(scene => {\n const {\n headerShown: currentHeaderShown = true,\n headerMode: currentHeaderMode\n } = (scene === null || scene === void 0 ? void 0 : scene.descriptor.options) || {};\n return currentHeaderShown === false || currentHeaderMode === 'screen';\n });\n const {\n gestureDirection: nextHeaderlessGestureDirection\n } = (nextHeaderlessScene === null || nextHeaderlessScene === void 0 ? void 0 : nextHeaderlessScene.descriptor.options) || {};\n const isHeaderStatic = (previousHeaderShown === false || previousHeaderMode === 'screen') &&\n // We still need to animate when coming back from next scene\n // A hacky way to check this is if the next scene exists\n !nextDescriptor || nextHeaderlessScene;\n const props = {\n layout,\n back: headerBack,\n progress: scene.progress,\n options: scene.descriptor.options,\n route: scene.descriptor.route,\n navigation: scene.descriptor.navigation,\n styleInterpolator: mode === 'float' ? isHeaderStatic ? nextHeaderlessGestureDirection === 'vertical' || nextHeaderlessGestureDirection === 'vertical-inverted' ? forSlideUp : nextHeaderlessGestureDirection === 'horizontal-inverted' ? forSlideRight : forSlideLeft : headerStyleInterpolator : forNoAnimation\n };\n return /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n key: scene.descriptor.route.key,\n value: scene.descriptor.navigation\n }, /*#__PURE__*/React.createElement(NavigationRouteContext.Provider, {\n value: scene.descriptor.route\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: onContentHeightChange ? e => {\n const {\n height\n } = e.nativeEvent.layout;\n onContentHeightChange({\n route: scene.descriptor.route,\n height\n });\n } : undefined,\n pointerEvents: isFocused ? 'box-none' : 'none',\n accessibilityElementsHidden: !isFocused,\n importantForAccessibility: isFocused ? 'auto' : 'no-hide-descendants',\n style:\n // Avoid positioning the focused header absolutely\n // Otherwise accessibility tools don't seem to be able to find it\n mode === 'float' && !isFocused || headerTransparent ? styles.header : null\n }, header !== undefined ? header(props) : /*#__PURE__*/React.createElement(Header, props))));\n }));\n}\nconst styles = StyleSheet.create({\n header: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0\n }\n});\n//# sourceMappingURL=HeaderContainer.js.map","export default function findLastIndex(array, callback) {\n for (var i = array.length - 1; i >= 0; i--) {\n if (callback(array[i])) {\n return i;\n }\n }\n return -1;\n}\n//# sourceMappingURL=findLastIndex.js.map","import { I18nManager } from 'react-native';\nexport default function getInvertedMultiplier(gestureDirection) {\n switch (gestureDirection) {\n case 'vertical':\n return 1;\n case 'vertical-inverted':\n return -1;\n case 'horizontal':\n return I18nManager.getConstants().isRTL ? -1 : 1;\n case 'horizontal-inverted':\n return I18nManager.getConstants().isRTL ? 1 : -1;\n }\n}\n//# sourceMappingURL=getInvertedMultiplier.js.map","import getInvertedMultiplier from './getInvertedMultiplier';\nexport default function getDistanceForDirection(layout, gestureDirection) {\n const multiplier = getInvertedMultiplier(gestureDirection);\n switch (gestureDirection) {\n case 'vertical':\n case 'vertical-inverted':\n return layout.height * multiplier;\n case 'horizontal':\n case 'horizontal-inverted':\n return layout.width * multiplier;\n }\n}\n//# sourceMappingURL=getDistanceForDirection.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { View } from 'react-native';\nlet Screens;\ntry {\n Screens = require('react-native-screens');\n} catch (e) {\n // Ignore\n}\nexport const MaybeScreenContainer = _ref => {\n let {\n enabled,\n ...rest\n } = _ref;\n if (Screens != null) {\n return /*#__PURE__*/React.createElement(Screens.ScreenContainer, _extends({\n enabled: enabled\n }, rest));\n }\n return /*#__PURE__*/React.createElement(View, rest);\n};\nexport const MaybeScreen = _ref2 => {\n let {\n enabled,\n active,\n ...rest\n } = _ref2;\n if (Screens != null) {\n return /*#__PURE__*/React.createElement(Screens.Screen, _extends({\n enabled: enabled,\n activityState: active\n }, rest));\n }\n return /*#__PURE__*/React.createElement(View, rest);\n};\n//# sourceMappingURL=Screens.js.map","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { StatusBar, StyleSheet } from 'react-native';\nexport default function ModalStatusBarManager(_ref) {\n var _flattenedStyle$trans, _flattenedStyle$trans2;\n let {\n dark,\n layout,\n insets,\n style\n } = _ref;\n const {\n dark: darkTheme\n } = useTheme();\n const [overlapping, setOverlapping] = React.useState(true);\n const scale = 1 - 20 / layout.width;\n const offset = (insets.top - 34) * scale;\n const flattenedStyle = StyleSheet.flatten(style);\n const translateY = flattenedStyle === null || flattenedStyle === void 0 ? void 0 : (_flattenedStyle$trans = flattenedStyle.transform) === null || _flattenedStyle$trans === void 0 ? void 0 : (_flattenedStyle$trans2 = _flattenedStyle$trans.find(s => s.translateY !== undefined)) === null || _flattenedStyle$trans2 === void 0 ? void 0 : _flattenedStyle$trans2.translateY;\n React.useEffect(() => {\n const listener = _ref2 => {\n let {\n value\n } = _ref2;\n setOverlapping(value < offset);\n };\n const sub = translateY === null || translateY === void 0 ? void 0 : translateY.addListener(listener);\n return () => translateY === null || translateY === void 0 ? void 0 : translateY.removeListener(sub);\n }, [offset, translateY]);\n const darkContent = dark ?? !darkTheme;\n return /*#__PURE__*/React.createElement(StatusBar, {\n animated: true,\n barStyle: overlapping && darkContent ? 'dark-content' : 'light-content'\n });\n}\n//# sourceMappingURL=ModalStatusBarManager.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\n// This component will render a page which overflows the screen\n// if the container fills the body by comparing the size\n// This lets the document.body handle scrolling of the content\n// It's necessary for mobile browsers to be able to hide address bar on scroll\nexport default /*#__PURE__*/React.forwardRef(function CardSheet(_ref, ref) {\n let {\n enabled,\n layout,\n style,\n ...rest\n } = _ref;\n const [fill, setFill] = React.useState(false);\n // To avoid triggering a rerender in Card during animation we had to move\n // the state to CardSheet. The `setPointerEvents` is then hoisted back to the Card.\n const [pointerEvents, setPointerEvents] = React.useState('auto');\n React.useImperativeHandle(ref, () => {\n return {\n setPointerEvents\n };\n });\n React.useEffect(() => {\n if (typeof document === 'undefined' || !document.body) {\n // Only run when DOM is available\n return;\n }\n const width = document.body.clientWidth;\n const height = document.body.clientHeight;\n setFill(width === layout.width && height === layout.height);\n }, [layout.height, layout.width]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n pointerEvents: pointerEvents,\n style: [enabled && fill ? styles.page : styles.card, style]\n }));\n});\nconst styles = StyleSheet.create({\n page: {\n minHeight: '100%'\n },\n card: {\n flex: 1,\n overflow: 'hidden'\n }\n});\n//# sourceMappingURL=CardSheet.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport Color from 'color';\nimport * as React from 'react';\nimport { Animated, InteractionManager, Platform, StyleSheet, View } from 'react-native';\nimport { forModalPresentationIOS } from '../../TransitionConfigs/CardStyleInterpolators';\nimport CardAnimationContext from '../../utils/CardAnimationContext';\nimport getDistanceForDirection from '../../utils/getDistanceForDirection';\nimport getInvertedMultiplier from '../../utils/getInvertedMultiplier';\nimport memoize from '../../utils/memoize';\nimport { GestureState, PanGestureHandler } from '../GestureHandler';\nimport ModalStatusBarManager from '../ModalStatusBarManager';\nimport CardSheet from './CardSheet';\nconst GESTURE_VELOCITY_IMPACT = 0.3;\nconst TRUE = 1;\nconst FALSE = 0;\n\n/**\n * The distance of touch start from the edge of the screen where the gesture will be recognized\n */\nconst GESTURE_RESPONSE_DISTANCE_HORIZONTAL = 50;\nconst GESTURE_RESPONSE_DISTANCE_VERTICAL = 135;\nconst useNativeDriver = Platform.OS !== 'web';\nconst hasOpacityStyle = style => {\n if (style) {\n const flattenedStyle = StyleSheet.flatten(style);\n return flattenedStyle.opacity != null;\n }\n return false;\n};\nexport default class Card extends React.Component {\n static defaultProps = {\n shadowEnabled: false,\n gestureEnabled: true,\n gestureVelocityImpact: GESTURE_VELOCITY_IMPACT,\n overlay: _ref => {\n let {\n style\n } = _ref;\n return style ? /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"none\",\n style: [styles.overlay, style]\n }) : null;\n }\n };\n componentDidMount() {\n this.animate({\n closing: this.props.closing\n });\n this.isCurrentlyMounted = true;\n }\n componentDidUpdate(prevProps) {\n const {\n layout,\n gestureDirection,\n closing\n } = this.props;\n const {\n width,\n height\n } = layout;\n if (width !== prevProps.layout.width) {\n this.layout.width.setValue(width);\n }\n if (height !== prevProps.layout.height) {\n this.layout.height.setValue(height);\n }\n if (gestureDirection !== prevProps.gestureDirection) {\n this.inverted.setValue(getInvertedMultiplier(gestureDirection));\n }\n const toValue = this.getAnimateToValue(this.props);\n if (this.getAnimateToValue(prevProps) !== toValue || this.lastToValue !== toValue) {\n // We need to trigger the animation when route was closed\n // Thr route might have been closed by a `POP` action or by a gesture\n // When route was closed due to a gesture, the animation would've happened already\n // It's still important to trigger the animation so that `onClose` is called\n // If `onClose` is not called, cleanup step won't be performed for gestures\n this.animate({\n closing\n });\n }\n }\n componentWillUnmount() {\n this.props.gesture.stopAnimation();\n this.isCurrentlyMounted = false;\n this.handleEndInteraction();\n }\n isCurrentlyMounted = false;\n isClosing = new Animated.Value(FALSE);\n inverted = new Animated.Value(getInvertedMultiplier(this.props.gestureDirection));\n layout = {\n width: new Animated.Value(this.props.layout.width),\n height: new Animated.Value(this.props.layout.height)\n };\n isSwiping = new Animated.Value(FALSE);\n animate = _ref2 => {\n let {\n closing,\n velocity\n } = _ref2;\n const {\n gesture,\n transitionSpec,\n onOpen,\n onClose,\n onTransition\n } = this.props;\n const toValue = this.getAnimateToValue({\n ...this.props,\n closing\n });\n this.lastToValue = toValue;\n this.isClosing.setValue(closing ? TRUE : FALSE);\n const spec = closing ? transitionSpec.close : transitionSpec.open;\n const animation = spec.animation === 'spring' ? Animated.spring : Animated.timing;\n this.setPointerEventsEnabled(!closing);\n this.handleStartInteraction();\n clearTimeout(this.pendingGestureCallback);\n onTransition === null || onTransition === void 0 ? void 0 : onTransition({\n closing,\n gesture: velocity !== undefined\n });\n animation(gesture, {\n ...spec.config,\n velocity,\n toValue,\n useNativeDriver,\n isInteraction: false\n }).start(_ref3 => {\n let {\n finished\n } = _ref3;\n this.handleEndInteraction();\n clearTimeout(this.pendingGestureCallback);\n if (finished) {\n if (closing) {\n onClose();\n } else {\n onOpen();\n }\n if (this.isCurrentlyMounted) {\n // Make sure to re-open screen if it wasn't removed\n this.forceUpdate();\n }\n }\n });\n };\n getAnimateToValue = _ref4 => {\n let {\n closing,\n layout,\n gestureDirection\n } = _ref4;\n if (!closing) {\n return 0;\n }\n return getDistanceForDirection(layout, gestureDirection);\n };\n setPointerEventsEnabled = enabled => {\n var _this$ref$current;\n const pointerEvents = enabled ? 'box-none' : 'none';\n (_this$ref$current = this.ref.current) === null || _this$ref$current === void 0 ? void 0 : _this$ref$current.setPointerEvents(pointerEvents);\n };\n handleStartInteraction = () => {\n if (this.interactionHandle === undefined) {\n this.interactionHandle = InteractionManager.createInteractionHandle();\n }\n };\n handleEndInteraction = () => {\n if (this.interactionHandle !== undefined) {\n InteractionManager.clearInteractionHandle(this.interactionHandle);\n this.interactionHandle = undefined;\n }\n };\n handleGestureStateChange = _ref5 => {\n let {\n nativeEvent\n } = _ref5;\n const {\n layout,\n onClose,\n onGestureBegin,\n onGestureCanceled,\n onGestureEnd,\n gestureDirection,\n gestureVelocityImpact\n } = this.props;\n switch (nativeEvent.state) {\n case GestureState.ACTIVE:\n this.isSwiping.setValue(TRUE);\n this.handleStartInteraction();\n onGestureBegin === null || onGestureBegin === void 0 ? void 0 : onGestureBegin();\n break;\n case GestureState.CANCELLED:\n {\n this.isSwiping.setValue(FALSE);\n this.handleEndInteraction();\n const velocity = gestureDirection === 'vertical' || gestureDirection === 'vertical-inverted' ? nativeEvent.velocityY : nativeEvent.velocityX;\n this.animate({\n closing: this.props.closing,\n velocity\n });\n onGestureCanceled === null || onGestureCanceled === void 0 ? void 0 : onGestureCanceled();\n break;\n }\n case GestureState.END:\n {\n this.isSwiping.setValue(FALSE);\n let distance;\n let translation;\n let velocity;\n if (gestureDirection === 'vertical' || gestureDirection === 'vertical-inverted') {\n distance = layout.height;\n translation = nativeEvent.translationY;\n velocity = nativeEvent.velocityY;\n } else {\n distance = layout.width;\n translation = nativeEvent.translationX;\n velocity = nativeEvent.velocityX;\n }\n const closing = (translation + velocity * gestureVelocityImpact) * getInvertedMultiplier(gestureDirection) > distance / 2 ? velocity !== 0 || translation !== 0 : this.props.closing;\n this.animate({\n closing,\n velocity\n });\n if (closing) {\n // We call onClose with a delay to make sure that the animation has already started\n // This will make sure that the state update caused by this doesn't affect start of animation\n this.pendingGestureCallback = setTimeout(() => {\n onClose();\n\n // Trigger an update after we dispatch the action to remove the screen\n // This will make sure that we check if the screen didn't get removed so we can cancel the animation\n this.forceUpdate();\n }, 32);\n }\n onGestureEnd === null || onGestureEnd === void 0 ? void 0 : onGestureEnd();\n break;\n }\n }\n };\n\n // Memoize this to avoid extra work on re-render\n getInterpolatedStyle = memoize((styleInterpolator, animation) => styleInterpolator(animation));\n\n // Keep track of the animation context when deps changes.\n getCardAnimation = memoize((interpolationIndex, current, next, layout, insetTop, insetRight, insetBottom, insetLeft) => ({\n index: interpolationIndex,\n current: {\n progress: current\n },\n next: next && {\n progress: next\n },\n closing: this.isClosing,\n swiping: this.isSwiping,\n inverted: this.inverted,\n layouts: {\n screen: layout\n },\n insets: {\n top: insetTop,\n right: insetRight,\n bottom: insetBottom,\n left: insetLeft\n }\n }));\n gestureActivationCriteria() {\n const {\n layout,\n gestureDirection,\n gestureResponseDistance\n } = this.props;\n const enableTrackpadTwoFingerGesture = true;\n const distance = gestureResponseDistance !== undefined ? gestureResponseDistance : gestureDirection === 'vertical' || gestureDirection === 'vertical-inverted' ? GESTURE_RESPONSE_DISTANCE_VERTICAL : GESTURE_RESPONSE_DISTANCE_HORIZONTAL;\n if (gestureDirection === 'vertical') {\n return {\n maxDeltaX: 15,\n minOffsetY: 5,\n hitSlop: {\n bottom: -layout.height + distance\n },\n enableTrackpadTwoFingerGesture\n };\n } else if (gestureDirection === 'vertical-inverted') {\n return {\n maxDeltaX: 15,\n minOffsetY: -5,\n hitSlop: {\n top: -layout.height + distance\n },\n enableTrackpadTwoFingerGesture\n };\n } else {\n const hitSlop = -layout.width + distance;\n const invertedMultiplier = getInvertedMultiplier(gestureDirection);\n if (invertedMultiplier === 1) {\n return {\n minOffsetX: 5,\n maxDeltaY: 20,\n hitSlop: {\n right: hitSlop\n },\n enableTrackpadTwoFingerGesture\n };\n } else {\n return {\n minOffsetX: -5,\n maxDeltaY: 20,\n hitSlop: {\n left: hitSlop\n },\n enableTrackpadTwoFingerGesture\n };\n }\n }\n }\n ref = /*#__PURE__*/React.createRef();\n render() {\n const {\n styleInterpolator,\n interpolationIndex,\n current,\n gesture,\n next,\n layout,\n insets,\n overlay,\n overlayEnabled,\n shadowEnabled,\n gestureEnabled,\n gestureDirection,\n pageOverflowEnabled,\n headerDarkContent,\n children,\n containerStyle: customContainerStyle,\n contentStyle,\n ...rest\n } = this.props;\n const interpolationProps = this.getCardAnimation(interpolationIndex, current, next, layout, insets.top, insets.right, insets.bottom, insets.left);\n const interpolatedStyle = this.getInterpolatedStyle(styleInterpolator, interpolationProps);\n const {\n containerStyle,\n cardStyle,\n overlayStyle,\n shadowStyle\n } = interpolatedStyle;\n const handleGestureEvent = gestureEnabled ? Animated.event([{\n nativeEvent: gestureDirection === 'vertical' || gestureDirection === 'vertical-inverted' ? {\n translationY: gesture\n } : {\n translationX: gesture\n }\n }], {\n useNativeDriver\n }) : undefined;\n const {\n backgroundColor\n } = StyleSheet.flatten(contentStyle || {});\n const isTransparent = typeof backgroundColor === 'string' ? Color(backgroundColor).alpha() === 0 : false;\n return /*#__PURE__*/React.createElement(CardAnimationContext.Provider, {\n value: interpolationProps\n },\n // StatusBar messes with translucent status bar on Android\n // So we should only enable it on iOS\n Platform.OS === 'ios' && overlayEnabled && next && getIsModalPresentation(styleInterpolator) ? /*#__PURE__*/React.createElement(ModalStatusBarManager, {\n dark: headerDarkContent,\n layout: layout,\n insets: insets,\n style: cardStyle\n }) : null, /*#__PURE__*/React.createElement(Animated.View, {\n style: {\n // This is a dummy style that doesn't actually change anything visually.\n // Animated needs the animated value to be used somewhere, otherwise things don't update properly.\n // If we disable animations and hide header, it could end up making the value unused.\n // So we have this dummy style that will always be used regardless of what else changed.\n opacity: current\n }\n // Make sure that this view isn't removed. If this view is removed, our style with animated value won't apply\n ,\n collapsable: false\n }), /*#__PURE__*/React.createElement(View, _extends({\n pointerEvents: \"box-none\"\n }, rest), overlayEnabled ? /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"box-none\",\n style: StyleSheet.absoluteFill\n }, overlay({\n style: overlayStyle\n })) : null, /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.container, containerStyle, customContainerStyle],\n pointerEvents: \"box-none\"\n }, /*#__PURE__*/React.createElement(PanGestureHandler, _extends({\n enabled: layout.width !== 0 && gestureEnabled,\n onGestureEvent: handleGestureEvent,\n onHandlerStateChange: this.handleGestureStateChange\n }, this.gestureActivationCriteria()), /*#__PURE__*/React.createElement(Animated.View, {\n needsOffscreenAlphaCompositing: hasOpacityStyle(cardStyle),\n style: [styles.container, cardStyle]\n }, shadowEnabled && shadowStyle && !isTransparent ? /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.shadow, gestureDirection === 'horizontal' ? [styles.shadowHorizontal, styles.shadowLeft] : gestureDirection === 'horizontal-inverted' ? [styles.shadowHorizontal, styles.shadowRight] : gestureDirection === 'vertical' ? [styles.shadowVertical, styles.shadowTop] : [styles.shadowVertical, styles.shadowBottom], {\n backgroundColor\n }, shadowStyle],\n pointerEvents: \"none\"\n }) : null, /*#__PURE__*/React.createElement(CardSheet, {\n ref: this.ref,\n enabled: pageOverflowEnabled,\n layout: layout,\n style: contentStyle\n }, children))))));\n }\n}\nexport const getIsModalPresentation = cardStyleInterpolator => {\n return cardStyleInterpolator === forModalPresentationIOS ||\n // Handle custom modal presentation interpolators as well\n cardStyleInterpolator.name === 'forModalPresentationIOS';\n};\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n },\n overlay: {\n flex: 1,\n backgroundColor: '#000'\n },\n shadow: {\n position: 'absolute',\n shadowRadius: 5,\n shadowColor: '#000',\n shadowOpacity: 0.3\n },\n shadowHorizontal: {\n top: 0,\n bottom: 0,\n width: 3,\n shadowOffset: {\n width: -1,\n height: 1\n }\n },\n shadowLeft: {\n left: 0\n },\n shadowRight: {\n right: 0\n },\n shadowVertical: {\n left: 0,\n right: 0,\n height: 3,\n shadowOffset: {\n width: 1,\n height: -1\n }\n },\n shadowTop: {\n top: 0\n },\n shadowBottom: {\n bottom: 0\n }\n});\n//# sourceMappingURL=Card.js.map","import { getHeaderTitle, HeaderBackContext, HeaderHeightContext, HeaderShownContext } from '@react-navigation/elements';\nimport { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport ModalPresentationContext from '../../utils/ModalPresentationContext';\nimport useKeyboardManager from '../../utils/useKeyboardManager';\nimport Card from './Card';\nconst EPSILON = 0.1;\nfunction CardContainer(_ref) {\n let {\n interpolationIndex,\n index,\n active,\n closing,\n gesture,\n focused,\n modal,\n getPreviousScene,\n getFocusedRoute,\n headerDarkContent,\n hasAbsoluteFloatHeader,\n headerHeight,\n onHeaderHeightChange,\n isParentHeaderShown,\n isNextScreenTransparent,\n detachCurrentScreen,\n layout,\n onCloseRoute,\n onOpenRoute,\n onGestureCancel,\n onGestureEnd,\n onGestureStart,\n onTransitionEnd,\n onTransitionStart,\n renderHeader,\n renderScene,\n safeAreaInsetBottom,\n safeAreaInsetLeft,\n safeAreaInsetRight,\n safeAreaInsetTop,\n scene\n } = _ref;\n const parentHeaderHeight = React.useContext(HeaderHeightContext);\n const {\n onPageChangeStart,\n onPageChangeCancel,\n onPageChangeConfirm\n } = useKeyboardManager(React.useCallback(() => {\n const {\n options,\n navigation\n } = scene.descriptor;\n return navigation.isFocused() && options.keyboardHandlingEnabled !== false;\n }, [scene.descriptor]));\n const handleOpen = () => {\n const {\n route\n } = scene.descriptor;\n onTransitionEnd({\n route\n }, false);\n onOpenRoute({\n route\n });\n };\n const handleClose = () => {\n const {\n route\n } = scene.descriptor;\n onTransitionEnd({\n route\n }, true);\n onCloseRoute({\n route\n });\n };\n const handleGestureBegin = () => {\n const {\n route\n } = scene.descriptor;\n onPageChangeStart();\n onGestureStart({\n route\n });\n };\n const handleGestureCanceled = () => {\n const {\n route\n } = scene.descriptor;\n onPageChangeCancel();\n onGestureCancel({\n route\n });\n };\n const handleGestureEnd = () => {\n const {\n route\n } = scene.descriptor;\n onGestureEnd({\n route\n });\n };\n const handleTransition = _ref2 => {\n let {\n closing,\n gesture\n } = _ref2;\n const {\n route\n } = scene.descriptor;\n if (!gesture) {\n onPageChangeConfirm === null || onPageChangeConfirm === void 0 ? void 0 : onPageChangeConfirm(true);\n } else if (active && closing) {\n onPageChangeConfirm === null || onPageChangeConfirm === void 0 ? void 0 : onPageChangeConfirm(false);\n } else {\n onPageChangeCancel === null || onPageChangeCancel === void 0 ? void 0 : onPageChangeCancel();\n }\n onTransitionStart === null || onTransitionStart === void 0 ? void 0 : onTransitionStart({\n route\n }, closing);\n };\n const insets = {\n top: safeAreaInsetTop,\n right: safeAreaInsetRight,\n bottom: safeAreaInsetBottom,\n left: safeAreaInsetLeft\n };\n const {\n colors\n } = useTheme();\n const [pointerEvents, setPointerEvents] = React.useState('box-none');\n React.useEffect(() => {\n var _scene$progress$next, _scene$progress$next$;\n const listener = (_scene$progress$next = scene.progress.next) === null || _scene$progress$next === void 0 ? void 0 : (_scene$progress$next$ = _scene$progress$next.addListener) === null || _scene$progress$next$ === void 0 ? void 0 : _scene$progress$next$.call(_scene$progress$next, _ref3 => {\n let {\n value\n } = _ref3;\n setPointerEvents(value <= EPSILON ? 'box-none' : 'none');\n });\n return () => {\n if (listener) {\n var _scene$progress$next2, _scene$progress$next3;\n (_scene$progress$next2 = scene.progress.next) === null || _scene$progress$next2 === void 0 ? void 0 : (_scene$progress$next3 = _scene$progress$next2.removeListener) === null || _scene$progress$next3 === void 0 ? void 0 : _scene$progress$next3.call(_scene$progress$next2, listener);\n }\n };\n }, [pointerEvents, scene.progress.next]);\n const {\n presentation,\n animationEnabled,\n cardOverlay,\n cardOverlayEnabled,\n cardShadowEnabled,\n cardStyle,\n cardStyleInterpolator,\n gestureDirection,\n gestureEnabled,\n gestureResponseDistance,\n gestureVelocityImpact,\n headerMode,\n headerShown,\n transitionSpec\n } = scene.descriptor.options;\n const previousScene = getPreviousScene({\n route: scene.descriptor.route\n });\n let backTitle;\n if (previousScene) {\n const {\n options,\n route\n } = previousScene.descriptor;\n backTitle = getHeaderTitle(options, route.name);\n }\n const headerBack = React.useMemo(() => backTitle !== undefined ? {\n title: backTitle\n } : undefined, [backTitle]);\n return /*#__PURE__*/React.createElement(Card, {\n interpolationIndex: interpolationIndex,\n gestureDirection: gestureDirection,\n layout: layout,\n insets: insets,\n gesture: gesture,\n current: scene.progress.current,\n next: scene.progress.next,\n closing: closing,\n onOpen: handleOpen,\n onClose: handleClose,\n overlay: cardOverlay,\n overlayEnabled: cardOverlayEnabled,\n shadowEnabled: cardShadowEnabled,\n onTransition: handleTransition,\n onGestureBegin: handleGestureBegin,\n onGestureCanceled: handleGestureCanceled,\n onGestureEnd: handleGestureEnd,\n gestureEnabled: index === 0 ? false : gestureEnabled,\n gestureResponseDistance: gestureResponseDistance,\n gestureVelocityImpact: gestureVelocityImpact,\n transitionSpec: transitionSpec,\n styleInterpolator: cardStyleInterpolator,\n accessibilityElementsHidden: !focused,\n importantForAccessibility: focused ? 'auto' : 'no-hide-descendants',\n pointerEvents: active ? 'box-none' : pointerEvents,\n pageOverflowEnabled: headerMode !== 'float' && presentation !== 'modal',\n headerDarkContent: headerDarkContent,\n containerStyle: hasAbsoluteFloatHeader && headerMode !== 'screen' ? {\n marginTop: headerHeight\n } : null,\n contentStyle: [{\n backgroundColor: presentation === 'transparentModal' ? 'transparent' : colors.background\n }, cardStyle],\n style: [{\n // This is necessary to avoid unfocused larger pages increasing scroll area\n // The issue can be seen on the web when a smaller screen is pushed over a larger one\n overflow: active ? undefined : 'hidden',\n display:\n // Hide unfocused screens when animation isn't enabled\n // This is also necessary for a11y on web\n animationEnabled === false && isNextScreenTransparent === false && detachCurrentScreen !== false && !focused ? 'none' : 'flex'\n }, StyleSheet.absoluteFill]\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.container\n }, /*#__PURE__*/React.createElement(ModalPresentationContext.Provider, {\n value: modal\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.scene\n }, /*#__PURE__*/React.createElement(HeaderBackContext.Provider, {\n value: headerBack\n }, /*#__PURE__*/React.createElement(HeaderShownContext.Provider, {\n value: isParentHeaderShown || headerShown !== false\n }, /*#__PURE__*/React.createElement(HeaderHeightContext.Provider, {\n value: headerShown ? headerHeight : parentHeaderHeight ?? 0\n }, renderScene({\n route: scene.descriptor.route\n }))))), headerMode !== 'float' ? renderHeader({\n mode: 'screen',\n layout,\n scenes: [previousScene, scene],\n getPreviousScene,\n getFocusedRoute,\n onContentHeightChange: onHeaderHeightChange\n }) : null)));\n}\nexport default /*#__PURE__*/React.memo(CardContainer);\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'column-reverse'\n },\n scene: {\n flex: 1\n }\n});\n//# sourceMappingURL=CardContainer.js.map","import * as React from 'react';\nimport { Keyboard, TextInput } from 'react-native';\nexport default function useKeyboardManager(isEnabled) {\n // Numeric id of the previously focused text input\n // When a gesture didn't change the tab, we can restore the focused input with this\n const previouslyFocusedTextInputRef = React.useRef(undefined);\n const startTimestampRef = React.useRef(0);\n const keyboardTimeoutRef = React.useRef();\n const clearKeyboardTimeout = React.useCallback(() => {\n if (keyboardTimeoutRef.current !== undefined) {\n clearTimeout(keyboardTimeoutRef.current);\n keyboardTimeoutRef.current = undefined;\n }\n }, []);\n const onPageChangeStart = React.useCallback(() => {\n if (!isEnabled()) {\n return;\n }\n clearKeyboardTimeout();\n const input = TextInput.State.currentlyFocusedInput();\n\n // When a page change begins, blur the currently focused input\n input === null || input === void 0 ? void 0 : input.blur();\n\n // Store the id of this input so we can refocus it if change was cancelled\n previouslyFocusedTextInputRef.current = input;\n\n // Store timestamp for touch start\n startTimestampRef.current = Date.now();\n }, [clearKeyboardTimeout, isEnabled]);\n const onPageChangeConfirm = React.useCallback(force => {\n if (!isEnabled()) {\n return;\n }\n clearKeyboardTimeout();\n if (force) {\n // Always dismiss input, even if we don't have a ref to it\n // We might not have the ref if onPageChangeStart was never called\n // This can happen if page change was not from a gesture\n Keyboard.dismiss();\n } else {\n const input = previouslyFocusedTextInputRef.current;\n\n // Dismiss the keyboard only if an input was a focused before\n // This makes sure we don't dismiss input on going back and focusing an input\n input === null || input === void 0 ? void 0 : input.blur();\n }\n\n // Cleanup the ID on successful page change\n previouslyFocusedTextInputRef.current = undefined;\n }, [clearKeyboardTimeout, isEnabled]);\n const onPageChangeCancel = React.useCallback(() => {\n if (!isEnabled()) {\n return;\n }\n clearKeyboardTimeout();\n\n // The page didn't change, we should restore the focus of text input\n const input = previouslyFocusedTextInputRef.current;\n if (input) {\n // If the interaction was super short we should make sure keyboard won't hide again.\n\n // Too fast input refocus will result only in keyboard flashing on screen and hiding right away.\n // During first ~100ms keyboard will be dismissed no matter what,\n // so we have to make sure it won't interrupt input refocus logic.\n // That's why when the interaction is shorter than 100ms we add delay so it won't hide once again.\n // Subtracting timestamps makes us sure the delay is executed only when needed.\n if (Date.now() - startTimestampRef.current < 100) {\n keyboardTimeoutRef.current = setTimeout(() => {\n input === null || input === void 0 ? void 0 : input.focus();\n previouslyFocusedTextInputRef.current = undefined;\n }, 100);\n } else {\n input === null || input === void 0 ? void 0 : input.focus();\n previouslyFocusedTextInputRef.current = undefined;\n }\n }\n }, [clearKeyboardTimeout, isEnabled]);\n React.useEffect(() => {\n return () => clearKeyboardTimeout();\n }, [clearKeyboardTimeout]);\n return {\n onPageChangeStart,\n onPageChangeConfirm,\n onPageChangeCancel\n };\n}\n//# sourceMappingURL=useKeyboardManager.js.map","import { Background, getDefaultHeaderHeight, SafeAreaProviderCompat } from '@react-navigation/elements';\nimport Color from 'color';\nimport * as React from 'react';\nimport { Animated, Platform, StyleSheet } from 'react-native';\nimport { forModalPresentationIOS, forNoAnimation as forNoAnimationCard } from '../../TransitionConfigs/CardStyleInterpolators';\nimport { DefaultTransition, ModalFadeTransition, ModalTransition } from '../../TransitionConfigs/TransitionPresets';\nimport findLastIndex from '../../utils/findLastIndex';\nimport getDistanceForDirection from '../../utils/getDistanceForDirection';\nimport { MaybeScreen, MaybeScreenContainer } from '../Screens';\nimport { getIsModalPresentation } from './Card';\nimport CardContainer from './CardContainer';\nconst EPSILON = 1e-5;\nconst STATE_INACTIVE = 0;\nconst STATE_TRANSITIONING_OR_BELOW_TOP = 1;\nconst STATE_ON_TOP = 2;\nconst FALLBACK_DESCRIPTOR = Object.freeze({\n options: {}\n});\nconst getInterpolationIndex = (scenes, index) => {\n const {\n cardStyleInterpolator\n } = scenes[index].descriptor.options;\n\n // Start from current card and count backwards the number of cards with same interpolation\n let interpolationIndex = 0;\n for (let i = index - 1; i >= 0; i--) {\n var _scenes$i;\n const cardStyleInterpolatorCurrent = (_scenes$i = scenes[i]) === null || _scenes$i === void 0 ? void 0 : _scenes$i.descriptor.options.cardStyleInterpolator;\n if (cardStyleInterpolatorCurrent !== cardStyleInterpolator) {\n break;\n }\n interpolationIndex++;\n }\n return interpolationIndex;\n};\nconst getIsModal = (scene, interpolationIndex, isParentModal) => {\n if (isParentModal) {\n return true;\n }\n const {\n cardStyleInterpolator\n } = scene.descriptor.options;\n const isModalPresentation = getIsModalPresentation(cardStyleInterpolator);\n const isModal = isModalPresentation && interpolationIndex !== 0;\n return isModal;\n};\nconst getHeaderHeights = (scenes, insets, isParentHeaderShown, isParentModal, layout, previous) => {\n return scenes.reduce((acc, curr, index) => {\n const {\n headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,\n headerStyle\n } = curr.descriptor.options;\n const style = StyleSheet.flatten(headerStyle || {});\n const height = 'height' in style && typeof style.height === 'number' ? style.height : previous[curr.route.key];\n const interpolationIndex = getInterpolationIndex(scenes, index);\n const isModal = getIsModal(curr, interpolationIndex, isParentModal);\n acc[curr.route.key] = typeof height === 'number' ? height : getDefaultHeaderHeight(layout, isModal, headerStatusBarHeight);\n return acc;\n }, {});\n};\nconst getDistanceFromOptions = (layout, descriptor) => {\n const {\n presentation,\n gestureDirection = presentation === 'modal' ? ModalTransition.gestureDirection : DefaultTransition.gestureDirection\n } = (descriptor === null || descriptor === void 0 ? void 0 : descriptor.options) || {};\n return getDistanceForDirection(layout, gestureDirection);\n};\nconst getProgressFromGesture = (gesture, layout, descriptor) => {\n const distance = getDistanceFromOptions({\n // Make sure that we have a non-zero distance, otherwise there will be incorrect progress\n // This causes blank screen on web if it was previously inside container with display: none\n width: Math.max(1, layout.width),\n height: Math.max(1, layout.height)\n }, descriptor);\n if (distance > 0) {\n return gesture.interpolate({\n inputRange: [0, distance],\n outputRange: [1, 0]\n });\n }\n return gesture.interpolate({\n inputRange: [distance, 0],\n outputRange: [0, 1]\n });\n};\nexport default class CardStack extends React.Component {\n static getDerivedStateFromProps(props, state) {\n if (props.routes === state.routes && props.descriptors === state.descriptors) {\n return null;\n }\n const gestures = props.routes.reduce((acc, curr) => {\n const descriptor = props.descriptors[curr.key];\n const {\n animationEnabled\n } = (descriptor === null || descriptor === void 0 ? void 0 : descriptor.options) || {};\n acc[curr.key] = state.gestures[curr.key] || new Animated.Value(props.openingRouteKeys.includes(curr.key) && animationEnabled !== false ? getDistanceFromOptions(state.layout, descriptor) : 0);\n return acc;\n }, {});\n const scenes = props.routes.map((route, index, self) => {\n const previousRoute = self[index - 1];\n const nextRoute = self[index + 1];\n const oldScene = state.scenes[index];\n const currentGesture = gestures[route.key];\n const previousGesture = previousRoute ? gestures[previousRoute.key] : undefined;\n const nextGesture = nextRoute ? gestures[nextRoute.key] : undefined;\n const descriptor = props.descriptors[route.key] || state.descriptors[route.key] || (oldScene ? oldScene.descriptor : FALLBACK_DESCRIPTOR);\n const nextDescriptor = props.descriptors[nextRoute === null || nextRoute === void 0 ? void 0 : nextRoute.key] || state.descriptors[nextRoute === null || nextRoute === void 0 ? void 0 : nextRoute.key];\n const previousDescriptor = props.descriptors[previousRoute === null || previousRoute === void 0 ? void 0 : previousRoute.key] || state.descriptors[previousRoute === null || previousRoute === void 0 ? void 0 : previousRoute.key];\n\n // When a screen is not the last, it should use next screen's transition config\n // Many transitions also animate the previous screen, so using 2 different transitions doesn't look right\n // For example combining a slide and a modal transition would look wrong otherwise\n // With this approach, combining different transition styles in the same navigator mostly looks right\n // This will still be broken when 2 transitions have different idle state (e.g. modal presentation),\n // but majority of the transitions look alright\n const optionsForTransitionConfig = index !== self.length - 1 && nextDescriptor && nextDescriptor.options.presentation !== 'transparentModal' ? nextDescriptor.options : descriptor.options;\n let defaultTransitionPreset = optionsForTransitionConfig.presentation === 'modal' ? ModalTransition : optionsForTransitionConfig.presentation === 'transparentModal' ? ModalFadeTransition : DefaultTransition;\n const {\n animationEnabled = Platform.OS !== 'web' && Platform.OS !== 'windows' && Platform.OS !== 'macos',\n gestureEnabled = Platform.OS === 'ios' && animationEnabled,\n gestureDirection = defaultTransitionPreset.gestureDirection,\n transitionSpec = defaultTransitionPreset.transitionSpec,\n cardStyleInterpolator = animationEnabled === false ? forNoAnimationCard : defaultTransitionPreset.cardStyleInterpolator,\n headerStyleInterpolator = defaultTransitionPreset.headerStyleInterpolator,\n cardOverlayEnabled = Platform.OS !== 'ios' && optionsForTransitionConfig.presentation !== 'transparentModal' || getIsModalPresentation(cardStyleInterpolator)\n } = optionsForTransitionConfig;\n const headerMode = descriptor.options.headerMode ?? (!(optionsForTransitionConfig.presentation === 'modal' || optionsForTransitionConfig.presentation === 'transparentModal' || (nextDescriptor === null || nextDescriptor === void 0 ? void 0 : nextDescriptor.options.presentation) === 'modal' || (nextDescriptor === null || nextDescriptor === void 0 ? void 0 : nextDescriptor.options.presentation) === 'transparentModal' || getIsModalPresentation(cardStyleInterpolator)) && Platform.OS === 'ios' && descriptor.options.header === undefined ? 'float' : 'screen');\n const scene = {\n route,\n descriptor: {\n ...descriptor,\n options: {\n ...descriptor.options,\n animationEnabled,\n cardOverlayEnabled,\n cardStyleInterpolator,\n gestureDirection,\n gestureEnabled,\n headerStyleInterpolator,\n transitionSpec,\n headerMode\n }\n },\n progress: {\n current: getProgressFromGesture(currentGesture, state.layout, descriptor),\n next: nextGesture && (nextDescriptor === null || nextDescriptor === void 0 ? void 0 : nextDescriptor.options.presentation) !== 'transparentModal' ? getProgressFromGesture(nextGesture, state.layout, nextDescriptor) : undefined,\n previous: previousGesture ? getProgressFromGesture(previousGesture, state.layout, previousDescriptor) : undefined\n },\n __memo: [state.layout, descriptor, nextDescriptor, previousDescriptor, currentGesture, nextGesture, previousGesture]\n };\n if (oldScene && scene.__memo.every((it, i) => {\n // @ts-expect-error: we haven't added __memo to the annotation to prevent usage elsewhere\n return oldScene.__memo[i] === it;\n })) {\n return oldScene;\n }\n return scene;\n });\n return {\n routes: props.routes,\n scenes,\n gestures,\n descriptors: props.descriptors,\n headerHeights: getHeaderHeights(scenes, props.insets, props.isParentHeaderShown, props.isParentModal, state.layout, state.headerHeights)\n };\n }\n constructor(props) {\n super(props);\n this.state = {\n routes: [],\n scenes: [],\n gestures: {},\n layout: SafeAreaProviderCompat.initialMetrics.frame,\n descriptors: this.props.descriptors,\n // Used when card's header is null and mode is float to make transition\n // between screens with headers and those without headers smooth.\n // This is not a great heuristic here. We don't know synchronously\n // on mount what the header height is so we have just used the most\n // common cases here.\n headerHeights: {}\n };\n }\n handleLayout = e => {\n const {\n height,\n width\n } = e.nativeEvent.layout;\n const layout = {\n width,\n height\n };\n this.setState((state, props) => {\n if (height === state.layout.height && width === state.layout.width) {\n return null;\n }\n return {\n layout,\n headerHeights: getHeaderHeights(state.scenes, props.insets, props.isParentHeaderShown, props.isParentModal, layout, state.headerHeights)\n };\n });\n };\n handleHeaderLayout = _ref => {\n let {\n route,\n height\n } = _ref;\n this.setState(_ref2 => {\n let {\n headerHeights\n } = _ref2;\n const previousHeight = headerHeights[route.key];\n if (previousHeight === height) {\n return null;\n }\n return {\n headerHeights: {\n ...headerHeights,\n [route.key]: height\n }\n };\n });\n };\n getFocusedRoute = () => {\n const {\n state\n } = this.props;\n return state.routes[state.index];\n };\n getPreviousScene = _ref3 => {\n let {\n route\n } = _ref3;\n const {\n getPreviousRoute\n } = this.props;\n const {\n scenes\n } = this.state;\n const previousRoute = getPreviousRoute({\n route\n });\n if (previousRoute) {\n const previousScene = scenes.find(scene => scene.descriptor.route.key === previousRoute.key);\n return previousScene;\n }\n return undefined;\n };\n render() {\n const {\n insets,\n state,\n routes,\n closingRouteKeys,\n onOpenRoute,\n onCloseRoute,\n renderHeader,\n renderScene,\n isParentHeaderShown,\n isParentModal,\n onTransitionStart,\n onTransitionEnd,\n onGestureStart,\n onGestureEnd,\n onGestureCancel,\n detachInactiveScreens = Platform.OS === 'web' || Platform.OS === 'android' || Platform.OS === 'ios'\n } = this.props;\n const {\n scenes,\n layout,\n gestures,\n headerHeights\n } = this.state;\n const focusedRoute = state.routes[state.index];\n const focusedHeaderHeight = headerHeights[focusedRoute.key];\n const isFloatHeaderAbsolute = this.state.scenes.slice(-2).some(scene => {\n const options = scene.descriptor.options ?? {};\n const {\n headerMode,\n headerTransparent,\n headerShown = true\n } = options;\n if (headerTransparent || headerShown === false || headerMode === 'screen') {\n return true;\n }\n return false;\n });\n let activeScreensLimit = 1;\n for (let i = scenes.length - 1; i >= 0; i--) {\n const {\n options\n } = scenes[i].descriptor;\n const {\n // By default, we don't want to detach the previous screen of the active one for modals\n detachPreviousScreen = options.presentation === 'transparentModal' ? false : getIsModalPresentation(options.cardStyleInterpolator) ? i !== findLastIndex(scenes, scene => {\n const {\n cardStyleInterpolator\n } = scene.descriptor.options;\n return cardStyleInterpolator === forModalPresentationIOS || (cardStyleInterpolator === null || cardStyleInterpolator === void 0 ? void 0 : cardStyleInterpolator.name) === 'forModalPresentationIOS';\n }) : true\n } = options;\n if (detachPreviousScreen === false) {\n activeScreensLimit++;\n } else {\n // Check at least last 2 screens before stopping\n // This will make sure that screen isn't detached when another screen is animating on top of the transparent one\n // For example, (Opaque -> Transparent -> Opaque)\n if (i <= scenes.length - 2) {\n break;\n }\n }\n }\n const floatingHeader = /*#__PURE__*/React.createElement(React.Fragment, {\n key: \"header\"\n }, renderHeader({\n mode: 'float',\n layout,\n scenes,\n getPreviousScene: this.getPreviousScene,\n getFocusedRoute: this.getFocusedRoute,\n onContentHeightChange: this.handleHeaderLayout,\n style: [styles.floating, isFloatHeaderAbsolute && [\n // Without this, the header buttons won't be touchable on Android when headerTransparent: true\n {\n height: focusedHeaderHeight\n }, styles.absolute]]\n }));\n return /*#__PURE__*/React.createElement(Background, null, isFloatHeaderAbsolute ? null : floatingHeader, /*#__PURE__*/React.createElement(MaybeScreenContainer, {\n enabled: detachInactiveScreens,\n style: styles.container,\n onLayout: this.handleLayout\n }, routes.map((route, index, self) => {\n var _scenes, _scenes2;\n const focused = focusedRoute.key === route.key;\n const gesture = gestures[route.key];\n const scene = scenes[index];\n\n // For the screens that shouldn't be active, the value is 0\n // For those that should be active, but are not the top screen, the value is 1\n // For those on top of the stack and with interaction enabled, the value is 2\n // For the old implementation, it stays the same it was\n let isScreenActive = 1;\n if (index < self.length - activeScreensLimit - 1) {\n // screen should be inactive because it is too deep in the stack\n isScreenActive = STATE_INACTIVE;\n } else {\n const sceneForActivity = scenes[self.length - 1];\n const outputValue = index === self.length - 1 ? STATE_ON_TOP // the screen is on top after the transition\n : index >= self.length - activeScreensLimit ? STATE_TRANSITIONING_OR_BELOW_TOP // the screen should stay active after the transition, it is not on top but is in activeLimit\n : STATE_INACTIVE; // the screen should be active only during the transition, it is at the edge of activeLimit\n isScreenActive = sceneForActivity ? sceneForActivity.progress.current.interpolate({\n inputRange: [0, 1 - EPSILON, 1],\n outputRange: [1, 1, outputValue],\n extrapolate: 'clamp'\n }) : STATE_TRANSITIONING_OR_BELOW_TOP;\n }\n const {\n headerShown = true,\n headerTransparent,\n headerStyle,\n headerTintColor,\n freezeOnBlur\n } = scene.descriptor.options;\n const safeAreaInsetTop = insets.top;\n const safeAreaInsetRight = insets.right;\n const safeAreaInsetBottom = insets.bottom;\n const safeAreaInsetLeft = insets.left;\n const headerHeight = headerShown !== false ? headerHeights[route.key] : 0;\n let headerDarkContent;\n if (headerShown) {\n if (typeof headerTintColor === 'string') {\n headerDarkContent = Color(headerTintColor).isDark();\n } else {\n const flattenedHeaderStyle = StyleSheet.flatten(headerStyle);\n if (flattenedHeaderStyle && 'backgroundColor' in flattenedHeaderStyle && typeof flattenedHeaderStyle.backgroundColor === 'string') {\n headerDarkContent = !Color(flattenedHeaderStyle.backgroundColor).isDark();\n }\n }\n }\n\n // Start from current card and count backwards the number of cards with same interpolation\n const interpolationIndex = getInterpolationIndex(scenes, index);\n const isModal = getIsModal(scene, interpolationIndex, isParentModal);\n const isNextScreenTransparent = ((_scenes = scenes[index + 1]) === null || _scenes === void 0 ? void 0 : _scenes.descriptor.options.presentation) === 'transparentModal';\n const detachCurrentScreen = ((_scenes2 = scenes[index + 1]) === null || _scenes2 === void 0 ? void 0 : _scenes2.descriptor.options.detachPreviousScreen) !== false;\n return /*#__PURE__*/React.createElement(MaybeScreen, {\n key: route.key,\n style: StyleSheet.absoluteFill,\n enabled: detachInactiveScreens,\n active: isScreenActive,\n freezeOnBlur: freezeOnBlur,\n pointerEvents: \"box-none\"\n }, /*#__PURE__*/React.createElement(CardContainer, {\n index: index,\n interpolationIndex: interpolationIndex,\n modal: isModal,\n active: index === self.length - 1,\n focused: focused,\n closing: closingRouteKeys.includes(route.key),\n layout: layout,\n gesture: gesture,\n scene: scene,\n safeAreaInsetTop: safeAreaInsetTop,\n safeAreaInsetRight: safeAreaInsetRight,\n safeAreaInsetBottom: safeAreaInsetBottom,\n safeAreaInsetLeft: safeAreaInsetLeft,\n onGestureStart: onGestureStart,\n onGestureCancel: onGestureCancel,\n onGestureEnd: onGestureEnd,\n headerHeight: headerHeight,\n isParentHeaderShown: isParentHeaderShown,\n onHeaderHeightChange: this.handleHeaderLayout,\n getPreviousScene: this.getPreviousScene,\n getFocusedRoute: this.getFocusedRoute,\n headerDarkContent: headerDarkContent,\n hasAbsoluteFloatHeader: isFloatHeaderAbsolute && !headerTransparent,\n renderHeader: renderHeader,\n renderScene: renderScene,\n onOpenRoute: onOpenRoute,\n onCloseRoute: onCloseRoute,\n onTransitionStart: onTransitionStart,\n onTransitionEnd: onTransitionEnd,\n isNextScreenTransparent: isNextScreenTransparent,\n detachCurrentScreen: detachCurrentScreen\n }));\n })), isFloatHeaderAbsolute ? floatingHeader : null);\n }\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n },\n absolute: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0\n },\n floating: {\n zIndex: 1\n }\n});\n//# sourceMappingURL=CardStack.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { HeaderShownContext, SafeAreaProviderCompat } from '@react-navigation/elements';\nimport { StackActions } from '@react-navigation/native';\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport ModalPresentationContext from '../../utils/ModalPresentationContext';\nimport { GestureHandlerRootView } from '../GestureHandler';\nimport HeaderContainer from '../Header/HeaderContainer';\nimport CardStack from './CardStack';\nconst GestureHandlerWrapper = GestureHandlerRootView ?? View;\n\n/**\n * Compare two arrays with primitive values as the content.\n * We need to make sure that both values and order match.\n */\nconst isArrayEqual = (a, b) => a.length === b.length && a.every((it, index) => it === b[index]);\nexport default class StackView extends React.Component {\n static getDerivedStateFromProps(props, state) {\n // If there was no change in routes, we don't need to compute anything\n if ((props.state.routes === state.previousRoutes || isArrayEqual(props.state.routes.map(r => r.key), state.previousRoutes.map(r => r.key))) && state.routes.length) {\n let routes = state.routes;\n let previousRoutes = state.previousRoutes;\n let descriptors = props.descriptors;\n let previousDescriptors = state.previousDescriptors;\n if (props.descriptors !== state.previousDescriptors) {\n descriptors = state.routes.reduce((acc, route) => {\n acc[route.key] = props.descriptors[route.key] || state.descriptors[route.key];\n return acc;\n }, {});\n previousDescriptors = props.descriptors;\n }\n if (props.state.routes !== state.previousRoutes) {\n // if any route objects have changed, we should update them\n const map = props.state.routes.reduce((acc, route) => {\n acc[route.key] = route;\n return acc;\n }, {});\n routes = state.routes.map(route => map[route.key] || route);\n previousRoutes = props.state.routes;\n }\n return {\n routes,\n previousRoutes,\n descriptors,\n previousDescriptors\n };\n }\n\n // Here we determine which routes were added or removed to animate them\n // We keep a copy of the route being removed in local state to be able to animate it\n\n let routes = props.state.index < props.state.routes.length - 1 ?\n // Remove any extra routes from the state\n // The last visible route should be the focused route, i.e. at current index\n props.state.routes.slice(0, props.state.index + 1) : props.state.routes;\n\n // Now we need to determine which routes were added and removed\n let {\n openingRouteKeys,\n closingRouteKeys,\n replacingRouteKeys,\n previousRoutes\n } = state;\n const previousFocusedRoute = previousRoutes[previousRoutes.length - 1];\n const nextFocusedRoute = routes[routes.length - 1];\n const isAnimationEnabled = key => {\n const descriptor = props.descriptors[key] || state.descriptors[key];\n return descriptor ? descriptor.options.animationEnabled !== false : true;\n };\n const getAnimationTypeForReplace = key => {\n const descriptor = props.descriptors[key] || state.descriptors[key];\n return descriptor.options.animationTypeForReplace ?? 'push';\n };\n if (previousFocusedRoute && previousFocusedRoute.key !== nextFocusedRoute.key) {\n // We only need to animate routes if the focused route changed\n // Animating previous routes won't be visible coz the focused route is on top of everything\n\n if (!previousRoutes.some(r => r.key === nextFocusedRoute.key)) {\n // A new route has come to the focus, we treat this as a push\n // A replace can also trigger this, the animation should look like push\n\n if (isAnimationEnabled(nextFocusedRoute.key) && !openingRouteKeys.includes(nextFocusedRoute.key)) {\n // In this case, we need to animate pushing the focused route\n // We don't care about animating any other added routes because they won't be visible\n openingRouteKeys = [...openingRouteKeys, nextFocusedRoute.key];\n closingRouteKeys = closingRouteKeys.filter(key => key !== nextFocusedRoute.key);\n replacingRouteKeys = replacingRouteKeys.filter(key => key !== nextFocusedRoute.key);\n if (!routes.some(r => r.key === previousFocusedRoute.key)) {\n // The previous focused route isn't present in state, we treat this as a replace\n\n openingRouteKeys = openingRouteKeys.filter(key => key !== previousFocusedRoute.key);\n if (getAnimationTypeForReplace(nextFocusedRoute.key) === 'pop') {\n closingRouteKeys = [...closingRouteKeys, previousFocusedRoute.key];\n\n // By default, new routes have a push animation, so we add it to `openingRouteKeys` before\n // But since user configured it to animate the old screen like a pop, we need to add this without animation\n // So remove it from `openingRouteKeys` which will remove the animation\n openingRouteKeys = openingRouteKeys.filter(key => key !== nextFocusedRoute.key);\n\n // Keep the route being removed at the end to animate it out\n routes = [...routes, previousFocusedRoute];\n } else {\n replacingRouteKeys = [...replacingRouteKeys, previousFocusedRoute.key];\n closingRouteKeys = closingRouteKeys.filter(key => key !== previousFocusedRoute.key);\n\n // Keep the old route in the state because it's visible under the new route, and removing it will feel abrupt\n // We need to insert it just before the focused one (the route being pushed)\n // After the push animation is completed, routes being replaced will be removed completely\n routes = routes.slice();\n routes.splice(routes.length - 1, 0, previousFocusedRoute);\n }\n }\n }\n } else if (!routes.some(r => r.key === previousFocusedRoute.key)) {\n // The previously focused route was removed, we treat this as a pop\n\n if (isAnimationEnabled(previousFocusedRoute.key) && !closingRouteKeys.includes(previousFocusedRoute.key)) {\n closingRouteKeys = [...closingRouteKeys, previousFocusedRoute.key];\n\n // Sometimes a route can be closed before the opening animation finishes\n // So we also need to remove it from the opening list\n openingRouteKeys = openingRouteKeys.filter(key => key !== previousFocusedRoute.key);\n replacingRouteKeys = replacingRouteKeys.filter(key => key !== previousFocusedRoute.key);\n\n // Keep a copy of route being removed in the state to be able to animate it\n routes = [...routes, previousFocusedRoute];\n }\n } else {\n // Looks like some routes were re-arranged and no focused routes were added/removed\n // i.e. the currently focused route already existed and the previously focused route still exists\n // We don't know how to animate this\n }\n } else if (replacingRouteKeys.length || closingRouteKeys.length) {\n // Keep the routes we are closing or replacing if animation is enabled for them\n routes = routes.slice();\n routes.splice(routes.length - 1, 0, ...state.routes.filter(_ref => {\n let {\n key\n } = _ref;\n return isAnimationEnabled(key) ? replacingRouteKeys.includes(key) || closingRouteKeys.includes(key) : false;\n }));\n }\n if (!routes.length) {\n throw new Error('There should always be at least one route in the navigation state.');\n }\n const descriptors = routes.reduce((acc, route) => {\n acc[route.key] = props.descriptors[route.key] || state.descriptors[route.key];\n return acc;\n }, {});\n return {\n routes,\n previousRoutes: props.state.routes,\n previousDescriptors: props.descriptors,\n openingRouteKeys,\n closingRouteKeys,\n replacingRouteKeys,\n descriptors\n };\n }\n state = {\n routes: [],\n previousRoutes: [],\n previousDescriptors: {},\n openingRouteKeys: [],\n closingRouteKeys: [],\n replacingRouteKeys: [],\n descriptors: {}\n };\n getPreviousRoute = _ref2 => {\n let {\n route\n } = _ref2;\n const {\n closingRouteKeys,\n replacingRouteKeys\n } = this.state;\n const routes = this.state.routes.filter(r => r.key === route.key || !closingRouteKeys.includes(r.key) && !replacingRouteKeys.includes(r.key));\n const index = routes.findIndex(r => r.key === route.key);\n return routes[index - 1];\n };\n renderScene = _ref3 => {\n let {\n route\n } = _ref3;\n const descriptor = this.state.descriptors[route.key] || this.props.descriptors[route.key];\n if (!descriptor) {\n return null;\n }\n return descriptor.render();\n };\n renderHeader = props => {\n return /*#__PURE__*/React.createElement(HeaderContainer, props);\n };\n handleOpenRoute = _ref4 => {\n let {\n route\n } = _ref4;\n const {\n state,\n navigation\n } = this.props;\n const {\n closingRouteKeys,\n replacingRouteKeys\n } = this.state;\n if (closingRouteKeys.some(key => key === route.key) && replacingRouteKeys.every(key => key !== route.key) && state.routeNames.includes(route.name) && !state.routes.some(r => r.key === route.key)) {\n // If route isn't present in current state, but was closing, assume that a close animation was cancelled\n // So we need to add this route back to the state\n navigation.navigate(route);\n } else {\n this.setState(state => ({\n routes: state.replacingRouteKeys.length ? state.routes.filter(r => !state.replacingRouteKeys.includes(r.key)) : state.routes,\n openingRouteKeys: state.openingRouteKeys.filter(key => key !== route.key),\n closingRouteKeys: state.closingRouteKeys.filter(key => key !== route.key),\n replacingRouteKeys: []\n }));\n }\n };\n handleCloseRoute = _ref5 => {\n let {\n route\n } = _ref5;\n const {\n state,\n navigation\n } = this.props;\n if (state.routes.some(r => r.key === route.key)) {\n // If a route exists in state, trigger a pop\n // This will happen in when the route was closed from the card component\n // e.g. When the close animation triggered from a gesture ends\n navigation.dispatch({\n ...StackActions.pop(),\n source: route.key,\n target: state.key\n });\n } else {\n // We need to clean up any state tracking the route and pop it immediately\n this.setState(state => ({\n routes: state.routes.filter(r => r.key !== route.key),\n openingRouteKeys: state.openingRouteKeys.filter(key => key !== route.key),\n closingRouteKeys: state.closingRouteKeys.filter(key => key !== route.key)\n }));\n }\n };\n handleTransitionStart = (_ref6, closing) => {\n let {\n route\n } = _ref6;\n return this.props.navigation.emit({\n type: 'transitionStart',\n data: {\n closing\n },\n target: route.key\n });\n };\n handleTransitionEnd = (_ref7, closing) => {\n let {\n route\n } = _ref7;\n return this.props.navigation.emit({\n type: 'transitionEnd',\n data: {\n closing\n },\n target: route.key\n });\n };\n handleGestureStart = _ref8 => {\n let {\n route\n } = _ref8;\n this.props.navigation.emit({\n type: 'gestureStart',\n target: route.key\n });\n };\n handleGestureEnd = _ref9 => {\n let {\n route\n } = _ref9;\n this.props.navigation.emit({\n type: 'gestureEnd',\n target: route.key\n });\n };\n handleGestureCancel = _ref10 => {\n let {\n route\n } = _ref10;\n this.props.navigation.emit({\n type: 'gestureCancel',\n target: route.key\n });\n };\n render() {\n const {\n state,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n descriptors: _,\n ...rest\n } = this.props;\n const {\n routes,\n descriptors,\n openingRouteKeys,\n closingRouteKeys\n } = this.state;\n return /*#__PURE__*/React.createElement(GestureHandlerWrapper, {\n style: styles.container\n }, /*#__PURE__*/React.createElement(SafeAreaProviderCompat, null, /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, insets => /*#__PURE__*/React.createElement(ModalPresentationContext.Consumer, null, isParentModal => /*#__PURE__*/React.createElement(HeaderShownContext.Consumer, null, isParentHeaderShown => /*#__PURE__*/React.createElement(CardStack, _extends({\n insets: insets,\n isParentHeaderShown: isParentHeaderShown,\n isParentModal: isParentModal,\n getPreviousRoute: this.getPreviousRoute,\n routes: routes,\n openingRouteKeys: openingRouteKeys,\n closingRouteKeys: closingRouteKeys,\n onOpenRoute: this.handleOpenRoute,\n onCloseRoute: this.handleCloseRoute,\n onTransitionStart: this.handleTransitionStart,\n onTransitionEnd: this.handleTransitionEnd,\n renderHeader: this.renderHeader,\n renderScene: this.renderScene,\n state: state,\n descriptors: descriptors,\n onGestureStart: this.handleGestureStart,\n onGestureEnd: this.handleGestureEnd,\n onGestureCancel: this.handleGestureCancel\n }, rest)))))));\n }\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n }\n});\n//# sourceMappingURL=StackView.js.map","import * as React from 'react';\nimport { Animated } from 'react-native';\n\ntype TransitionProgressContextBody = {\n progress: Animated.Value;\n closing: Animated.Value;\n goingForward: Animated.Value;\n};\n\nexport default React.createContext(\n undefined\n);\n","import * as React from 'react';\n\nimport TransitionProgressContext from './TransitionProgressContext';\n\nexport default function useTransitionProgress() {\n const progress = React.useContext(TransitionProgressContext);\n\n if (progress === undefined) {\n throw new Error(\n \"Couldn't find values for transition progress. Are you inside a screen in Native Stack?\"\n );\n }\n\n return progress;\n}\n","/* eslint-disable react-native/no-inline-styles */\nimport React from 'react';\nimport {\n View,\n Text,\n StyleSheet,\n Animated,\n TouchableWithoutFeedback,\n ViewStyle,\n TextStyle,\n} from 'react-native';\nimport { StepIndicatorProps } from './types';\n\nconst STEP_STATUS = {\n CURRENT: 'current',\n FINISHED: 'finished',\n UNFINISHED: 'unfinished',\n};\n\ninterface DefaultStepIndicatorStyles {\n stepIndicatorSize: number;\n currentStepIndicatorSize: number;\n separatorStrokeWidth: number;\n separatorStrokeUnfinishedWidth: number;\n separatorStrokeFinishedWidth: number;\n currentStepStrokeWidth: number;\n stepStrokeWidth: number;\n stepStrokeCurrentColor: string;\n stepStrokeFinishedColor: string;\n stepStrokeUnFinishedColor: string;\n separatorFinishedColor: string;\n separatorUnFinishedColor: string;\n stepIndicatorFinishedColor: string;\n stepIndicatorUnFinishedColor: string;\n stepIndicatorCurrentColor: string;\n stepIndicatorLabelFontSize: number;\n currentStepIndicatorLabelFontSize: number;\n stepIndicatorLabelCurrentColor: string;\n stepIndicatorLabelFinishedColor: string;\n stepIndicatorLabelUnFinishedColor: string;\n labelColor: string;\n labelSize: number;\n labelAlign:\n | 'center'\n | 'flex-start'\n | 'flex-end'\n | 'stretch'\n | 'baseline'\n | undefined;\n currentStepLabelColor: string;\n labelFontFamily?: string;\n}\n\nconst defaultStyles: DefaultStepIndicatorStyles = {\n stepIndicatorSize: 30,\n currentStepIndicatorSize: 40,\n separatorStrokeWidth: 3,\n separatorStrokeUnfinishedWidth: 0,\n separatorStrokeFinishedWidth: 0,\n currentStepStrokeWidth: 5,\n stepStrokeWidth: 0,\n stepStrokeCurrentColor: '#4aae4f',\n stepStrokeFinishedColor: '#4aae4f',\n stepStrokeUnFinishedColor: '#4aae4f',\n separatorFinishedColor: '#4aae4f',\n separatorUnFinishedColor: '#a4d4a5',\n stepIndicatorFinishedColor: '#4aae4f',\n stepIndicatorUnFinishedColor: '#a4d4a5',\n stepIndicatorCurrentColor: '#ffffff',\n stepIndicatorLabelFontSize: 15,\n currentStepIndicatorLabelFontSize: 15,\n stepIndicatorLabelCurrentColor: '#000000',\n stepIndicatorLabelFinishedColor: '#ffffff',\n stepIndicatorLabelUnFinishedColor: 'rgba(255,255,255,0.5)',\n labelColor: '#000000',\n labelSize: 13,\n labelAlign: 'center',\n currentStepLabelColor: '#4aae4f',\n};\n\nconst StepIndicator = ({\n currentPosition = 0,\n stepCount = 5,\n direction = 'horizontal',\n customStyles: customStylesFromProps = defaultStyles,\n labels = [],\n onPress,\n renderStepIndicator: renderCustomStepIndicator,\n renderLabel,\n}: StepIndicatorProps) => {\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n const [progressBarSize, setProgressBarSize] = React.useState(0);\n const [customStyles, setCustomStyles] = React.useState<\n DefaultStepIndicatorStyles\n >({\n ...defaultStyles,\n ...customStylesFromProps,\n });\n\n const progressAnim = React.useRef(new Animated.Value(0)).current;\n const sizeAnim = React.useRef(\n new Animated.Value(customStyles.stepIndicatorSize)\n ).current;\n const staleSizeAnim = React.useRef(\n new Animated.Value(customStyles.stepIndicatorSize)\n ).current;\n const borderRadiusAnim = React.useRef(\n new Animated.Value(customStyles.stepIndicatorSize / 2)\n ).current;\n\n const stepPressed = (position: number) => {\n if (onPress) {\n onPress(position);\n }\n };\n\n const effectCustomStyles = () => {\n setCustomStyles({ ...customStyles, ...customStylesFromProps });\n };\n React.useEffect(effectCustomStyles, [customStylesFromProps]);\n\n const effectCurrentPosition = () => {\n onCurrentPositionChanged(currentPosition);\n };\n React.useEffect(effectCurrentPosition, [currentPosition, progressBarSize]);\n\n const renderProgressBarBackground = () => {\n let progressBarBackgroundStyle: ViewStyle = {\n backgroundColor: customStyles.separatorUnFinishedColor,\n position: 'absolute',\n };\n if (direction === 'vertical') {\n progressBarBackgroundStyle = {\n ...progressBarBackgroundStyle,\n left: (width - customStyles.separatorStrokeWidth) / 2,\n top: height / (2 * stepCount),\n bottom: height / (2 * stepCount),\n width:\n customStyles.separatorStrokeUnfinishedWidth === 0\n ? customStyles.separatorStrokeWidth\n : customStyles.separatorStrokeUnfinishedWidth,\n };\n } else {\n progressBarBackgroundStyle = {\n ...progressBarBackgroundStyle,\n top: (height - customStyles.separatorStrokeWidth) / 2,\n left: width / (2 * stepCount),\n right: width / (2 * stepCount),\n height:\n customStyles.separatorStrokeUnfinishedWidth === 0\n ? customStyles.separatorStrokeWidth\n : customStyles.separatorStrokeUnfinishedWidth,\n };\n }\n return (\n {\n if (direction === 'vertical') {\n setProgressBarSize(event.nativeEvent.layout.height);\n } else {\n setProgressBarSize(event.nativeEvent.layout.width);\n }\n }}\n style={progressBarBackgroundStyle}\n />\n );\n };\n\n const renderProgressBar = () => {\n let progressBarStyle: any = {\n backgroundColor: customStyles.separatorFinishedColor,\n position: 'absolute',\n };\n if (direction === 'vertical') {\n progressBarStyle = {\n ...progressBarStyle,\n left: (width - customStyles.separatorStrokeWidth) / 2,\n top: height / (2 * stepCount),\n bottom: height / (2 * stepCount),\n width:\n customStyles.separatorStrokeFinishedWidth === 0\n ? customStyles.separatorStrokeWidth\n : customStyles.separatorStrokeFinishedWidth,\n height: progressAnim,\n };\n } else {\n progressBarStyle = {\n ...progressBarStyle,\n top: (height - customStyles.separatorStrokeWidth) / 2,\n left: width / (2 * stepCount),\n right: width / (2 * stepCount),\n height:\n customStyles.separatorStrokeFinishedWidth === 0\n ? customStyles.separatorStrokeWidth\n : customStyles.separatorStrokeFinishedWidth,\n width: progressAnim,\n };\n }\n return ;\n };\n\n const renderStepIndicator = () => {\n let steps = [];\n for (let position = 0; position < stepCount; position++) {\n steps.push(\n stepPressed(position)}\n >\n \n {renderStep(position)}\n \n \n );\n }\n return (\n {\n setWidth(event.nativeEvent.layout.width);\n setHeight(event.nativeEvent.layout.height);\n }}\n style={[\n styles.stepIndicatorContainer,\n direction === 'vertical'\n ? {\n flexDirection: 'column',\n width: customStyles.currentStepIndicatorSize,\n }\n : {\n flexDirection: 'row',\n height: customStyles.currentStepIndicatorSize,\n },\n ]}\n >\n {steps}\n \n );\n };\n\n const renderStepLabels = () => {\n if (!labels || labels.length === 0) {\n return;\n }\n var labelViews = labels.map((label, index) => {\n const selectedStepLabelStyle =\n index === currentPosition\n ? { color: customStyles.currentStepLabelColor }\n : { color: customStyles.labelColor };\n return (\n stepPressed(index)}\n >\n \n {renderLabel ? (\n renderLabel({\n position: index,\n stepStatus: getStepStatus(index),\n label,\n currentPosition,\n })\n ) : (\n \n {label}\n \n )}\n \n \n );\n });\n\n return (\n \n {labelViews}\n \n );\n };\n\n const renderStep = (position: number) => {\n let stepStyle;\n let indicatorLabelStyle: TextStyle = {};\n switch (getStepStatus(position)) {\n case STEP_STATUS.CURRENT: {\n stepStyle = {\n backgroundColor: customStyles.stepIndicatorCurrentColor,\n borderWidth: customStyles.currentStepStrokeWidth,\n borderColor: customStyles.stepStrokeCurrentColor,\n height: sizeAnim,\n width: sizeAnim,\n borderRadius: borderRadiusAnim,\n overflow: 'hidden',\n };\n indicatorLabelStyle = {\n overflow: 'hidden',\n fontSize: customStyles.currentStepIndicatorLabelFontSize,\n color: customStyles.stepIndicatorLabelCurrentColor,\n };\n\n break;\n }\n case STEP_STATUS.FINISHED: {\n stepStyle = {\n backgroundColor: customStyles.stepIndicatorFinishedColor,\n borderWidth: customStyles.stepStrokeWidth,\n borderColor: customStyles.stepStrokeFinishedColor,\n height: staleSizeAnim,\n width: staleSizeAnim,\n borderRadius: customStyles.stepIndicatorSize / 2,\n overflow: 'hidden',\n };\n indicatorLabelStyle = {\n overflow: 'hidden',\n fontSize: customStyles.stepIndicatorLabelFontSize,\n color: customStyles.stepIndicatorLabelFinishedColor,\n };\n break;\n }\n\n case STEP_STATUS.UNFINISHED: {\n stepStyle = {\n backgroundColor: customStyles.stepIndicatorUnFinishedColor,\n borderWidth: customStyles.stepStrokeWidth,\n borderColor: customStyles.stepStrokeUnFinishedColor,\n height: staleSizeAnim,\n width: staleSizeAnim,\n borderRadius: customStyles.stepIndicatorSize / 2,\n overflow: 'hidden',\n };\n indicatorLabelStyle = {\n overflow: 'hidden',\n fontSize: customStyles.stepIndicatorLabelFontSize,\n color: customStyles.stepIndicatorLabelUnFinishedColor,\n };\n break;\n }\n default:\n }\n\n return (\n \n {renderCustomStepIndicator ? (\n renderCustomStepIndicator({\n position,\n stepStatus: getStepStatus(position),\n })\n ) : (\n {`${position + 1}`}\n )}\n \n );\n };\n\n const getStepStatus = (stepPosition: number) => {\n if (stepPosition === currentPosition) {\n return STEP_STATUS.CURRENT;\n } else if (stepPosition < currentPosition) {\n return STEP_STATUS.FINISHED;\n } else {\n return STEP_STATUS.UNFINISHED;\n }\n };\n\n const onCurrentPositionChanged = (position: number) => {\n if (position > stepCount - 1) {\n position = stepCount - 1;\n }\n const animateToPosition = (progressBarSize / (stepCount - 1)) * position;\n sizeAnim.setValue(customStyles.stepIndicatorSize);\n staleSizeAnim.setValue(customStyles.stepIndicatorSize);\n borderRadiusAnim.setValue(customStyles.stepIndicatorSize / 2);\n Animated.sequence([\n Animated.timing(progressAnim, {\n toValue: isNaN(animateToPosition) ? 0 : animateToPosition,\n duration: 200,\n useNativeDriver: false,\n }),\n Animated.parallel([\n Animated.timing(sizeAnim, {\n toValue: customStyles.currentStepIndicatorSize,\n duration: 100,\n useNativeDriver: false,\n }),\n Animated.timing(borderRadiusAnim, {\n toValue: customStyles.currentStepIndicatorSize / 2,\n duration: 100,\n useNativeDriver: false,\n }),\n ]),\n ]).start();\n };\n\n return (\n \n {width !== 0 && (\n \n {renderProgressBarBackground()}\n {renderProgressBar()}\n \n )}\n {renderStepIndicator()}\n {labels && renderStepLabels()}\n \n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: 'rgba(1,0,0,0)',\n },\n stepIndicatorContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-around',\n backgroundColor: 'rgba(1,0,0,0)',\n },\n stepLabelsContainer: {\n justifyContent: 'space-around',\n },\n step: {\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 2,\n },\n stepContainer: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n stepLabel: {\n fontSize: 12,\n textAlign: 'center',\n fontWeight: '500',\n },\n stepLabelItem: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nexport default React.memo(StepIndicator);\n","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar RootTagContext = /*#__PURE__*/React.createContext(null);\nexport default function AppContainer(props) {\n var children = props.children,\n WrapperComponent = props.WrapperComponent;\n var innerView = /*#__PURE__*/React.createElement(View, {\n children: children,\n key: 1,\n pointerEvents: \"box-none\",\n style: styles.appContainer\n });\n\n if (WrapperComponent) {\n innerView = /*#__PURE__*/React.createElement(WrapperComponent, null, innerView);\n }\n\n return /*#__PURE__*/React.createElement(RootTagContext.Provider, {\n value: props.rootTag\n }, /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"box-none\",\n style: styles.appContainer\n }, innerView));\n}\nvar styles = StyleSheet.create({\n appContainer: {\n flex: 1\n }\n});","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport invariant from 'fbjs/lib/invariant';\nimport unmountComponentAtNode from '../unmountComponentAtNode';\nimport renderApplication, { getApplication as _getApplication } from './renderApplication';\nvar emptyObject = {};\nvar runnables = {};\n\nvar componentProviderInstrumentationHook = component => component();\n\nvar wrapperComponentProvider;\n/**\n * `AppRegistry` is the JS entry point to running all React Native apps.\n */\n\nexport default class AppRegistry {\n static getAppKeys() {\n return Object.keys(runnables);\n }\n\n static getApplication(appKey, appParameters) {\n invariant(runnables[appKey] && runnables[appKey].getApplication, \"Application \" + appKey + \" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n return runnables[appKey].getApplication(appParameters);\n }\n\n static registerComponent(appKey, componentProvider) {\n runnables[appKey] = {\n getApplication: appParameters => _getApplication(componentProviderInstrumentationHook(componentProvider), appParameters ? appParameters.initialProps : emptyObject, wrapperComponentProvider && wrapperComponentProvider(appParameters)),\n run: appParameters => renderApplication(componentProviderInstrumentationHook(componentProvider), wrapperComponentProvider && wrapperComponentProvider(appParameters), appParameters.callback, {\n hydrate: appParameters.hydrate || false,\n initialProps: appParameters.initialProps || emptyObject,\n rootTag: appParameters.rootTag\n })\n };\n return appKey;\n }\n\n static registerConfig(config) {\n config.forEach(_ref => {\n var appKey = _ref.appKey,\n component = _ref.component,\n run = _ref.run;\n\n if (run) {\n AppRegistry.registerRunnable(appKey, run);\n } else {\n invariant(component, 'No component provider passed in');\n AppRegistry.registerComponent(appKey, component);\n }\n });\n } // TODO: fix style sheet creation when using this method\n\n\n static registerRunnable(appKey, run) {\n runnables[appKey] = {\n run\n };\n return appKey;\n }\n\n static runApplication(appKey, appParameters) {\n var isDevelopment = process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test';\n\n if (isDevelopment) {\n var params = _objectSpread({}, appParameters);\n\n params.rootTag = \"#\" + params.rootTag.id;\n console.log(\"Running application \\\"\" + appKey + \"\\\" with appParams:\\n\", params, \"\\nDevelopment-level warnings: \" + (isDevelopment ? 'ON' : 'OFF') + \".\" + (\"\\nPerformance optimizations: \" + (isDevelopment ? 'OFF' : 'ON') + \".\"));\n }\n\n invariant(runnables[appKey] && runnables[appKey].run, \"Application \\\"\" + appKey + \"\\\" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n runnables[appKey].run(appParameters);\n }\n\n static setComponentProviderInstrumentationHook(hook) {\n componentProviderInstrumentationHook = hook;\n }\n\n static setWrapperComponentProvider(provider) {\n wrapperComponentProvider = provider;\n }\n\n static unmountApplicationComponentAtRootTag(rootTag) {\n unmountComponentAtNode(rootTag);\n }\n\n}","import _extends from \"@babel/runtime/helpers/extends\";\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport AppContainer from './AppContainer';\nimport invariant from 'fbjs/lib/invariant';\nimport render, { hydrate } from '../render';\nimport StyleSheet from '../StyleSheet';\nimport React from 'react';\nexport default function renderApplication(RootComponent, WrapperComponent, callback, options) {\n var shouldHydrate = options.hydrate,\n initialProps = options.initialProps,\n rootTag = options.rootTag;\n var renderFn = shouldHydrate ? hydrate : render;\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n renderFn( /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: rootTag\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)), rootTag, callback);\n}\nexport function getApplication(RootComponent, initialProps, WrapperComponent) {\n var element = /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: {}\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)); // Don't escape CSS text\n\n var getStyleElement = props => {\n var sheet = StyleSheet.getSheet();\n return /*#__PURE__*/React.createElement(\"style\", _extends({}, props, {\n dangerouslySetInnerHTML: {\n __html: sheet.textContent\n },\n id: sheet.id\n }));\n };\n\n return {\n element,\n getStyleElement\n };\n}","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { getDefaultHeaderHeight, Header, HeaderBackButton, HeaderTitle } from '@react-navigation/elements';\nimport * as React from 'react';\nimport { Platform, StyleSheet } from 'react-native';\nimport memoize from '../../utils/memoize';\nexport default function HeaderSegment(props) {\n const [leftLabelLayout, setLeftLabelLayout] = React.useState(undefined);\n const [titleLayout, setTitleLayout] = React.useState(undefined);\n const handleTitleLayout = e => {\n const {\n height,\n width\n } = e.nativeEvent.layout;\n setTitleLayout(titleLayout => {\n if (titleLayout && height === titleLayout.height && width === titleLayout.width) {\n return titleLayout;\n }\n return {\n height,\n width\n };\n });\n };\n const handleLeftLabelLayout = e => {\n const {\n height,\n width\n } = e.nativeEvent.layout;\n if (leftLabelLayout && height === leftLabelLayout.height && width === leftLabelLayout.width) {\n return;\n }\n setLeftLabelLayout({\n height,\n width\n });\n };\n const getInterpolatedStyle = memoize((styleInterpolator, layout, current, next, titleLayout, leftLabelLayout, headerHeight) => styleInterpolator({\n current: {\n progress: current\n },\n next: next && {\n progress: next\n },\n layouts: {\n header: {\n height: headerHeight,\n width: layout.width\n },\n screen: layout,\n title: titleLayout,\n leftLabel: leftLabelLayout\n }\n }));\n const {\n progress,\n layout,\n modal,\n onGoBack,\n headerTitle: title,\n headerLeft: left = onGoBack ? props => /*#__PURE__*/React.createElement(HeaderBackButton, props) : undefined,\n headerRight: right,\n headerBackImage,\n headerBackTitle,\n headerBackTitleVisible = Platform.OS === 'ios',\n headerTruncatedBackTitle,\n headerBackAccessibilityLabel,\n headerBackTestID,\n headerBackAllowFontScaling,\n headerBackTitleStyle,\n headerTitleContainerStyle,\n headerLeftContainerStyle,\n headerRightContainerStyle,\n headerBackgroundContainerStyle,\n headerStyle: customHeaderStyle,\n headerStatusBarHeight,\n styleInterpolator,\n ...rest\n } = props;\n const defaultHeight = getDefaultHeaderHeight(layout, modal, headerStatusBarHeight);\n const {\n height = defaultHeight\n } = StyleSheet.flatten(customHeaderStyle || {});\n const {\n titleStyle,\n leftButtonStyle,\n leftLabelStyle,\n rightButtonStyle,\n backgroundStyle\n } = getInterpolatedStyle(styleInterpolator, layout, progress.current, progress.next, titleLayout, headerBackTitle ? leftLabelLayout : undefined, typeof height === 'number' ? height : defaultHeight);\n const headerLeft = left ? props => left({\n ...props,\n backImage: headerBackImage,\n accessibilityLabel: headerBackAccessibilityLabel,\n testID: headerBackTestID,\n allowFontScaling: headerBackAllowFontScaling,\n onPress: onGoBack,\n label: headerBackTitle,\n truncatedLabel: headerTruncatedBackTitle,\n labelStyle: [leftLabelStyle, headerBackTitleStyle],\n onLabelLayout: handleLeftLabelLayout,\n screenLayout: layout,\n titleLayout,\n canGoBack: Boolean(onGoBack)\n }) : undefined;\n const headerRight = right ? props => right({\n ...props,\n canGoBack: Boolean(onGoBack)\n }) : undefined;\n const headerTitle = typeof title !== 'function' ? props => /*#__PURE__*/React.createElement(HeaderTitle, _extends({}, props, {\n onLayout: handleTitleLayout\n })) : props => title({\n ...props,\n onLayout: handleTitleLayout\n });\n return /*#__PURE__*/React.createElement(Header, _extends({\n modal: modal,\n layout: layout,\n headerTitle: headerTitle,\n headerLeft: headerLeft,\n headerLeftLabelVisible: headerBackTitleVisible,\n headerRight: headerRight,\n headerTitleContainerStyle: [titleStyle, headerTitleContainerStyle],\n headerLeftContainerStyle: [leftButtonStyle, headerLeftContainerStyle],\n headerRightContainerStyle: [rightButtonStyle, headerRightContainerStyle],\n headerBackgroundContainerStyle: [backgroundStyle, headerBackgroundContainerStyle],\n headerStyle: customHeaderStyle,\n headerStatusBarHeight: headerStatusBarHeight\n }, rest));\n}\n//# sourceMappingURL=HeaderSegment.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { getHeaderTitle, HeaderShownContext } from '@react-navigation/elements';\nimport { StackActions } from '@react-navigation/native';\nimport * as React from 'react';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport debounce from '../../utils/debounce';\nimport ModalPresentationContext from '../../utils/ModalPresentationContext';\nimport HeaderSegment from './HeaderSegment';\nexport default /*#__PURE__*/React.memo(function Header(_ref) {\n let {\n back,\n layout,\n progress,\n options,\n route,\n navigation,\n styleInterpolator\n } = _ref;\n const insets = useSafeAreaInsets();\n let previousTitle;\n\n // The label for the left back button shows the title of the previous screen\n // If a custom label is specified, we use it, otherwise use previous screen's title\n if (options.headerBackTitle !== undefined) {\n previousTitle = options.headerBackTitle;\n } else if (back) {\n previousTitle = back.title;\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const goBack = React.useCallback(debounce(() => {\n if (navigation.isFocused() && navigation.canGoBack()) {\n navigation.dispatch({\n ...StackActions.pop(),\n source: route.key\n });\n }\n }, 50), [navigation, route.key]);\n const isModal = React.useContext(ModalPresentationContext);\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n const statusBarHeight = options.headerStatusBarHeight !== undefined ? options.headerStatusBarHeight : isModal || isParentHeaderShown ? 0 : insets.top;\n return /*#__PURE__*/React.createElement(HeaderSegment, _extends({}, options, {\n title: getHeaderTitle(options, route.name),\n progress: progress,\n layout: layout,\n modal: isModal,\n headerBackTitle: options.headerBackTitle !== undefined ? options.headerBackTitle : previousTitle,\n headerStatusBarHeight: statusBarHeight,\n onGoBack: back ? goBack : undefined,\n styleInterpolator: styleInterpolator\n }));\n});\n//# sourceMappingURL=Header.js.map","export default function debounce(func, duration) {\n let timeout;\n return function () {\n if (!timeout) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // eslint-disable-next-line babel/no-invalid-this\n func.apply(this, args);\n timeout = setTimeout(() => {\n timeout = undefined;\n }, duration);\n }\n };\n}\n//# sourceMappingURL=debounce.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\nvar TouchHistoryMath = {\n /**\n * This code is optimized and not intended to look beautiful. This allows\n * computing of touch centroids that have moved after `touchesChangedAfter`\n * timeStamp. You can compute the current centroid involving all touches\n * moves after `touchesChangedAfter`, or you can compute the previous\n * centroid of all touches that were moved after `touchesChangedAfter`.\n *\n * @param {TouchHistoryMath} touchHistory Standard Responder touch track\n * data.\n * @param {number} touchesChangedAfter timeStamp after which moved touches\n * are considered \"actively moving\" - not just \"active\".\n * @param {boolean} isXAxis Consider `x` dimension vs. `y` dimension.\n * @param {boolean} ofCurrent Compute current centroid for actively moving\n * touches vs. previous centroid of now actively moving touches.\n * @return {number} value of centroid in specified dimension.\n */\n centroidDimension: function centroidDimension(touchHistory, touchesChangedAfter, isXAxis, ofCurrent) {\n var touchBank = touchHistory.touchBank;\n var total = 0;\n var count = 0;\n var oneTouchData = touchHistory.numberActiveTouches === 1 ? touchHistory.touchBank[touchHistory.indexOfSingleActiveTouch] : null;\n\n if (oneTouchData !== null) {\n if (oneTouchData.touchActive && oneTouchData.currentTimeStamp > touchesChangedAfter) {\n total += ofCurrent && isXAxis ? oneTouchData.currentPageX : ofCurrent && !isXAxis ? oneTouchData.currentPageY : !ofCurrent && isXAxis ? oneTouchData.previousPageX : oneTouchData.previousPageY;\n count = 1;\n }\n } else {\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrack = touchBank[i];\n\n if (touchTrack !== null && touchTrack !== undefined && touchTrack.touchActive && touchTrack.currentTimeStamp >= touchesChangedAfter) {\n var toAdd = void 0; // Yuck, program temporarily in invalid state.\n\n if (ofCurrent && isXAxis) {\n toAdd = touchTrack.currentPageX;\n } else if (ofCurrent && !isXAxis) {\n toAdd = touchTrack.currentPageY;\n } else if (!ofCurrent && isXAxis) {\n toAdd = touchTrack.previousPageX;\n } else {\n toAdd = touchTrack.previousPageY;\n }\n\n total += toAdd;\n count++;\n }\n }\n }\n\n return count > 0 ? total / count : TouchHistoryMath.noCentroid;\n },\n currentCentroidXOfTouchesChangedAfter: function currentCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, true, // isXAxis\n true // ofCurrent\n );\n },\n currentCentroidYOfTouchesChangedAfter: function currentCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, false, // isXAxis\n true // ofCurrent\n );\n },\n previousCentroidXOfTouchesChangedAfter: function previousCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, true, // isXAxis\n false // ofCurrent\n );\n },\n previousCentroidYOfTouchesChangedAfter: function previousCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, false, // isXAxis\n false // ofCurrent\n );\n },\n currentCentroidX: function currentCentroidX(touchHistory) {\n return TouchHistoryMath.centroidDimension(touchHistory, 0, // touchesChangedAfter\n true, // isXAxis\n true // ofCurrent\n );\n },\n currentCentroidY: function currentCentroidY(touchHistory) {\n return TouchHistoryMath.centroidDimension(touchHistory, 0, // touchesChangedAfter\n false, // isXAxis\n true // ofCurrent\n );\n },\n noCentroid: -1\n};\nexport default TouchHistoryMath;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\nimport TouchHistoryMath from '../TouchHistoryMath';\nvar currentCentroidXOfTouchesChangedAfter = TouchHistoryMath.currentCentroidXOfTouchesChangedAfter;\nvar currentCentroidYOfTouchesChangedAfter = TouchHistoryMath.currentCentroidYOfTouchesChangedAfter;\nvar previousCentroidXOfTouchesChangedAfter = TouchHistoryMath.previousCentroidXOfTouchesChangedAfter;\nvar previousCentroidYOfTouchesChangedAfter = TouchHistoryMath.previousCentroidYOfTouchesChangedAfter;\nvar currentCentroidX = TouchHistoryMath.currentCentroidX;\nvar currentCentroidY = TouchHistoryMath.currentCentroidY;\n/**\n * `PanResponder` reconciles several touches into a single gesture. It makes\n * single-touch gestures resilient to extra touches, and can be used to\n * recognize simple multi-touch gestures.\n *\n * By default, `PanResponder` holds an `InteractionManager` handle to block\n * long-running JS events from interrupting active gestures.\n *\n * It provides a predictable wrapper of the responder handlers provided by the\n * [gesture responder system](docs/gesture-responder-system.html).\n * For each handler, it provides a new `gestureState` object alongside the\n * native event object:\n *\n * ```\n * onPanResponderMove: (event, gestureState) => {}\n * ```\n *\n * A native event is a synthetic touch event with the following form:\n *\n * - `nativeEvent`\n * + `changedTouches` - Array of all touch events that have changed since the last event\n * + `identifier` - The ID of the touch\n * + `locationX` - The X position of the touch, relative to the element\n * + `locationY` - The Y position of the touch, relative to the element\n * + `pageX` - The X position of the touch, relative to the root element\n * + `pageY` - The Y position of the touch, relative to the root element\n * + `target` - The node id of the element receiving the touch event\n * + `timestamp` - A time identifier for the touch, useful for velocity calculation\n * + `touches` - Array of all current touches on the screen\n *\n * A `gestureState` object has the following:\n *\n * - `stateID` - ID of the gestureState- persisted as long as there at least\n * one touch on screen\n * - `moveX` - the latest screen coordinates of the recently-moved touch\n * - `moveY` - the latest screen coordinates of the recently-moved touch\n * - `x0` - the screen coordinates of the responder grant\n * - `y0` - the screen coordinates of the responder grant\n * - `dx` - accumulated distance of the gesture since the touch started\n * - `dy` - accumulated distance of the gesture since the touch started\n * - `vx` - current velocity of the gesture\n * - `vy` - current velocity of the gesture\n * - `numberActiveTouches` - Number of touches currently on screen\n *\n * ### Basic Usage\n *\n * ```\n * componentWillMount: function() {\n * this._panResponder = PanResponder.create({\n * // Ask to be the responder:\n * onStartShouldSetPanResponder: (evt, gestureState) => true,\n * onStartShouldSetPanResponderCapture: (evt, gestureState) => true,\n * onMoveShouldSetPanResponder: (evt, gestureState) => true,\n * onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,\n *\n * onPanResponderGrant: (evt, gestureState) => {\n * // The gesture has started. Show visual feedback so the user knows\n * // what is happening!\n *\n * // gestureState.d{x,y} will be set to zero now\n * },\n * onPanResponderMove: (evt, gestureState) => {\n * // The most recent move distance is gestureState.move{X,Y}\n *\n * // The accumulated gesture distance since becoming responder is\n * // gestureState.d{x,y}\n * },\n * onPanResponderTerminationRequest: (evt, gestureState) => true,\n * onPanResponderRelease: (evt, gestureState) => {\n * // The user has released all touches while this view is the\n * // responder. This typically means a gesture has succeeded\n * },\n * onPanResponderTerminate: (evt, gestureState) => {\n * // Another component has become the responder, so this gesture\n * // should be cancelled\n * },\n * onShouldBlockNativeResponder: (evt, gestureState) => {\n * // Returns whether this component should block native components from becoming the JS\n * // responder. Returns true by default. Is currently only supported on android.\n * return true;\n * },\n * });\n * },\n *\n * render: function() {\n * return (\n * \n * );\n * },\n *\n * ```\n *\n * ### Working Example\n *\n * To see it in action, try the\n * [PanResponder example in RNTester](https://github.com/facebook/react-native/blob/master/RNTester/js/PanResponderExample.js)\n */\n\nvar PanResponder = {\n /**\n *\n * A graphical explanation of the touch data flow:\n *\n * +----------------------------+ +--------------------------------+\n * | ResponderTouchHistoryStore | |TouchHistoryMath |\n * +----------------------------+ +----------+---------------------+\n * |Global store of touchHistory| |Allocation-less math util |\n * |including activeness, start | |on touch history (centroids |\n * |position, prev/cur position.| |and multitouch movement etc) |\n * | | | |\n * +----^-----------------------+ +----^---------------------------+\n * | |\n * | (records relevant history |\n * | of touches relevant for |\n * | implementing higher level |\n * | gestures) |\n * | |\n * +----+-----------------------+ +----|---------------------------+\n * | ResponderEventPlugin | | | Your App/Component |\n * +----------------------------+ +----|---------------------------+\n * |Negotiates which view gets | Low level | | High level |\n * |onResponderMove events. | events w/ | +-+-------+ events w/ |\n * |Also records history into | touchHistory| | Pan | multitouch + |\n * |ResponderTouchHistoryStore. +---------------->Responder+-----> accumulative|\n * +----------------------------+ attached to | | | distance and |\n * each event | +---------+ velocity. |\n * | |\n * | |\n * +--------------------------------+\n *\n *\n *\n * Gesture that calculates cumulative movement over time in a way that just\n * \"does the right thing\" for multiple touches. The \"right thing\" is very\n * nuanced. When moving two touches in opposite directions, the cumulative\n * distance is zero in each dimension. When two touches move in parallel five\n * pixels in the same direction, the cumulative distance is five, not ten. If\n * two touches start, one moves five in a direction, then stops and the other\n * touch moves fives in the same direction, the cumulative distance is ten.\n *\n * This logic requires a kind of processing of time \"clusters\" of touch events\n * so that two touch moves that essentially occur in parallel but move every\n * other frame respectively, are considered part of the same movement.\n *\n * Explanation of some of the non-obvious fields:\n *\n * - moveX/moveY: If no move event has been observed, then `(moveX, moveY)` is\n * invalid. If a move event has been observed, `(moveX, moveY)` is the\n * centroid of the most recently moved \"cluster\" of active touches.\n * (Currently all move have the same timeStamp, but later we should add some\n * threshold for what is considered to be \"moving\"). If a palm is\n * accidentally counted as a touch, but a finger is moving greatly, the palm\n * will move slightly, but we only want to count the single moving touch.\n * - x0/y0: Centroid location (non-cumulative) at the time of becoming\n * responder.\n * - dx/dy: Cumulative touch distance - not the same thing as sum of each touch\n * distance. Accounts for touch moves that are clustered together in time,\n * moving the same direction. Only valid when currently responder (otherwise,\n * it only represents the drag distance below the threshold).\n * - vx/vy: Velocity.\n */\n _initializeGestureState(gestureState) {\n gestureState.moveX = 0;\n gestureState.moveY = 0;\n gestureState.x0 = 0;\n gestureState.y0 = 0;\n gestureState.dx = 0;\n gestureState.dy = 0;\n gestureState.vx = 0;\n gestureState.vy = 0;\n gestureState.numberActiveTouches = 0; // All `gestureState` accounts for timeStamps up until:\n\n gestureState._accountsForMovesUpTo = 0;\n },\n\n /**\n * This is nuanced and is necessary. It is incorrect to continuously take all\n * active *and* recently moved touches, find the centroid, and track how that\n * result changes over time. Instead, we must take all recently moved\n * touches, and calculate how the centroid has changed just for those\n * recently moved touches, and append that change to an accumulator. This is\n * to (at least) handle the case where the user is moving three fingers, and\n * then one of the fingers stops but the other two continue.\n *\n * This is very different than taking all of the recently moved touches and\n * storing their centroid as `dx/dy`. For correctness, we must *accumulate\n * changes* in the centroid of recently moved touches.\n *\n * There is also some nuance with how we handle multiple moved touches in a\n * single event. With the way `ReactNativeEventEmitter` dispatches touches as\n * individual events, multiple touches generate two 'move' events, each of\n * them triggering `onResponderMove`. But with the way `PanResponder` works,\n * all of the gesture inference is performed on the first dispatch, since it\n * looks at all of the touches (even the ones for which there hasn't been a\n * native dispatch yet). Therefore, `PanResponder` does not call\n * `onResponderMove` passed the first dispatch. This diverges from the\n * typical responder callback pattern (without using `PanResponder`), but\n * avoids more dispatches than necessary.\n */\n _updateGestureStateOnMove(gestureState, touchHistory) {\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n gestureState.moveX = currentCentroidXOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);\n gestureState.moveY = currentCentroidYOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);\n var movedAfter = gestureState._accountsForMovesUpTo;\n var prevX = previousCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n var x = currentCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n var prevY = previousCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n var y = currentCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n var nextDX = gestureState.dx + (x - prevX);\n var nextDY = gestureState.dy + (y - prevY); // TODO: This must be filtered intelligently.\n\n var dt = touchHistory.mostRecentTimeStamp - gestureState._accountsForMovesUpTo;\n gestureState.vx = (nextDX - gestureState.dx) / dt;\n gestureState.vy = (nextDY - gestureState.dy) / dt;\n gestureState.dx = nextDX;\n gestureState.dy = nextDY;\n gestureState._accountsForMovesUpTo = touchHistory.mostRecentTimeStamp;\n },\n\n /**\n * @param {object} config Enhanced versions of all of the responder callbacks\n * that provide not only the typical `ResponderSyntheticEvent`, but also the\n * `PanResponder` gesture state. Simply replace the word `Responder` with\n * `PanResponder` in each of the typical `onResponder*` callbacks. For\n * example, the `config` object would look like:\n *\n * - `onMoveShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onMoveShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onPanResponderReject: (e, gestureState) => {...}`\n * - `onPanResponderGrant: (e, gestureState) => {...}`\n * - `onPanResponderStart: (e, gestureState) => {...}`\n * - `onPanResponderEnd: (e, gestureState) => {...}`\n * - `onPanResponderRelease: (e, gestureState) => {...}`\n * - `onPanResponderMove: (e, gestureState) => {...}`\n * - `onPanResponderTerminate: (e, gestureState) => {...}`\n * - `onPanResponderTerminationRequest: (e, gestureState) => {...}`\n * - `onShouldBlockNativeResponder: (e, gestureState) => {...}`\n *\n * In general, for events that have capture equivalents, we update the\n * gestureState once in the capture phase and can use it in the bubble phase\n * as well.\n *\n * Be careful with onStartShould* callbacks. They only reflect updated\n * `gestureState` for start/end events that bubble/capture to the Node.\n * Once the node is the responder, you can rely on every start/end event\n * being processed by the gesture and `gestureState` being updated\n * accordingly. (numberActiveTouches) may not be totally accurate unless you\n * are the responder.\n */\n create(config) {\n var interactionState = {\n handle: null,\n shouldCancelClick: false,\n timeout: null\n };\n var gestureState = {\n // Useful for debugging\n stateID: Math.random(),\n moveX: 0,\n moveY: 0,\n x0: 0,\n y0: 0,\n dx: 0,\n dy: 0,\n vx: 0,\n vy: 0,\n numberActiveTouches: 0,\n _accountsForMovesUpTo: 0\n };\n var panHandlers = {\n onStartShouldSetResponder(event) {\n return config.onStartShouldSetPanResponder == null ? false : config.onStartShouldSetPanResponder(event, gestureState);\n },\n\n onMoveShouldSetResponder(event) {\n return config.onMoveShouldSetPanResponder == null ? false : config.onMoveShouldSetPanResponder(event, gestureState);\n },\n\n onStartShouldSetResponderCapture(event) {\n // TODO: Actually, we should reinitialize the state any time\n // touches.length increases from 0 active to > 0 active.\n if (event.nativeEvent.touches.length === 1) {\n PanResponder._initializeGestureState(gestureState);\n }\n\n gestureState.numberActiveTouches = event.touchHistory.numberActiveTouches;\n return config.onStartShouldSetPanResponderCapture != null ? config.onStartShouldSetPanResponderCapture(event, gestureState) : false;\n },\n\n onMoveShouldSetResponderCapture(event) {\n var touchHistory = event.touchHistory; // Responder system incorrectly dispatches should* to current responder\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n\n if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n return false;\n }\n\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n\n return config.onMoveShouldSetPanResponderCapture ? config.onMoveShouldSetPanResponderCapture(event, gestureState) : false;\n },\n\n onResponderGrant(event) {\n if (!interactionState.handle) {\n interactionState.handle = InteractionManager.createInteractionHandle();\n }\n\n if (interactionState.timeout) {\n clearInteractionTimeout(interactionState);\n }\n\n interactionState.shouldCancelClick = true;\n gestureState.x0 = currentCentroidX(event.touchHistory);\n gestureState.y0 = currentCentroidY(event.touchHistory);\n gestureState.dx = 0;\n gestureState.dy = 0;\n\n if (config.onPanResponderGrant) {\n config.onPanResponderGrant(event, gestureState);\n } // TODO: t7467124 investigate if this can be removed\n\n\n return config.onShouldBlockNativeResponder == null ? true : config.onShouldBlockNativeResponder(event, gestureState);\n },\n\n onResponderReject(event) {\n clearInteractionHandle(interactionState, config.onPanResponderReject, event, gestureState);\n },\n\n onResponderRelease(event) {\n clearInteractionHandle(interactionState, config.onPanResponderRelease, event, gestureState);\n setInteractionTimeout(interactionState);\n\n PanResponder._initializeGestureState(gestureState);\n },\n\n onResponderStart(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n\n if (config.onPanResponderStart) {\n config.onPanResponderStart(event, gestureState);\n }\n },\n\n onResponderMove(event) {\n var touchHistory = event.touchHistory; // Guard against the dispatch of two touch moves when there are two\n // simultaneously changed touches.\n\n if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n return;\n } // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n\n\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n\n if (config.onPanResponderMove) {\n config.onPanResponderMove(event, gestureState);\n }\n },\n\n onResponderEnd(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n clearInteractionHandle(interactionState, config.onPanResponderEnd, event, gestureState);\n },\n\n onResponderTerminate(event) {\n clearInteractionHandle(interactionState, config.onPanResponderTerminate, event, gestureState);\n setInteractionTimeout(interactionState);\n\n PanResponder._initializeGestureState(gestureState);\n },\n\n onResponderTerminationRequest(event) {\n return config.onPanResponderTerminationRequest == null ? true : config.onPanResponderTerminationRequest(event, gestureState);\n },\n\n // We do not want to trigger 'click' activated gestures or native behaviors\n // on any pan target that is under a mouse cursor when it is released.\n // Browsers will natively cancel 'click' events on a target if a non-mouse\n // active pointer moves.\n onClickCapture: event => {\n if (interactionState.shouldCancelClick === true) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n };\n return {\n panHandlers,\n\n getInteractionHandle() {\n return interactionState.handle;\n }\n\n };\n }\n\n};\n\nfunction clearInteractionHandle(interactionState, callback, event, gestureState) {\n if (interactionState.handle) {\n InteractionManager.clearInteractionHandle(interactionState.handle);\n interactionState.handle = null;\n }\n\n if (callback) {\n callback(event, gestureState);\n }\n}\n\nfunction clearInteractionTimeout(interactionState) {\n clearTimeout(interactionState.timeout);\n}\n\nfunction setInteractionTimeout(interactionState) {\n interactionState.timeout = setTimeout(() => {\n interactionState.shouldCancelClick = false;\n }, 250);\n}\n\nexport default PanResponder;","import PanResponder from '../../vendor/react-native/PanResponder';\nexport default PanResponder;","import * as React from 'react';\nimport type { PortalMethods } from './PortalHost';\n\ntype Props = {\n manager: PortalMethods;\n children: React.ReactNode;\n};\n\nexport default class PortalConsumer extends React.Component {\n async componentDidMount() {\n this.checkManager();\n\n // Delay updating to prevent React from going to infinite loop\n await Promise.resolve();\n\n this.key = this.props.manager.mount(this.props.children);\n }\n\n componentDidUpdate() {\n this.checkManager();\n\n this.props.manager.update(this.key, this.props.children);\n }\n\n componentWillUnmount() {\n this.checkManager();\n\n this.props.manager.unmount(this.key);\n }\n\n private key: any;\n\n private checkManager() {\n if (!this.props.manager) {\n throw new Error(\n 'Looks like you forgot to wrap your root component with `Provider` component from `react-native-paper`.\\n\\n' +\n \"Please read our getting-started guide and make sure you've followed all the required steps.\\n\\n\" +\n 'https://callstack.github.io/react-native-paper/getting-started.html'\n );\n }\n }\n\n render() {\n return null;\n }\n}\n","import * as React from 'react';\nimport PortalConsumer from './PortalConsumer';\nimport PortalHost, { PortalContext, PortalMethods } from './PortalHost';\nimport {\n Provider as SettingsProvider,\n Consumer as SettingsConsumer,\n} from '../../core/settings';\nimport { ThemeProvider, withTheme } from '../../core/theming';\n\nexport type Props = {\n /**\n * Content of the `Portal`.\n */\n children: React.ReactNode;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\n/**\n * Portal allows to render a component at a different place in the parent tree.\n * You can use it to render content which should appear above other elements, similar to `Modal`.\n * It requires a [`Portal.Host`](portal-host.html) component to be rendered somewhere in the parent tree.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Portal, Text } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * This is rendered at a different place\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nclass Portal extends React.Component {\n // @component ./PortalHost.tsx\n static Host = PortalHost;\n\n render() {\n const { children, theme } = this.props;\n\n return (\n \n {(settings) => (\n \n {(manager) => (\n \n \n {children}\n \n \n )}\n \n )}\n \n );\n }\n}\n\nexport default withTheme(Portal);\n","export default {\n get forceTouchAvailable() {\n return false;\n },\n};\n","import React, { PropsWithChildren } from 'react';\nimport { tagMessage } from '../utils';\nimport PlatformConstants from '../PlatformConstants';\nimport createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const forceTouchGestureHandlerProps = [\n 'minForce',\n 'maxForce',\n 'feedbackOnActivation',\n] as const;\n\n// implicit `children` prop has been removed in @types/react^18.0.0\nclass ForceTouchFallback extends React.Component> {\n static forceTouchAvailable = false;\n componentDidMount() {\n console.warn(\n tagMessage(\n 'ForceTouchGestureHandler is not available on this platform. Please use ForceTouchGestureHandler.forceTouchAvailable to conditionally render other components that would provide a fallback behavior specific to your usecase'\n )\n );\n }\n render() {\n return this.props.children;\n }\n}\n\nexport type ForceTouchGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n\n /**\n * The pressure of a touch.\n */\n force: number;\n};\n\nexport interface ForceTouchGestureConfig {\n /**\n *\n * A minimal pressure that is required before handler can activate. Should be a\n * value from range `[0.0, 1.0]`. Default is `0.2`.\n */\n minForce?: number;\n\n /**\n * A maximal pressure that could be applied for handler. If the pressure is\n * greater, handler fails. Should be a value from range `[0.0, 1.0]`.\n */\n maxForce?: number;\n\n /**\n * Boolean value defining if haptic feedback has to be performed on\n * activation.\n */\n feedbackOnActivation?: boolean;\n}\n\nexport interface ForceTouchGestureHandlerProps\n extends BaseGestureHandlerProps,\n ForceTouchGestureConfig {}\n\nexport type ForceTouchGestureHandler = typeof ForceTouchGestureHandler & {\n forceTouchAvailable: boolean;\n};\n\nexport const forceTouchHandlerName = 'ForceTouchGestureHandler';\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const ForceTouchGestureHandler = PlatformConstants?.forceTouchAvailable\n ? createHandler<\n ForceTouchGestureHandlerProps,\n ForceTouchGestureHandlerEventPayload\n >({\n name: forceTouchHandlerName,\n allowedProps: [\n ...baseGestureHandlerProps,\n ...forceTouchGestureHandlerProps,\n ] as const,\n config: {},\n })\n : ForceTouchFallback;\n\n(ForceTouchGestureHandler as ForceTouchGestureHandler).forceTouchAvailable =\n PlatformConstants?.forceTouchAvailable || false;\n","import AnimatedNode, { getCallID, setCallID } from './AnimatedNode';\nimport { adapt } from './AnimatedBlock';\nimport { val } from '../val';\nimport invariant from 'invariant';\n\nclass AnimatedCallFunc extends AnimatedNode {\n _previousCallID;\n _what;\n _args;\n _params;\n constructor(what, args, params) {\n invariant(\n what instanceof AnimatedNode,\n `Reanimated: AnimatedCallFunc 'what' argument should be of type AnimatedNode but got ${what}`\n );\n invariant(\n args.every((el) => el instanceof AnimatedNode),\n `Reanimated: every AnimatedCallFunc 'args' argument should be of type AnimatedNode but got ${args}`\n );\n invariant(\n params.every((el) => el instanceof AnimatedNode),\n `Reanimated: every AnimatedCallFunc 'params' argument should be of type AnimatedNode but got ${params}`\n );\n super(\n {\n type: 'callfunc',\n what,\n args,\n params,\n },\n [...args]\n );\n this._what = what;\n this._args = args;\n this._params = params;\n }\n\n toString() {\n return `AnimatedCallFunc, id: ${this.__nodeID}`;\n }\n\n beginContext() {\n this._previousCallID = getCallID();\n setCallID(getCallID() + '/' + this.__nodeID);\n\n this._params.forEach((param, index) => {\n param.beginContext(this._args[index], this._previousCallID);\n });\n }\n\n endContext() {\n this._params.forEach((param) => {\n param.endContext();\n });\n setCallID(this._previousCallID);\n }\n\n __onEvaluate() {\n this.beginContext();\n const value = val(this._what);\n this.endContext();\n return value;\n }\n}\n\nexport function createAnimatedCallFunc(proc, args, params) {\n return new AnimatedCallFunc(\n proc,\n args.map((p) => adapt(p)),\n params\n );\n}\n","import AnimatedNode from './AnimatedNode';\nimport { createAnimatedCallFunc } from './AnimatedCallFunc';\nimport { createAnimatedParam } from './AnimatedParam';\nimport { val } from '../val';\nimport invariant from 'invariant';\n\nclass AnimatedFunction extends AnimatedNode {\n _what;\n\n constructor(what, ...params) {\n invariant(\n what instanceof AnimatedNode,\n `Reanimated: AnimatedCallFunc 'what' argument should be of type AnimatedNode but got ${what}`\n );\n super(\n {\n type: 'func',\n what,\n },\n [what, ...params]\n );\n this._what = what;\n this.__attach();\n }\n\n __onEvaluate() {\n return val(this._what);\n }\n\n toString() {\n return `AnimatedFunction, id: ${this.__nodeID}`;\n }\n}\n\nexport function createAnimatedFunction(cb) {\n const params = new Array(cb.length);\n for (let i = 0; i < params.length; i++) {\n params[i] = createAnimatedParam();\n }\n // eslint-disable-next-line node/no-callback-literal\n const what = cb(...params);\n const func = new AnimatedFunction(what, ...params);\n return (...args) => {\n if (args.length !== params.length) {\n throw new Error(\n 'Parameter mismatch when calling reanimated function. Expected ' +\n params.length +\n ' parameters, got ' +\n args.length +\n '.'\n );\n }\n return createAnimatedCallFunc(func, args, params);\n };\n}\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"accessibilityActiveDescendant\", \"accessibilityAtomic\", \"accessibilityAutoComplete\", \"accessibilityBusy\", \"accessibilityChecked\", \"accessibilityColumnCount\", \"accessibilityColumnIndex\", \"accessibilityColumnSpan\", \"accessibilityControls\", \"accessibilityCurrent\", \"accessibilityDescribedBy\", \"accessibilityDetails\", \"accessibilityDisabled\", \"accessibilityErrorMessage\", \"accessibilityExpanded\", \"accessibilityFlowTo\", \"accessibilityHasPopup\", \"accessibilityHidden\", \"accessibilityInvalid\", \"accessibilityKeyShortcuts\", \"accessibilityLabel\", \"accessibilityLabelledBy\", \"accessibilityLevel\", \"accessibilityLiveRegion\", \"accessibilityModal\", \"accessibilityMultiline\", \"accessibilityMultiSelectable\", \"accessibilityOrientation\", \"accessibilityOwns\", \"accessibilityPlaceholder\", \"accessibilityPosInSet\", \"accessibilityPressed\", \"accessibilityReadOnly\", \"accessibilityRequired\", \"accessibilityRole\", \"accessibilityRoleDescription\", \"accessibilityRowCount\", \"accessibilityRowIndex\", \"accessibilityRowSpan\", \"accessibilitySelected\", \"accessibilitySetSize\", \"accessibilitySort\", \"accessibilityValueMax\", \"accessibilityValueMin\", \"accessibilityValueNow\", \"accessibilityValueText\", \"dataSet\", \"focusable\", \"nativeID\", \"pointerEvents\", \"style\", \"testID\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport AccessibilityUtil from '../AccessibilityUtil';\nimport StyleSheet from '../../exports/StyleSheet';\nvar emptyObject = {};\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar uppercasePattern = /[A-Z]/g;\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateString(str) {\n return str.replace(uppercasePattern, toHyphenLower);\n}\n\nfunction processIDRefList(idRefList) {\n return isArray(idRefList) ? idRefList.join(' ') : idRefList;\n}\n\nvar pointerEventsStyles = StyleSheet.create({\n auto: {\n pointerEvents: 'auto'\n },\n 'box-none': {\n pointerEvents: 'box-none'\n },\n 'box-only': {\n pointerEvents: 'box-only'\n },\n none: {\n pointerEvents: 'none'\n }\n});\n\nvar createDOMProps = (elementType, props, options) => {\n if (!props) {\n props = emptyObject;\n }\n\n var _props = props,\n accessibilityActiveDescendant = _props.accessibilityActiveDescendant,\n accessibilityAtomic = _props.accessibilityAtomic,\n accessibilityAutoComplete = _props.accessibilityAutoComplete,\n accessibilityBusy = _props.accessibilityBusy,\n accessibilityChecked = _props.accessibilityChecked,\n accessibilityColumnCount = _props.accessibilityColumnCount,\n accessibilityColumnIndex = _props.accessibilityColumnIndex,\n accessibilityColumnSpan = _props.accessibilityColumnSpan,\n accessibilityControls = _props.accessibilityControls,\n accessibilityCurrent = _props.accessibilityCurrent,\n accessibilityDescribedBy = _props.accessibilityDescribedBy,\n accessibilityDetails = _props.accessibilityDetails,\n accessibilityDisabled = _props.accessibilityDisabled,\n accessibilityErrorMessage = _props.accessibilityErrorMessage,\n accessibilityExpanded = _props.accessibilityExpanded,\n accessibilityFlowTo = _props.accessibilityFlowTo,\n accessibilityHasPopup = _props.accessibilityHasPopup,\n accessibilityHidden = _props.accessibilityHidden,\n accessibilityInvalid = _props.accessibilityInvalid,\n accessibilityKeyShortcuts = _props.accessibilityKeyShortcuts,\n accessibilityLabel = _props.accessibilityLabel,\n accessibilityLabelledBy = _props.accessibilityLabelledBy,\n accessibilityLevel = _props.accessibilityLevel,\n accessibilityLiveRegion = _props.accessibilityLiveRegion,\n accessibilityModal = _props.accessibilityModal,\n accessibilityMultiline = _props.accessibilityMultiline,\n accessibilityMultiSelectable = _props.accessibilityMultiSelectable,\n accessibilityOrientation = _props.accessibilityOrientation,\n accessibilityOwns = _props.accessibilityOwns,\n accessibilityPlaceholder = _props.accessibilityPlaceholder,\n accessibilityPosInSet = _props.accessibilityPosInSet,\n accessibilityPressed = _props.accessibilityPressed,\n accessibilityReadOnly = _props.accessibilityReadOnly,\n accessibilityRequired = _props.accessibilityRequired,\n accessibilityRole = _props.accessibilityRole,\n accessibilityRoleDescription = _props.accessibilityRoleDescription,\n accessibilityRowCount = _props.accessibilityRowCount,\n accessibilityRowIndex = _props.accessibilityRowIndex,\n accessibilityRowSpan = _props.accessibilityRowSpan,\n accessibilitySelected = _props.accessibilitySelected,\n accessibilitySetSize = _props.accessibilitySetSize,\n accessibilitySort = _props.accessibilitySort,\n accessibilityValueMax = _props.accessibilityValueMax,\n accessibilityValueMin = _props.accessibilityValueMin,\n accessibilityValueNow = _props.accessibilityValueNow,\n accessibilityValueText = _props.accessibilityValueText,\n dataSet = _props.dataSet,\n focusable = _props.focusable,\n nativeID = _props.nativeID,\n pointerEvents = _props.pointerEvents,\n style = _props.style,\n testID = _props.testID,\n domProps = _objectWithoutPropertiesLoose(_props, _excluded);\n\n var disabled = accessibilityDisabled;\n var role = AccessibilityUtil.propsToAriaRole(props); // ACCESSIBILITY\n\n if (accessibilityActiveDescendant != null) {\n domProps['aria-activedescendant'] = accessibilityActiveDescendant;\n }\n\n if (accessibilityAtomic != null) {\n domProps['aria-atomic'] = accessibilityAtomic;\n }\n\n if (accessibilityAutoComplete != null) {\n domProps['aria-autocomplete'] = accessibilityAutoComplete;\n }\n\n if (accessibilityBusy != null) {\n domProps['aria-busy'] = accessibilityBusy;\n }\n\n if (accessibilityChecked != null) {\n domProps['aria-checked'] = accessibilityChecked;\n }\n\n if (accessibilityColumnCount != null) {\n domProps['aria-colcount'] = accessibilityColumnCount;\n }\n\n if (accessibilityColumnIndex != null) {\n domProps['aria-colindex'] = accessibilityColumnIndex;\n }\n\n if (accessibilityColumnSpan != null) {\n domProps['aria-colspan'] = accessibilityColumnSpan;\n }\n\n if (accessibilityControls != null) {\n domProps['aria-controls'] = processIDRefList(accessibilityControls);\n }\n\n if (accessibilityCurrent != null) {\n domProps['aria-current'] = accessibilityCurrent;\n }\n\n if (accessibilityDescribedBy != null) {\n domProps['aria-describedby'] = processIDRefList(accessibilityDescribedBy);\n }\n\n if (accessibilityDetails != null) {\n domProps['aria-details'] = accessibilityDetails;\n }\n\n if (disabled === true) {\n domProps['aria-disabled'] = true; // Enhance with native semantics\n\n if (elementType === 'button' || elementType === 'form' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.disabled = true;\n }\n }\n\n if (accessibilityErrorMessage != null) {\n domProps['aria-errormessage'] = accessibilityErrorMessage;\n }\n\n if (accessibilityExpanded != null) {\n domProps['aria-expanded'] = accessibilityExpanded;\n }\n\n if (accessibilityFlowTo != null) {\n domProps['aria-flowto'] = processIDRefList(accessibilityFlowTo);\n }\n\n if (accessibilityHasPopup != null) {\n domProps['aria-haspopup'] = accessibilityHasPopup;\n }\n\n if (accessibilityHidden === true) {\n domProps['aria-hidden'] = accessibilityHidden;\n }\n\n if (accessibilityInvalid != null) {\n domProps['aria-invalid'] = accessibilityInvalid;\n }\n\n if (accessibilityKeyShortcuts != null && Array.isArray(accessibilityKeyShortcuts)) {\n domProps['aria-keyshortcuts'] = accessibilityKeyShortcuts.join(' ');\n }\n\n if (accessibilityLabel != null) {\n domProps['aria-label'] = accessibilityLabel;\n }\n\n if (accessibilityLabelledBy != null) {\n domProps['aria-labelledby'] = processIDRefList(accessibilityLabelledBy);\n }\n\n if (accessibilityLevel != null) {\n domProps['aria-level'] = accessibilityLevel;\n }\n\n if (accessibilityLiveRegion != null) {\n domProps['aria-live'] = accessibilityLiveRegion === 'none' ? 'off' : accessibilityLiveRegion;\n }\n\n if (accessibilityModal != null) {\n domProps['aria-modal'] = accessibilityModal;\n }\n\n if (accessibilityMultiline != null) {\n domProps['aria-multiline'] = accessibilityMultiline;\n }\n\n if (accessibilityMultiSelectable != null) {\n domProps['aria-multiselectable'] = accessibilityMultiSelectable;\n }\n\n if (accessibilityOrientation != null) {\n domProps['aria-orientation'] = accessibilityOrientation;\n }\n\n if (accessibilityOwns != null) {\n domProps['aria-owns'] = processIDRefList(accessibilityOwns);\n }\n\n if (accessibilityPlaceholder != null) {\n domProps['aria-placeholder'] = accessibilityPlaceholder;\n }\n\n if (accessibilityPosInSet != null) {\n domProps['aria-posinset'] = accessibilityPosInSet;\n }\n\n if (accessibilityPressed != null) {\n domProps['aria-pressed'] = accessibilityPressed;\n }\n\n if (accessibilityReadOnly != null) {\n domProps['aria-readonly'] = accessibilityReadOnly; // Enhance with native semantics\n\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.readOnly = true;\n }\n }\n\n if (accessibilityRequired != null) {\n domProps['aria-required'] = accessibilityRequired; // Enhance with native semantics\n\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.required = accessibilityRequired;\n }\n }\n\n if (role != null) {\n // 'presentation' synonym has wider browser support\n domProps['role'] = role === 'none' ? 'presentation' : role;\n }\n\n if (accessibilityRoleDescription != null) {\n domProps['aria-roledescription'] = accessibilityRoleDescription;\n }\n\n if (accessibilityRowCount != null) {\n domProps['aria-rowcount'] = accessibilityRowCount;\n }\n\n if (accessibilityRowIndex != null) {\n domProps['aria-rowindex'] = accessibilityRowIndex;\n }\n\n if (accessibilityRowSpan != null) {\n domProps['aria-rowspan'] = accessibilityRowSpan;\n }\n\n if (accessibilitySelected != null) {\n domProps['aria-selected'] = accessibilitySelected;\n }\n\n if (accessibilitySetSize != null) {\n domProps['aria-setsize'] = accessibilitySetSize;\n }\n\n if (accessibilitySort != null) {\n domProps['aria-sort'] = accessibilitySort;\n }\n\n if (accessibilityValueMax != null) {\n domProps['aria-valuemax'] = accessibilityValueMax;\n }\n\n if (accessibilityValueMin != null) {\n domProps['aria-valuemin'] = accessibilityValueMin;\n }\n\n if (accessibilityValueNow != null) {\n domProps['aria-valuenow'] = accessibilityValueNow;\n }\n\n if (accessibilityValueText != null) {\n domProps['aria-valuetext'] = accessibilityValueText;\n } // \"dataSet\" replaced with \"data-*\"\n\n\n if (dataSet != null) {\n for (var dataProp in dataSet) {\n if (hasOwnProperty.call(dataSet, dataProp)) {\n var dataName = hyphenateString(dataProp);\n var dataValue = dataSet[dataProp];\n\n if (dataValue != null) {\n domProps[\"data-\" + dataName] = dataValue;\n }\n }\n }\n } // FOCUS\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n\n\n if (focusable === false) {\n domProps.tabIndex = '-1';\n }\n\n if ( // These native elements are keyboard focusable by default\n elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n if (focusable === false || accessibilityDisabled === true) {\n domProps.tabIndex = '-1';\n }\n } else if ( // These roles are made keyboard focusable by default\n role === 'button' || role === 'checkbox' || role === 'link' || role === 'radio' || role === 'textbox' || role === 'switch') {\n if (focusable !== false) {\n domProps.tabIndex = '0';\n }\n } else {\n // Everything else must explicitly set the prop\n if (focusable === true) {\n domProps.tabIndex = '0';\n }\n } // Resolve styles\n\n\n var _StyleSheet = StyleSheet([style, pointerEvents && pointerEventsStyles[pointerEvents]], {\n writingDirection: options ? options.writingDirection : 'ltr'\n }),\n className = _StyleSheet[0],\n inlineStyle = _StyleSheet[1];\n\n if (className) {\n domProps.className = className;\n }\n\n if (inlineStyle) {\n domProps.style = inlineStyle;\n } // OTHER\n // Native element ID\n\n\n if (nativeID != null) {\n domProps.id = nativeID;\n } // Automated test IDs\n\n\n if (testID != null) {\n domProps['data-testid'] = testID;\n }\n\n return domProps;\n};\n\nexport default createDOMProps;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\nimport * as React from 'react';\nexport default function mergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return function forwardRef(node) {\n args.forEach(ref => {\n if (ref == null) {\n return;\n }\n\n if (typeof ref === 'function') {\n ref(node);\n return;\n }\n\n if (typeof ref === 'object') {\n ref.current = node;\n return;\n }\n\n console.error(\"mergeRefs cannot handle Refs of type boolean, number or string, received ref \" + String(ref));\n });\n };\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport Platform from '../../../exports/Platform';\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * `NativeEventEmitter` is intended for use by Native Modules to emit events to\n * JavaScript listeners. If a `NativeModule` is supplied to the constructor, it\n * will be notified (via `addListener` and `removeListeners`) when the listener\n * count changes to manage \"native memory\".\n *\n * Currently, all native events are fired via a global `RCTDeviceEventEmitter`.\n * This means event names must be globally unique, and it means that call sites\n * can theoretically listen to `RCTDeviceEventEmitter` (although discouraged).\n */\nexport default class NativeEventEmitter {\n constructor(nativeModule) {\n if (Platform.OS === 'ios') {\n invariant(nativeModule != null, '`new NativeEventEmitter()` requires a non-null argument.');\n this._nativeModule = nativeModule;\n }\n }\n\n addListener(eventType, listener, context) {\n var _this$_nativeModule;\n\n (_this$_nativeModule = this._nativeModule) == null ? void 0 : _this$_nativeModule.addListener(eventType);\n var subscription = RCTDeviceEventEmitter.addListener(eventType, listener, context);\n return {\n remove: () => {\n if (subscription != null) {\n var _this$_nativeModule2;\n\n (_this$_nativeModule2 = this._nativeModule) == null ? void 0 : _this$_nativeModule2.removeListeners(1); // $FlowFixMe[incompatible-use]\n\n subscription.remove();\n subscription = null;\n }\n }\n };\n }\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n\n\n removeListener(eventType, listener) {\n var _this$_nativeModule3;\n\n (_this$_nativeModule3 = this._nativeModule) == null ? void 0 : _this$_nativeModule3.removeListeners(1); // NOTE: This will report a deprecation notice via `console.error`.\n // $FlowFixMe[prop-missing] - `removeListener` exists but is deprecated.\n\n RCTDeviceEventEmitter.removeListener(eventType, listener);\n }\n\n emit(eventType) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n // Generally, `RCTDeviceEventEmitter` is directly invoked. But this is\n // included for completeness.\n RCTDeviceEventEmitter.emit(eventType, ...args);\n }\n\n removeAllListeners(eventType) {\n var _this$_nativeModule4;\n\n invariant(eventType != null, '`NativeEventEmitter.removeAllListener()` requires a non-null argument.');\n (_this$_nativeModule4 = this._nativeModule) == null ? void 0 : _this$_nativeModule4.removeListeners(this.listenerCount(eventType));\n RCTDeviceEventEmitter.removeAllListeners(eventType);\n }\n\n listenerCount(eventType) {\n return RCTDeviceEventEmitter.listenerCount(eventType);\n }\n\n}","export default class MutableValue {\n constructor(value, setter) {\n this._animation = null;\n this._listeners = [];\n this._id = MutableValue.MUTABLE_ID++;\n this._value = value;\n this._setter = setter;\n }\n get value() {\n return this._value;\n }\n set value(nextValue) {\n this._setter(nextValue);\n }\n // this changes the value finally and is supposed to be called from this._setter\n _setValue(newValue) {\n this._value = newValue;\n this._triggerListener();\n }\n addListener(listener) {\n this._listeners.push(listener);\n }\n _triggerListener() {\n for (let i = 0, len = this._listeners.length; i < len; ++i) {\n this._listeners[i]();\n }\n }\n}\nMutableValue.MUTABLE_ID = 1;\n","import { NativeModules } from 'react-native';\nimport { checkVersion } from '../platform-specific/checkVersion';\nexport class NativeReanimated {\n constructor(native = true) {\n if (global.__reanimatedModuleProxy === undefined && native) {\n const { ReanimatedModule } = NativeModules;\n ReanimatedModule === null || ReanimatedModule === void 0 ? void 0 : ReanimatedModule.installTurboModule();\n }\n this.InnerNativeModule = global.__reanimatedModuleProxy;\n this.native = native;\n if (native) {\n checkVersion();\n }\n }\n installCoreFunctions(valueSetter) {\n return this.InnerNativeModule.installCoreFunctions(valueSetter);\n }\n makeShareable(value) {\n return this.InnerNativeModule.makeShareable(value);\n }\n makeMutable(value) {\n return this.InnerNativeModule.makeMutable(value);\n }\n makeRemote(object = {}) {\n return this.InnerNativeModule.makeRemote(object);\n }\n registerSensor(sensorType, interval, sensorData) {\n return this.InnerNativeModule.registerSensor(sensorType, interval, sensorData);\n }\n unregisterSensor(sensorId) {\n return this.InnerNativeModule.unregisterSensor(sensorId);\n }\n startMapper(mapper, inputs = [], outputs = [], updater, viewDescriptors) {\n return this.InnerNativeModule.startMapper(mapper, inputs, outputs, updater, viewDescriptors);\n }\n stopMapper(mapperId) {\n return this.InnerNativeModule.stopMapper(mapperId);\n }\n registerEventHandler(eventHash, eventHandler) {\n return this.InnerNativeModule.registerEventHandler(eventHash, eventHandler);\n }\n unregisterEventHandler(id) {\n return this.InnerNativeModule.unregisterEventHandler(id);\n }\n getViewProp(viewTag, propName, callback) {\n return this.InnerNativeModule.getViewProp(viewTag, propName, callback);\n }\n enableLayoutAnimations(flag) {\n this.InnerNativeModule.enableLayoutAnimations(flag);\n }\n configureProps(uiProps, nativeProps) {\n this.InnerNativeModule.configureProps(uiProps, nativeProps);\n }\n subscribeForKeyboardEvents(keyboardEventData) {\n return this.InnerNativeModule.subscribeForKeyboardEvents(keyboardEventData);\n }\n unsubscribeFromKeyboardEvents(listenerId) {\n this.InnerNativeModule.unsubscribeFromKeyboardEvents(listenerId);\n }\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport TextInputState from '../TextInputState';\n\nvar dismissKeyboard = () => {\n TextInputState.blurTextInput(TextInputState.currentlyFocusedField());\n};\n\nexport default dismissKeyboard;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\nexport function get(name) {\n return null;\n}\nexport function getEnforcing(name) {\n var module = get(name);\n invariant(module != null, \"TurboModuleRegistry.getEnforcing(...): '\" + name + \"' could not be found. \" + 'Verify that a module by this name is registered in the native binary.');\n return module;\n}","import { invariant } from \"../../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { parser, operationName } from \"../parser/index.js\";\nvar OperationData = (function () {\n function OperationData(options, context) {\n this.isMounted = false;\n this.previousOptions = {};\n this.context = {};\n this.options = {};\n this.options = options || {};\n this.context = context || {};\n }\n OperationData.prototype.getOptions = function () {\n return this.options;\n };\n OperationData.prototype.setOptions = function (newOptions, storePrevious) {\n if (storePrevious === void 0) { storePrevious = false; }\n if (storePrevious && !equal(this.options, newOptions)) {\n this.previousOptions = this.options;\n }\n this.options = newOptions;\n };\n OperationData.prototype.unmount = function () {\n this.isMounted = false;\n };\n OperationData.prototype.refreshClient = function () {\n var client = (this.options && this.options.client) ||\n (this.context && this.context.client);\n __DEV__ ? invariant(!!client, 'Could not find \"client\" in the context or passed in as an option. ' +\n 'Wrap the root component in an , or pass an ' +\n 'ApolloClient instance in via options.') : invariant(!!client, 29);\n var isNew = false;\n if (client !== this.client) {\n isNew = true;\n this.client = client;\n this.cleanup();\n }\n return {\n client: this.client,\n isNew: isNew\n };\n };\n OperationData.prototype.verifyDocumentType = function (document, type) {\n var operation = parser(document);\n var requiredOperationName = operationName(type);\n var usedOperationName = operationName(operation.type);\n __DEV__ ? invariant(operation.type === type, \"Running a \" + requiredOperationName + \" requires a graphql \" +\n (requiredOperationName + \", but a \" + usedOperationName + \" was used instead.\")) : invariant(operation.type === type, 30);\n };\n return OperationData;\n}());\nexport { OperationData };\n//# sourceMappingURL=OperationData.js.map","export var isArrayBuffer = function (arg) {\n return (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLElBQU0sYUFBYSxHQUFHLFVBQUMsR0FBUTtJQUNwQyxPQUFBLENBQUMsT0FBTyxXQUFXLEtBQUssVUFBVSxJQUFJLEdBQUcsWUFBWSxXQUFXLENBQUM7UUFDakUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLHNCQUFzQjtBQUQ5RCxDQUM4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzQXJyYXlCdWZmZXIgPSAoYXJnOiBhbnkpOiBhcmcgaXMgQXJyYXlCdWZmZXIgPT5cbiAgKHR5cGVvZiBBcnJheUJ1ZmZlciA9PT0gXCJmdW5jdGlvblwiICYmIGFyZyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB8fFxuICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJnKSA9PT0gXCJbb2JqZWN0IEFycmF5QnVmZmVyXVwiO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebCryptoSha256 = exports.Ie11Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\n(0, tslib_1.__exportStar)(require(\"./crossPlatformSha256\"), exports);\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\nObject.defineProperty(exports, \"Ie11Sha256\", { enumerable: true, get: function () { return ie11Sha256_1.Sha256; } });\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\nObject.defineProperty(exports, \"WebCryptoSha256\", { enumerable: true, get: function () { return webCryptoSha256_1.Sha256; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFFQUFzQztBQUN0QywyQ0FBb0Q7QUFBM0Msd0dBQUEsTUFBTSxPQUFjO0FBQzdCLHFEQUE4RDtBQUFyRCxrSEFBQSxNQUFNLE9BQW1CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY3Jvc3NQbGF0Zm9ybVNoYTI1NlwiO1xuZXhwb3J0IHsgU2hhMjU2IGFzIEllMTFTaGEyNTYgfSBmcm9tIFwiLi9pZTExU2hhMjU2XCI7XG5leHBvcnQgeyBTaGEyNTYgYXMgV2ViQ3J5cHRvU2hhMjU2IH0gZnJvbSBcIi4vd2ViQ3J5cHRvU2hhMjU2XCI7XG4iXX0=","export function calculateBodyLength(body) {\n if (typeof body === \"string\") {\n var len = body.length;\n for (var i = len - 1; i >= 0; i--) {\n var code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff)\n len++;\n else if (code > 0x7ff && code <= 0xffff)\n len += 2;\n }\n return len;\n }\n else if (typeof body.byteLength === \"number\") {\n // handles Uint8Array, ArrayBuffer, Buffer, and ArrayBufferView\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n // handles browser File object\n return body.size;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLG1CQUFtQixDQUFDLElBQVM7SUFDM0MsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDNUIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUV0QixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqQyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksS0FBSztnQkFBRSxHQUFHLEVBQUUsQ0FBQztpQkFDbkMsSUFBSSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNO2dCQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDbkQ7UUFFRCxPQUFPLEdBQUcsQ0FBQztLQUNaO1NBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFO1FBQzlDLCtEQUErRDtRQUMvRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7S0FDeEI7U0FBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDeEMsOEJBQThCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztLQUNsQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQm9keUxlbmd0aChib2R5OiBhbnkpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBpZiAodHlwZW9mIGJvZHkgPT09IFwic3RyaW5nXCIpIHtcbiAgICBsZXQgbGVuID0gYm9keS5sZW5ndGg7XG5cbiAgICBmb3IgKGxldCBpID0gbGVuIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGNvZGUgPSBib2R5LmNoYXJDb2RlQXQoaSk7XG4gICAgICBpZiAoY29kZSA+IDB4N2YgJiYgY29kZSA8PSAweDdmZikgbGVuKys7XG4gICAgICBlbHNlIGlmIChjb2RlID4gMHg3ZmYgJiYgY29kZSA8PSAweGZmZmYpIGxlbiArPSAyO1xuICAgIH1cblxuICAgIHJldHVybiBsZW47XG4gIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkuYnl0ZUxlbmd0aCA9PT0gXCJudW1iZXJcIikge1xuICAgIC8vIGhhbmRsZXMgVWludDhBcnJheSwgQXJyYXlCdWZmZXIsIEJ1ZmZlciwgYW5kIEFycmF5QnVmZmVyVmlld1xuICAgIHJldHVybiBib2R5LmJ5dGVMZW5ndGg7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkuc2l6ZSA9PT0gXCJudW1iZXJcIikge1xuICAgIC8vIGhhbmRsZXMgYnJvd3NlciBGaWxlIG9iamVjdFxuICAgIHJldHVybiBib2R5LnNpemU7XG4gIH1cbn1cbiJdfQ==","const DefaultTheme = {\n dark: false,\n colors: {\n primary: 'rgb(0, 122, 255)',\n background: 'rgb(242, 242, 242)',\n card: 'rgb(255, 255, 255)',\n text: 'rgb(28, 28, 30)',\n border: 'rgb(216, 216, 216)',\n notification: 'rgb(255, 59, 48)'\n }\n};\nexport default DefaultTheme;\n//# sourceMappingURL=DefaultTheme.js.map","import { __extends } from \"tslib\";\nvar MissingFieldError = (function (_super) {\n __extends(MissingFieldError, _super);\n function MissingFieldError(message, path, query, variables) {\n var _this = _super.call(this, message) || this;\n _this.message = message;\n _this.path = path;\n _this.query = query;\n _this.variables = variables;\n _this.__proto__ = MissingFieldError.prototype;\n return _this;\n }\n return MissingFieldError;\n}(Error));\nexport { MissingFieldError };\n//# sourceMappingURL=common.js.map","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = __importStar(require(\"react\"));\nvar useIsomorphicLayoutEffect = typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * React hook which returns the latest callback without changing the reference.\n */\nfunction useLatestCallback(callback) {\n var ref = React.useRef(callback);\n var latestCallback = React.useRef(function latestCallback() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line babel/no-invalid-this\n return ref.current.apply(this, args);\n }).current;\n useIsomorphicLayoutEffect(function () {\n ref.current = callback;\n });\n return latestCallback;\n}\nexports.default = useLatestCallback;\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @flow strict\n * @format\n */\n\n'use strict';\n\nmodule.exports = require('@react-native/assets/registry');\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","import * as React from 'react';\nimport DefaultTheme from './DefaultTheme';\nconst ThemeContext = /*#__PURE__*/React.createContext(DefaultTheme);\nThemeContext.displayName = 'ThemeContext';\nexport default ThemeContext;\n//# sourceMappingURL=ThemeContext.js.map","import * as React from 'react';\nimport {\n Platform,\n StyleProp,\n StyleSheet,\n Animated,\n BackHandler,\n Dimensions,\n Easing,\n I18nManager,\n LayoutRectangle,\n TouchableWithoutFeedback,\n View,\n ViewStyle,\n ScrollView,\n findNodeHandle,\n NativeEventSubscription,\n} from 'react-native';\n\nimport { withTheme } from '../../core/theming';\nimport type { $Omit } from '../../types';\nimport Portal from '../Portal/Portal';\nimport Surface from '../Surface';\nimport MenuItem from './MenuItem';\nimport { APPROX_STATUSBAR_HEIGHT } from '../../constants';\nimport { addEventListener } from '../../utils/addEventListener';\n\nexport type Props = {\n /**\n * Whether the Menu is currently visible.\n */\n visible: boolean;\n /**\n * The anchor to open the menu from. In most cases, it will be a button that opens the menu.\n */\n anchor: React.ReactNode | { x: number; y: number };\n /**\n * Extra margin to add at the top of the menu to account for translucent status bar on Android.\n * If you are using Expo, we assume translucent status bar and set a height for status bar automatically.\n * Pass `0` or a custom value to and customize it.\n * This is automatically handled on iOS.\n */\n statusBarHeight?: number;\n /**\n * Callback called when Menu is dismissed. The `visible` prop needs to be updated when this is called.\n */\n onDismiss: () => void;\n /**\n * Accessibility label for the overlay. This is read by the screen reader when the user taps outside the menu.\n */\n overlayAccessibilityLabel?: string;\n /**\n * Content of the `Menu`.\n */\n children: React.ReactNode;\n /**\n * Style of menu's inner content.\n */\n contentStyle?: StyleProp;\n style?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\ntype Layout = $Omit<$Omit, 'y'>;\n\ntype State = {\n rendered: boolean;\n top: number;\n left: number;\n menuLayout: Layout;\n anchorLayout: Layout;\n opacityAnimation: Animated.Value;\n scaleAnimation: Animated.ValueXY;\n};\n\n// Minimum padding between the edge of the screen and the menu\nconst SCREEN_INDENT = 8;\n// From https://material.io/design/motion/speed.html#duration\nconst ANIMATION_DURATION = 250;\n// From the 'Standard easing' section of https://material.io/design/motion/speed.html#easing\nconst EASING = Easing.bezier(0.4, 0, 0.2, 1);\n\n/**\n * Menus display a list of choices on temporary elevated surfaces. Their placement varies based on the element that opens them.\n *\n *
\n * \n * \n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { Button, Menu, Divider, Provider } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [visible, setVisible] = React.useState(false);\n *\n * const openMenu = () => setVisible(true);\n *\n * const closeMenu = () => setVisible(false);\n *\n * return (\n * \n * \n * Show menu}>\n * {}} title=\"Item 1\" />\n * {}} title=\"Item 2\" />\n * \n * {}} title=\"Item 3\" />\n * \n *
\n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nclass Menu extends React.Component {\n // @component ./MenuItem.tsx\n static Item = MenuItem;\n\n static defaultProps = {\n statusBarHeight: APPROX_STATUSBAR_HEIGHT,\n overlayAccessibilityLabel: 'Close menu',\n };\n\n static getDerivedStateFromProps(nextProps: Props, prevState: State) {\n if (nextProps.visible && !prevState.rendered) {\n return { rendered: true };\n }\n\n return null;\n }\n\n state = {\n rendered: this.props.visible,\n top: 0,\n left: 0,\n menuLayout: { width: 0, height: 0 },\n anchorLayout: { width: 0, height: 0 },\n opacityAnimation: new Animated.Value(0),\n scaleAnimation: new Animated.ValueXY({ x: 0, y: 0 }),\n };\n\n componentDidUpdate(prevProps: Props) {\n if (prevProps.visible !== this.props.visible) {\n this.updateVisibility();\n }\n }\n\n componentWillUnmount() {\n this.removeListeners();\n }\n\n private anchor?: View | null = null;\n private menu?: View | null = null;\n private backHandlerSubscription: NativeEventSubscription | undefined;\n private dimensionsSubscription: NativeEventSubscription | undefined;\n\n private isCoordinate = (anchor: any): anchor is { x: number; y: number } =>\n !React.isValidElement(anchor) &&\n typeof anchor?.x === 'number' &&\n typeof anchor?.y === 'number';\n\n private measureMenuLayout = () =>\n new Promise((resolve) => {\n if (this.menu) {\n this.menu.measureInWindow((x, y, width, height) => {\n resolve({ x, y, width, height });\n });\n }\n });\n\n private measureAnchorLayout = () =>\n new Promise((resolve) => {\n const { anchor } = this.props;\n if (this.isCoordinate(anchor)) {\n resolve({ x: anchor.x, y: anchor.y, width: 0, height: 0 });\n return;\n }\n\n if (this.anchor) {\n this.anchor.measureInWindow((x, y, width, height) => {\n resolve({ x, y, width, height });\n });\n }\n });\n\n private updateVisibility = async () => {\n // Menu is rendered in Portal, which updates items asynchronously\n // We need to do the same here so that the ref is up-to-date\n await Promise.resolve();\n\n if (this.props.visible) {\n this.show();\n } else {\n this.hide();\n }\n };\n\n private isBrowser = () => Platform.OS === 'web' && 'document' in global;\n\n private focusFirstDOMNode = (el: View | null | undefined) => {\n if (el && this.isBrowser()) {\n // When in the browser, we want to focus the first focusable item on toggle\n // For example, when menu is shown, focus the first item in the menu\n // And when menu is dismissed, send focus back to the button to resume tabbing\n const node: any = findNodeHandle(el);\n const focusableNode = node.querySelector(\n // This is a rough list of selectors that can be focused\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n\n focusableNode?.focus();\n }\n };\n\n private handleDismiss = () => {\n if (this.props.visible) {\n this.props.onDismiss();\n }\n return true;\n };\n\n private handleKeypress = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n this.props.onDismiss();\n }\n };\n\n private attachListeners = () => {\n this.backHandlerSubscription = addEventListener(\n BackHandler,\n 'hardwareBackPress',\n this.handleDismiss\n );\n this.dimensionsSubscription = addEventListener(\n Dimensions,\n 'change',\n this.handleDismiss\n );\n this.isBrowser() && document.addEventListener('keyup', this.handleKeypress);\n };\n\n private removeListeners = () => {\n this.backHandlerSubscription?.remove();\n this.dimensionsSubscription?.remove();\n this.isBrowser() &&\n document.removeEventListener('keyup', this.handleKeypress);\n };\n\n private show = async () => {\n const windowLayout = Dimensions.get('window');\n const [menuLayout, anchorLayout] = await Promise.all([\n this.measureMenuLayout(),\n this.measureAnchorLayout(),\n ]);\n\n // When visible is true for first render\n // native views can be still not rendered and\n // measureMenuLayout/measureAnchorLayout functions\n // return wrong values e.g { x:0, y: 0, width: 0, height: 0 }\n // so we have to wait until views are ready\n // and rerun this function to show menu\n if (\n !windowLayout.width ||\n !windowLayout.height ||\n !menuLayout.width ||\n !menuLayout.height ||\n (!anchorLayout.width && !this.isCoordinate(this.props.anchor)) ||\n (!anchorLayout.height && !this.isCoordinate(this.props.anchor))\n ) {\n requestAnimationFrame(this.show);\n return;\n }\n\n this.setState(\n () => ({\n left: anchorLayout.x,\n top: anchorLayout.y,\n anchorLayout: {\n height: anchorLayout.height,\n width: anchorLayout.width,\n },\n menuLayout: {\n width: menuLayout.width,\n height: menuLayout.height,\n },\n }),\n () => {\n this.attachListeners();\n\n const { animation } = this.props.theme;\n Animated.parallel([\n Animated.timing(this.state.scaleAnimation, {\n toValue: { x: menuLayout.width, y: menuLayout.height },\n duration: ANIMATION_DURATION * animation.scale,\n easing: EASING,\n useNativeDriver: true,\n }),\n Animated.timing(this.state.opacityAnimation, {\n toValue: 1,\n duration: ANIMATION_DURATION * animation.scale,\n easing: EASING,\n useNativeDriver: true,\n }),\n ]).start(({ finished }) => {\n if (finished) {\n this.focusFirstDOMNode(this.menu);\n }\n });\n }\n );\n };\n\n private hide = () => {\n this.removeListeners();\n\n const { animation } = this.props.theme;\n Animated.timing(this.state.opacityAnimation, {\n toValue: 0,\n duration: ANIMATION_DURATION * animation.scale,\n easing: EASING,\n useNativeDriver: true,\n }).start(({ finished }) => {\n if (finished) {\n this.setState({ menuLayout: { width: 0, height: 0 }, rendered: false });\n this.state.scaleAnimation.setValue({ x: 0, y: 0 });\n this.focusFirstDOMNode(this.anchor);\n }\n });\n };\n\n render() {\n const {\n visible,\n anchor,\n contentStyle,\n style,\n children,\n theme,\n statusBarHeight,\n onDismiss,\n overlayAccessibilityLabel,\n } = this.props;\n\n const {\n rendered,\n menuLayout,\n anchorLayout,\n opacityAnimation,\n scaleAnimation,\n } = this.state;\n\n let { left, top } = this.state;\n\n // I don't know why but on Android measure function is wrong by 24\n const additionalVerticalValue = Platform.select({\n android: statusBarHeight,\n default: 0,\n });\n\n const scaleTransforms = [\n {\n scaleX: scaleAnimation.x.interpolate({\n inputRange: [0, menuLayout.width],\n outputRange: [0, 1],\n }),\n },\n {\n scaleY: scaleAnimation.y.interpolate({\n inputRange: [0, menuLayout.height],\n outputRange: [0, 1],\n }),\n },\n ];\n\n const windowLayout = Dimensions.get('window');\n\n // We need to translate menu while animating scale to imitate transform origin for scale animation\n const positionTransforms = [];\n\n // Check if menu fits horizontally and if not align it to right.\n if (left <= windowLayout.width - menuLayout.width - SCREEN_INDENT) {\n positionTransforms.push({\n translateX: scaleAnimation.x.interpolate({\n inputRange: [0, menuLayout.width],\n outputRange: [-(menuLayout.width / 2), 0],\n }),\n });\n\n // Check if menu position has enough space from left side\n if (left < SCREEN_INDENT) {\n left = SCREEN_INDENT;\n }\n } else {\n positionTransforms.push({\n translateX: scaleAnimation.x.interpolate({\n inputRange: [0, menuLayout.width],\n outputRange: [menuLayout.width / 2, 0],\n }),\n });\n\n left += anchorLayout.width - menuLayout.width;\n\n const right = left + menuLayout.width;\n // Check if menu position has enough space from right side\n if (right > windowLayout.width - SCREEN_INDENT) {\n left = windowLayout.width - SCREEN_INDENT - menuLayout.width;\n }\n }\n\n // If the menu is larger than available vertical space,\n // calculate the height of scrollable view\n let scrollableMenuHeight = 0;\n\n // Check if the menu should be scrollable\n if (\n // Check if the menu overflows from bottom side\n top >=\n windowLayout.height -\n menuLayout.height -\n SCREEN_INDENT -\n additionalVerticalValue &&\n // And bottom side of the screen has more space than top side\n top <= windowLayout.height - top\n ) {\n // Scrollable menu should be below the anchor (expands downwards)\n scrollableMenuHeight =\n windowLayout.height - top - SCREEN_INDENT - additionalVerticalValue;\n } else if (\n // Check if the menu overflows from bottom side\n top >=\n windowLayout.height -\n menuLayout.height -\n SCREEN_INDENT -\n additionalVerticalValue &&\n // And top side of the screen has more space than bottom side\n top >= windowLayout.height - top &&\n // And menu overflows from top side\n top <=\n menuLayout.height -\n anchorLayout.height +\n SCREEN_INDENT -\n additionalVerticalValue\n ) {\n // Scrollable menu should be above the anchor (expands upwards)\n scrollableMenuHeight =\n top + anchorLayout.height - SCREEN_INDENT + additionalVerticalValue;\n }\n\n // Scrollable menu max height\n scrollableMenuHeight =\n scrollableMenuHeight > windowLayout.height - 2 * SCREEN_INDENT\n ? windowLayout.height - 2 * SCREEN_INDENT\n : scrollableMenuHeight;\n\n // Menu is typically positioned below the element that generates it\n // So first check if it fits below the anchor (expands downwards)\n if (\n // Check if menu fits vertically\n top <=\n windowLayout.height -\n menuLayout.height -\n SCREEN_INDENT -\n additionalVerticalValue ||\n // Or if the menu overflows from bottom side\n (top >=\n windowLayout.height -\n menuLayout.height -\n SCREEN_INDENT -\n additionalVerticalValue &&\n // And bottom side of the screen has more space than top side\n top <= windowLayout.height - top)\n ) {\n positionTransforms.push({\n translateY: scaleAnimation.y.interpolate({\n inputRange: [0, menuLayout.height],\n outputRange: [-((scrollableMenuHeight || menuLayout.height) / 2), 0],\n }),\n });\n\n // Check if menu position has enough space from top side\n if (top < SCREEN_INDENT) {\n top = SCREEN_INDENT;\n }\n } else {\n positionTransforms.push({\n translateY: scaleAnimation.y.interpolate({\n inputRange: [0, menuLayout.height],\n outputRange: [(scrollableMenuHeight || menuLayout.height) / 2, 0],\n }),\n });\n\n top += anchorLayout.height - (scrollableMenuHeight || menuLayout.height);\n\n const bottom =\n top +\n (scrollableMenuHeight || menuLayout.height) +\n additionalVerticalValue;\n\n // Check if menu position has enough space from bottom side\n if (bottom > windowLayout.height - SCREEN_INDENT) {\n top =\n scrollableMenuHeight === windowLayout.height - 2 * SCREEN_INDENT\n ? -SCREEN_INDENT * 2\n : windowLayout.height -\n menuLayout.height -\n SCREEN_INDENT -\n additionalVerticalValue;\n }\n }\n\n const shadowMenuContainerStyle = {\n opacity: opacityAnimation,\n transform: scaleTransforms,\n borderRadius: theme.roundness,\n ...(scrollableMenuHeight ? { height: scrollableMenuHeight } : {}),\n };\n\n const positionStyle = {\n top: this.isCoordinate(anchor) ? top : top + additionalVerticalValue,\n ...(I18nManager.isRTL ? { right: left } : { left }),\n };\n\n return (\n {\n this.anchor = ref;\n }}\n collapsable={false}\n >\n {this.isCoordinate(anchor) ? null : anchor}\n {rendered ? (\n \n \n \n \n {\n this.menu = ref;\n }}\n collapsable={false}\n accessibilityViewIsModal={visible}\n style={[styles.wrapper, positionStyle, style]}\n pointerEvents={visible ? 'box-none' : 'none'}\n onAccessibilityEscape={onDismiss}\n >\n \n \n }\n >\n {(scrollableMenuHeight && (\n {children}\n )) || {children}}\n \n \n \n \n ) : null}\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n wrapper: {\n position: 'absolute',\n },\n shadowMenuContainer: {\n opacity: 0,\n paddingVertical: 8,\n elevation: 8,\n },\n});\n\nexport default withTheme(Menu);\n","var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});Object.defineProperty(exports,\"getYoutubeMeta\",{enumerable:true,get:function get(){return _oEmbed.getYoutubeMeta;}});Object.defineProperty(exports,\"PLAYER_STATES\",{enumerable:true,get:function get(){return _constants.PLAYER_STATES_NAMES;}});Object.defineProperty(exports,\"PLAYER_ERRORS\",{enumerable:true,get:function get(){return _constants.PLAYER_ERROR_NAMES;}});exports.default=void 0;var _YoutubeIframe=_interopRequireDefault(require(\"./YoutubeIframe\"));var _oEmbed=require(\"./oEmbed\");var _constants=require(\"./constants\");var _default=_YoutubeIframe.default;exports.default=_default;","import React from 'react';\nimport { View, StyleSheet, StyleProp, ViewStyle } from 'react-native';\n\nimport IconButton from '../../IconButton';\nimport type { $Omit } from '../../../../src/types';\nimport type { IconSource } from '../../Icon';\n\nexport type Props = $Omit<\n React.ComponentProps,\n 'icon' | 'theme' | 'color'\n> & {\n /**\n * Icon to show.\n */\n name: IconSource;\n /**\n * Function to execute on press.\n */\n onPress?: () => void;\n /**\n * Whether the TextInput will focus after onPress.\n */\n forceTextInputFocus?: boolean;\n /**\n * Color of the icon or a function receiving a boolean indicating whether the TextInput is focused and returning the color.\n */\n color?: ((isTextInputFocused: boolean) => string | undefined) | string;\n style?: StyleProp;\n /**\n * @optional\n */\n theme?: ReactNativePaper.Theme;\n};\n\nexport const ICON_SIZE = 24;\nconst ICON_OFFSET = 12;\n\ntype StyleContextType = {\n style: StyleProp;\n isTextInputFocused: boolean;\n forceFocus: () => void;\n};\n\nconst StyleContext = React.createContext({\n style: {},\n isTextInputFocused: false,\n forceFocus: () => {},\n});\n\nconst IconAdornment: React.FunctionComponent<\n {\n testID: string;\n icon: React.ReactNode;\n topPosition: number;\n side: 'left' | 'right';\n } & Omit\n> = ({ icon, topPosition, side, isTextInputFocused, forceFocus }) => {\n const style = {\n top: topPosition,\n [side]: ICON_OFFSET,\n };\n const contextState = { style, isTextInputFocused, forceFocus };\n\n return (\n {icon}\n );\n};\n\n/**\n * A component to render a leading / trailing icon in the TextInput\n *\n *
\n *
\n * \n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { TextInput } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [text, setText] = React.useState('');\n *\n * return (\n * }\n * />\n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\n\nconst TextInputIcon = ({\n name,\n onPress,\n forceTextInputFocus,\n color,\n ...rest\n}: Props) => {\n const { style, isTextInputFocused, forceFocus } =\n React.useContext(StyleContext);\n\n const onPressWithFocusControl = React.useCallback(() => {\n if (forceTextInputFocus && !isTextInputFocused) {\n forceFocus();\n }\n onPress?.();\n }, [forceTextInputFocus, forceFocus, isTextInputFocused, onPress]);\n\n return (\n \n \n \n );\n};\nTextInputIcon.displayName = 'TextInput.Icon';\n\nTextInputIcon.defaultProps = {\n forceTextInputFocus: true,\n};\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n width: ICON_SIZE,\n height: ICON_SIZE,\n justifyContent: 'center',\n alignItems: 'center',\n },\n iconButton: {\n margin: 0,\n },\n});\n\nexport default TextInputIcon;\n\n// @component-docs ignore-next-line\nexport { IconAdornment };\n","export enum AdornmentType {\n Icon = 'icon',\n Affix = 'affix',\n}\nexport enum AdornmentSide {\n Right = 'right',\n Left = 'left',\n}\nexport enum InputMode {\n Outlined = 'outlined',\n Flat = 'flat',\n}\n","import React from 'react';\nimport color from 'color';\nimport {\n Text,\n StyleSheet,\n StyleProp,\n TextStyle,\n LayoutChangeEvent,\n Animated,\n ViewStyle,\n} from 'react-native';\n\nimport { withTheme } from '../../../core/theming';\nimport { AdornmentSide } from './enums';\n\nconst AFFIX_OFFSET = 12;\n\nexport type Props = {\n /**\n * Text to show.\n */\n text: string;\n onLayout?: (event: LayoutChangeEvent) => void;\n /**\n * Style that is passed to the Text element.\n */\n textStyle?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\ntype ContextState = {\n topPosition: number | null;\n onLayout?: (event: LayoutChangeEvent) => void;\n visible?: Animated.Value;\n textStyle?: StyleProp;\n side: AdornmentSide;\n paddingHorizontal?: number | string;\n maxFontSizeMultiplier?: number | undefined | null;\n};\n\nconst AffixContext = React.createContext({\n textStyle: { fontFamily: '', color: '' },\n topPosition: null,\n side: AdornmentSide.Left,\n});\n\nconst AffixAdornment: React.FunctionComponent<\n {\n affix: React.ReactNode;\n testID: string;\n } & ContextState\n> = ({\n affix,\n side,\n textStyle,\n topPosition,\n onLayout,\n visible,\n paddingHorizontal,\n maxFontSizeMultiplier,\n}) => {\n return (\n \n {affix}\n \n );\n};\n\n/**\n * A component to render a leading / trailing text in the TextInput\n *\n *
\n *
\n * \n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { TextInput } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [text, setText] = React.useState('');\n *\n * return (\n * }\n * />\n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\n\nconst TextInputAffix = ({ text, textStyle: labelStyle, theme }: Props) => {\n const {\n textStyle,\n onLayout,\n topPosition,\n side,\n visible,\n paddingHorizontal,\n maxFontSizeMultiplier,\n } = React.useContext(AffixContext);\n const textColor = color(theme.colors.text)\n .alpha(theme.dark ? 0.7 : 0.54)\n .rgb()\n .string();\n\n const offset =\n typeof paddingHorizontal === 'number' ? paddingHorizontal : AFFIX_OFFSET;\n\n const style = {\n top: topPosition,\n [side]: offset,\n } as ViewStyle;\n\n return (\n \n \n {text}\n \n
\n );\n};\nTextInputAffix.displayName = 'TextInput.Affix';\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport default withTheme(TextInputAffix);\n\n// @component-docs ignore-next-line\nexport { TextInputAffix, AffixAdornment };\n","import React from 'react';\nimport TextInputIcon, { IconAdornment } from './TextInputIcon';\nimport TextInputAffix, { AffixAdornment } from './TextInputAffix';\nimport { ADORNMENT_OFFSET, OUTLINED_INPUT_OFFSET } from '../constants';\nimport type {\n LayoutChangeEvent,\n TextStyle,\n StyleProp,\n Animated,\n} from 'react-native';\nimport type {\n AdornmentConfig,\n AdornmentStyleAdjustmentForNativeInput,\n} from './types';\nimport { AdornmentSide, AdornmentType, InputMode } from './enums';\n\nexport function getAdornmentConfig({\n left,\n right,\n}: {\n left?: React.ReactNode;\n right?: React.ReactNode;\n}): Array {\n let adornmentConfig: any[] = [];\n if (left || right) {\n [\n { side: AdornmentSide.Left, adornment: left },\n { side: AdornmentSide.Right, adornment: right },\n ].forEach(({ side, adornment }) => {\n if (adornment && React.isValidElement(adornment)) {\n let type;\n if (adornment.type === TextInputAffix) {\n type = AdornmentType.Affix;\n } else if (adornment.type === TextInputIcon) {\n type = AdornmentType.Icon;\n }\n adornmentConfig.push({\n side,\n type,\n });\n }\n });\n }\n\n return adornmentConfig;\n}\n\nexport function getAdornmentStyleAdjustmentForNativeInput({\n adornmentConfig,\n leftAffixWidth,\n rightAffixWidth,\n paddingHorizontal,\n inputOffset = 0,\n mode,\n}: {\n inputOffset?: number;\n adornmentConfig: AdornmentConfig[];\n leftAffixWidth: number;\n rightAffixWidth: number;\n mode?: 'outlined' | 'flat';\n paddingHorizontal?: number | string;\n}): AdornmentStyleAdjustmentForNativeInput | {} {\n if (adornmentConfig.length) {\n const adornmentStyleAdjustmentForNativeInput = adornmentConfig.map(\n ({ type, side }: AdornmentConfig) => {\n const isLeftSide = side === AdornmentSide.Left;\n const inputModeAdornemntOffset =\n mode === InputMode.Outlined\n ? ADORNMENT_OFFSET + OUTLINED_INPUT_OFFSET\n : ADORNMENT_OFFSET;\n const paddingKey = `padding${captalize(side)}`;\n const affixWidth = isLeftSide ? leftAffixWidth : rightAffixWidth;\n const padding =\n typeof paddingHorizontal === 'number'\n ? paddingHorizontal\n : inputModeAdornemntOffset;\n const offset = affixWidth + padding;\n\n const isAffix = type === AdornmentType.Affix;\n const marginKey = `margin${captalize(side)}`;\n\n return {\n [marginKey]: isAffix ? 0 : offset,\n [paddingKey]: isAffix ? offset : inputOffset,\n };\n }\n );\n const allStyleAdjustmentsMerged =\n adornmentStyleAdjustmentForNativeInput.reduce(\n (mergedStyles, currentStyle) => {\n return {\n ...mergedStyles,\n ...currentStyle,\n };\n },\n {}\n );\n return allStyleAdjustmentsMerged;\n } else {\n return [{}];\n }\n}\n\nconst captalize = (text: string) =>\n text.charAt(0).toUpperCase() + text.slice(1);\n\nexport interface TextInputAdornmentProps {\n forceFocus: () => void;\n adornmentConfig: AdornmentConfig[];\n topPosition: {\n [AdornmentType.Affix]: {\n [AdornmentSide.Left]: number | null;\n [AdornmentSide.Right]: number | null;\n };\n [AdornmentType.Icon]: number;\n };\n onAffixChange: {\n [AdornmentSide.Left]: (event: LayoutChangeEvent) => void;\n [AdornmentSide.Right]: (event: LayoutChangeEvent) => void;\n };\n left?: React.ReactNode;\n right?: React.ReactNode;\n textStyle?: StyleProp;\n visible?: Animated.Value;\n isTextInputFocused: boolean;\n paddingHorizontal?: number | string;\n maxFontSizeMultiplier?: number | undefined | null;\n}\n\nconst TextInputAdornment: React.FunctionComponent = ({\n adornmentConfig,\n left,\n right,\n onAffixChange,\n textStyle,\n visible,\n topPosition,\n isTextInputFocused,\n forceFocus,\n paddingHorizontal,\n maxFontSizeMultiplier,\n}) => {\n if (adornmentConfig.length) {\n return (\n <>\n {adornmentConfig.map(({ type, side }: AdornmentConfig) => {\n let inputAdornmentComponent;\n if (side === AdornmentSide.Left) {\n inputAdornmentComponent = left;\n } else if (side === AdornmentSide.Right) {\n inputAdornmentComponent = right;\n }\n\n const commonProps = {\n key: side,\n side: side,\n testID: `${side}-${type}-adornment`,\n isTextInputFocused,\n paddingHorizontal,\n };\n if (type === AdornmentType.Icon) {\n return (\n \n );\n } else if (type === AdornmentType.Affix) {\n return (\n \n );\n } else {\n return null;\n }\n })}\n \n );\n } else {\n return null;\n }\n};\n\nexport default TextInputAdornment;\n","import { NativeModules, Platform } from 'react-native';\n\n// Use the existence of expo-constants as a heuristic for determining if the\n// status bar is translucent on Android. This should be replaced in the future\n// with react-native-safe-area-context.\nconst estimatedStatusBarHeight =\n NativeModules.NativeUnimoduleProxy?.modulesConstants?.ExponentConstants\n ?.statusBarHeight ?? 0;\n\nexport const APPROX_STATUSBAR_HEIGHT = Platform.select({\n android: estimatedStatusBarHeight,\n ios: Platform.Version < 11 ? estimatedStatusBarHeight : 0,\n});\n","import React from 'react';\nimport { Animated, StyleSheet } from 'react-native';\nimport AnimatedText from '../../Typography/AnimatedText';\n\nimport type { InputLabelProps } from '../types';\n\nconst InputLabel = (props: InputLabelProps) => {\n const { parentState, labelBackground } = props;\n\n const {\n label,\n error,\n onLayoutAnimatedText,\n hasActiveOutline,\n activeColor,\n placeholderStyle,\n baseLabelTranslateX,\n baseLabelTranslateY,\n font,\n fontSize,\n fontWeight,\n placeholderOpacity,\n wiggleOffsetX,\n labelScale,\n topPosition,\n paddingOffset,\n placeholderColor,\n errorColor,\n labelTranslationXOffset,\n maxFontSizeMultiplier,\n } = props.labelProps;\n\n const labelTranslationX = {\n transform: [\n {\n // Offset label scale since RN doesn't support transform origin\n translateX: parentState.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [baseLabelTranslateX, labelTranslationXOffset || 0],\n }),\n },\n ],\n };\n\n const labelStyle = {\n ...font,\n fontSize,\n fontWeight,\n transform: [\n {\n // Wiggle the label when there's an error\n translateX: parentState.error.interpolate({\n inputRange: [0, 0.5, 1],\n outputRange: [0, parentState.value && error ? wiggleOffsetX : 0, 0],\n }),\n },\n {\n // Move label to top\n translateY: parentState.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [baseLabelTranslateY, 0],\n }),\n },\n {\n // Make label smaller\n scale: parentState.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [labelScale, 1],\n }),\n },\n ],\n };\n\n return label ? (\n // Position colored placeholder and gray placeholder on top of each other and crossfade them\n // This gives the effect of animating the color, but allows us to use native driver\n \n {labelBackground?.({\n parentState,\n labelStyle,\n labelProps: props.labelProps,\n maxFontSizeMultiplier: maxFontSizeMultiplier,\n })}\n \n {label}\n \n \n {label}\n \n \n ) : null;\n};\n\nconst styles = StyleSheet.create({\n labelContainer: {\n zIndex: 3,\n },\n});\n\nexport default InputLabel;\n","import * as React from 'react';\nimport { Animated, StyleSheet } from 'react-native';\n\nimport AnimatedText from '../../Typography/AnimatedText';\n\nimport type { LabelBackgroundProps } from '../types';\n\nconst LabelBackground = ({\n parentState,\n labelProps: {\n placeholderStyle,\n baseLabelTranslateX,\n topPosition,\n hasActiveOutline,\n label,\n backgroundColor,\n roundness,\n },\n labelStyle,\n maxFontSizeMultiplier,\n}: LabelBackgroundProps) => {\n const hasFocus = hasActiveOutline || parentState.value;\n const opacity = parentState.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [hasFocus ? 1 : 0, 0],\n });\n\n const labelTranslationX = {\n transform: [\n {\n translateX: parentState.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [-baseLabelTranslateX, 0],\n }),\n },\n ],\n };\n\n return label\n ? [\n ,\n \n {label}\n ,\n ]\n : null;\n};\n\nexport default LabelBackground;\n\nconst styles = StyleSheet.create({\n view: {\n position: 'absolute',\n top: 6,\n left: 10,\n width: 12,\n },\n outlinedLabel: {\n position: 'absolute',\n left: 18,\n paddingHorizontal: 0,\n color: 'transparent',\n },\n});\n","import type { Animated } from 'react-native';\nimport type { AdornmentConfig } from './Adornment/types';\nimport {\n LABEL_PADDING_HORIZONTAL,\n ADORNMENT_OFFSET,\n ADORNMENT_SIZE,\n FLAT_INPUT_OFFSET,\n} from './constants';\nimport { AdornmentType, AdornmentSide } from './Adornment/enums';\nimport type { TextInputLabelProp } from './types';\n\ntype PaddingProps = {\n height: number | null;\n labelHalfHeight: number;\n multiline: boolean | null;\n dense: boolean | null;\n topPosition: number;\n fontSize: number;\n lineHeight?: number;\n label?: TextInputLabelProp | null;\n scale: number;\n offset: number;\n isAndroid: boolean;\n styles: { paddingTop: number; paddingBottom: number };\n};\n\ntype AdjProps = PaddingProps & {\n pad: number;\n};\n\nexport type Padding = { paddingTop: number; paddingBottom: number };\n\nexport const calculateLabelTopPosition = (\n labelHeight: number,\n height: number = 0,\n optionalPadding: number = 0\n): number => {\n const customHeight = height > 0 ? height : 0;\n\n return Math.floor((customHeight - labelHeight) / 2 + optionalPadding);\n};\n\nexport const calculateInputHeight = (\n labelHeight: number,\n height: any = 0,\n minHeight: number\n): number => {\n const finalHeight = height > 0 ? height : labelHeight;\n\n if (height > 0) return height;\n return finalHeight < minHeight ? minHeight : finalHeight;\n};\n\nexport const calculatePadding = (props: PaddingProps): number => {\n const { height, multiline = false } = props;\n\n let result = 0;\n\n if (multiline) {\n if (height && multiline) {\n result = calculateTextAreaPadding(props);\n } else {\n result = calculateInputPadding(props);\n }\n }\n\n return Math.max(0, result);\n};\n\nconst calculateTextAreaPadding = (props: PaddingProps) => {\n const { dense } = props;\n\n return dense ? 10 : 20;\n};\n\nconst calculateInputPadding = ({\n topPosition,\n fontSize,\n multiline,\n scale,\n dense,\n offset,\n isAndroid,\n}: PaddingProps): number => {\n const refFontSize = scale * fontSize;\n let result = Math.floor(topPosition / 2);\n\n result =\n result +\n Math.floor((refFontSize - fontSize) / 2) -\n (scale < 1 ? offset / 2 : 0);\n\n if (multiline && isAndroid)\n result = Math.min(dense ? offset / 2 : offset, result);\n\n return result;\n};\n\nexport const adjustPaddingOut = ({\n pad,\n multiline,\n label,\n scale,\n height,\n fontSize,\n lineHeight,\n dense,\n offset,\n isAndroid,\n}: AdjProps): Padding => {\n const fontHeight = lineHeight ?? fontSize;\n const refFontHeight = scale * fontSize;\n let result = pad;\n\n if (height && !multiline) {\n return {\n paddingTop: Math.max(0, (height - fontHeight) / 2),\n paddingBottom: Math.max(0, (height - fontHeight) / 2),\n };\n }\n if (!isAndroid && multiline) {\n if (dense) {\n if (label) {\n result += scale < 1 ? Math.min(offset, (refFontHeight / 2) * scale) : 0;\n } else {\n result += 0;\n }\n }\n if (!dense) {\n if (label) {\n result +=\n scale < 1\n ? Math.min(offset, refFontHeight * scale)\n : Math.min(offset / 2, refFontHeight * scale);\n } else {\n result += scale < 1 ? Math.min(offset / 2, refFontHeight * scale) : 0;\n }\n }\n result = Math.floor(result);\n }\n return { paddingTop: result, paddingBottom: result };\n};\n\nexport const adjustPaddingFlat = ({\n pad,\n scale,\n multiline,\n label,\n height,\n offset,\n dense,\n fontSize,\n isAndroid,\n styles,\n}: AdjProps): Padding => {\n let result = pad;\n let topResult = result;\n let bottomResult = result;\n const { paddingTop, paddingBottom } = styles;\n const refFontSize = scale * fontSize;\n\n if (!multiline) {\n // do not modify padding if input is not multiline\n if (label) {\n // return const style for flat input with label\n return { paddingTop, paddingBottom };\n }\n // return pad for flat input without label\n return { paddingTop: result, paddingBottom: result };\n }\n\n if (label) {\n // add paddings passed from styles\n topResult = paddingTop;\n bottomResult = paddingBottom;\n\n // adjust top padding for iOS\n if (!isAndroid) {\n if (dense) {\n topResult +=\n scale < 1\n ? Math.min(result, refFontSize * scale) - result / 2\n : Math.min(result, refFontSize * scale) - result / 2;\n }\n if (!dense) {\n topResult +=\n scale < 1\n ? Math.min(offset / 2, refFontSize * scale)\n : Math.min(result, refFontSize * scale) - offset / 2;\n }\n }\n topResult = Math.floor(topResult);\n } else {\n if (height) {\n // center text when height is passed\n return {\n paddingTop: Math.max(0, (height - fontSize) / 2),\n paddingBottom: Math.max(0, (height - fontSize) / 2),\n };\n }\n // adjust paddings for iOS if no label\n if (!isAndroid) {\n if (dense) {\n result +=\n scale < 1\n ? Math.min(offset / 2, (fontSize / 2) * scale)\n : Math.min(offset / 2, scale);\n }\n if (!dense) {\n result +=\n scale < 1\n ? Math.min(offset, fontSize * scale)\n : Math.min(fontSize, (offset / 2) * scale);\n }\n\n result = Math.floor(result);\n topResult = result;\n bottomResult = result;\n }\n }\n\n return {\n paddingTop: Math.max(0, topResult),\n paddingBottom: Math.max(0, bottomResult),\n };\n};\n\nexport const interpolatePlaceholder = (\n labeled: Animated.Value,\n hasActiveOutline: boolean | undefined\n) =>\n labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 0 : 1, 1],\n });\n\nexport function calculateFlatAffixTopPosition({\n height,\n paddingTop,\n paddingBottom,\n affixHeight,\n}: {\n height: number;\n paddingTop: number;\n paddingBottom: number;\n affixHeight: number;\n}): number {\n const inputHeightWithoutPadding = height - paddingTop - paddingBottom;\n\n const halfOfTheInputHeightDecreasedByAffixHeight =\n (inputHeightWithoutPadding - affixHeight) / 2;\n\n return paddingTop + halfOfTheInputHeightDecreasedByAffixHeight;\n}\n\nexport function calculateOutlinedIconAndAffixTopPosition({\n height,\n affixHeight,\n labelYOffset,\n}: {\n height: number;\n affixHeight: number;\n labelYOffset: number;\n}): number {\n return (height - affixHeight + labelYOffset) / 2;\n}\n\nexport const calculateFlatInputHorizontalPadding = ({\n adornmentConfig,\n}: {\n adornmentConfig: AdornmentConfig[];\n}) => {\n let paddingLeft = LABEL_PADDING_HORIZONTAL;\n let paddingRight = LABEL_PADDING_HORIZONTAL;\n\n adornmentConfig.forEach(({ type, side }) => {\n if (type === AdornmentType.Icon && side === AdornmentSide.Left) {\n paddingLeft = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n } else if (side === AdornmentSide.Right) {\n if (type === AdornmentType.Affix) {\n paddingRight = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n } else if (type === AdornmentType.Icon) {\n paddingRight = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n }\n }\n });\n\n return { paddingLeft, paddingRight };\n};\n","import * as React from 'react';\nimport {\n View,\n TextInput as NativeTextInput,\n StyleSheet,\n I18nManager,\n Platform,\n TextStyle,\n ColorValue,\n} from 'react-native';\nimport color from 'color';\nimport TextInputAdornment, {\n getAdornmentConfig,\n getAdornmentStyleAdjustmentForNativeInput,\n TextInputAdornmentProps,\n} from './Adornment/TextInputAdornment';\n\nimport InputLabel from './Label/InputLabel';\nimport LabelBackground from './Label/LabelBackground';\nimport type { RenderProps, ChildTextInputProps } from './types';\n\nimport {\n MAXIMIZED_LABEL_FONT_SIZE,\n MINIMIZED_LABEL_FONT_SIZE,\n LABEL_WIGGLE_X_OFFSET,\n ADORNMENT_SIZE,\n ADORNMENT_OFFSET,\n} from './constants';\n\nimport {\n calculateLabelTopPosition,\n calculateInputHeight,\n calculatePadding,\n adjustPaddingOut,\n Padding,\n interpolatePlaceholder,\n calculateOutlinedIconAndAffixTopPosition,\n} from './helpers';\nimport { AdornmentType, AdornmentSide } from './Adornment/enums';\n\nconst OUTLINE_MINIMIZED_LABEL_Y_OFFSET = -6;\nconst LABEL_PADDING_TOP = 8;\nconst MIN_HEIGHT = 64;\nconst MIN_DENSE_HEIGHT = 48;\nconst INPUT_PADDING_HORIZONTAL = 14;\n\nconst TextInputOutlined = ({\n disabled = false,\n editable = true,\n label,\n error = false,\n selectionColor,\n underlineColor: _underlineColor,\n outlineColor: customOutlineColor,\n activeOutlineColor,\n dense,\n style,\n theme,\n render = (props: RenderProps) => ,\n multiline = false,\n parentState,\n innerRef,\n onFocus,\n forceFocus,\n onBlur,\n onChangeText,\n onLayoutAnimatedText,\n onLeftAffixLayoutChange,\n onRightAffixLayoutChange,\n left,\n right,\n placeholderTextColor,\n ...rest\n}: ChildTextInputProps) => {\n const adornmentConfig = getAdornmentConfig({ left, right });\n\n const { colors, fonts } = theme;\n const font = fonts.regular;\n const hasActiveOutline = parentState.focused || error;\n\n const {\n fontSize: fontSizeStyle,\n fontWeight,\n fontVariant,\n lineHeight,\n height,\n backgroundColor = colors.background,\n textAlign,\n ...viewStyle\n } = (StyleSheet.flatten(style) || {}) as TextStyle;\n const fontSize = fontSizeStyle || MAXIMIZED_LABEL_FONT_SIZE;\n\n let inputTextColor, activeColor, outlineColor, placeholderColor, errorColor;\n\n if (disabled) {\n const isTransparent = color(customOutlineColor).alpha() === 0;\n inputTextColor = activeColor = color(colors.text)\n .alpha(0.54)\n .rgb()\n .string();\n placeholderColor = colors.disabled;\n outlineColor = isTransparent ? customOutlineColor : colors.disabled;\n } else {\n inputTextColor = colors.text;\n activeColor = error ? colors.error : activeOutlineColor || colors.primary;\n placeholderColor = colors.placeholder;\n outlineColor = customOutlineColor || colors.placeholder;\n errorColor = colors.error;\n }\n\n const labelScale = MINIMIZED_LABEL_FONT_SIZE / fontSize;\n const fontScale = MAXIMIZED_LABEL_FONT_SIZE / fontSize;\n\n const labelWidth = parentState.labelLayout.width;\n const labelHeight = parentState.labelLayout.height;\n const labelHalfWidth = labelWidth / 2;\n const labelHalfHeight = labelHeight / 2;\n\n const baseLabelTranslateX =\n (I18nManager.isRTL ? 1 : -1) *\n (labelHalfWidth -\n (labelScale * labelWidth) / 2 -\n (fontSize - MINIMIZED_LABEL_FONT_SIZE) * labelScale);\n\n let labelTranslationXOffset = 0;\n const isAdornmentLeftIcon = adornmentConfig.some(\n ({ side, type }) =>\n side === AdornmentSide.Left && type === AdornmentType.Icon\n );\n if (isAdornmentLeftIcon) {\n labelTranslationXOffset =\n (I18nManager.isRTL ? -1 : 1) * (ADORNMENT_SIZE + ADORNMENT_OFFSET - 8);\n }\n\n const minInputHeight =\n (dense ? MIN_DENSE_HEIGHT : MIN_HEIGHT) - LABEL_PADDING_TOP;\n\n const inputHeight = calculateInputHeight(labelHeight, height, minInputHeight);\n\n const topPosition = calculateLabelTopPosition(\n labelHeight,\n inputHeight,\n LABEL_PADDING_TOP\n );\n\n if (height && typeof height !== 'number') {\n // eslint-disable-next-line\n console.warn('Currently we support only numbers in height prop');\n }\n\n const paddingSettings = {\n height: height ? +height : null,\n labelHalfHeight,\n offset: LABEL_PADDING_TOP,\n multiline: multiline ? multiline : null,\n dense: dense ? dense : null,\n topPosition,\n fontSize,\n lineHeight,\n label,\n scale: fontScale,\n isAndroid: Platform.OS === 'android',\n styles: StyleSheet.flatten(\n dense ? styles.inputOutlinedDense : styles.inputOutlined\n ) as Padding,\n };\n\n const pad = calculatePadding(paddingSettings);\n\n const paddingOut = adjustPaddingOut({ ...paddingSettings, pad });\n\n const baseLabelTranslateY =\n -labelHalfHeight - (topPosition + OUTLINE_MINIMIZED_LABEL_Y_OFFSET);\n\n const placeholderOpacity = hasActiveOutline\n ? interpolatePlaceholder(parentState.labeled, hasActiveOutline)\n : parentState.labelLayout.measured\n ? 1\n : 0;\n\n const labelProps = {\n label,\n onLayoutAnimatedText,\n placeholderOpacity,\n error,\n placeholderStyle: styles.placeholder,\n baseLabelTranslateY,\n baseLabelTranslateX,\n font,\n fontSize,\n fontWeight,\n labelScale,\n wiggleOffsetX: LABEL_WIGGLE_X_OFFSET,\n topPosition,\n hasActiveOutline,\n activeColor,\n placeholderColor,\n backgroundColor: backgroundColor as ColorValue,\n errorColor,\n labelTranslationXOffset,\n roundness: theme.roundness,\n maxFontSizeMultiplier: rest.maxFontSizeMultiplier,\n };\n\n const minHeight = (height ||\n (dense ? MIN_DENSE_HEIGHT : MIN_HEIGHT)) as number;\n\n const { leftLayout, rightLayout } = parentState;\n\n const leftAffixTopPosition = calculateOutlinedIconAndAffixTopPosition({\n height: minHeight,\n affixHeight: leftLayout.height || 0,\n labelYOffset: -OUTLINE_MINIMIZED_LABEL_Y_OFFSET,\n });\n\n const rightAffixTopPosition = calculateOutlinedIconAndAffixTopPosition({\n height: minHeight,\n affixHeight: rightLayout.height || 0,\n labelYOffset: -OUTLINE_MINIMIZED_LABEL_Y_OFFSET,\n });\n const iconTopPosition = calculateOutlinedIconAndAffixTopPosition({\n height: minHeight,\n affixHeight: ADORNMENT_SIZE,\n labelYOffset: -OUTLINE_MINIMIZED_LABEL_Y_OFFSET,\n });\n\n const rightAffixWidth = right\n ? rightLayout.width || ADORNMENT_SIZE\n : ADORNMENT_SIZE;\n\n const leftAffixWidth = left\n ? leftLayout.width || ADORNMENT_SIZE\n : ADORNMENT_SIZE;\n\n const adornmentStyleAdjustmentForNativeInput =\n getAdornmentStyleAdjustmentForNativeInput({\n adornmentConfig,\n rightAffixWidth,\n leftAffixWidth,\n mode: 'outlined',\n });\n const affixTopPosition = {\n [AdornmentSide.Left]: leftAffixTopPosition,\n [AdornmentSide.Right]: rightAffixTopPosition,\n };\n const onAffixChange = {\n [AdornmentSide.Left]: onLeftAffixLayoutChange,\n [AdornmentSide.Right]: onRightAffixLayoutChange,\n };\n\n let adornmentProps: TextInputAdornmentProps = {\n adornmentConfig,\n forceFocus,\n topPosition: {\n [AdornmentType.Icon]: iconTopPosition,\n [AdornmentType.Affix]: affixTopPosition,\n },\n onAffixChange,\n isTextInputFocused: parentState.focused,\n maxFontSizeMultiplier: rest.maxFontSizeMultiplier,\n };\n if (adornmentConfig.length) {\n adornmentProps = {\n ...adornmentProps,\n left,\n right,\n textStyle: { ...font, fontSize, fontWeight },\n visible: parentState.labeled,\n };\n }\n\n return (\n \n {/*\n Render the outline separately from the container\n This is so that the label can overlap the outline\n Otherwise the border will cut off the label on Android\n */}\n \n \n \n \n {render?.({\n testID: 'text-input-outlined',\n ...rest,\n ref: innerRef,\n onChangeText,\n placeholder: label ? parentState.placeholder : rest.placeholder,\n placeholderTextColor: placeholderTextColor || placeholderColor,\n editable: !disabled && editable,\n selectionColor:\n typeof selectionColor === 'undefined'\n ? activeColor\n : selectionColor,\n onFocus,\n onBlur,\n underlineColorAndroid: 'transparent',\n multiline,\n style: [\n styles.input,\n !multiline || (multiline && height)\n ? { height: inputHeight }\n : {},\n paddingOut,\n {\n ...font,\n fontSize,\n fontWeight,\n fontVariant,\n color: inputTextColor,\n textAlignVertical: multiline ? 'top' : 'center',\n textAlign: textAlign\n ? textAlign\n : I18nManager.isRTL\n ? 'right'\n : 'left',\n },\n Platform.OS === 'web' && { outline: 'none' },\n adornmentStyleAdjustmentForNativeInput,\n ],\n } as RenderProps)}\n \n \n \n \n );\n};\n\nexport default TextInputOutlined;\n\ntype OutlineProps = {\n activeColor: string;\n hasActiveOutline?: boolean;\n focused?: boolean;\n outlineColor?: string;\n backgroundColor: ColorValue;\n theme: ReactNativePaper.Theme;\n};\n\nconst Outline = ({\n theme,\n hasActiveOutline,\n activeColor,\n outlineColor,\n focused,\n backgroundColor,\n}: OutlineProps) => (\n \n);\n\nconst styles = StyleSheet.create({\n placeholder: {\n position: 'absolute',\n left: 0,\n paddingHorizontal: INPUT_PADDING_HORIZONTAL,\n },\n outline: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 6,\n bottom: 0,\n },\n labelContainer: {\n paddingBottom: 0,\n },\n input: {\n flexGrow: 1,\n paddingHorizontal: INPUT_PADDING_HORIZONTAL,\n margin: 0,\n zIndex: 1,\n },\n inputOutlined: {\n paddingTop: 8,\n paddingBottom: 8,\n },\n inputOutlinedDense: {\n paddingTop: 4,\n paddingBottom: 4,\n },\n});\n","import * as React from 'react';\nimport {\n View,\n Animated,\n TextInput as NativeTextInput,\n StyleSheet,\n I18nManager,\n Platform,\n TextStyle,\n} from 'react-native';\nimport color from 'color';\nimport InputLabel from './Label/InputLabel';\nimport TextInputAdornment, {\n TextInputAdornmentProps,\n} from './Adornment/TextInputAdornment';\nimport type { RenderProps, ChildTextInputProps } from './types';\n\nimport {\n MAXIMIZED_LABEL_FONT_SIZE,\n MINIMIZED_LABEL_FONT_SIZE,\n LABEL_WIGGLE_X_OFFSET,\n ADORNMENT_SIZE,\n FLAT_INPUT_OFFSET,\n} from './constants';\n\nimport {\n calculateLabelTopPosition,\n calculateInputHeight,\n calculatePadding,\n adjustPaddingFlat,\n Padding,\n interpolatePlaceholder,\n calculateFlatAffixTopPosition,\n calculateFlatInputHorizontalPadding,\n} from './helpers';\nimport {\n getAdornmentConfig,\n getAdornmentStyleAdjustmentForNativeInput,\n} from './Adornment/TextInputAdornment';\nimport { AdornmentSide, AdornmentType, InputMode } from './Adornment/enums';\n\nconst MINIMIZED_LABEL_Y_OFFSET = -18;\n\nconst LABEL_PADDING_TOP = 30;\nconst LABEL_PADDING_TOP_DENSE = 24;\nconst MIN_HEIGHT = 64;\nconst MIN_DENSE_HEIGHT_WL = 52;\nconst MIN_DENSE_HEIGHT = 40;\n\nconst TextInputFlat = ({\n disabled = false,\n editable = true,\n label,\n error = false,\n selectionColor,\n underlineColor,\n activeUnderlineColor,\n dense,\n style,\n theme,\n render = (props: RenderProps) => ,\n multiline = false,\n parentState,\n innerRef,\n onFocus,\n forceFocus,\n onBlur,\n onChangeText,\n onLayoutAnimatedText,\n onLeftAffixLayoutChange,\n onRightAffixLayoutChange,\n left,\n right,\n placeholderTextColor,\n ...rest\n}: ChildTextInputProps) => {\n const isAndroid = Platform.OS === 'android';\n const { colors, fonts } = theme;\n const font = fonts.regular;\n const hasActiveOutline = parentState.focused || error;\n\n const {\n fontSize: fontSizeStyle,\n fontWeight,\n fontVariant,\n height,\n paddingHorizontal,\n textAlign,\n ...viewStyle\n } = (StyleSheet.flatten(style) || {}) as TextStyle;\n const fontSize = fontSizeStyle || MAXIMIZED_LABEL_FONT_SIZE;\n\n const isPaddingHorizontalPassed =\n paddingHorizontal !== undefined && typeof paddingHorizontal === 'number';\n\n const adornmentConfig = getAdornmentConfig({\n left,\n right,\n });\n\n let { paddingLeft, paddingRight } = calculateFlatInputHorizontalPadding({\n adornmentConfig,\n });\n\n if (isPaddingHorizontalPassed) {\n paddingLeft = paddingHorizontal as number;\n paddingRight = paddingHorizontal as number;\n }\n\n const { leftLayout, rightLayout } = parentState;\n\n const rightAffixWidth = right\n ? rightLayout.width || ADORNMENT_SIZE\n : ADORNMENT_SIZE;\n\n const leftAffixWidth = left\n ? leftLayout.width || ADORNMENT_SIZE\n : ADORNMENT_SIZE;\n\n const adornmentStyleAdjustmentForNativeInput =\n getAdornmentStyleAdjustmentForNativeInput({\n adornmentConfig,\n rightAffixWidth,\n leftAffixWidth,\n paddingHorizontal,\n inputOffset: FLAT_INPUT_OFFSET,\n mode: InputMode.Flat,\n });\n\n let inputTextColor,\n activeColor,\n underlineColorCustom,\n placeholderColor,\n errorColor;\n\n if (disabled) {\n inputTextColor = activeColor = color(colors.text)\n .alpha(0.54)\n .rgb()\n .string();\n placeholderColor = colors.disabled;\n underlineColorCustom = 'transparent';\n } else {\n inputTextColor = colors.text;\n activeColor = error ? colors.error : activeUnderlineColor || colors.primary;\n placeholderColor = colors.placeholder;\n errorColor = colors.error;\n underlineColorCustom = underlineColor || colors.disabled;\n }\n\n const containerStyle = {\n backgroundColor: theme.dark\n ? color(colors.background).lighten(0.24).rgb().string()\n : color(colors.background).darken(0.06).rgb().string(),\n borderTopLeftRadius: theme.roundness,\n borderTopRightRadius: theme.roundness,\n };\n\n const labelScale = MINIMIZED_LABEL_FONT_SIZE / fontSize;\n const fontScale = MAXIMIZED_LABEL_FONT_SIZE / fontSize;\n\n const labelWidth = parentState.labelLayout.width;\n const labelHeight = parentState.labelLayout.height;\n const labelHalfWidth = labelWidth / 2;\n const labelHalfHeight = labelHeight / 2;\n\n const baseLabelTranslateX =\n (I18nManager.isRTL ? 1 : -1) *\n (labelHalfWidth - (labelScale * labelWidth) / 2) +\n (1 - labelScale) * (I18nManager.isRTL ? -1 : 1) * paddingLeft;\n\n const minInputHeight = dense\n ? (label ? MIN_DENSE_HEIGHT_WL : MIN_DENSE_HEIGHT) - LABEL_PADDING_TOP_DENSE\n : MIN_HEIGHT - LABEL_PADDING_TOP;\n\n const inputHeight = calculateInputHeight(labelHeight, height, minInputHeight);\n\n const topPosition = calculateLabelTopPosition(\n labelHeight,\n inputHeight,\n multiline && height ? 0 : !height ? minInputHeight / 2 : 0\n );\n\n if (height && typeof height !== 'number') {\n // eslint-disable-next-line\n console.warn('Currently we support only numbers in height prop');\n }\n\n const paddingSettings = {\n height: height ? +height : null,\n labelHalfHeight,\n offset: FLAT_INPUT_OFFSET,\n multiline: multiline ? multiline : null,\n dense: dense ? dense : null,\n topPosition,\n fontSize,\n label,\n scale: fontScale,\n isAndroid,\n styles: StyleSheet.flatten(\n dense ? styles.inputFlatDense : styles.inputFlat\n ) as Padding,\n };\n\n const pad = calculatePadding(paddingSettings);\n\n const paddingFlat = adjustPaddingFlat({\n ...paddingSettings,\n pad,\n });\n\n const baseLabelTranslateY =\n -labelHalfHeight - (topPosition + MINIMIZED_LABEL_Y_OFFSET);\n\n const placeholderOpacity = hasActiveOutline\n ? interpolatePlaceholder(parentState.labeled, hasActiveOutline)\n : parentState.labelLayout.measured\n ? 1\n : 0;\n\n const minHeight =\n height ||\n (dense ? (label ? MIN_DENSE_HEIGHT_WL : MIN_DENSE_HEIGHT) : MIN_HEIGHT);\n\n const flatHeight =\n inputHeight +\n (!height ? (dense ? LABEL_PADDING_TOP_DENSE : LABEL_PADDING_TOP) : 0);\n\n const iconTopPosition = (flatHeight - ADORNMENT_SIZE) / 2;\n\n const leftAffixTopPosition = leftLayout.height\n ? calculateFlatAffixTopPosition({\n height: flatHeight,\n ...paddingFlat,\n affixHeight: leftLayout.height,\n })\n : null;\n\n const rightAffixTopPosition = rightLayout.height\n ? calculateFlatAffixTopPosition({\n height: flatHeight,\n ...paddingFlat,\n affixHeight: rightLayout.height,\n })\n : null;\n\n const labelProps = {\n label,\n onLayoutAnimatedText,\n placeholderOpacity,\n error,\n placeholderStyle: styles.placeholder,\n baseLabelTranslateY,\n baseLabelTranslateX,\n font,\n fontSize,\n fontWeight,\n labelScale,\n wiggleOffsetX: LABEL_WIGGLE_X_OFFSET,\n topPosition,\n paddingOffset: isAndroid\n ? {\n paddingLeft: I18nManager.isRTL ? paddingRight : paddingLeft,\n paddingRight: I18nManager.isRTL ? paddingLeft : paddingRight,\n }\n : { paddingRight, paddingLeft },\n hasActiveOutline,\n activeColor,\n placeholderColor,\n errorColor,\n roundness: theme.roundness,\n maxFontSizeMultiplier: rest.maxFontSizeMultiplier,\n };\n const affixTopPosition = {\n [AdornmentSide.Left]: leftAffixTopPosition,\n [AdornmentSide.Right]: rightAffixTopPosition,\n };\n const onAffixChange = {\n [AdornmentSide.Left]: onLeftAffixLayoutChange,\n [AdornmentSide.Right]: onRightAffixLayoutChange,\n };\n\n let adornmentProps: TextInputAdornmentProps = {\n paddingHorizontal,\n adornmentConfig,\n forceFocus,\n topPosition: {\n [AdornmentType.Affix]: affixTopPosition,\n [AdornmentType.Icon]: iconTopPosition,\n },\n onAffixChange,\n isTextInputFocused: parentState.focused,\n maxFontSizeMultiplier: rest.maxFontSizeMultiplier,\n };\n if (adornmentConfig.length) {\n adornmentProps = {\n ...adornmentProps,\n left,\n right,\n textStyle: { ...font, fontSize, fontWeight },\n visible: parentState.labeled,\n };\n }\n\n return (\n \n \n \n {!isAndroid && multiline && !!label && (\n // Workaround for: https://github.com/callstack/react-native-paper/issues/2799\n // Patch for a multiline TextInput with fixed height, which allow to avoid covering input label with its value.\n \n )}\n \n {render?.({\n testID: 'text-input-flat',\n ...rest,\n ref: innerRef,\n onChangeText,\n placeholder: label ? parentState.placeholder : rest.placeholder,\n placeholderTextColor: placeholderTextColor ?? placeholderColor,\n editable: !disabled && editable,\n selectionColor:\n typeof selectionColor === 'undefined'\n ? activeColor\n : selectionColor,\n onFocus,\n onBlur,\n underlineColorAndroid: 'transparent',\n multiline,\n style: [\n styles.input,\n { paddingLeft, paddingRight },\n !multiline || (multiline && height) ? { height: flatHeight } : {},\n paddingFlat,\n {\n ...font,\n fontSize,\n fontWeight,\n fontVariant,\n color: inputTextColor,\n textAlignVertical: multiline ? 'top' : 'center',\n textAlign: textAlign\n ? textAlign\n : I18nManager.isRTL\n ? 'right'\n : 'left',\n },\n Platform.OS === 'web' && { outline: 'none' },\n adornmentStyleAdjustmentForNativeInput,\n ],\n })}\n \n \n \n );\n};\n\nexport default TextInputFlat;\n\ntype UnderlineProps = {\n parentState: {\n focused: boolean;\n };\n error?: boolean;\n colors: {\n error: string;\n };\n activeColor: string;\n underlineColorCustom?: string;\n};\n\nconst Underline = ({\n parentState,\n error,\n colors,\n activeColor,\n underlineColorCustom,\n}: UnderlineProps) => {\n let backgroundColor = parentState.focused\n ? activeColor\n : underlineColorCustom;\n if (error) backgroundColor = colors.error;\n return (\n \n );\n};\n\nconst styles = StyleSheet.create({\n placeholder: {\n position: 'absolute',\n left: 0,\n },\n underline: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: 2,\n zIndex: 1,\n },\n labelContainer: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n input: {\n flexGrow: 1,\n margin: 0,\n },\n inputFlat: {\n paddingTop: 24,\n paddingBottom: 4,\n },\n inputFlatDense: {\n paddingTop: 22,\n paddingBottom: 2,\n },\n patchContainer: {\n height: 24,\n zIndex: 2,\n },\n densePatchContainer: {\n height: 22,\n zIndex: 2,\n },\n});\n","import * as React from 'react';\nimport {\n Animated,\n TextInput as NativeTextInput,\n LayoutChangeEvent,\n StyleProp,\n TextStyle,\n} from 'react-native';\nimport TextInputOutlined from './TextInputOutlined';\nimport TextInputFlat from './TextInputFlat';\nimport TextInputIcon, {\n Props as TextInputIconProps,\n} from './Adornment/TextInputIcon';\nimport TextInputAffix, {\n Props as TextInputAffixProps,\n} from './Adornment/TextInputAffix';\nimport { withTheme } from '../../core/theming';\nimport type { RenderProps, TextInputLabelProp } from './types';\n\nconst BLUR_ANIMATION_DURATION = 180;\nconst FOCUS_ANIMATION_DURATION = 150;\n\nexport type Props = React.ComponentPropsWithRef & {\n /**\n * Mode of the TextInput.\n * - `flat` - flat input with an underline.\n * - `outlined` - input with an outline.\n *\n * In `outlined` mode, the background color of the label is derived from `colors.background` in theme or the `backgroundColor` style.\n * This component render TextInputOutlined or TextInputFlat based on that props\n */\n mode?: 'flat' | 'outlined';\n left?: React.ReactNode;\n right?: React.ReactNode;\n /**\n * If true, user won't be able to interact with the component.\n */\n disabled?: boolean;\n /**\n * The text or component to use for the floating label.\n */\n label?: TextInputLabelProp;\n /**\n * Placeholder for the input.\n */\n placeholder?: string;\n /**\n * Whether to style the TextInput with error style.\n */\n error?: boolean;\n /**\n * Callback that is called when the text input's text changes. Changed text is passed as an argument to the callback handler.\n */\n onChangeText?: Function;\n /**\n * Selection color of the input\n */\n selectionColor?: string;\n /**\n * Inactive underline color of the input.\n */\n underlineColor?: string;\n /**\n * Active underline color of the input.\n */\n activeUnderlineColor?: string;\n /**\n * Inactive outline color of the input.\n */\n outlineColor?: string;\n /**\n * Active outline color of the input.\n */\n activeOutlineColor?: string;\n /**\n * Sets min height with densed layout. For `TextInput` in `flat` mode\n * height is `64dp` or in dense layout - `52dp` with label or `40dp` without label.\n * For `TextInput` in `outlined` mode\n * height is `56dp` or in dense layout - `40dp` regardless of label.\n * When you apply `height` prop in style the `dense` prop affects only `paddingVertical` inside `TextInput`\n */\n dense?: boolean;\n /**\n * Whether the input can have multiple lines.\n */\n multiline?: boolean;\n /**\n * The number of lines to show in the input (Android only).\n */\n numberOfLines?: number;\n /**\n * Callback that is called when the text input is focused.\n */\n onFocus?: (args: any) => void;\n /**\n * Callback that is called when the text input is blurred.\n */\n onBlur?: (args: any) => void;\n /**\n *\n * Callback to render a custom input component such as `react-native-text-input-mask`\n * instead of the default `TextInput` component from `react-native`.\n *\n * Example:\n * ```js\n * \n * \n * }\n * />\n * ```\n */\n render?: (props: RenderProps) => React.ReactNode;\n /**\n * Value of the text input.\n */\n value?: string;\n /**\n * Pass `fontSize` prop to modify the font size inside `TextInput`.\n * Pass `height` prop to set `TextInput` height. When `height` is passed,\n * `dense` prop will affect only input's `paddingVertical`.\n * Pass `paddingHorizontal` to modify horizontal padding.\n * This can be used to get MD Guidelines v1 TextInput look.\n */\n style?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\ninterface CompoundedComponent\n extends React.ForwardRefExoticComponent<\n Props & React.RefAttributes\n > {\n Icon: React.FunctionComponent;\n Affix: React.FunctionComponent>;\n}\n\ntype TextInputHandles = Pick<\n NativeTextInput,\n 'focus' | 'clear' | 'blur' | 'isFocused' | 'setNativeProps'\n>;\n\n/**\n * A component to allow users to input text.\n *\n *
\n *
\n * \n *
Flat (focused)
\n *
\n *
\n * \n *
Flat (disabled)
\n *
\n *
\n * \n *
Outlined (focused)
\n *
\n *
\n * \n *
Outlined (disabled)
\n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { TextInput } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [text, setText] = React.useState(\"\");\n *\n * return (\n * setText(text)}\n * />\n * );\n * };\n *\n * export default MyComponent;\n * ```\n *\n * @extends TextInput props https://reactnative.dev/docs/textinput#props\n */\n\nconst TextInput = React.forwardRef(\n (\n {\n mode = 'flat',\n dense = false,\n disabled = false,\n error: errorProp = false,\n multiline = false,\n editable = true,\n render = (props: RenderProps) => ,\n ...rest\n }: Props,\n ref\n ) => {\n const isControlled = rest.value !== undefined;\n const validInputValue = isControlled ? rest.value : rest.defaultValue;\n\n const { current: labeled } = React.useRef(\n new Animated.Value(validInputValue ? 0 : 1)\n );\n const { current: error } = React.useRef(\n new Animated.Value(errorProp ? 1 : 0)\n );\n const [focused, setFocused] = React.useState(false);\n const [placeholder, setPlaceholder] = React.useState(\n ' '\n );\n const [uncontrolledValue, setUncontrolledValue] = React.useState<\n string | undefined\n >(validInputValue);\n // Use value from props instead of local state when input is controlled\n const value = isControlled ? rest.value : uncontrolledValue;\n\n const [labelLayout, setLabelLayout] = React.useState<{\n measured: boolean;\n width: number;\n height: number;\n }>({\n measured: false,\n width: 0,\n height: 0,\n });\n const [leftLayout, setLeftLayout] = React.useState<{\n height: number | null;\n width: number | null;\n }>({\n width: null,\n height: null,\n });\n const [rightLayout, setRightLayout] = React.useState<{\n height: number | null;\n width: number | null;\n }>({\n width: null,\n height: null,\n });\n\n const timer = React.useRef();\n\n const root = React.useRef();\n\n const { scale } = rest.theme.animation;\n\n React.useImperativeHandle(ref, () => ({\n focus: () => root.current?.focus(),\n clear: () => root.current?.clear(),\n setNativeProps: (args: Object) => root.current?.setNativeProps(args),\n isFocused: () => root.current?.isFocused() || false,\n blur: () => root.current?.blur(),\n forceFocus: () => root.current?.focus(),\n }));\n\n React.useEffect(() => {\n // When the input has an error, we wiggle the label and apply error styles\n if (errorProp) {\n // show error\n Animated.timing(error, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION * scale,\n // To prevent this - https://github.com/callstack/react-native-paper/issues/941\n useNativeDriver: true,\n }).start();\n } else {\n // hide error\n {\n Animated.timing(error, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION * scale,\n // To prevent this - https://github.com/callstack/react-native-paper/issues/941\n useNativeDriver: true,\n }).start();\n }\n }\n }, [errorProp, scale, error]);\n\n React.useEffect(() => {\n // Show placeholder text only if the input is focused, or there's no label\n // We don't show placeholder if there's a label because the label acts as placeholder\n // When focused, the label moves up, so we can show a placeholder\n if (focused || !rest.label) {\n // Set the placeholder in a delay to offset the label animation\n // If we show it immediately, they'll overlap and look ugly\n timer.current = setTimeout(\n () => setPlaceholder(rest.placeholder),\n 50\n ) as unknown as NodeJS.Timeout;\n } else {\n // hidePlaceholder\n\n // Issue: https://github.com/callstack/react-native-paper/issues/3138\n // Description: Changing the placeholder text value dynamically,\n // within multiline input on iOS, doesn't work properly –\n // the placeholder is not displayed initially.\n // Root cause: Placeholder initial value, which has length 0.\n // More context: The issue was also reproduced in react-native, using its own TextInput.\n // Workaround: Set an empty space character in the default value.\n setPlaceholder(' ');\n }\n\n return () => {\n if (timer.current) {\n clearTimeout(timer.current);\n }\n };\n }, [focused, rest.label, rest.placeholder]);\n\n React.useEffect(() => {\n // The label should be minimized if the text input is focused, or has text\n // In minimized mode, the label moves up and becomes small\n // workaround for animated regression for react native > 0.61\n // https://github.com/callstack/react-native-paper/pull/1440\n if (value || focused) {\n // minimize label\n Animated.timing(labeled, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION * scale,\n // To prevent this - https://github.com/callstack/react-native-paper/issues/941\n useNativeDriver: true,\n }).start();\n } else {\n // restore label\n {\n Animated.timing(labeled, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION * scale,\n // To prevent this - https://github.com/callstack/react-native-paper/issues/941\n useNativeDriver: true,\n }).start();\n }\n }\n }, [focused, value, labeled, scale]);\n\n const onLeftAffixLayoutChange = (event: LayoutChangeEvent) => {\n setLeftLayout({\n height: event.nativeEvent.layout.height,\n width: event.nativeEvent.layout.width,\n });\n };\n\n const onRightAffixLayoutChange = (event: LayoutChangeEvent) => {\n setRightLayout({\n width: event.nativeEvent.layout.width,\n height: event.nativeEvent.layout.height,\n });\n };\n\n const handleFocus = (args: any) => {\n if (disabled || !editable) {\n return;\n }\n\n setFocused(true);\n\n rest.onFocus?.(args);\n };\n\n const handleBlur = (args: Object) => {\n if (!editable) {\n return;\n }\n\n setFocused(false);\n rest.onBlur?.(args);\n };\n\n const handleChangeText = (value: string) => {\n if (!editable || disabled) {\n return;\n }\n\n if (!isControlled) {\n // Keep track of value in local state when input is not controlled\n setUncontrolledValue(value);\n }\n rest.onChangeText?.(value);\n };\n\n const handleLayoutAnimatedText = (e: LayoutChangeEvent) => {\n setLabelLayout({\n width: e.nativeEvent.layout.width,\n height: e.nativeEvent.layout.height,\n measured: true,\n });\n };\n const forceFocus = () => root.current?.focus();\n\n const { maxFontSizeMultiplier = 1.5 } = rest;\n\n if (mode === 'outlined') {\n return (\n {\n root.current = ref;\n }}\n onFocus={handleFocus}\n forceFocus={forceFocus}\n onBlur={handleBlur}\n onChangeText={handleChangeText}\n onLayoutAnimatedText={handleLayoutAnimatedText}\n onLeftAffixLayoutChange={onLeftAffixLayoutChange}\n onRightAffixLayoutChange={onRightAffixLayoutChange}\n maxFontSizeMultiplier={maxFontSizeMultiplier}\n />\n );\n }\n\n return (\n {\n root.current = ref;\n }}\n onFocus={handleFocus}\n forceFocus={forceFocus}\n onBlur={handleBlur}\n onChangeText={handleChangeText}\n onLayoutAnimatedText={handleLayoutAnimatedText}\n onLeftAffixLayoutChange={onLeftAffixLayoutChange}\n onRightAffixLayoutChange={onRightAffixLayoutChange}\n maxFontSizeMultiplier={maxFontSizeMultiplier}\n />\n );\n }\n) as CompoundedComponent;\n// @component ./Adornment/TextInputIcon.tsx\nTextInput.Icon = TextInputIcon;\n\n// @component ./Adornment/TextInputAffix.tsx\n// @ts-ignore Types of property 'theme' are incompatible.\nTextInput.Affix = TextInputAffix;\n\nexport default withTheme(TextInput);\n","import { StatusBarProps } from './StatusBar.types';\n\n// @needsAudit\n/**\n * A component that allows you to configure your status bar without directly calling imperative\n * methods like `setBarStyle`.\n *\n * You will likely have multiple `StatusBar` components mounted in the same app at the same time.\n * For example, if you have multiple screens in your app, you may end up using one per screen.\n * The props of each `StatusBar` component will be merged in the order that they were mounted.\n * This component is built on top of the [StatusBar](https://reactnative.dev/docs/statusbar)\n * component exported from React Native, and it provides defaults that work better for Expo users.\n */\nexport default function ExpoStatusBar(props: StatusBarProps) {\n // StatusBar does nothing on web currently\n return null;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * \n */\n'use strict';\n\nimport _EventSubscription from './_EventSubscription';\n\n/**\n * EmitterSubscription represents a subscription with listener and context data.\n */\nclass EmitterSubscription extends _EventSubscription {\n /**\n * @param {EventEmitter} emitter - The event emitter that registered this\n * subscription\n * @param {EventSubscriptionVendor} subscriber - The subscriber that controls\n * this subscription\n * @param {function} listener - Function to invoke when the specified event is\n * emitted\n * @param {*} context - Optional context object to use when invoking the\n * listener\n */\n constructor(emitter, subscriber, listener, context) {\n super(subscriber);\n this.emitter = emitter;\n this.listener = listener;\n this.context = context;\n }\n /**\n * Removes this subscription from the emitter that registered it.\n * Note: we're overriding the `remove()` method of _EventSubscription here\n * but deliberately not calling `super.remove()` as the responsibility\n * for removing the subscription lies with the EventEmitter.\n */\n\n\n remove() {\n this.emitter.removeSubscription(this);\n }\n\n}\n\nexport default EmitterSubscription;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * \n */\n'use strict';\n\n/**\n * EventSubscription represents a subscription to a particular event. It can\n * remove its own subscription.\n */\nclass _EventSubscription {\n /**\n * @param {EventSubscriptionVendor} subscriber the subscriber that controls\n * this subscription.\n */\n constructor(subscriber) {\n this.subscriber = subscriber;\n }\n /**\n * Removes this subscription from the subscriber that controls it.\n */\n\n\n remove() {\n this.subscriber.removeSubscription(this);\n }\n\n}\n\nexport default _EventSubscription;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * \n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * EventSubscriptionVendor stores a set of EventSubscriptions that are\n * subscribed to a particular event type.\n */\nclass EventSubscriptionVendor {\n constructor() {\n this._subscriptionsForType = {};\n }\n /**\n * Adds a subscription keyed by an event type.\n *\n * @param {string} eventType\n * @param {EventSubscription} subscription\n */\n\n\n addSubscription(eventType, subscription) {\n invariant(subscription.subscriber === this, 'The subscriber of the subscription is incorrectly set.');\n\n if (!this._subscriptionsForType[eventType]) {\n this._subscriptionsForType[eventType] = [];\n }\n\n var key = this._subscriptionsForType[eventType].length;\n\n this._subscriptionsForType[eventType].push(subscription);\n\n subscription.eventType = eventType;\n subscription.key = key;\n return subscription;\n }\n /**\n * Removes a bulk set of the subscriptions.\n *\n * @param {?string} eventType - Optional name of the event type whose\n * registered supscriptions to remove, if null remove all subscriptions.\n */\n\n\n removeAllSubscriptions(eventType) {\n if (eventType == null) {\n this._subscriptionsForType = {};\n } else {\n delete this._subscriptionsForType[eventType];\n }\n }\n /**\n * Removes a specific subscription. Instead of calling this function, call\n * `subscription.remove()` directly.\n *\n * @param {object} subscription\n */\n\n\n removeSubscription(subscription) {\n var eventType = subscription.eventType;\n var key = subscription.key;\n var subscriptionsForType = this._subscriptionsForType[eventType];\n\n if (subscriptionsForType) {\n delete subscriptionsForType[key];\n }\n }\n /**\n * Returns the array of subscriptions that are currently registered for the\n * given event type.\n *\n * Note: This array can be potentially sparse as subscriptions are deleted\n * from it when they are removed.\n *\n * TODO: This returns a nullable array. wat?\n *\n * @param {string} eventType\n * @returns {?array}\n */\n\n\n getSubscriptionsForType(eventType) {\n return this._subscriptionsForType[eventType];\n }\n\n}\n\nexport default EventSubscriptionVendor;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * \n * @typecheck\n */\nimport invariant from 'fbjs/lib/invariant';\nimport EmitterSubscription from './_EmitterSubscription';\nimport EventSubscriptionVendor from './_EventSubscriptionVendor';\n\nvar sparseFilterPredicate = () => true;\n\n/**\n * @class EventEmitter\n * @description\n * An EventEmitter is responsible for managing a set of listeners and publishing\n * events to them when it is told that such events happened. In addition to the\n * data for the given event it also sends a event control object which allows\n * the listeners/handlers to prevent the default behavior of the given event.\n *\n * The emitter is designed to be generic enough to support all the different\n * contexts in which one might want to emit events. It is a simple multicast\n * mechanism on top of which extra functionality can be composed. For example, a\n * more advanced emitter may use an EventHolder and EventFactory.\n */\nclass EventEmitter {\n /**\n * @constructor\n *\n * @param {EventSubscriptionVendor} subscriber - Optional subscriber instance\n * to use. If omitted, a new subscriber will be created for the emitter.\n */\n constructor(subscriber) {\n this._subscriber = subscriber || new EventSubscriptionVendor();\n }\n /**\n * Adds a listener to be invoked when events of the specified type are\n * emitted. An optional calling context may be provided. The data arguments\n * emitted will be passed to the listener function.\n *\n * TODO: Annotate the listener arg's type. This is tricky because listeners\n * can be invoked with varargs.\n *\n * @param {string} eventType - Name of the event to listen to\n * @param {function} listener - Function to invoke when the specified event is\n * emitted\n * @param {*} context - Optional context object to use when invoking the\n * listener\n */\n\n\n addListener(eventType, // FIXME: listeners should return void instead of mixed to prevent issues\n listener, context) {\n return this._subscriber.addSubscription(eventType, new EmitterSubscription(this, this._subscriber, listener, context));\n }\n /**\n * Removes all of the registered listeners, including those registered as\n * listener maps.\n *\n * @param {?string} eventType - Optional name of the event whose registered\n * listeners to remove\n */\n\n\n removeAllListeners(eventType) {\n this._subscriber.removeAllSubscriptions(eventType);\n }\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n\n\n removeSubscription(subscription) {\n invariant(subscription.emitter === this, 'Subscription does not belong to this emitter.');\n\n this._subscriber.removeSubscription(subscription);\n }\n /**\n * Returns the number of listeners that are currently registered for the given\n * event.\n *\n * @param {string} eventType - Name of the event to query\n * @returns {number}\n */\n\n\n listenerCount(eventType) {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n return subscriptions ? // We filter out missing entries because the array is sparse.\n // \"callbackfn is called only for elements of the array which actually\n // exist; it is not called for missing elements of the array.\"\n // https://www.ecma-international.org/ecma-262/9.0/index.html#sec-array.prototype.filter\n subscriptions.filter(sparseFilterPredicate).length : 0;\n }\n /**\n * Emits an event of the given type with the given data. All handlers of that\n * particular type will be notified.\n *\n * @param {string} eventType - Name of the event to emit\n * @param {...*} Arbitrary arguments to be passed to each registered listener\n *\n * @example\n * emitter.addListener('someEvent', function(message) {\n * console.log(message);\n * });\n *\n * emitter.emit('someEvent', 'abc'); // logs 'abc'\n */\n\n\n emit(eventType) {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n if (subscriptions) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n for (var i = 0, l = subscriptions.length; i < l; i++) {\n var subscription = subscriptions[i]; // The subscription may have been removed during this event loop.\n\n if (subscription && subscription.listener) {\n subscription.listener.apply(subscription.context, args);\n }\n }\n }\n }\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n\n\n removeListener(eventType, // FIXME: listeners should return void instead of mixed to prevent issues\n listener) {\n console.error(\"EventEmitter.removeListener('\" + eventType + \"', ...): Method has been \" + 'deprecated. Please instead use `remove()` on the subscription ' + 'returned by `EventEmitter.addListener`.');\n\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n if (subscriptions) {\n for (var i = 0, l = subscriptions.length; i < l; i++) {\n var subscription = subscriptions[i]; // The subscription may have been removed during this event loop.\n // its listener matches the listener in method parameters\n\n if (subscription && subscription.listener === listener) {\n subscription.remove();\n }\n }\n }\n }\n\n}\n\nexport default EventEmitter;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __awaiter, __generator, __rest } from \"tslib\";\nexport var loggerMiddleware = function () { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var clientName, commandName, inputFilterSensitiveLog, logger, outputFilterSensitiveLog, response, _a, $metadata, outputWithoutMetadata;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n clientName = context.clientName, commandName = context.commandName, inputFilterSensitiveLog = context.inputFilterSensitiveLog, logger = context.logger, outputFilterSensitiveLog = context.outputFilterSensitiveLog;\n return [4 /*yield*/, next(args)];\n case 1:\n response = _b.sent();\n if (!logger) {\n return [2 /*return*/, response];\n }\n if (typeof logger.info === \"function\") {\n _a = response.output, $metadata = _a.$metadata, outputWithoutMetadata = __rest(_a, [\"$metadata\"]);\n logger.info({\n clientName: clientName,\n commandName: commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n }\n return [2 /*return*/, response];\n }\n });\n}); }; }; };\nexport var loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport var getLoggerPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dnZXJNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFZQSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxjQUFNLE9BQUEsVUFDcEMsSUFBb0MsRUFDcEMsT0FBZ0MsSUFDRyxPQUFBLFVBQ25DLElBQXFDOzs7OztnQkFFN0IsVUFBVSxHQUE2RSxPQUFPLFdBQXBGLEVBQUUsV0FBVyxHQUFnRSxPQUFPLFlBQXZFLEVBQUUsdUJBQXVCLEdBQXVDLE9BQU8sd0JBQTlDLEVBQUUsTUFBTSxHQUErQixPQUFPLE9BQXRDLEVBQUUsd0JBQXdCLEdBQUssT0FBTyx5QkFBWixDQUFhO2dCQUV0RixxQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUE7O2dCQUEzQixRQUFRLEdBQUcsU0FBZ0I7Z0JBRWpDLElBQUksQ0FBQyxNQUFNLEVBQUU7b0JBQ1gsc0JBQU8sUUFBUSxFQUFDO2lCQUNqQjtnQkFFRCxJQUFJLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUU7b0JBQy9CLEtBQTBDLFFBQVEsQ0FBQyxNQUFNLEVBQXZELFNBQVMsZUFBQSxFQUFLLHFCQUFxQixjQUFyQyxhQUF1QyxDQUFGLENBQXFCO29CQUNoRSxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNWLFVBQVUsWUFBQTt3QkFDVixXQUFXLGFBQUE7d0JBQ1gsS0FBSyxFQUFFLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7d0JBQzFDLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQzt3QkFDdkQsUUFBUSxFQUFFLFNBQVM7cUJBQ3BCLENBQUMsQ0FBQztpQkFDSjtnQkFFRCxzQkFBTyxRQUFRLEVBQUM7OztLQUNqQixFQXZCb0MsQ0F1QnBDLEVBMUJxQyxDQTBCckMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLHVCQUF1QixHQUFnRDtJQUNsRixJQUFJLEVBQUUsa0JBQWtCO0lBQ3hCLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUNoQixJQUFJLEVBQUUsWUFBWTtJQUNsQixRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRiw2REFBNkQ7QUFDN0QsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLFVBQUMsT0FBWSxJQUEwQixPQUFBLENBQUM7SUFDckUsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0YsQ0FBQyxFQUpvRSxDQUlwRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEFic29sdXRlTG9jYXRpb24sXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBJbml0aWFsaXplSGFuZGxlcixcbiAgSW5pdGlhbGl6ZUhhbmRsZXJBcmd1bWVudHMsXG4gIEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyxcbiAgSW5pdGlhbGl6ZUhhbmRsZXJPdXRwdXQsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgbG9nZ2VyTWlkZGxld2FyZSA9ICgpID0+IDxPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlciA9IE1ldGFkYXRhQmVhcmVyPihcbiAgbmV4dDogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+LFxuICBjb250ZXh0OiBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dFxuKTogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgYXJnczogSW5pdGlhbGl6ZUhhbmRsZXJBcmd1bWVudHM8YW55PlxuKTogUHJvbWlzZTxJbml0aWFsaXplSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gIGNvbnN0IHsgY2xpZW50TmFtZSwgY29tbWFuZE5hbWUsIGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nLCBsb2dnZXIsIG91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyB9ID0gY29udGV4dDtcblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG5leHQoYXJncyk7XG5cbiAgaWYgKCFsb2dnZXIpIHtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIGxvZ2dlci5pbmZvID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBjb25zdCB7ICRtZXRhZGF0YSwgLi4ub3V0cHV0V2l0aG91dE1ldGFkYXRhIH0gPSByZXNwb25zZS5vdXRwdXQ7XG4gICAgbG9nZ2VyLmluZm8oe1xuICAgICAgY2xpZW50TmFtZSxcbiAgICAgIGNvbW1hbmROYW1lLFxuICAgICAgaW5wdXQ6IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nKGFyZ3MuaW5wdXQpLFxuICAgICAgb3V0cHV0OiBvdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cob3V0cHV0V2l0aG91dE1ldGFkYXRhKSxcbiAgICAgIG1ldGFkYXRhOiAkbWV0YWRhdGEsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2U7XG59O1xuXG5leHBvcnQgY29uc3QgbG9nZ2VyTWlkZGxld2FyZU9wdGlvbnM6IEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyAmIEFic29sdXRlTG9jYXRpb24gPSB7XG4gIG5hbWU6IFwibG9nZ2VyTWlkZGxld2FyZVwiLFxuICB0YWdzOiBbXCJMT0dHRVJcIl0sXG4gIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmV4cG9ydCBjb25zdCBnZXRMb2dnZXJQbHVnaW4gPSAob3B0aW9uczogYW55KTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZChsb2dnZXJNaWRkbGV3YXJlKCksIGxvZ2dlck1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19","export var invalidFunction = function (message) { return function () {\n throw new Error(message);\n}; };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZEZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludmFsaWRGdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUcsVUFBQyxPQUFlLElBQUssT0FBQTtJQUNsRCxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzNCLENBQUMsRUFGbUQsQ0FFbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBpbnZhbGlkRnVuY3Rpb24gPSAobWVzc2FnZTogc3RyaW5nKSA9PiAoKSA9PiB7XG4gIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbn07XG4iXX0=","export var invalidProvider = function (message) { return function () { return Promise.reject(message); }; };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZFByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludmFsaWRQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQXVDLFVBQUMsT0FBZSxJQUFLLE9BQUEsY0FBTSxPQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQXZCLENBQXVCLEVBQTdCLENBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuZXhwb3J0IGNvbnN0IGludmFsaWRQcm92aWRlcjogKG1lc3NhZ2U6IHN0cmluZykgPT4gUHJvdmlkZXI8YW55PiA9IChtZXNzYWdlOiBzdHJpbmcpID0+ICgpID0+IFByb21pc2UucmVqZWN0KG1lc3NhZ2UpO1xuIl19","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { parseQueryString } from \"@aws-sdk/querystring-parser\";\nexport var parseUrl = function (url) {\n var _a = new URL(url), hostname = _a.hostname, pathname = _a.pathname, port = _a.port, protocol = _a.protocol, search = _a.search;\n var query;\n if (search) {\n query = parseQueryString(search);\n }\n return {\n hostname: hostname,\n port: port ? parseInt(port) : undefined,\n protocol: protocol,\n path: pathname,\n query: query,\n };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHL0QsTUFBTSxDQUFDLElBQU0sUUFBUSxHQUFjLFVBQUMsR0FBVztJQUN2QyxJQUFBLEtBQWlELElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUEzRCxRQUFRLGNBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxJQUFJLFVBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxNQUFNLFlBQWlCLENBQUM7SUFFcEUsSUFBSSxLQUFvQyxDQUFDO0lBQ3pDLElBQUksTUFBTSxFQUFFO1FBQ1YsS0FBSyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ2xDO0lBRUQsT0FBTztRQUNMLFFBQVEsVUFBQTtRQUNSLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUN2QyxRQUFRLFVBQUE7UUFDUixJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssT0FBQTtLQUNOLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVF1ZXJ5U3RyaW5nIH0gZnJvbSBcIkBhd3Mtc2RrL3F1ZXJ5c3RyaW5nLXBhcnNlclwiO1xuaW1wb3J0IHsgRW5kcG9pbnQsIFF1ZXJ5UGFyYW1ldGVyQmFnLCBVcmxQYXJzZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IHBhcnNlVXJsOiBVcmxQYXJzZXIgPSAodXJsOiBzdHJpbmcpOiBFbmRwb2ludCA9PiB7XG4gIGNvbnN0IHsgaG9zdG5hbWUsIHBhdGhuYW1lLCBwb3J0LCBwcm90b2NvbCwgc2VhcmNoIH0gPSBuZXcgVVJMKHVybCk7XG5cbiAgbGV0IHF1ZXJ5OiBRdWVyeVBhcmFtZXRlckJhZyB8IHVuZGVmaW5lZDtcbiAgaWYgKHNlYXJjaCkge1xuICAgIHF1ZXJ5ID0gcGFyc2VRdWVyeVN0cmluZyhzZWFyY2gpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBob3N0bmFtZSxcbiAgICBwb3J0OiBwb3J0ID8gcGFyc2VJbnQocG9ydCkgOiB1bmRlZmluZWQsXG4gICAgcHJvdG9jb2wsXG4gICAgcGF0aDogcGF0aG5hbWUsXG4gICAgcXVlcnksXG4gIH07XG59O1xuIl19","import { __read, __values } from \"tslib\";\nexport function parseQueryString(querystring) {\n var e_1, _a;\n var query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n try {\n for (var _b = __values(querystring.split(\"&\")), _c = _b.next(); !_c.done; _c = _b.next()) {\n var pair = _c.value;\n var _d = __read(pair.split(\"=\"), 2), key = _d[0], _e = _d[1], value = _e === void 0 ? null : _e;\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n return query;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxXQUFtQjs7SUFDbEQsSUFBTSxLQUFLLEdBQXNCLEVBQUUsQ0FBQztJQUNwQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFN0MsSUFBSSxXQUFXLEVBQUU7O1lBQ2YsS0FBbUIsSUFBQSxLQUFBLFNBQUEsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBdEMsSUFBTSxJQUFJLFdBQUE7Z0JBQ1QsSUFBQSxLQUFBLE9BQXNCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUEsRUFBcEMsR0FBRyxRQUFBLEVBQUUsVUFBWSxFQUFaLEtBQUssbUJBQUcsSUFBSSxLQUFtQixDQUFDO2dCQUMxQyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlCLElBQUksS0FBSyxFQUFFO29CQUNULEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDbkM7Z0JBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFFO29CQUNuQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2lCQUNwQjtxQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ25DLEtBQUssQ0FBQyxHQUFHLENBQW1CLENBQUMsSUFBSSxDQUFDLEtBQWUsQ0FBQyxDQUFDO2lCQUNyRDtxQkFBTTtvQkFDTCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFXLEVBQUUsS0FBZSxDQUFDLENBQUM7aUJBQ3REO2FBQ0Y7Ozs7Ozs7OztLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlQYXJhbWV0ZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUXVlcnlTdHJpbmcocXVlcnlzdHJpbmc6IHN0cmluZyk6IFF1ZXJ5UGFyYW1ldGVyQmFnIHtcbiAgY29uc3QgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnID0ge307XG4gIHF1ZXJ5c3RyaW5nID0gcXVlcnlzdHJpbmcucmVwbGFjZSgvXlxcPy8sIFwiXCIpO1xuXG4gIGlmIChxdWVyeXN0cmluZykge1xuICAgIGZvciAoY29uc3QgcGFpciBvZiBxdWVyeXN0cmluZy5zcGxpdChcIiZcIikpIHtcbiAgICAgIGxldCBba2V5LCB2YWx1ZSA9IG51bGxdID0gcGFpci5zcGxpdChcIj1cIik7XG4gICAgICBrZXkgPSBkZWNvZGVVUklDb21wb25lbnQoa2V5KTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAoIShrZXkgaW4gcXVlcnkpKSB7XG4gICAgICAgIHF1ZXJ5W2tleV0gPSB2YWx1ZTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShxdWVyeVtrZXldKSkge1xuICAgICAgICAocXVlcnlba2V5XSBhcyBBcnJheTxzdHJpbmc+KS5wdXNoKHZhbHVlIGFzIHN0cmluZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxdWVyeVtrZXldID0gW3F1ZXJ5W2tleV0gYXMgc3RyaW5nLCB2YWx1ZSBhcyBzdHJpbmddO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBxdWVyeTtcbn1cbiJdfQ==","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar isWebColor = color => color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;\n\nexport default isWebColor;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport isWebColor from '../../../modules/isWebColor';\nimport processColor from '../../../exports/processColor';\n\nvar normalizeColor = function normalizeColor(color, opacity) {\n if (opacity === void 0) {\n opacity = 1;\n }\n\n if (color == null) return;\n\n if (typeof color === 'string' && isWebColor(color)) {\n return color;\n }\n\n var colorInt = processColor(color);\n\n if (colorInt != null) {\n var r = colorInt >> 16 & 255;\n var g = colorInt >> 8 & 255;\n var b = colorInt & 255;\n var a = (colorInt >> 24 & 255) / 255;\n var alpha = (a * opacity).toFixed(2);\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + alpha + \")\";\n }\n};\n\nexport default normalizeColor;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nvar CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n var _this = this;\n return function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var request, body, headers, length;\n var _a;\n return __generator(this, function (_b) {\n request = args.request;\n if (HttpRequest.isInstance(request)) {\n body = request.body, headers = request.headers;\n if (body &&\n Object.keys(headers)\n .map(function (str) { return str.toLowerCase(); })\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n length = bodyLengthChecker(body);\n if (length !== undefined) {\n request.headers = __assign(__assign({}, request.headers), (_a = {}, _a[CONTENT_LENGTH_HEADER] = String(length), _a));\n }\n }\n }\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n });\n }); }; };\n}\nexport var contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nexport var getContentLengthPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVlyRCxJQUFNLHFCQUFxQixHQUFHLGdCQUFnQixDQUFDO0FBRS9DLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxpQkFBdUM7SUFBL0UsaUJBNEJDO0lBM0JDLE9BQU8sVUFBZ0MsSUFBK0IsSUFBZ0MsT0FBQSxVQUNwRyxJQUFnQzs7OztZQUUxQixPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM3QixJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzNCLElBQUksR0FBYyxPQUFPLEtBQXJCLEVBQUUsT0FBTyxHQUFLLE9BQU8sUUFBWixDQUFhO2dCQUNsQyxJQUNFLElBQUk7b0JBQ0osTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7eUJBQ2pCLEdBQUcsQ0FBQyxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBakIsQ0FBaUIsQ0FBQzt5QkFDL0IsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3hDO29CQUNNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdkMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO3dCQUN4QixPQUFPLENBQUMsT0FBTyx5QkFDVixPQUFPLENBQUMsT0FBTyxnQkFDakIscUJBQXFCLElBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUN4QyxDQUFDO3FCQUNIO2lCQUNGO2FBQ0Y7WUFFRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOztTQUNKLEVBMUJxRyxDQTBCckcsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsSUFBTSw4QkFBOEIsR0FBd0I7SUFDakUsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxnQkFBZ0IsQ0FBQztJQUM5QyxJQUFJLEVBQUUseUJBQXlCO0lBQy9CLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHLFVBQUMsT0FBb0QsSUFBMEIsT0FBQSxDQUFDO0lBQ3BILFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7Q0FDRixDQUFDLEVBSm1ILENBSW5ILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBCb2R5TGVuZ3RoQ2FsY3VsYXRvcixcbiAgQnVpbGRIYW5kbGVyLFxuICBCdWlsZEhhbmRsZXJBcmd1bWVudHMsXG4gIEJ1aWxkSGFuZGxlck9wdGlvbnMsXG4gIEJ1aWxkSGFuZGxlck91dHB1dCxcbiAgQnVpbGRNaWRkbGV3YXJlLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuY29uc3QgQ09OVEVOVF9MRU5HVEhfSEVBREVSID0gXCJjb250ZW50LWxlbmd0aFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudExlbmd0aE1pZGRsZXdhcmUoYm9keUxlbmd0aENoZWNrZXI6IEJvZHlMZW5ndGhDYWxjdWxhdG9yKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KG5leHQ6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4pOiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgICBhcmdzOiBCdWlsZEhhbmRsZXJBcmd1bWVudHM8YW55PlxuICApOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgY29uc3QgeyBib2R5LCBoZWFkZXJzIH0gPSByZXF1ZXN0O1xuICAgICAgaWYgKFxuICAgICAgICBib2R5ICYmXG4gICAgICAgIE9iamVjdC5rZXlzKGhlYWRlcnMpXG4gICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAuaW5kZXhPZihDT05URU5UX0xFTkdUSF9IRUFERVIpID09PSAtMVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGJvZHlMZW5ndGhDaGVja2VyKGJvZHkpO1xuICAgICAgICBpZiAobGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMgPSB7XG4gICAgICAgICAgICAuLi5yZXF1ZXN0LmhlYWRlcnMsXG4gICAgICAgICAgICBbQ09OVEVOVF9MRU5HVEhfSEVBREVSXTogU3RyaW5nKGxlbmd0aCksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXh0KHtcbiAgICAgIC4uLmFyZ3MsXG4gICAgICByZXF1ZXN0LFxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgY29udGVudExlbmd0aE1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHRhZ3M6IFtcIlNFVF9DT05URU5UX0xFTkdUSFwiLCBcIkNPTlRFTlRfTEVOR1RIXCJdLFxuICBuYW1lOiBcImNvbnRlbnRMZW5ndGhNaWRkbGV3YXJlXCIsXG4gIG92ZXJyaWRlOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gPSAob3B0aW9uczogeyBib2R5TGVuZ3RoQ2hlY2tlcjogQm9keUxlbmd0aENhbGN1bGF0b3IgfSk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQoY29udGVudExlbmd0aE1pZGRsZXdhcmUob3B0aW9ucy5ib2R5TGVuZ3RoQ2hlY2tlciksIGNvbnRlbnRMZW5ndGhNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __awaiter, __generator } from \"tslib\";\nimport bowser from \"bowser\";\n/**\n * Default provider to the user agent in browsers. It's a best effort to infer\n * the device information. It uses bowser library to detect the browser and virsion\n */\nexport var defaultUserAgent = function (_a) {\n var serviceId = _a.serviceId, clientVersion = _a.clientVersion;\n return function () { return __awaiter(void 0, void 0, void 0, function () {\n var parsedUA, sections;\n var _a, _b, _c, _d, _e, _f, _g;\n return __generator(this, function (_h) {\n parsedUA = ((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) ? bowser.parse(window.navigator.userAgent) : undefined;\n sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // os-metadata\n [\"os/\" + (((_b = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _b === void 0 ? void 0 : _b.name) || \"other\"), (_c = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _c === void 0 ? void 0 : _c.version],\n // language-metadata\n // ECMAScript edition doesn't matter in JS.\n [\"lang/js\"],\n // browser vendor and version.\n [\"md/browser\", ((_e = (_d = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _d === void 0 ? void 0 : _d.name) !== null && _e !== void 0 ? _e : \"unknown\") + \"_\" + ((_g = (_f = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _f === void 0 ? void 0 : _f.version) !== null && _g !== void 0 ? _g : \"unknown\")],\n ];\n if (serviceId) {\n // api-metadata\n // service Id may not appear in non-AWS clients\n sections.push([\"api/\" + serviceId, clientVersion]);\n }\n return [2 /*return*/, sections];\n });\n }); };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUk1Qjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxVQUFDLEVBR1A7UUFGeEIsU0FBUyxlQUFBLEVBQ1QsYUFBYSxtQkFBQTtJQUNxQyxPQUFBOzs7O1lBQzVDLFFBQVEsR0FBRyxPQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxTQUFTLDBDQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDL0YsUUFBUSxHQUFjO2dCQUMxQixlQUFlO2dCQUNmLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztnQkFDN0IsY0FBYztnQkFDZCxDQUFDLFNBQU0sT0FBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsRUFBRSwwQ0FBRSxJQUFJLEtBQUksT0FBTyxDQUFFLFFBQUUsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLEVBQUUsMENBQUUsT0FBTyxDQUFDO2dCQUM5RCxvQkFBb0I7Z0JBQ3BCLDJDQUEyQztnQkFDM0MsQ0FBQyxTQUFTLENBQUM7Z0JBQ1gsOEJBQThCO2dCQUM5QixDQUFDLFlBQVksRUFBRSxhQUFHLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxPQUFPLDBDQUFFLElBQUksbUNBQUksU0FBUyx1QkFBSSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTywwQ0FBRSxPQUFPLG1DQUFJLFNBQVMsQ0FBRSxDQUFDO2FBQ3JHLENBQUM7WUFFRixJQUFJLFNBQVMsRUFBRTtnQkFDYixlQUFlO2dCQUNmLCtDQUErQztnQkFDL0MsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQU8sU0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDcEQ7WUFFRCxzQkFBTyxRQUFRLEVBQUM7O1NBQ2pCO0FBckJtRCxDQXFCbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyLCBVc2VyQWdlbnQgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCBib3dzZXIgZnJvbSBcImJvd3NlclwiO1xuXG5pbXBvcnQgeyBEZWZhdWx0VXNlckFnZW50T3B0aW9ucyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5cbi8qKlxuICogRGVmYXVsdCBwcm92aWRlciB0byB0aGUgdXNlciBhZ2VudCBpbiBicm93c2Vycy4gSXQncyBhIGJlc3QgZWZmb3J0IHRvIGluZmVyXG4gKiB0aGUgZGV2aWNlIGluZm9ybWF0aW9uLiBJdCB1c2VzIGJvd3NlciBsaWJyYXJ5IHRvIGRldGVjdCB0aGUgYnJvd3NlciBhbmQgdmlyc2lvblxuICovXG5leHBvcnQgY29uc3QgZGVmYXVsdFVzZXJBZ2VudCA9ICh7XG4gIHNlcnZpY2VJZCxcbiAgY2xpZW50VmVyc2lvbixcbn06IERlZmF1bHRVc2VyQWdlbnRPcHRpb25zKTogUHJvdmlkZXI8VXNlckFnZW50PiA9PiBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHBhcnNlZFVBID0gd2luZG93Py5uYXZpZ2F0b3I/LnVzZXJBZ2VudCA/IGJvd3Nlci5wYXJzZSh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHNlY3Rpb25zOiBVc2VyQWdlbnQgPSBbXG4gICAgLy8gc2RrLW1ldGFkYXRhXG4gICAgW1wiYXdzLXNkay1qc1wiLCBjbGllbnRWZXJzaW9uXSxcbiAgICAvLyBvcy1tZXRhZGF0YVxuICAgIFtgb3MvJHtwYXJzZWRVQT8ub3M/Lm5hbWUgfHwgXCJvdGhlclwifWAsIHBhcnNlZFVBPy5vcz8udmVyc2lvbl0sXG4gICAgLy8gbGFuZ3VhZ2UtbWV0YWRhdGFcbiAgICAvLyBFQ01BU2NyaXB0IGVkaXRpb24gZG9lc24ndCBtYXR0ZXIgaW4gSlMuXG4gICAgW1wibGFuZy9qc1wiXSxcbiAgICAvLyBicm93c2VyIHZlbmRvciBhbmQgdmVyc2lvbi5cbiAgICBbXCJtZC9icm93c2VyXCIsIGAke3BhcnNlZFVBPy5icm93c2VyPy5uYW1lID8/IFwidW5rbm93blwifV8ke3BhcnNlZFVBPy5icm93c2VyPy52ZXJzaW9uID8/IFwidW5rbm93blwifWBdLFxuICBdO1xuXG4gIGlmIChzZXJ2aWNlSWQpIHtcbiAgICAvLyBhcGktbWV0YWRhdGFcbiAgICAvLyBzZXJ2aWNlIElkIG1heSBub3QgYXBwZWFyIGluIG5vbi1BV1MgY2xpZW50c1xuICAgIHNlY3Rpb25zLnB1c2goW2BhcGkvJHtzZXJ2aWNlSWR9YCwgY2xpZW50VmVyc2lvbl0pO1xuICB9XG5cbiAgcmV0dXJuIHNlY3Rpb25zO1xufTtcbiJdfQ==","export const DefaultLayout = (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.targetOriginX,\n originY: values.targetOriginY,\n width: values.targetWidth,\n height: values.targetHeight,\n },\n animations: {},\n };\n};\nexport const DefaultEntering = (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.targetOriginX,\n originY: values.targetOriginY,\n width: values.targetWidth,\n height: values.targetHeight,\n },\n animations: {},\n };\n};\nexport const DefaultExiting = (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {},\n };\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '');}else{return html;}}else{return html;}};_this.handleSource(props.source,props.newWindow);return _this;}_createClass(WebView,[{key:'componentDidMount',value:function componentDidMount(){if(this.props.onMessage){window.addEventListener('message',this.onMessage,true);}}},{key:'componentWillReceiveProps',value:function componentWillReceiveProps(nextProps){if(this.props.source.uri!==nextProps.source.uri||this.props.source.method!==nextProps.source.method||this.props.source.body!==nextProps.source.body){this.handleSource(nextProps.source,nextProps.newWindow);}}},{key:'componentWillUnmount',value:function componentWillUnmount(){if(this.props.onMessage){window.removeEventListener('message',this.onMessage,true);}}},{key:'render',value:function render(){if(this.props.newWindow){return _react2.default.createElement(_reactNative.View,{style:styles.loadingContainer,__source:{fileName:_jsxFileName,lineNumber:112}},_react2.default.createElement(_reactNative.ActivityIndicator,{__source:{fileName:_jsxFileName,lineNumber:113}}));}var _props=this.props,title=_props.title,source=_props.source,onLoad=_props.onLoad,scrollEnabled=_props.scrollEnabled;var styleObj=_reactNative.StyleSheet.flatten(this.props.style);return(0,_reactNative.unstable_createElement)('iframe',{title:title,ref:this.setRef,src:!source.method?source.uri:undefined,srcDoc:this.handleInjectedJavaScript(this.state.html||source.html),width:styleObj&&styleObj.width,height:styleObj&&styleObj.height,style:_reactNative.StyleSheet.flatten([styles.iframe,scrollEnabled&&styles.noScroll,this.props.style]),allowFullScreen:true,allowpaymentrequest:'true',frameBorder:'0',seamless:true,onLoad:onLoad});}}]);return WebView;}(_react.Component);WebView.defaultProps={scrollEnabled:true};exports.default=WebView;var styles=_reactNative.StyleSheet.create({loadingContainer:{flex:1,alignItems:'center',justifyContent:'center'},iframe:{width:'100%',height:'100%',borderWidth:0},noScroll:{overflow:'hidden'}});","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n obj = utils.maybeMap(obj, encoder);\n }\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = { __proto__: null };\n\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","// Module\nvar code = \" \";\n// Exports\nmodule.exports = code;","var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.MAIN_SCRIPT=exports.soundMode=exports.playMode=exports.PLAYER_FUNCTIONS=void 0;var _defineProperty2=_interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));var _constants=require(\"./constants\");var _playMode,_soundMode;var PLAYER_FUNCTIONS={muteVideo:'player.mute(); true;',unMuteVideo:'player.unMute(); true;',playVideo:'player.playVideo(); true;',pauseVideo:'player.pauseVideo(); true;',getVideoUrlScript:\"\\nwindow.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'getVideoUrl', data: player.getVideoUrl()}));\\ntrue;\\n \",durationScript:\"\\nwindow.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'getDuration', data: player.getDuration()}));\\ntrue;\\n\",currentTimeScript:\"\\nwindow.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'getCurrentTime', data: player.getCurrentTime()}));\\ntrue;\\n\",isMutedScript:\"\\nwindow.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'isMuted', data: player.isMuted()}));\\ntrue;\\n\",getVolumeScript:\"\\nwindow.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'getVolume', data: player.getVolume()}));\\ntrue;\\n\",getPlaybackRateScript:\"\\nwindow.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'getPlaybackRate', data: player.getPlaybackRate()}));\\ntrue;\\n\",getAvailablePlaybackRatesScript:\"\\nwindow.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'getAvailablePlaybackRates', data: player.getAvailablePlaybackRates()}));\\ntrue;\\n\",setVolume:function setVolume(volume){return\"player.setVolume(\"+volume+\"); true;\";},seekToScript:function seekToScript(seconds,allowSeekAhead){return\"player.seekTo(\"+seconds+\", \"+allowSeekAhead+\"); true;\";},setPlaybackRate:function setPlaybackRate(playbackRate){return\"player.setPlaybackRate(\"+playbackRate+\"); true;\";},loadPlaylist:function loadPlaylist(playList,startIndex,play){var index=startIndex||0;var func=play?'loadPlaylist':'cuePlaylist';var list=typeof playList==='string'?\"\\\"\"+playList+\"\\\"\":'undefined';var listType=typeof playList==='string'?\"\\\"\"+playlist+\"\\\"\":'undefined';var playlist=Array.isArray(playList)?\"\\\"\"+playList.join(',')+\"\\\"\":'undefined';return\"player.\"+func+\"({listType: \"+listType+\", list: \"+list+\", playlist: \"+playlist+\", index: \"+index+\"}); true;\";},loadVideoById:function loadVideoById(videoId,play){var func=play?'loadVideoById':'cueVideoById';return\"player.\"+func+\"({videoId: \"+JSON.stringify(videoId)+\"}); true;\";}};exports.PLAYER_FUNCTIONS=PLAYER_FUNCTIONS;var playMode=(_playMode={},(0,_defineProperty2.default)(_playMode,_constants.PLAY_MODE,PLAYER_FUNCTIONS.playVideo),(0,_defineProperty2.default)(_playMode,_constants.PAUSE_MODE,PLAYER_FUNCTIONS.pauseVideo),_playMode);exports.playMode=playMode;var soundMode=(_soundMode={},(0,_defineProperty2.default)(_soundMode,_constants.MUTE_MODE,PLAYER_FUNCTIONS.muteVideo),(0,_defineProperty2.default)(_soundMode,_constants.UNMUTE_MODE,PLAYER_FUNCTIONS.unMuteVideo),_soundMode);exports.soundMode=soundMode;var MAIN_SCRIPT=function MAIN_SCRIPT(videoId,playList,initialPlayerParams,allowWebViewZoom,contentScale){var end=initialPlayerParams.end,rel=initialPlayerParams.rel,color=initialPlayerParams.color,start=initialPlayerParams.start,playerLang=initialPlayerParams.playerLang,_initialPlayerParams$=initialPlayerParams.loop,loop=_initialPlayerParams$===void 0?false:_initialPlayerParams$,cc_lang_pref=initialPlayerParams.cc_lang_pref,iv_load_policy=initialPlayerParams.iv_load_policy,modestbranding=initialPlayerParams.modestbranding,_initialPlayerParams$2=initialPlayerParams.controls,controls=_initialPlayerParams$2===void 0?true:_initialPlayerParams$2,showClosedCaptions=initialPlayerParams.showClosedCaptions,_initialPlayerParams$3=initialPlayerParams.preventFullScreen,preventFullScreen=_initialPlayerParams$3===void 0?false:_initialPlayerParams$3;var rel_s=rel?1:0;var loop_s=loop?1:0;var videoId_s=videoId||'';var controls_s=controls?1:0;var cc_lang_pref_s=cc_lang_pref||'';var modestbranding_s=modestbranding?1:0;var preventFullScreen_s=preventFullScreen?0:1;var showClosedCaptions_s=showClosedCaptions?1:0;var contentScale_s=typeof contentScale==='number'?contentScale:1.0;var list=typeof playList==='string'?playList:undefined;var listType=typeof playList==='string'?'playlist':undefined;var playlist=Array.isArray(playList)?playList.join(','):undefined;var scale=\"initial-scale=\"+contentScale_s;if(!allowWebViewZoom){scale+=\", maximum-scale=\"+contentScale_s;}var safeData={end:end,list:list,start:start,color:color,rel_s:rel_s,loop_s:loop_s,listType:listType,playlist:playlist,videoId_s:videoId_s,controls_s:controls_s,playerLang:playerLang,iv_load_policy:iv_load_policy,contentScale_s:contentScale_s,cc_lang_pref_s:cc_lang_pref_s,allowWebViewZoom:allowWebViewZoom,modestbranding_s:modestbranding_s,preventFullScreen_s:preventFullScreen_s,showClosedCaptions_s:showClosedCaptions_s};var urlEncodedJSON=encodeURI(JSON.stringify(safeData));var listParam=list?\"list: '\"+list+\"',\":'';var listTypeParam=listType?\"listType: '\"+list+\"',\":'';var playlistParam=playList?\"playlist: '\"+playList+\"',\":'';var htmlString=\"\\n\\n\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n\\n \\n \\n\\n\";return{htmlString:htmlString,urlEncodedJSON:urlEncodedJSON};};exports.MAIN_SCRIPT=MAIN_SCRIPT;","Object.defineProperty(exports,\"__esModule\",{value:true});exports.deepComparePlayList=void 0;var deepComparePlayList=function deepComparePlayList(lastPlayList,playList){if(lastPlayList===playList){return true;}if(Array.isArray(lastPlayList)&&Array.isArray(playList)){return lastPlayList.join('')===playList.join('');}return false;};exports.deepComparePlayList=deepComparePlayList;","var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.getYoutubeMeta=void 0;var _regenerator=_interopRequireDefault(require(\"@babel/runtime/regenerator\"));var getYoutubeMeta=function getYoutubeMeta(videoId){var response;return _regenerator.default.async(function getYoutubeMeta$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.next=2;return _regenerator.default.awrap(fetch(\"https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=\"+videoId+\"&format=json\"));case 2:response=_context.sent;_context.next=5;return _regenerator.default.awrap(response.json());case 5:return _context.abrupt(\"return\",_context.sent);case 6:case\"end\":return _context.stop();}}},null,null,null,Promise);};exports.getYoutubeMeta=getYoutubeMeta;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return {\n value: void 0,\n done: !0\n };\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable || \"\" === iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n throw new TypeError(_typeof(iterable) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","\"use strict\";\n\n/**\r\n * Copyright (c) 2014-present, Facebook, Inc.\r\n * All rights reserved.\r\n *\r\n * This source code is licensed under the BSD-style license found in the\r\n * LICENSE file in the root directory of this source tree. An additional grant\r\n * of patent rights can be found in the PATENTS file in the same directory.\r\n *\r\n * @providesModule BaseEventEmitter\r\n * @typechecks\r\n */\nvar EmitterSubscription = require(\"./EmitterSubscription.js\");\n\nvar EventSubscriptionVendor = require(\"./EventSubscriptionVendor.js\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar emptyFunction = require(\"fbjs/lib/emptyFunction\");\n/**\r\n * @class BaseEventEmitter\r\n * @description\r\n * An EventEmitter is responsible for managing a set of listeners and publishing\r\n * events to them when it is told that such events happened. In addition to the\r\n * data for the given event it also sends a event control object which allows\r\n * the listeners/handlers to prevent the default behavior of the given event.\r\n *\r\n * The emitter is designed to be generic enough to support all the different\r\n * contexts in which one might want to emit events. It is a simple multicast\r\n * mechanism on top of which extra functionality can be composed. For example, a\r\n * more advanced emitter may use an EventHolder and EventFactory.\r\n */\n\n\nvar BaseEventEmitter = /*#__PURE__*/function () {\n /**\r\n * @constructor\r\n */\n function BaseEventEmitter() {\n this._subscriber = new EventSubscriptionVendor();\n this._currentSubscription = null;\n }\n /**\r\n * Adds a listener to be invoked when events of the specified type are\r\n * emitted. An optional calling context may be provided. The data arguments\r\n * emitted will be passed to the listener function.\r\n *\r\n * TODO: Annotate the listener arg's type. This is tricky because listeners\r\n * can be invoked with varargs.\r\n *\r\n * @param {string} eventType - Name of the event to listen to\r\n * @param {function} listener - Function to invoke when the specified event is\r\n * emitted\r\n * @param {*} context - Optional context object to use when invoking the\r\n * listener\r\n */\n\n\n var _proto = BaseEventEmitter.prototype;\n\n _proto.addListener = function addListener(eventType, listener, context) {\n return this._subscriber.addSubscription(eventType, new EmitterSubscription(this._subscriber, listener, context));\n }\n /**\r\n * Similar to addListener, except that the listener is removed after it is\r\n * invoked once.\r\n *\r\n * @param {string} eventType - Name of the event to listen to\r\n * @param {function} listener - Function to invoke only once when the\r\n * specified event is emitted\r\n * @param {*} context - Optional context object to use when invoking the\r\n * listener\r\n */\n ;\n\n _proto.once = function once(eventType, listener, context) {\n var emitter = this;\n return this.addListener(eventType, function () {\n emitter.removeCurrentListener();\n listener.apply(context, arguments);\n });\n }\n /**\r\n * Removes all of the registered listeners, including those registered as\r\n * listener maps.\r\n *\r\n * @param {?string} eventType - Optional name of the event whose registered\r\n * listeners to remove\r\n */\n ;\n\n _proto.removeAllListeners = function removeAllListeners(eventType) {\n this._subscriber.removeAllSubscriptions(eventType);\n }\n /**\r\n * Provides an API that can be called during an eventing cycle to remove the\r\n * last listener that was invoked. This allows a developer to provide an event\r\n * object that can remove the listener (or listener map) during the\r\n * invocation.\r\n *\r\n * If it is called when not inside of an emitting cycle it will throw.\r\n *\r\n * @throws {Error} When called not during an eventing cycle\r\n *\r\n * @example\r\n * var subscription = emitter.addListenerMap({\r\n * someEvent: function(data, event) {\r\n * console.log(data);\r\n * emitter.removeCurrentListener();\r\n * }\r\n * });\r\n *\r\n * emitter.emit('someEvent', 'abc'); // logs 'abc'\r\n * emitter.emit('someEvent', 'def'); // does not log anything\r\n */\n ;\n\n _proto.removeCurrentListener = function removeCurrentListener() {\n !!!this._currentSubscription ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Not in an emitting cycle; there is no current subscription') : invariant(false) : void 0;\n\n this._subscriber.removeSubscription(this._currentSubscription);\n }\n /**\r\n * Returns an array of listeners that are currently registered for the given\r\n * event.\r\n *\r\n * @param {string} eventType - Name of the event to query\r\n * @return {array}\r\n */\n ;\n\n _proto.listeners = function listeners(eventType)\n /* TODO: Array */\n {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n return subscriptions ? subscriptions.filter(emptyFunction.thatReturnsTrue).map(function (subscription) {\n return subscription.listener;\n }) : [];\n }\n /**\r\n * Emits an event of the given type with the given data. All handlers of that\r\n * particular type will be notified.\r\n *\r\n * @param {string} eventType - Name of the event to emit\r\n * @param {*} Arbitrary arguments to be passed to each registered listener\r\n *\r\n * @example\r\n * emitter.addListener('someEvent', function(message) {\r\n * console.log(message);\r\n * });\r\n *\r\n * emitter.emit('someEvent', 'abc'); // logs 'abc'\r\n */\n ;\n\n _proto.emit = function emit(eventType) {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n if (subscriptions) {\n var keys = Object.keys(subscriptions);\n\n for (var ii = 0; ii < keys.length; ii++) {\n var key = keys[ii];\n var subscription = subscriptions[key]; // The subscription may have been removed during this event loop.\n\n if (subscription) {\n this._currentSubscription = subscription;\n\n this.__emitToSubscription.apply(this, [subscription].concat(Array.prototype.slice.call(arguments)));\n }\n }\n\n this._currentSubscription = null;\n }\n }\n /**\r\n * Provides a hook to override how the emitter emits an event to a specific\r\n * subscription. This allows you to set up logging and error boundaries\r\n * specific to your environment.\r\n *\r\n * @param {EmitterSubscription} subscription\r\n * @param {string} eventType\r\n * @param {*} Arbitrary arguments to be passed to each registered listener\r\n */\n ;\n\n _proto.__emitToSubscription = function __emitToSubscription(subscription, eventType) {\n var args = Array.prototype.slice.call(arguments, 2);\n subscription.listener.apply(subscription.context, args);\n };\n\n return BaseEventEmitter;\n}();\n\nmodule.exports = BaseEventEmitter;","/**\r\n * Copyright (c) 2014-present, Facebook, Inc.\r\n * All rights reserved.\r\n *\r\n * This source code is licensed under the BSD-style license found in the\r\n * LICENSE file in the root directory of this source tree. An additional grant\r\n * of patent rights can be found in the PATENTS file in the same directory.\r\n *\r\n * @providesModule EventSubscription\r\n * @typechecks\r\n */\n'use strict';\n/**\r\n * EventSubscription represents a subscription to a particular event. It can\r\n * remove its own subscription.\r\n */\n\nvar EventSubscription = /*#__PURE__*/function () {\n /**\r\n * @param {EventSubscriptionVendor} subscriber the subscriber that controls\r\n * this subscription.\r\n */\n function EventSubscription(subscriber) {\n this.subscriber = subscriber;\n }\n /**\r\n * Removes this subscription from the subscriber that controls it.\r\n */\n\n\n var _proto = EventSubscription.prototype;\n\n _proto.remove = function remove() {\n if (this.subscriber) {\n this.subscriber.removeSubscription(this);\n this.subscriber = null;\n }\n };\n\n return EventSubscription;\n}();\n\nmodule.exports = EventSubscription;","/**\r\n * Copyright (c) 2014-present, Facebook, Inc.\r\n * All rights reserved.\r\n *\r\n * This source code is licensed under the BSD-style license found in the\r\n * LICENSE file in the root directory of this source tree. An additional grant\r\n * of patent rights can be found in the PATENTS file in the same directory.\r\n *\r\n * @providesModule EventSubscriptionVendor\r\n * @typechecks\r\n */\n'use strict';\n\nvar invariant = require(\"fbjs/lib/invariant\");\n/**\r\n * EventSubscriptionVendor stores a set of EventSubscriptions that are\r\n * subscribed to a particular event type.\r\n */\n\n\nvar EventSubscriptionVendor = /*#__PURE__*/function () {\n function EventSubscriptionVendor() {\n this._subscriptionsForType = {};\n this._currentSubscription = null;\n }\n /**\r\n * Adds a subscription keyed by an event type.\r\n *\r\n * @param {string} eventType\r\n * @param {EventSubscription} subscription\r\n */\n\n\n var _proto = EventSubscriptionVendor.prototype;\n\n _proto.addSubscription = function addSubscription(eventType, subscription) {\n !(subscription.subscriber === this) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'The subscriber of the subscription is incorrectly set.') : invariant(false) : void 0;\n\n if (!this._subscriptionsForType[eventType]) {\n this._subscriptionsForType[eventType] = [];\n }\n\n var key = this._subscriptionsForType[eventType].length;\n\n this._subscriptionsForType[eventType].push(subscription);\n\n subscription.eventType = eventType;\n subscription.key = key;\n return subscription;\n }\n /**\r\n * Removes a bulk set of the subscriptions.\r\n *\r\n * @param {?string} eventType - Optional name of the event type whose\r\n * registered supscriptions to remove, if null remove all subscriptions.\r\n */\n ;\n\n _proto.removeAllSubscriptions = function removeAllSubscriptions(eventType) {\n if (eventType === undefined) {\n this._subscriptionsForType = {};\n } else {\n delete this._subscriptionsForType[eventType];\n }\n }\n /**\r\n * Removes a specific subscription. Instead of calling this function, call\r\n * `subscription.remove()` directly.\r\n *\r\n * @param {object} subscription\r\n */\n ;\n\n _proto.removeSubscription = function removeSubscription(subscription) {\n var eventType = subscription.eventType;\n var key = subscription.key;\n var subscriptionsForType = this._subscriptionsForType[eventType];\n\n if (subscriptionsForType) {\n delete subscriptionsForType[key];\n }\n }\n /**\r\n * Returns the array of subscriptions that are currently registered for the\r\n * given event type.\r\n *\r\n * Note: This array can be potentially sparse as subscriptions are deleted\r\n * from it when they are removed.\r\n *\r\n * TODO: This returns a nullable array. wat?\r\n *\r\n * @param {string} eventType\r\n * @return {?array}\r\n */\n ;\n\n _proto.getSubscriptionsForType = function getSubscriptionsForType(eventType) {\n return this._subscriptionsForType[eventType];\n };\n\n return EventSubscriptionVendor;\n}();\n\nmodule.exports = EventSubscriptionVendor;","// When users dangerously import a file inside of react-native, it breaks the web alias.\n// This is one of the most common, and cryptic web errors that users encounter.\n// This conditional side-effect provides a more helpful error message for debugging.\n// Use a wrapper `__DEV__` to remove this entire block in production.\nif (__DEV__) {\n if (\n // Skip mocking if someone is shimming this value out.\n !('__fbBatchedBridgeConfig' in global)\n ) {\n Object.defineProperty(global, '__fbBatchedBridgeConfig', {\n get() {\n throw new Error(\n \"Your web project is importing a module from 'react-native' instead of 'react-native-web'. Learn more: https://expo.fyi/fb-batched-bridge-config-web\"\n );\n },\n });\n }\n}\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","import 'expo/build/Expo.fx';\n\nimport * as React from 'react';\nimport { AppRegistry, Platform } from 'react-native';\n\nimport { createRoot } from './createRoot';\n\ntype InitialProps = {\n exp: {\n notification?: any;\n manifestString?: string;\n [key: string]: any;\n };\n shell?: boolean;\n shellManifestUrl?: string;\n [key: string]: any;\n};\n\nexport default function registerRootComponent

(\n component: React.ComponentType

\n): void {\n let qualifiedComponent = component;\n\n if (process.env.NODE_ENV !== 'production') {\n const { withDevTools } = require('./withDevTools') as typeof import('./withDevTools');\n qualifiedComponent = withDevTools(component);\n }\n\n if (Platform.OS !== 'web') {\n AppRegistry.registerComponent('main', () => qualifiedComponent);\n } else if (\n // Skip querying the DOM if we're in a Node.js environment.\n typeof document !== 'undefined'\n ) {\n let tag = document.getElementById('root');\n\n if (!tag) {\n tag = document.getElementById('main');\n if (process.env.NODE_ENV !== 'production') {\n // This block will be removed in production\n if (tag) {\n console.warn(\n 'Mounting the root React component to an HTML element with id \"main\" is deprecated. Use id \"root\" instead.'\n );\n }\n }\n }\n\n if (!tag) {\n throw new Error(\n 'Required HTML element with id \"root\" was not found in the document HTML. This is required for mounting the root React component.'\n );\n }\n\n const rootTag = createRoot(tag);\n rootTag.render(React.createElement(qualifiedComponent));\n }\n}\n","import registerRootComponent from 'expo/build/launch/registerRootComponent';\n\nimport App from '../../App';\n\nregisterRootComponent(App);\n","const SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nexport function toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { ConsoleLogger as Logger } from './Logger';\nvar logger = new Logger('Parser');\nexport var parseMobileHubConfig = function (config) {\n var amplifyConfig = {};\n // Analytics\n if (config['aws_mobile_analytics_app_id']) {\n var Analytics = {\n AWSPinpoint: {\n appId: config['aws_mobile_analytics_app_id'],\n region: config['aws_mobile_analytics_app_region'],\n },\n };\n amplifyConfig.Analytics = Analytics;\n }\n // Auth\n if (config['aws_cognito_identity_pool_id'] || config['aws_user_pools_id']) {\n amplifyConfig.Auth = {\n userPoolId: config['aws_user_pools_id'],\n userPoolWebClientId: config['aws_user_pools_web_client_id'],\n region: config['aws_cognito_region'],\n identityPoolId: config['aws_cognito_identity_pool_id'],\n identityPoolRegion: config['aws_cognito_region'],\n mandatorySignIn: config['aws_mandatory_sign_in'] === 'enable',\n signUpVerificationMethod: config['aws_cognito_sign_up_verification_method'] || 'code',\n };\n }\n // Storage\n var storageConfig;\n if (config['aws_user_files_s3_bucket']) {\n storageConfig = {\n AWSS3: {\n bucket: config['aws_user_files_s3_bucket'],\n region: config['aws_user_files_s3_bucket_region'],\n dangerouslyConnectToHttpEndpointForTesting: config['aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing'],\n },\n };\n }\n else {\n storageConfig = config ? config.Storage || config : {};\n }\n // Logging\n if (config['Logging']) {\n amplifyConfig.Logging = __assign(__assign({}, config['Logging']), { region: config['aws_project_region'] });\n }\n // Geo\n if (config['geo']) {\n amplifyConfig.Geo = Object.assign({}, config.geo);\n if (config.geo['amazon_location_service']) {\n amplifyConfig.Geo = {\n AmazonLocationService: config.geo['amazon_location_service'],\n };\n }\n }\n amplifyConfig.Analytics = Object.assign({}, amplifyConfig.Analytics, config.Analytics);\n amplifyConfig.Auth = Object.assign({}, amplifyConfig.Auth, config.Auth);\n amplifyConfig.Storage = Object.assign({}, storageConfig);\n amplifyConfig.Logging = Object.assign({}, amplifyConfig.Logging, config.Logging);\n logger.debug('parse config', config, 'to amplifyconfig', amplifyConfig);\n return amplifyConfig;\n};\n/**\n * @deprecated use per-function export\n */\nvar Parser = /** @class */ (function () {\n function Parser() {\n }\n Parser.parseMobilehubConfig = parseMobileHubConfig;\n return Parser;\n}());\nexport { Parser };\n/**\n * @deprecated use per-function export\n */\nexport default Parser;\n//# sourceMappingURL=Parser.js.map","import createIconSet from './createIconSet';\nimport font from './vendor/react-native-vector-icons/Fonts/AntDesign.ttf';\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/AntDesign.json';\n\nexport default createIconSet(glyphMap, 'anticon', font);\n","import createIconSet from './createIconSet';\nimport font from './vendor/react-native-vector-icons/Fonts/FontAwesome.ttf';\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/FontAwesome.json';\n\nexport default createIconSet(glyphMap, 'FontAwesome', font);\n","import { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from 'react';\nimport { getApolloContext } from \"../context/index.js\";\nexport function useApolloClient() {\n var client = React.useContext(getApolloContext()).client;\n __DEV__ ? invariant(client, 'No Apollo Client instance can be found. Please ensure that you ' +\n 'have called `ApolloProvider` higher up in your tree.') : invariant(client, 33);\n return client;\n}\n//# sourceMappingURL=useApolloClient.js.map","const DarkTheme = {\n dark: true,\n colors: {\n primary: 'rgb(10, 132, 255)',\n background: 'rgb(1, 1, 1)',\n card: 'rgb(18, 18, 18)',\n text: 'rgb(229, 229, 231)',\n border: 'rgb(39, 39, 41)',\n notification: 'rgb(255, 69, 58)'\n }\n};\nexport default DarkTheme;\n//# sourceMappingURL=DarkTheme.js.map","import createIconSet from './createIconSet';\nimport font from './vendor/react-native-vector-icons/Fonts/Octicons.ttf';\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/Octicons.json';\n\nexport default createIconSet(glyphMap, 'octicons', font);\n","import createIconSet from './createIconSet';\nimport font from './vendor/react-native-vector-icons/Fonts/Ionicons.ttf';\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/Ionicons.json';\n\nexport default createIconSet(glyphMap, 'ionicons', font);\n","import { useEffect, useState } from 'react';\nexport function useReactiveVar(rv) {\n var value = rv();\n var setValue = useState(value)[1];\n useEffect(function () {\n var probablySameValue = rv();\n if (value !== probablySameValue) {\n setValue(probablySameValue);\n }\n else {\n return rv.onNextChange(setValue);\n }\n }, [value]);\n return value;\n}\n//# sourceMappingURL=useReactiveVar.js.map","import createIconSet from './createIconSet';\nimport font from './vendor/react-native-vector-icons/Fonts/MaterialIcons.ttf';\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/MaterialIcons.json';\n\nexport default createIconSet(glyphMap, 'material', font);\n","import { useEffect, useState } from 'react';\n\nimport { Asset } from './Asset';\n\n// @needsAudit\n/**\n * Downloads and stores one or more assets locally.\n * After the assets are loaded, this hook returns a list of asset instances.\n * If something went wrong when loading the assets, an error is returned.\n *\n * > Note, the assets are not \"reloaded\" when you dynamically change the asset list.\n *\n * @return Returns an array containing:\n * - on the first position, a list of all loaded assets. If they aren't loaded yet, this value is\n * `undefined`.\n * - on the second position, an error which encountered when loading the assets. If there was no\n * error, this value is `undefined`.\n *\n * @example\n * ```tsx\n * const [assets, error] = useAssets([require('path/to/asset.jpg'), require('path/to/other.png')]);\n *\n * return assets ? : null;\n * ```\n */\nexport function useAssets(moduleIds: number | number[]): [Asset[] | undefined, Error | undefined] {\n const [assets, setAssets] = useState();\n const [error, setError] = useState();\n\n useEffect(() => {\n Asset.loadAsync(moduleIds).then(setAssets).catch(setError);\n }, []);\n\n return [assets, error];\n}\n","import { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from 'react';\nimport { getApolloContext } from \"./ApolloContext.js\";\nexport var ApolloProvider = function (_a) {\n var client = _a.client, children = _a.children;\n var ApolloContext = getApolloContext();\n return React.createElement(ApolloContext.Consumer, null, function (context) {\n if (context === void 0) { context = {}; }\n if (client && context.client !== client) {\n context = Object.assign({}, context, { client: client });\n }\n __DEV__ ? invariant(context.client, 'ApolloProvider was not passed a client instance. Make ' +\n 'sure you pass in your client via the \"client\" prop.') : invariant(context.client, 28);\n return (React.createElement(ApolloContext.Provider, { value: context }, children));\n });\n};\n//# sourceMappingURL=ApolloProvider.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { BaseNavigationContainer, getActionFromState, getPathFromState, getStateFromPath, validatePathConfig } from '@react-navigation/core';\nimport * as React from 'react';\nimport LinkingContext from './LinkingContext';\nimport DefaultTheme from './theming/DefaultTheme';\nimport ThemeProvider from './theming/ThemeProvider';\nimport useBackButton from './useBackButton';\nimport useDocumentTitle from './useDocumentTitle';\nimport useLinking from './useLinking';\nimport useThenable from './useThenable';\nglobal.REACT_NAVIGATION_DEVTOOLS = new WeakMap();\n/**\n * Container component which holds the navigation state designed for React Native apps.\n * This should be rendered at the root wrapping the whole app.\n *\n * @param props.initialState Initial state object for the navigation tree. When deep link handling is enabled, this will override deep links when specified. Make sure that you don't specify an `initialState` when there's a deep link (`Linking.getInitialURL()`).\n * @param props.onReady Callback which is called after the navigation tree mounts.\n * @param props.onStateChange Callback which is called with the latest navigation state when it changes.\n * @param props.theme Theme object for the navigators.\n * @param props.linking Options for deep linking. Deep link handling is enabled when this prop is provided, unless `linking.enabled` is `false`.\n * @param props.fallback Fallback component to render until we have finished getting initial state when linking is enabled. Defaults to `null`.\n * @param props.documentTitle Options to configure the document title on Web. Updating document title is handled by default unless `documentTitle.enabled` is `false`.\n * @param props.children Child elements to render the content.\n * @param props.ref Ref object which refers to the navigation object containing helper methods.\n */\nfunction NavigationContainerInner(_ref, ref) {\n let {\n theme = DefaultTheme,\n linking,\n fallback = null,\n documentTitle,\n onReady,\n ...rest\n } = _ref;\n const isLinkingEnabled = linking ? linking.enabled !== false : false;\n if (linking !== null && linking !== void 0 && linking.config) {\n validatePathConfig(linking.config);\n }\n const refContainer = React.useRef(null);\n useBackButton(refContainer);\n useDocumentTitle(refContainer, documentTitle);\n const {\n getInitialState\n } = useLinking(refContainer, {\n independent: rest.independent,\n enabled: isLinkingEnabled,\n prefixes: [],\n ...linking\n });\n\n // Add additional linking related info to the ref\n // This will be used by the devtools\n React.useEffect(() => {\n if (refContainer.current) {\n REACT_NAVIGATION_DEVTOOLS.set(refContainer.current, {\n get linking() {\n return {\n ...linking,\n enabled: isLinkingEnabled,\n prefixes: (linking === null || linking === void 0 ? void 0 : linking.prefixes) ?? [],\n getStateFromPath: (linking === null || linking === void 0 ? void 0 : linking.getStateFromPath) ?? getStateFromPath,\n getPathFromState: (linking === null || linking === void 0 ? void 0 : linking.getPathFromState) ?? getPathFromState,\n getActionFromState: (linking === null || linking === void 0 ? void 0 : linking.getActionFromState) ?? getActionFromState\n };\n }\n });\n }\n });\n const [isResolved, initialState] = useThenable(getInitialState);\n React.useImperativeHandle(ref, () => refContainer.current);\n const linkingContext = React.useMemo(() => ({\n options: linking\n }), [linking]);\n const isReady = rest.initialState != null || !isLinkingEnabled || isResolved;\n const onReadyRef = React.useRef(onReady);\n React.useEffect(() => {\n onReadyRef.current = onReady;\n });\n React.useEffect(() => {\n if (isReady) {\n var _onReadyRef$current;\n (_onReadyRef$current = onReadyRef.current) === null || _onReadyRef$current === void 0 ? void 0 : _onReadyRef$current.call(onReadyRef);\n }\n }, [isReady]);\n if (!isReady) {\n // This is temporary until we have Suspense for data-fetching\n // Then the fallback will be handled by a parent `Suspense` component\n return fallback;\n }\n return /*#__PURE__*/React.createElement(LinkingContext.Provider, {\n value: linkingContext\n }, /*#__PURE__*/React.createElement(ThemeProvider, {\n value: theme\n }, /*#__PURE__*/React.createElement(BaseNavigationContainer, _extends({}, rest, {\n initialState: rest.initialState == null ? initialState : rest.initialState,\n ref: refContainer\n }))));\n}\nconst NavigationContainer = /*#__PURE__*/React.forwardRef(NavigationContainerInner);\nexport default NavigationContainer;\n//# sourceMappingURL=NavigationContainer.js.map","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { ConsoleLogger as Logger } from '../Logger/ConsoleLogger';\nvar logger = new Logger('Util');\nvar NonRetryableError = /** @class */ (function (_super) {\n __extends(NonRetryableError, _super);\n function NonRetryableError(message) {\n var _this = _super.call(this, message) || this;\n _this.nonRetryable = true;\n return _this;\n }\n return NonRetryableError;\n}(Error));\nexport { NonRetryableError };\nvar isNonRetryableError = function (obj) {\n var key = 'nonRetryable';\n return obj && obj[key];\n};\n/**\n * @private\n * Internal use of Amplify only\n */\nexport function retry(functionToRetry, args, delayFn, onTerminate) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n if (typeof functionToRetry !== 'function') {\n throw Error('functionToRetry must be a function');\n }\n return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {\n var attempt, terminated, timeout, wakeUp, lastError, _loop_1, state_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n attempt = 0;\n terminated = false;\n wakeUp = function () { };\n onTerminate &&\n onTerminate.then(function () {\n // signal not to try anymore.\n terminated = true;\n // stop sleeping if we're sleeping.\n clearTimeout(timeout);\n wakeUp();\n });\n _loop_1 = function () {\n var _a, _b, err_1, retryIn_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n attempt++;\n logger.debug(functionToRetry.name + \" attempt #\" + attempt + \" with this vars: \" + JSON.stringify(args));\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 7]);\n _a = {};\n _b = resolve;\n return [4 /*yield*/, functionToRetry.apply(void 0, __spread(args))];\n case 2: return [2 /*return*/, (_a.value = _b.apply(void 0, [_c.sent()]), _a)];\n case 3:\n err_1 = _c.sent();\n lastError = err_1;\n logger.debug(\"error on \" + functionToRetry.name, err_1);\n if (isNonRetryableError(err_1)) {\n logger.debug(functionToRetry.name + \" non retryable error\", err_1);\n return [2 /*return*/, { value: reject(err_1) }];\n }\n retryIn_1 = delayFn(attempt, args, err_1);\n logger.debug(functionToRetry.name + \" retrying in \" + retryIn_1 + \" ms\");\n if (!(retryIn_1 === false || terminated)) return [3 /*break*/, 4];\n return [2 /*return*/, { value: reject(err_1) }];\n case 4: return [4 /*yield*/, new Promise(function (r) {\n wakeUp = r; // export wakeUp for onTerminate handling\n timeout = setTimeout(wakeUp, retryIn_1);\n })];\n case 5:\n _c.sent();\n _c.label = 6;\n case 6: return [3 /*break*/, 7];\n case 7: return [2 /*return*/];\n }\n });\n };\n _a.label = 1;\n case 1:\n if (!!terminated) return [3 /*break*/, 3];\n return [5 /*yield**/, _loop_1()];\n case 2:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\")\n return [2 /*return*/, state_1.value];\n return [3 /*break*/, 1];\n case 3:\n // reached if terminated while waiting for a timer.\n reject(lastError);\n return [2 /*return*/];\n }\n });\n }); })];\n });\n });\n}\nvar MAX_DELAY_MS = 5 * 60 * 1000;\n/**\n * @private\n * Internal use of Amplify only\n */\nexport function jitteredBackoff(maxDelayMs) {\n if (maxDelayMs === void 0) { maxDelayMs = MAX_DELAY_MS; }\n var BASE_TIME_MS = 100;\n var JITTER_FACTOR = 100;\n return function (attempt) {\n var delay = Math.pow(2, attempt) * BASE_TIME_MS + JITTER_FACTOR * Math.random();\n return delay > maxDelayMs ? false : delay;\n };\n}\n/**\n * @private\n * Internal use of Amplify only\n */\nexport var jitteredExponentialRetry = function (functionToRetry, args, maxDelayMs, onTerminate) {\n if (maxDelayMs === void 0) { maxDelayMs = MAX_DELAY_MS; }\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs), onTerminate);\n};\n//# sourceMappingURL=Retry.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { NonRetryableError } from '../Util';\nvar logger = new Logger('CognitoCredentials');\nvar waitForInit = new Promise(function (res, rej) {\n if (!browserOrNode().isBrowser) {\n logger.debug('not in the browser, directly resolved');\n return res();\n }\n var ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null;\n if (ga) {\n logger.debug('google api already loaded');\n return res();\n }\n else {\n setTimeout(function () {\n return res();\n }, 2000);\n }\n});\nvar GoogleOAuth = /** @class */ (function () {\n function GoogleOAuth() {\n this.initialized = false;\n this.refreshGoogleToken = this.refreshGoogleToken.bind(this);\n this._refreshGoogleTokenImpl = this._refreshGoogleTokenImpl.bind(this);\n }\n GoogleOAuth.prototype.refreshGoogleToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.initialized) return [3 /*break*/, 2];\n logger.debug('need to wait for the Google SDK loaded');\n return [4 /*yield*/, waitForInit];\n case 1:\n _a.sent();\n this.initialized = true;\n logger.debug('finish waiting');\n _a.label = 2;\n case 2: return [2 /*return*/, this._refreshGoogleTokenImpl()];\n }\n });\n });\n };\n GoogleOAuth.prototype._refreshGoogleTokenImpl = function () {\n var ga = null;\n if (browserOrNode().isBrowser)\n ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null;\n if (!ga) {\n logger.debug('no gapi auth2 available');\n return Promise.reject('no gapi auth2 available');\n }\n return new Promise(function (res, rej) {\n ga.getAuthInstance()\n .then(function (googleAuth) {\n if (!googleAuth) {\n logger.debug('google Auth undefined');\n rej(new NonRetryableError('google Auth undefined'));\n }\n var googleUser = googleAuth.currentUser.get();\n // refresh the token\n if (googleUser.isSignedIn()) {\n logger.debug('refreshing the google access token');\n googleUser\n .reloadAuthResponse()\n .then(function (authResponse) {\n var id_token = authResponse.id_token, expires_at = authResponse.expires_at;\n res({ token: id_token, expires_at: expires_at });\n })\n .catch(function (err) {\n if (err && err.error === 'network_error') {\n // Not using NonRetryableError so handler will be retried\n rej('Network error reloading google auth response');\n }\n else {\n rej(new NonRetryableError('Failed to reload google auth response'));\n }\n });\n }\n else {\n rej(new NonRetryableError('User is not signed in with Google'));\n }\n })\n .catch(function (err) {\n logger.debug('Failed to refresh google token', err);\n rej(new NonRetryableError('Failed to refresh google token'));\n });\n });\n };\n return GoogleOAuth;\n}());\nexport { GoogleOAuth };\n/**\n * @deprecated use named import\n */\nexport default GoogleOAuth;\n//# sourceMappingURL=GoogleOAuth.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { NonRetryableError } from '../Util';\nvar logger = new Logger('CognitoCredentials');\nvar waitForInit = new Promise(function (res, rej) {\n if (!browserOrNode().isBrowser) {\n logger.debug('not in the browser, directly resolved');\n return res();\n }\n var fb = window['FB'];\n if (fb) {\n logger.debug('FB SDK already loaded');\n return res();\n }\n else {\n setTimeout(function () {\n return res();\n }, 2000);\n }\n});\nvar FacebookOAuth = /** @class */ (function () {\n function FacebookOAuth() {\n this.initialized = false;\n this.refreshFacebookToken = this.refreshFacebookToken.bind(this);\n this._refreshFacebookTokenImpl = this._refreshFacebookTokenImpl.bind(this);\n }\n FacebookOAuth.prototype.refreshFacebookToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.initialized) return [3 /*break*/, 2];\n logger.debug('need to wait for the Facebook SDK loaded');\n return [4 /*yield*/, waitForInit];\n case 1:\n _a.sent();\n this.initialized = true;\n logger.debug('finish waiting');\n _a.label = 2;\n case 2: return [2 /*return*/, this._refreshFacebookTokenImpl()];\n }\n });\n });\n };\n FacebookOAuth.prototype._refreshFacebookTokenImpl = function () {\n var fb = null;\n if (browserOrNode().isBrowser)\n fb = window['FB'];\n if (!fb) {\n var errorMessage = 'no fb sdk available';\n logger.debug(errorMessage);\n return Promise.reject(new NonRetryableError(errorMessage));\n }\n return new Promise(function (res, rej) {\n fb.getLoginStatus(function (fbResponse) {\n if (!fbResponse || !fbResponse.authResponse) {\n var errorMessage = 'no response from facebook when refreshing the jwt token';\n logger.debug(errorMessage);\n // There is no definitive indication for a network error in\n // fbResponse, so we are treating it as an invalid token.\n rej(new NonRetryableError(errorMessage));\n }\n else {\n var response = fbResponse.authResponse;\n var accessToken = response.accessToken, expiresIn = response.expiresIn;\n var date = new Date();\n var expires_at = expiresIn * 1000 + date.getTime();\n if (!accessToken) {\n var errorMessage = 'the jwtToken is undefined';\n logger.debug(errorMessage);\n rej(new NonRetryableError(errorMessage));\n }\n res({\n token: accessToken,\n expires_at: expires_at,\n });\n }\n }, { scope: 'public_profile,email' });\n });\n };\n return FacebookOAuth;\n}());\nexport { FacebookOAuth };\n/**\n * @deprecated use named import\n */\nexport default FacebookOAuth;\n//# sourceMappingURL=FacebookOAuth.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { GoogleOAuth as GoogleOAuthClass } from './GoogleOAuth';\nimport { FacebookOAuth as FacebookOAuthClass } from './FacebookOAuth';\nexport var GoogleOAuth = new GoogleOAuthClass();\nexport var FacebookOAuth = new FacebookOAuthClass();\n//# sourceMappingURL=index.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign } from \"tslib\";\nexport var AmbiguousRoleResolutionType;\n(function (AmbiguousRoleResolutionType) {\n AmbiguousRoleResolutionType[\"AUTHENTICATED_ROLE\"] = \"AuthenticatedRole\";\n AmbiguousRoleResolutionType[\"DENY\"] = \"Deny\";\n})(AmbiguousRoleResolutionType || (AmbiguousRoleResolutionType = {}));\nexport var CognitoIdentityProvider;\n(function (CognitoIdentityProvider) {\n CognitoIdentityProvider.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CognitoIdentityProvider || (CognitoIdentityProvider = {}));\nexport var CreateIdentityPoolInput;\n(function (CreateIdentityPoolInput) {\n CreateIdentityPoolInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateIdentityPoolInput || (CreateIdentityPoolInput = {}));\nexport var IdentityPool;\n(function (IdentityPool) {\n IdentityPool.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IdentityPool || (IdentityPool = {}));\nexport var InternalErrorException;\n(function (InternalErrorException) {\n InternalErrorException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InternalErrorException || (InternalErrorException = {}));\nexport var InvalidParameterException;\n(function (InvalidParameterException) {\n InvalidParameterException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidParameterException || (InvalidParameterException = {}));\nexport var LimitExceededException;\n(function (LimitExceededException) {\n LimitExceededException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LimitExceededException || (LimitExceededException = {}));\nexport var NotAuthorizedException;\n(function (NotAuthorizedException) {\n NotAuthorizedException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NotAuthorizedException || (NotAuthorizedException = {}));\nexport var ResourceConflictException;\n(function (ResourceConflictException) {\n ResourceConflictException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceConflictException || (ResourceConflictException = {}));\nexport var TooManyRequestsException;\n(function (TooManyRequestsException) {\n TooManyRequestsException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TooManyRequestsException || (TooManyRequestsException = {}));\nexport var DeleteIdentitiesInput;\n(function (DeleteIdentitiesInput) {\n DeleteIdentitiesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteIdentitiesInput || (DeleteIdentitiesInput = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n ErrorCode[\"ACCESS_DENIED\"] = \"AccessDenied\";\n ErrorCode[\"INTERNAL_SERVER_ERROR\"] = \"InternalServerError\";\n})(ErrorCode || (ErrorCode = {}));\nexport var UnprocessedIdentityId;\n(function (UnprocessedIdentityId) {\n UnprocessedIdentityId.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UnprocessedIdentityId || (UnprocessedIdentityId = {}));\nexport var DeleteIdentitiesResponse;\n(function (DeleteIdentitiesResponse) {\n DeleteIdentitiesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteIdentitiesResponse || (DeleteIdentitiesResponse = {}));\nexport var DeleteIdentityPoolInput;\n(function (DeleteIdentityPoolInput) {\n DeleteIdentityPoolInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteIdentityPoolInput || (DeleteIdentityPoolInput = {}));\nexport var ResourceNotFoundException;\n(function (ResourceNotFoundException) {\n ResourceNotFoundException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceNotFoundException || (ResourceNotFoundException = {}));\nexport var DescribeIdentityInput;\n(function (DescribeIdentityInput) {\n DescribeIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeIdentityInput || (DescribeIdentityInput = {}));\nexport var IdentityDescription;\n(function (IdentityDescription) {\n IdentityDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IdentityDescription || (IdentityDescription = {}));\nexport var DescribeIdentityPoolInput;\n(function (DescribeIdentityPoolInput) {\n DescribeIdentityPoolInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeIdentityPoolInput || (DescribeIdentityPoolInput = {}));\nexport var ExternalServiceException;\n(function (ExternalServiceException) {\n ExternalServiceException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExternalServiceException || (ExternalServiceException = {}));\nexport var GetCredentialsForIdentityInput;\n(function (GetCredentialsForIdentityInput) {\n GetCredentialsForIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetCredentialsForIdentityInput || (GetCredentialsForIdentityInput = {}));\nexport var Credentials;\n(function (Credentials) {\n Credentials.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Credentials || (Credentials = {}));\nexport var GetCredentialsForIdentityResponse;\n(function (GetCredentialsForIdentityResponse) {\n GetCredentialsForIdentityResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetCredentialsForIdentityResponse || (GetCredentialsForIdentityResponse = {}));\nexport var InvalidIdentityPoolConfigurationException;\n(function (InvalidIdentityPoolConfigurationException) {\n InvalidIdentityPoolConfigurationException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidIdentityPoolConfigurationException || (InvalidIdentityPoolConfigurationException = {}));\nexport var GetIdInput;\n(function (GetIdInput) {\n GetIdInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdInput || (GetIdInput = {}));\nexport var GetIdResponse;\n(function (GetIdResponse) {\n GetIdResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdResponse || (GetIdResponse = {}));\nexport var GetIdentityPoolRolesInput;\n(function (GetIdentityPoolRolesInput) {\n GetIdentityPoolRolesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdentityPoolRolesInput || (GetIdentityPoolRolesInput = {}));\nexport var MappingRuleMatchType;\n(function (MappingRuleMatchType) {\n MappingRuleMatchType[\"CONTAINS\"] = \"Contains\";\n MappingRuleMatchType[\"EQUALS\"] = \"Equals\";\n MappingRuleMatchType[\"NOT_EQUAL\"] = \"NotEqual\";\n MappingRuleMatchType[\"STARTS_WITH\"] = \"StartsWith\";\n})(MappingRuleMatchType || (MappingRuleMatchType = {}));\nexport var MappingRule;\n(function (MappingRule) {\n MappingRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MappingRule || (MappingRule = {}));\nexport var RulesConfigurationType;\n(function (RulesConfigurationType) {\n RulesConfigurationType.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RulesConfigurationType || (RulesConfigurationType = {}));\nexport var RoleMappingType;\n(function (RoleMappingType) {\n RoleMappingType[\"RULES\"] = \"Rules\";\n RoleMappingType[\"TOKEN\"] = \"Token\";\n})(RoleMappingType || (RoleMappingType = {}));\nexport var RoleMapping;\n(function (RoleMapping) {\n RoleMapping.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RoleMapping || (RoleMapping = {}));\nexport var GetIdentityPoolRolesResponse;\n(function (GetIdentityPoolRolesResponse) {\n GetIdentityPoolRolesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdentityPoolRolesResponse || (GetIdentityPoolRolesResponse = {}));\nexport var GetOpenIdTokenInput;\n(function (GetOpenIdTokenInput) {\n GetOpenIdTokenInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenInput || (GetOpenIdTokenInput = {}));\nexport var GetOpenIdTokenResponse;\n(function (GetOpenIdTokenResponse) {\n GetOpenIdTokenResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenResponse || (GetOpenIdTokenResponse = {}));\nexport var DeveloperUserAlreadyRegisteredException;\n(function (DeveloperUserAlreadyRegisteredException) {\n DeveloperUserAlreadyRegisteredException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeveloperUserAlreadyRegisteredException || (DeveloperUserAlreadyRegisteredException = {}));\nexport var GetOpenIdTokenForDeveloperIdentityInput;\n(function (GetOpenIdTokenForDeveloperIdentityInput) {\n GetOpenIdTokenForDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenForDeveloperIdentityInput || (GetOpenIdTokenForDeveloperIdentityInput = {}));\nexport var GetOpenIdTokenForDeveloperIdentityResponse;\n(function (GetOpenIdTokenForDeveloperIdentityResponse) {\n GetOpenIdTokenForDeveloperIdentityResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenForDeveloperIdentityResponse || (GetOpenIdTokenForDeveloperIdentityResponse = {}));\nexport var ListIdentitiesInput;\n(function (ListIdentitiesInput) {\n ListIdentitiesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentitiesInput || (ListIdentitiesInput = {}));\nexport var ListIdentitiesResponse;\n(function (ListIdentitiesResponse) {\n ListIdentitiesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentitiesResponse || (ListIdentitiesResponse = {}));\nexport var ListIdentityPoolsInput;\n(function (ListIdentityPoolsInput) {\n ListIdentityPoolsInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentityPoolsInput || (ListIdentityPoolsInput = {}));\nexport var IdentityPoolShortDescription;\n(function (IdentityPoolShortDescription) {\n IdentityPoolShortDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IdentityPoolShortDescription || (IdentityPoolShortDescription = {}));\nexport var ListIdentityPoolsResponse;\n(function (ListIdentityPoolsResponse) {\n ListIdentityPoolsResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentityPoolsResponse || (ListIdentityPoolsResponse = {}));\nexport var ListTagsForResourceInput;\n(function (ListTagsForResourceInput) {\n ListTagsForResourceInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListTagsForResourceInput || (ListTagsForResourceInput = {}));\nexport var ListTagsForResourceResponse;\n(function (ListTagsForResourceResponse) {\n ListTagsForResourceResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListTagsForResourceResponse || (ListTagsForResourceResponse = {}));\nexport var LookupDeveloperIdentityInput;\n(function (LookupDeveloperIdentityInput) {\n LookupDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LookupDeveloperIdentityInput || (LookupDeveloperIdentityInput = {}));\nexport var LookupDeveloperIdentityResponse;\n(function (LookupDeveloperIdentityResponse) {\n LookupDeveloperIdentityResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LookupDeveloperIdentityResponse || (LookupDeveloperIdentityResponse = {}));\nexport var MergeDeveloperIdentitiesInput;\n(function (MergeDeveloperIdentitiesInput) {\n MergeDeveloperIdentitiesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MergeDeveloperIdentitiesInput || (MergeDeveloperIdentitiesInput = {}));\nexport var MergeDeveloperIdentitiesResponse;\n(function (MergeDeveloperIdentitiesResponse) {\n MergeDeveloperIdentitiesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MergeDeveloperIdentitiesResponse || (MergeDeveloperIdentitiesResponse = {}));\nexport var ConcurrentModificationException;\n(function (ConcurrentModificationException) {\n ConcurrentModificationException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ConcurrentModificationException || (ConcurrentModificationException = {}));\nexport var SetIdentityPoolRolesInput;\n(function (SetIdentityPoolRolesInput) {\n SetIdentityPoolRolesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SetIdentityPoolRolesInput || (SetIdentityPoolRolesInput = {}));\nexport var TagResourceInput;\n(function (TagResourceInput) {\n TagResourceInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TagResourceInput || (TagResourceInput = {}));\nexport var TagResourceResponse;\n(function (TagResourceResponse) {\n TagResourceResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TagResourceResponse || (TagResourceResponse = {}));\nexport var UnlinkDeveloperIdentityInput;\n(function (UnlinkDeveloperIdentityInput) {\n UnlinkDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UnlinkDeveloperIdentityInput || (UnlinkDeveloperIdentityInput = {}));\nexport var UnlinkIdentityInput;\n(function (UnlinkIdentityInput) {\n UnlinkIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UnlinkIdentityInput || (UnlinkIdentityInput = {}));\nexport var UntagResourceInput;\n(function (UntagResourceInput) {\n UntagResourceInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UntagResourceInput || (UntagResourceInput = {}));\nexport var UntagResourceResponse;\n(function (UntagResourceResponse) {\n UntagResourceResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UntagResourceResponse || (UntagResourceResponse = {}));\n//# sourceMappingURL=models_0.js.map","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { HttpRequest as __HttpRequest } from \"@aws-sdk/protocol-http\";\nexport var serializeAws_json1_1CreateIdentityPoolCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.CreateIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1CreateIdentityPoolInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DeleteIdentitiesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DeleteIdentities\",\n };\n body = JSON.stringify(serializeAws_json1_1DeleteIdentitiesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DeleteIdentityPoolCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DeleteIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1DeleteIdentityPoolInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DescribeIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DescribeIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1DescribeIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DescribeIdentityPoolCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DescribeIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1DescribeIdentityPoolInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetCredentialsForIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetCredentialsForIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1GetCredentialsForIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetIdCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetId\",\n };\n body = JSON.stringify(serializeAws_json1_1GetIdInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetIdentityPoolRolesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetIdentityPoolRoles\",\n };\n body = JSON.stringify(serializeAws_json1_1GetIdentityPoolRolesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetOpenIdTokenCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetOpenIdToken\",\n };\n body = JSON.stringify(serializeAws_json1_1GetOpenIdTokenInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1ListIdentitiesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListIdentities\",\n };\n body = JSON.stringify(serializeAws_json1_1ListIdentitiesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1ListIdentityPoolsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListIdentityPools\",\n };\n body = JSON.stringify(serializeAws_json1_1ListIdentityPoolsInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1ListTagsForResourceCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListTagsForResource\",\n };\n body = JSON.stringify(serializeAws_json1_1ListTagsForResourceInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1LookupDeveloperIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.LookupDeveloperIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1LookupDeveloperIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1MergeDeveloperIdentitiesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.MergeDeveloperIdentities\",\n };\n body = JSON.stringify(serializeAws_json1_1MergeDeveloperIdentitiesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1SetIdentityPoolRolesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.SetIdentityPoolRoles\",\n };\n body = JSON.stringify(serializeAws_json1_1SetIdentityPoolRolesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1TagResourceCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.TagResource\",\n };\n body = JSON.stringify(serializeAws_json1_1TagResourceInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UnlinkDeveloperIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UnlinkDeveloperIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1UnlinkDeveloperIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UnlinkIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UnlinkIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1UnlinkIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UntagResourceCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UntagResource\",\n };\n body = JSON.stringify(serializeAws_json1_1UntagResourceInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UpdateIdentityPoolCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UpdateIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1IdentityPool(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var deserializeAws_json1_1CreateIdentityPoolCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1CreateIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1CreateIdentityPoolCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"LimitExceededException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#LimitExceededException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1DeleteIdentitiesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1DeleteIdentitiesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1DeleteIdentitiesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DeleteIdentitiesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, parsedBody, message;\n var _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n _a = [__assign({}, output)];\n _f = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_f.body = _g.sent(), _f)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"TooManyRequestsException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 6];\n }\n return [3 /*break*/, 8];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 9];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 9];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 9];\n case 8:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _g.label = 9;\n case 9:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1DeleteIdentityPoolCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1DeleteIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DeleteIdentityPoolCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1DescribeIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1DescribeIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityDescription(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DescribeIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1DescribeIdentityPoolCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1DescribeIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DescribeIdentityPoolCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetCredentialsForIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetCredentialsForIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetCredentialsForIdentityResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetCredentialsForIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message;\n var _l;\n return __generator(this, function (_m) {\n switch (_m.label) {\n case 0:\n _a = [__assign({}, output)];\n _l = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_l.body = _m.sent(), _l)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidIdentityPoolConfigurationException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidIdentityPoolConfigurationException\": return [3 /*break*/, 6];\n case \"InvalidParameterException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 8];\n case \"NotAuthorizedException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 10];\n case \"ResourceConflictException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 12];\n case \"ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"TooManyRequestsException\": return [3 /*break*/, 16];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 16];\n }\n return [3 /*break*/, 18];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 16:\n _k = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 17:\n response = __assign.apply(void 0, [__assign.apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 18:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _m.label = 19;\n case 19:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetIdCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetIdCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetIdResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetIdCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message;\n var _l;\n return __generator(this, function (_m) {\n switch (_m.label) {\n case 0:\n _a = [__assign({}, output)];\n _l = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_l.body = _m.sent(), _l)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"LimitExceededException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#LimitExceededException\": return [3 /*break*/, 8];\n case \"NotAuthorizedException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 10];\n case \"ResourceConflictException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 12];\n case \"ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"TooManyRequestsException\": return [3 /*break*/, 16];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 16];\n }\n return [3 /*break*/, 18];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 16:\n _k = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 17:\n response = __assign.apply(void 0, [__assign.apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 18:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _m.label = 19;\n case 19:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetIdentityPoolRolesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetIdentityPoolRolesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetIdentityPoolRolesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetIdentityPoolRolesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetOpenIdTokenCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetOpenIdTokenCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetOpenIdTokenResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetOpenIdTokenCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _l.label = 17;\n case 17:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"DeveloperUserAlreadyRegisteredException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#DeveloperUserAlreadyRegisteredException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1DeveloperUserAlreadyRegisteredExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _l.label = 17;\n case 17:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1ListIdentitiesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1ListIdentitiesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1ListIdentitiesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1ListIdentitiesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1ListIdentityPoolsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1ListIdentityPoolsCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1ListIdentityPoolsResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1ListIdentityPoolsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1ListTagsForResourceCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1ListTagsForResourceCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1ListTagsForResourceResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1ListTagsForResourceCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1LookupDeveloperIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1LookupDeveloperIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1LookupDeveloperIdentityResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1LookupDeveloperIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1MergeDeveloperIdentitiesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1MergeDeveloperIdentitiesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1MergeDeveloperIdentitiesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1MergeDeveloperIdentitiesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1SetIdentityPoolRolesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1SetIdentityPoolRolesCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1SetIdentityPoolRolesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ConcurrentModificationExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _l.label = 17;\n case 17:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1TagResourceCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1TagResourceCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1TagResourceResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1TagResourceCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1UnlinkDeveloperIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1UnlinkDeveloperIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UnlinkDeveloperIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1UnlinkIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1UnlinkIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UnlinkIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _l.label = 17;\n case 17:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1UntagResourceCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1UntagResourceCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1UntagResourceResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UntagResourceCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1UpdateIdentityPoolCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1UpdateIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UpdateIdentityPoolCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message;\n var _l;\n return __generator(this, function (_m) {\n switch (_m.label) {\n case 0:\n _a = [__assign({}, output)];\n _l = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_l.body = _m.sent(), _l)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"LimitExceededException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#LimitExceededException\": return [3 /*break*/, 8];\n case \"NotAuthorizedException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 10];\n case \"ResourceConflictException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 12];\n case \"ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"TooManyRequestsException\": return [3 /*break*/, 16];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 16];\n }\n return [3 /*break*/, 18];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ConcurrentModificationExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 16:\n _k = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 17:\n response = __assign.apply(void 0, [__assign.apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 18:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _m.label = 19;\n case 19:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nvar deserializeAws_json1_1ConcurrentModificationExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ConcurrentModificationException(body, context);\n contents = __assign({ name: \"ConcurrentModificationException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1DeveloperUserAlreadyRegisteredExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1DeveloperUserAlreadyRegisteredException(body, context);\n contents = __assign({ name: \"DeveloperUserAlreadyRegisteredException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1ExternalServiceExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ExternalServiceException(body, context);\n contents = __assign({ name: \"ExternalServiceException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1InternalErrorExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1InternalErrorException(body, context);\n contents = __assign({ name: \"InternalErrorException\", $fault: \"server\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1InvalidIdentityPoolConfigurationException(body, context);\n contents = __assign({ name: \"InvalidIdentityPoolConfigurationException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1InvalidParameterExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1InvalidParameterException(body, context);\n contents = __assign({ name: \"InvalidParameterException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1LimitExceededExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1LimitExceededException(body, context);\n contents = __assign({ name: \"LimitExceededException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1NotAuthorizedExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1NotAuthorizedException(body, context);\n contents = __assign({ name: \"NotAuthorizedException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1ResourceConflictExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ResourceConflictException(body, context);\n contents = __assign({ name: \"ResourceConflictException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1ResourceNotFoundExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ResourceNotFoundException(body, context);\n contents = __assign({ name: \"ResourceNotFoundException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1TooManyRequestsExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1TooManyRequestsException(body, context);\n contents = __assign({ name: \"TooManyRequestsException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar serializeAws_json1_1CognitoIdentityProvider = function (input, context) {\n return __assign(__assign(__assign({}, (input.ClientId !== undefined && input.ClientId !== null && { ClientId: input.ClientId })), (input.ProviderName !== undefined && input.ProviderName !== null && { ProviderName: input.ProviderName })), (input.ServerSideTokenCheck !== undefined &&\n input.ServerSideTokenCheck !== null && { ServerSideTokenCheck: input.ServerSideTokenCheck }));\n};\nvar serializeAws_json1_1CognitoIdentityProviderList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return serializeAws_json1_1CognitoIdentityProvider(entry, context);\n });\n};\nvar serializeAws_json1_1CreateIdentityPoolInput = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.AllowClassicFlow !== undefined &&\n input.AllowClassicFlow !== null && { AllowClassicFlow: input.AllowClassicFlow })), (input.AllowUnauthenticatedIdentities !== undefined &&\n input.AllowUnauthenticatedIdentities !== null && {\n AllowUnauthenticatedIdentities: input.AllowUnauthenticatedIdentities,\n })), (input.CognitoIdentityProviders !== undefined &&\n input.CognitoIdentityProviders !== null && {\n CognitoIdentityProviders: serializeAws_json1_1CognitoIdentityProviderList(input.CognitoIdentityProviders, context),\n })), (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolName !== undefined &&\n input.IdentityPoolName !== null && { IdentityPoolName: input.IdentityPoolName })), (input.IdentityPoolTags !== undefined &&\n input.IdentityPoolTags !== null && {\n IdentityPoolTags: serializeAws_json1_1IdentityPoolTagsType(input.IdentityPoolTags, context),\n })), (input.OpenIdConnectProviderARNs !== undefined &&\n input.OpenIdConnectProviderARNs !== null && {\n OpenIdConnectProviderARNs: serializeAws_json1_1OIDCProviderList(input.OpenIdConnectProviderARNs, context),\n })), (input.SamlProviderARNs !== undefined &&\n input.SamlProviderARNs !== null && {\n SamlProviderARNs: serializeAws_json1_1SAMLProviderList(input.SamlProviderARNs, context),\n })), (input.SupportedLoginProviders !== undefined &&\n input.SupportedLoginProviders !== null && {\n SupportedLoginProviders: serializeAws_json1_1IdentityProviders(input.SupportedLoginProviders, context),\n }));\n};\nvar serializeAws_json1_1DeleteIdentitiesInput = function (input, context) {\n return __assign({}, (input.IdentityIdsToDelete !== undefined &&\n input.IdentityIdsToDelete !== null && {\n IdentityIdsToDelete: serializeAws_json1_1IdentityIdList(input.IdentityIdsToDelete, context),\n }));\n};\nvar serializeAws_json1_1DeleteIdentityPoolInput = function (input, context) {\n return __assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1DescribeIdentityInput = function (input, context) {\n return __assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId }));\n};\nvar serializeAws_json1_1DescribeIdentityPoolInput = function (input, context) {\n return __assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1GetCredentialsForIdentityInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.CustomRoleArn !== undefined && input.CustomRoleArn !== null && { CustomRoleArn: input.CustomRoleArn })), (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }));\n};\nvar serializeAws_json1_1GetIdentityPoolRolesInput = function (input, context) {\n return __assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1GetIdInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.AccountId !== undefined && input.AccountId !== null && { AccountId: input.AccountId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }));\n};\nvar serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) })), (input.TokenDuration !== undefined && input.TokenDuration !== null && { TokenDuration: input.TokenDuration }));\n};\nvar serializeAws_json1_1GetOpenIdTokenInput = function (input, context) {\n return __assign(__assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }));\n};\nvar serializeAws_json1_1IdentityIdList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1IdentityPool = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.AllowClassicFlow !== undefined &&\n input.AllowClassicFlow !== null && { AllowClassicFlow: input.AllowClassicFlow })), (input.AllowUnauthenticatedIdentities !== undefined &&\n input.AllowUnauthenticatedIdentities !== null && {\n AllowUnauthenticatedIdentities: input.AllowUnauthenticatedIdentities,\n })), (input.CognitoIdentityProviders !== undefined &&\n input.CognitoIdentityProviders !== null && {\n CognitoIdentityProviders: serializeAws_json1_1CognitoIdentityProviderList(input.CognitoIdentityProviders, context),\n })), (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.IdentityPoolName !== undefined &&\n input.IdentityPoolName !== null && { IdentityPoolName: input.IdentityPoolName })), (input.IdentityPoolTags !== undefined &&\n input.IdentityPoolTags !== null && {\n IdentityPoolTags: serializeAws_json1_1IdentityPoolTagsType(input.IdentityPoolTags, context),\n })), (input.OpenIdConnectProviderARNs !== undefined &&\n input.OpenIdConnectProviderARNs !== null && {\n OpenIdConnectProviderARNs: serializeAws_json1_1OIDCProviderList(input.OpenIdConnectProviderARNs, context),\n })), (input.SamlProviderARNs !== undefined &&\n input.SamlProviderARNs !== null && {\n SamlProviderARNs: serializeAws_json1_1SAMLProviderList(input.SamlProviderARNs, context),\n })), (input.SupportedLoginProviders !== undefined &&\n input.SupportedLoginProviders !== null && {\n SupportedLoginProviders: serializeAws_json1_1IdentityProviders(input.SupportedLoginProviders, context),\n }));\n};\nvar serializeAws_json1_1IdentityPoolTagsListType = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1IdentityPoolTagsType = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar serializeAws_json1_1IdentityProviders = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar serializeAws_json1_1ListIdentitiesInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.HideDisabled !== undefined && input.HideDisabled !== null && { HideDisabled: input.HideDisabled })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }));\n};\nvar serializeAws_json1_1ListIdentityPoolsInput = function (input, context) {\n return __assign(__assign({}, (input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }));\n};\nvar serializeAws_json1_1ListTagsForResourceInput = function (input, context) {\n return __assign({}, (input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn }));\n};\nvar serializeAws_json1_1LoginsList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1LoginsMap = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar serializeAws_json1_1LookupDeveloperIdentityInput = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign({}, (input.DeveloperUserIdentifier !== undefined &&\n input.DeveloperUserIdentifier !== null && { DeveloperUserIdentifier: input.DeveloperUserIdentifier })), (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }));\n};\nvar serializeAws_json1_1MappingRule = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.Claim !== undefined && input.Claim !== null && { Claim: input.Claim })), (input.MatchType !== undefined && input.MatchType !== null && { MatchType: input.MatchType })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN })), (input.Value !== undefined && input.Value !== null && { Value: input.Value }));\n};\nvar serializeAws_json1_1MappingRulesList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return serializeAws_json1_1MappingRule(entry, context);\n });\n};\nvar serializeAws_json1_1MergeDeveloperIdentitiesInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.DestinationUserIdentifier !== undefined &&\n input.DestinationUserIdentifier !== null && { DestinationUserIdentifier: input.DestinationUserIdentifier })), (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.SourceUserIdentifier !== undefined &&\n input.SourceUserIdentifier !== null && { SourceUserIdentifier: input.SourceUserIdentifier }));\n};\nvar serializeAws_json1_1OIDCProviderList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1RoleMapping = function (input, context) {\n return __assign(__assign(__assign({}, (input.AmbiguousRoleResolution !== undefined &&\n input.AmbiguousRoleResolution !== null && { AmbiguousRoleResolution: input.AmbiguousRoleResolution })), (input.RulesConfiguration !== undefined &&\n input.RulesConfiguration !== null && {\n RulesConfiguration: serializeAws_json1_1RulesConfigurationType(input.RulesConfiguration, context),\n })), (input.Type !== undefined && input.Type !== null && { Type: input.Type }));\n};\nvar serializeAws_json1_1RoleMappingMap = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = serializeAws_json1_1RoleMapping(value, context), _b));\n }, {});\n};\nvar serializeAws_json1_1RolesMap = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar serializeAws_json1_1RulesConfigurationType = function (input, context) {\n return __assign({}, (input.Rules !== undefined &&\n input.Rules !== null && { Rules: serializeAws_json1_1MappingRulesList(input.Rules, context) }));\n};\nvar serializeAws_json1_1SAMLProviderList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1SetIdentityPoolRolesInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.RoleMappings !== undefined &&\n input.RoleMappings !== null && { RoleMappings: serializeAws_json1_1RoleMappingMap(input.RoleMappings, context) })), (input.Roles !== undefined &&\n input.Roles !== null && { Roles: serializeAws_json1_1RolesMap(input.Roles, context) }));\n};\nvar serializeAws_json1_1TagResourceInput = function (input, context) {\n return __assign(__assign({}, (input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn })), (input.Tags !== undefined &&\n input.Tags !== null && { Tags: serializeAws_json1_1IdentityPoolTagsType(input.Tags, context) }));\n};\nvar serializeAws_json1_1UnlinkDeveloperIdentityInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.DeveloperUserIdentifier !== undefined &&\n input.DeveloperUserIdentifier !== null && { DeveloperUserIdentifier: input.DeveloperUserIdentifier })), (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1UnlinkIdentityInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) })), (input.LoginsToRemove !== undefined &&\n input.LoginsToRemove !== null && {\n LoginsToRemove: serializeAws_json1_1LoginsList(input.LoginsToRemove, context),\n }));\n};\nvar serializeAws_json1_1UntagResourceInput = function (input, context) {\n return __assign(__assign({}, (input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn })), (input.TagKeys !== undefined &&\n input.TagKeys !== null && { TagKeys: serializeAws_json1_1IdentityPoolTagsListType(input.TagKeys, context) }));\n};\nvar deserializeAws_json1_1CognitoIdentityProvider = function (output, context) {\n return {\n ClientId: output.ClientId !== undefined && output.ClientId !== null ? output.ClientId : undefined,\n ProviderName: output.ProviderName !== undefined && output.ProviderName !== null ? output.ProviderName : undefined,\n ServerSideTokenCheck: output.ServerSideTokenCheck !== undefined && output.ServerSideTokenCheck !== null\n ? output.ServerSideTokenCheck\n : undefined,\n };\n};\nvar deserializeAws_json1_1CognitoIdentityProviderList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1CognitoIdentityProvider(entry, context);\n });\n};\nvar deserializeAws_json1_1ConcurrentModificationException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1Credentials = function (output, context) {\n return {\n AccessKeyId: output.AccessKeyId !== undefined && output.AccessKeyId !== null ? output.AccessKeyId : undefined,\n Expiration: output.Expiration !== undefined && output.Expiration !== null\n ? new Date(Math.round(output.Expiration * 1000))\n : undefined,\n SecretKey: output.SecretKey !== undefined && output.SecretKey !== null ? output.SecretKey : undefined,\n SessionToken: output.SessionToken !== undefined && output.SessionToken !== null ? output.SessionToken : undefined,\n };\n};\nvar deserializeAws_json1_1DeleteIdentitiesResponse = function (output, context) {\n return {\n UnprocessedIdentityIds: output.UnprocessedIdentityIds !== undefined && output.UnprocessedIdentityIds !== null\n ? deserializeAws_json1_1UnprocessedIdentityIdList(output.UnprocessedIdentityIds, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1DeveloperUserAlreadyRegisteredException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1DeveloperUserIdentifierList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1ExternalServiceException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1GetCredentialsForIdentityResponse = function (output, context) {\n return {\n Credentials: output.Credentials !== undefined && output.Credentials !== null\n ? deserializeAws_json1_1Credentials(output.Credentials, context)\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1GetIdentityPoolRolesResponse = function (output, context) {\n return {\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n RoleMappings: output.RoleMappings !== undefined && output.RoleMappings !== null\n ? deserializeAws_json1_1RoleMappingMap(output.RoleMappings, context)\n : undefined,\n Roles: output.Roles !== undefined && output.Roles !== null\n ? deserializeAws_json1_1RolesMap(output.Roles, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1GetIdResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n Token: output.Token !== undefined && output.Token !== null ? output.Token : undefined,\n };\n};\nvar deserializeAws_json1_1GetOpenIdTokenResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n Token: output.Token !== undefined && output.Token !== null ? output.Token : undefined,\n };\n};\nvar deserializeAws_json1_1IdentitiesList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1IdentityDescription(entry, context);\n });\n};\nvar deserializeAws_json1_1IdentityDescription = function (output, context) {\n return {\n CreationDate: output.CreationDate !== undefined && output.CreationDate !== null\n ? new Date(Math.round(output.CreationDate * 1000))\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null\n ? new Date(Math.round(output.LastModifiedDate * 1000))\n : undefined,\n Logins: output.Logins !== undefined && output.Logins !== null\n ? deserializeAws_json1_1LoginsList(output.Logins, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1IdentityPool = function (output, context) {\n return {\n AllowClassicFlow: output.AllowClassicFlow !== undefined && output.AllowClassicFlow !== null ? output.AllowClassicFlow : undefined,\n AllowUnauthenticatedIdentities: output.AllowUnauthenticatedIdentities !== undefined && output.AllowUnauthenticatedIdentities !== null\n ? output.AllowUnauthenticatedIdentities\n : undefined,\n CognitoIdentityProviders: output.CognitoIdentityProviders !== undefined && output.CognitoIdentityProviders !== null\n ? deserializeAws_json1_1CognitoIdentityProviderList(output.CognitoIdentityProviders, context)\n : undefined,\n DeveloperProviderName: output.DeveloperProviderName !== undefined && output.DeveloperProviderName !== null\n ? output.DeveloperProviderName\n : undefined,\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n IdentityPoolName: output.IdentityPoolName !== undefined && output.IdentityPoolName !== null ? output.IdentityPoolName : undefined,\n IdentityPoolTags: output.IdentityPoolTags !== undefined && output.IdentityPoolTags !== null\n ? deserializeAws_json1_1IdentityPoolTagsType(output.IdentityPoolTags, context)\n : undefined,\n OpenIdConnectProviderARNs: output.OpenIdConnectProviderARNs !== undefined && output.OpenIdConnectProviderARNs !== null\n ? deserializeAws_json1_1OIDCProviderList(output.OpenIdConnectProviderARNs, context)\n : undefined,\n SamlProviderARNs: output.SamlProviderARNs !== undefined && output.SamlProviderARNs !== null\n ? deserializeAws_json1_1SAMLProviderList(output.SamlProviderARNs, context)\n : undefined,\n SupportedLoginProviders: output.SupportedLoginProviders !== undefined && output.SupportedLoginProviders !== null\n ? deserializeAws_json1_1IdentityProviders(output.SupportedLoginProviders, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1IdentityPoolShortDescription = function (output, context) {\n return {\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n IdentityPoolName: output.IdentityPoolName !== undefined && output.IdentityPoolName !== null ? output.IdentityPoolName : undefined,\n };\n};\nvar deserializeAws_json1_1IdentityPoolsList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1IdentityPoolShortDescription(entry, context);\n });\n};\nvar deserializeAws_json1_1IdentityPoolTagsType = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar deserializeAws_json1_1IdentityProviders = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar deserializeAws_json1_1InternalErrorException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1InvalidIdentityPoolConfigurationException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1InvalidParameterException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1LimitExceededException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1ListIdentitiesResponse = function (output, context) {\n return {\n Identities: output.Identities !== undefined && output.Identities !== null\n ? deserializeAws_json1_1IdentitiesList(output.Identities, context)\n : undefined,\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n };\n};\nvar deserializeAws_json1_1ListIdentityPoolsResponse = function (output, context) {\n return {\n IdentityPools: output.IdentityPools !== undefined && output.IdentityPools !== null\n ? deserializeAws_json1_1IdentityPoolsList(output.IdentityPools, context)\n : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n };\n};\nvar deserializeAws_json1_1ListTagsForResourceResponse = function (output, context) {\n return {\n Tags: output.Tags !== undefined && output.Tags !== null\n ? deserializeAws_json1_1IdentityPoolTagsType(output.Tags, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1LoginsList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1LookupDeveloperIdentityResponse = function (output, context) {\n return {\n DeveloperUserIdentifierList: output.DeveloperUserIdentifierList !== undefined && output.DeveloperUserIdentifierList !== null\n ? deserializeAws_json1_1DeveloperUserIdentifierList(output.DeveloperUserIdentifierList, context)\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n };\n};\nvar deserializeAws_json1_1MappingRule = function (output, context) {\n return {\n Claim: output.Claim !== undefined && output.Claim !== null ? output.Claim : undefined,\n MatchType: output.MatchType !== undefined && output.MatchType !== null ? output.MatchType : undefined,\n RoleARN: output.RoleARN !== undefined && output.RoleARN !== null ? output.RoleARN : undefined,\n Value: output.Value !== undefined && output.Value !== null ? output.Value : undefined,\n };\n};\nvar deserializeAws_json1_1MappingRulesList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1MappingRule(entry, context);\n });\n};\nvar deserializeAws_json1_1MergeDeveloperIdentitiesResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1NotAuthorizedException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1OIDCProviderList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1ResourceConflictException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1ResourceNotFoundException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1RoleMapping = function (output, context) {\n return {\n AmbiguousRoleResolution: output.AmbiguousRoleResolution !== undefined && output.AmbiguousRoleResolution !== null\n ? output.AmbiguousRoleResolution\n : undefined,\n RulesConfiguration: output.RulesConfiguration !== undefined && output.RulesConfiguration !== null\n ? deserializeAws_json1_1RulesConfigurationType(output.RulesConfiguration, context)\n : undefined,\n Type: output.Type !== undefined && output.Type !== null ? output.Type : undefined,\n };\n};\nvar deserializeAws_json1_1RoleMappingMap = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = deserializeAws_json1_1RoleMapping(value, context), _b));\n }, {});\n};\nvar deserializeAws_json1_1RolesMap = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar deserializeAws_json1_1RulesConfigurationType = function (output, context) {\n return {\n Rules: output.Rules !== undefined && output.Rules !== null\n ? deserializeAws_json1_1MappingRulesList(output.Rules, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1SAMLProviderList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1TagResourceResponse = function (output, context) {\n return {};\n};\nvar deserializeAws_json1_1TooManyRequestsException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1UnprocessedIdentityId = function (output, context) {\n return {\n ErrorCode: output.ErrorCode !== undefined && output.ErrorCode !== null ? output.ErrorCode : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1UnprocessedIdentityIdList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1UnprocessedIdentityId(entry, context);\n });\n};\nvar deserializeAws_json1_1UntagResourceResponse = function (output, context) {\n return {};\n};\nvar deserializeMetadata = function (output) {\n var _a;\n return ({\n httpStatusCode: output.statusCode,\n requestId: (_a = output.headers[\"x-amzn-requestid\"]) !== null && _a !== void 0 ? _a : output.headers[\"x-amzn-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n });\n};\n// Collect low-level response body stream to Uint8Array.\nvar collectBody = function (streamBody, context) {\n if (streamBody === void 0) { streamBody = new Uint8Array(); }\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\n// Encode Uint8Array data into string with utf-8.\nvar collectBodyString = function (streamBody, context) {\n return collectBody(streamBody, context).then(function (body) { return context.utf8Encoder(body); });\n};\nvar buildHttpRpcRequest = function (context, headers, path, resolvedHostname, body) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, contents;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n contents = {\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n path: path,\n headers: headers,\n };\n if (resolvedHostname !== undefined) {\n contents.hostname = resolvedHostname;\n }\n if (body !== undefined) {\n contents.body = body;\n }\n return [2 /*return*/, new __HttpRequest(contents)];\n }\n });\n}); };\nvar parseBody = function (streamBody, context) {\n return collectBodyString(streamBody, context).then(function (encoded) {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n });\n};\n/**\n * Load an error code for the aws.rest-json-1.1 protocol.\n */\nvar loadRestJsonErrorCode = function (output, data) {\n var findKey = function (object, key) { return Object.keys(object).find(function (k) { return k.toLowerCase() === key.toLowerCase(); }); };\n var sanitizeErrorCode = function (rawValue) {\n var cleanValue = rawValue;\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n var headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n return \"\";\n};\n//# sourceMappingURL=Aws_json1_1.js.map","import { __extends } from \"tslib\";\nimport { GetCredentialsForIdentityInput, GetCredentialsForIdentityResponse } from \"../models/models_0\";\nimport { deserializeAws_json1_1GetCredentialsForIdentityCommand, serializeAws_json1_1GetCredentialsForIdentityCommand, } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Returns credentials for the provided identity ID. Any provided logins will be\n * validated against supported login providers. If the token is for\n * cognito-identity.amazonaws.com, it will be passed through to AWS Security Token Service\n * with the appropriate role for the token.

\n *

This is a public API. You do not need any credentials to call this API.

\n */\nvar GetCredentialsForIdentityCommand = /** @class */ (function (_super) {\n __extends(GetCredentialsForIdentityCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function GetCredentialsForIdentityCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n GetCredentialsForIdentityCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"CognitoIdentityClient\";\n var commandName = \"GetCredentialsForIdentityCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: GetCredentialsForIdentityInput.filterSensitiveLog,\n outputFilterSensitiveLog: GetCredentialsForIdentityResponse.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n GetCredentialsForIdentityCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1GetCredentialsForIdentityCommand(input, context);\n };\n GetCredentialsForIdentityCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1GetCredentialsForIdentityCommand(output, context);\n };\n return GetCredentialsForIdentityCommand;\n}($Command));\nexport { GetCredentialsForIdentityCommand };\n//# sourceMappingURL=GetCredentialsForIdentityCommand.js.map","import { __extends } from \"tslib\";\n/**\n * An error representing a failure of an individual credential provider.\n *\n * This error class has special meaning to the {@link chain} method. If a\n * provider in the chain is rejected with an error, the chain will only proceed\n * to the next provider if the value of the `tryNextLink` property on the error\n * is truthy. This allows individual providers to halt the chain and also\n * ensures the chain will stop if an entirely unexpected error is encountered.\n */\nvar ProviderError = /** @class */ (function (_super) {\n __extends(ProviderError, _super);\n function ProviderError(message, tryNextLink) {\n if (tryNextLink === void 0) { tryNextLink = true; }\n var _this = _super.call(this, message) || this;\n _this.tryNextLink = tryNextLink;\n return _this;\n }\n return ProviderError;\n}(Error));\nexport { ProviderError };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdmlkZXJFcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Qcm92aWRlckVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7R0FRRztBQUNIO0lBQW1DLGlDQUFLO0lBQ3RDLHVCQUFZLE9BQWUsRUFBa0IsV0FBMkI7UUFBM0IsNEJBQUEsRUFBQSxrQkFBMkI7UUFBeEUsWUFDRSxrQkFBTSxPQUFPLENBQUMsU0FDZjtRQUY0QyxpQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7O0lBRXhFLENBQUM7SUFDSCxvQkFBQztBQUFELENBQUMsQUFKRCxDQUFtQyxLQUFLLEdBSXZDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBbiBlcnJvciByZXByZXNlbnRpbmcgYSBmYWlsdXJlIG9mIGFuIGluZGl2aWR1YWwgY3JlZGVudGlhbCBwcm92aWRlci5cbiAqXG4gKiBUaGlzIGVycm9yIGNsYXNzIGhhcyBzcGVjaWFsIG1lYW5pbmcgdG8gdGhlIHtAbGluayBjaGFpbn0gbWV0aG9kLiBJZiBhXG4gKiBwcm92aWRlciBpbiB0aGUgY2hhaW4gaXMgcmVqZWN0ZWQgd2l0aCBhbiBlcnJvciwgdGhlIGNoYWluIHdpbGwgb25seSBwcm9jZWVkXG4gKiB0byB0aGUgbmV4dCBwcm92aWRlciBpZiB0aGUgdmFsdWUgb2YgdGhlIGB0cnlOZXh0TGlua2AgcHJvcGVydHkgb24gdGhlIGVycm9yXG4gKiBpcyB0cnV0aHkuIFRoaXMgYWxsb3dzIGluZGl2aWR1YWwgcHJvdmlkZXJzIHRvIGhhbHQgdGhlIGNoYWluIGFuZCBhbHNvXG4gKiBlbnN1cmVzIHRoZSBjaGFpbiB3aWxsIHN0b3AgaWYgYW4gZW50aXJlbHkgdW5leHBlY3RlZCBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3ZpZGVyRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIHJlYWRvbmx5IHRyeU5leHRMaW5rOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG59XG4iXX0=","import { __read } from \"tslib\";\n/**\n * @internal\n */\nexport function resolveLogins(logins) {\n return Promise.all(Object.keys(logins).reduce(function (arr, name) {\n var tokenOrProvider = logins[name];\n if (typeof tokenOrProvider === \"string\") {\n arr.push([name, tokenOrProvider]);\n }\n else {\n arr.push(tokenOrProvider().then(function (token) { return [name, token]; }));\n }\n return arr;\n }, [])).then(function (resolvedPairs) {\n return resolvedPairs.reduce(function (logins, _a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n logins[key] = value;\n return logins;\n }, {});\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZUxvZ2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXNvbHZlTG9naW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQTs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBYztJQUMxQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUMsR0FBd0QsRUFBRSxJQUFZO1FBQ2hHLElBQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsRUFBRTtZQUN2QyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBcUIsQ0FBQyxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFDLEtBQUssSUFBSyxPQUFBLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBcUIsRUFBakMsQ0FBaUMsQ0FBQyxDQUFDLENBQUM7U0FDaEY7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFzQyxDQUFDLENBQzNDLENBQUMsSUFBSSxDQUFDLFVBQUMsYUFBYTtRQUNuQixPQUFBLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBQyxNQUFzQixFQUFFLEVBQVk7Z0JBQVosS0FBQSxhQUFZLEVBQVgsR0FBRyxRQUFBLEVBQUUsS0FBSyxRQUFBO1lBQ3ZELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDcEIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQW9CLENBQUM7SUFIeEIsQ0FHd0IsQ0FDekIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dpbnMsIFJlc29sdmVkTG9naW5zIH0gZnJvbSBcIi4vTG9naW5zXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTG9naW5zKGxvZ2luczogTG9naW5zKTogUHJvbWlzZTxSZXNvbHZlZExvZ2lucz4ge1xuICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgT2JqZWN0LmtleXMobG9naW5zKS5yZWR1Y2UoKGFycjogQXJyYXk8W3N0cmluZywgc3RyaW5nXSB8IFByb21pc2U8W3N0cmluZywgc3RyaW5nXT4+LCBuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHRva2VuT3JQcm92aWRlciA9IGxvZ2luc1tuYW1lXTtcbiAgICAgIGlmICh0eXBlb2YgdG9rZW5PclByb3ZpZGVyID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGFyci5wdXNoKFtuYW1lLCB0b2tlbk9yUHJvdmlkZXJdIGFzIFtzdHJpbmcsIHN0cmluZ10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXJyLnB1c2godG9rZW5PclByb3ZpZGVyKCkudGhlbigodG9rZW4pID0+IFtuYW1lLCB0b2tlbl0gYXMgW3N0cmluZywgc3RyaW5nXSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFycjtcbiAgICB9LCBbXSBhcyBBcnJheTxQcm9taXNlPFtzdHJpbmcsIHN0cmluZ10+PilcbiAgKS50aGVuKChyZXNvbHZlZFBhaXJzKSA9PlxuICAgIHJlc29sdmVkUGFpcnMucmVkdWNlKChsb2dpbnM6IFJlc29sdmVkTG9naW5zLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGxvZ2luc1trZXldID0gdmFsdWU7XG4gICAgICByZXR1cm4gbG9naW5zO1xuICAgIH0sIHt9IGFzIFJlc29sdmVkTG9naW5zKVxuICApO1xufVxuIl19","import { __awaiter, __generator } from \"tslib\";\nimport { GetCredentialsForIdentityCommand } from \"@aws-sdk/client-cognito-identity\";\nimport { ProviderError } from \"@aws-sdk/property-provider\";\nimport { resolveLogins } from \"./resolveLogins\";\n/**\n * Retrieves temporary AWS credentials using Amazon Cognito's\n * `GetCredentialsForIdentity` operation.\n *\n * Results from this function call are not cached internally.\n */\nexport function fromCognitoIdentity(parameters) {\n var _this = this;\n return function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, _b, _c, AccessKeyId, Expiration, _d, SecretKey, SessionToken, _e, _f, _g, _h;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _f = (_e = parameters.client).send;\n _g = GetCredentialsForIdentityCommand.bind;\n _j = {\n CustomRoleArn: parameters.customRoleArn,\n IdentityId: parameters.identityId\n };\n if (!parameters.logins) return [3 /*break*/, 2];\n return [4 /*yield*/, resolveLogins(parameters.logins)];\n case 1:\n _h = _k.sent();\n return [3 /*break*/, 3];\n case 2:\n _h = undefined;\n _k.label = 3;\n case 3: return [4 /*yield*/, _f.apply(_e, [new (_g.apply(GetCredentialsForIdentityCommand, [void 0, (_j.Logins = _h,\n _j)]))()])];\n case 4:\n _a = (_k.sent()).Credentials, _b = _a === void 0 ? throwOnMissingCredentials() : _a, _c = _b.AccessKeyId, AccessKeyId = _c === void 0 ? throwOnMissingAccessKeyId() : _c, Expiration = _b.Expiration, _d = _b.SecretKey, SecretKey = _d === void 0 ? throwOnMissingSecretKey() : _d, SessionToken = _b.SessionToken;\n return [2 /*return*/, {\n identityId: parameters.identityId,\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration,\n }];\n }\n });\n }); };\n}\nfunction throwOnMissingAccessKeyId() {\n throw new ProviderError(\"Response from Amazon Cognito contained no access key ID\");\n}\nfunction throwOnMissingCredentials() {\n throw new ProviderError(\"Response from Amazon Cognito contained no credentials\");\n}\nfunction throwOnMissingSecretKey() {\n throw new ProviderError(\"Response from Amazon Cognito contained no secret key\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUNvZ25pdG9JZGVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mcm9tQ29nbml0b0lkZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBU2hEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFVBQXlDO0lBQTdFLGlCQXlCQztJQXhCQyxPQUFPOzs7Ozs7b0JBUUssS0FBQSxDQUFBLEtBQUEsVUFBVSxDQUFDLE1BQU0sQ0FBQSxDQUFDLElBQUksQ0FBQTt5QkFDMUIsZ0NBQWdDOzt3QkFDbEMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhO3dCQUN2QyxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVU7O3lCQUN6QixVQUFVLENBQUMsTUFBTSxFQUFqQix3QkFBaUI7b0JBQUcscUJBQU0sYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBQTs7b0JBQXRDLEtBQUEsU0FBc0MsQ0FBQTs7O29CQUFHLEtBQUEsU0FBUyxDQUFBOzt3QkFKOUUscUJBQU0sY0FDUixjQUFJLGdDQUFnQyxZQUdsQyxTQUFNLEtBQXdFO3dDQUM5RSxFQUNILEVBQUE7O29CQVpDLEtBTUUsQ0FBQSxTQU1ILENBQUEsWUFQZ0MsRUFML0IscUJBS0kseUJBQXlCLEVBQUUsS0FBQSxFQUo3QixtQkFBeUMsRUFBekMsV0FBVyxtQkFBRyx5QkFBeUIsRUFBRSxLQUFBLEVBQ3pDLFVBQVUsZ0JBQUEsRUFDVixpQkFBcUMsRUFBckMsU0FBUyxtQkFBRyx1QkFBdUIsRUFBRSxLQUFBLEVBQ3JDLFlBQVksa0JBQUE7b0JBVWhCLHNCQUFPOzRCQUNMLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTs0QkFDakMsV0FBVyxFQUFFLFdBQVc7NEJBQ3hCLGVBQWUsRUFBRSxTQUFTOzRCQUMxQixZQUFZLEVBQUUsWUFBWTs0QkFDMUIsVUFBVSxFQUFFLFVBQVU7eUJBQ3ZCLEVBQUM7OztTQUNILENBQUM7QUFDSixDQUFDO0FBVUQsU0FBUyx5QkFBeUI7SUFDaEMsTUFBTSxJQUFJLGFBQWEsQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0FBQ3JGLENBQUM7QUFFRCxTQUFTLHlCQUF5QjtJQUNoQyxNQUFNLElBQUksYUFBYSxDQUFDLHVEQUF1RCxDQUFDLENBQUM7QUFDbkYsQ0FBQztBQUVELFNBQVMsdUJBQXVCO0lBQzlCLE1BQU0sSUFBSSxhQUFhLENBQUMsc0RBQXNELENBQUMsQ0FBQztBQUNsRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eUNvbW1hbmQgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWNvZ25pdG8taWRlbnRpdHlcIjtcbmltcG9ydCB7IFByb3ZpZGVyRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvcHJvcGVydHktcHJvdmlkZXJcIjtcbmltcG9ydCB7IENyZWRlbnRpYWxQcm92aWRlciwgQ3JlZGVudGlhbHMgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQ29nbml0b1Byb3ZpZGVyUGFyYW1ldGVycyB9IGZyb20gXCIuL0NvZ25pdG9Qcm92aWRlclBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IHJlc29sdmVMb2dpbnMgfSBmcm9tIFwiLi9yZXNvbHZlTG9naW5zXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29nbml0b0lkZW50aXR5Q3JlZGVudGlhbHMgZXh0ZW5kcyBDcmVkZW50aWFscyB7XG4gIC8qKlxuICAgKiBUaGUgQ29nbml0byBJRCByZXR1cm5lZCBieSB0aGUgbGFzdCBjYWxsIHRvIEFXUy5Db2duaXRvSWRlbnRpdHkuZ2V0T3BlbklkVG9rZW4oKS5cbiAgICovXG4gIGlkZW50aXR5SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGVtcG9yYXJ5IEFXUyBjcmVkZW50aWFscyB1c2luZyBBbWF6b24gQ29nbml0bydzXG4gKiBgR2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eWAgb3BlcmF0aW9uLlxuICpcbiAqIFJlc3VsdHMgZnJvbSB0aGlzIGZ1bmN0aW9uIGNhbGwgYXJlIG5vdCBjYWNoZWQgaW50ZXJuYWxseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21Db2duaXRvSWRlbnRpdHkocGFyYW1ldGVyczogRnJvbUNvZ25pdG9JZGVudGl0eVBhcmFtZXRlcnMpOiBDcmVkZW50aWFsUHJvdmlkZXIge1xuICByZXR1cm4gYXN5bmMgKCk6IFByb21pc2U8Q29nbml0b0lkZW50aXR5Q3JlZGVudGlhbHM+ID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBDcmVkZW50aWFsczoge1xuICAgICAgICBBY2Nlc3NLZXlJZCA9IHRocm93T25NaXNzaW5nQWNjZXNzS2V5SWQoKSxcbiAgICAgICAgRXhwaXJhdGlvbixcbiAgICAgICAgU2VjcmV0S2V5ID0gdGhyb3dPbk1pc3NpbmdTZWNyZXRLZXkoKSxcbiAgICAgICAgU2Vzc2lvblRva2VuLFxuICAgICAgfSA9IHRocm93T25NaXNzaW5nQ3JlZGVudGlhbHMoKSxcbiAgICB9ID0gYXdhaXQgcGFyYW1ldGVycy5jbGllbnQuc2VuZChcbiAgICAgIG5ldyBHZXRDcmVkZW50aWFsc0ZvcklkZW50aXR5Q29tbWFuZCh7XG4gICAgICAgIEN1c3RvbVJvbGVBcm46IHBhcmFtZXRlcnMuY3VzdG9tUm9sZUFybixcbiAgICAgICAgSWRlbnRpdHlJZDogcGFyYW1ldGVycy5pZGVudGl0eUlkLFxuICAgICAgICBMb2dpbnM6IHBhcmFtZXRlcnMubG9naW5zID8gYXdhaXQgcmVzb2x2ZUxvZ2lucyhwYXJhbWV0ZXJzLmxvZ2lucykgOiB1bmRlZmluZWQsXG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWRlbnRpdHlJZDogcGFyYW1ldGVycy5pZGVudGl0eUlkLFxuICAgICAgYWNjZXNzS2V5SWQ6IEFjY2Vzc0tleUlkLFxuICAgICAgc2VjcmV0QWNjZXNzS2V5OiBTZWNyZXRLZXksXG4gICAgICBzZXNzaW9uVG9rZW46IFNlc3Npb25Ub2tlbixcbiAgICAgIGV4cGlyYXRpb246IEV4cGlyYXRpb24sXG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGcm9tQ29nbml0b0lkZW50aXR5UGFyYW1ldGVycyBleHRlbmRzIENvZ25pdG9Qcm92aWRlclBhcmFtZXRlcnMge1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgaWRlbnRpdHkgYWdhaW5zdCB3aGljaCBjcmVkZW50aWFscyB3aWxsIGJlXG4gICAqIGlzc3VlZC5cbiAgICovXG4gIGlkZW50aXR5SWQ6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gdGhyb3dPbk1pc3NpbmdBY2Nlc3NLZXlJZCgpOiBuZXZlciB7XG4gIHRocm93IG5ldyBQcm92aWRlckVycm9yKFwiUmVzcG9uc2UgZnJvbSBBbWF6b24gQ29nbml0byBjb250YWluZWQgbm8gYWNjZXNzIGtleSBJRFwiKTtcbn1cblxuZnVuY3Rpb24gdGhyb3dPbk1pc3NpbmdDcmVkZW50aWFscygpOiBuZXZlciB7XG4gIHRocm93IG5ldyBQcm92aWRlckVycm9yKFwiUmVzcG9uc2UgZnJvbSBBbWF6b24gQ29nbml0byBjb250YWluZWQgbm8gY3JlZGVudGlhbHNcIik7XG59XG5cbmZ1bmN0aW9uIHRocm93T25NaXNzaW5nU2VjcmV0S2V5KCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IFByb3ZpZGVyRXJyb3IoXCJSZXNwb25zZSBmcm9tIEFtYXpvbiBDb2duaXRvIGNvbnRhaW5lZCBubyBzZWNyZXQga2V5XCIpO1xufVxuIl19","import { __extends } from \"tslib\";\nimport { GetIdInput, GetIdResponse } from \"../models/models_0\";\nimport { deserializeAws_json1_1GetIdCommand, serializeAws_json1_1GetIdCommand } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Generates (or retrieves) a Cognito ID. Supplying multiple logins will create an\n * implicit linked account.

\n *

This is a public API. You do not need any credentials to call this API.

\n */\nvar GetIdCommand = /** @class */ (function (_super) {\n __extends(GetIdCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function GetIdCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n GetIdCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"CognitoIdentityClient\";\n var commandName = \"GetIdCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: GetIdInput.filterSensitiveLog,\n outputFilterSensitiveLog: GetIdResponse.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n GetIdCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1GetIdCommand(input, context);\n };\n GetIdCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1GetIdCommand(output, context);\n };\n return GetIdCommand;\n}($Command));\nexport { GetIdCommand };\n//# sourceMappingURL=GetIdCommand.js.map","var STORE_NAME = \"IdentityIds\";\nvar IndexedDbStorage = /** @class */ (function () {\n function IndexedDbStorage(dbName) {\n if (dbName === void 0) { dbName = \"aws:cognito-identity-ids\"; }\n this.dbName = dbName;\n }\n IndexedDbStorage.prototype.getItem = function (key) {\n return this.withObjectStore(\"readonly\", function (store) {\n var req = store.get(key);\n return new Promise(function (resolve) {\n req.onerror = function () { return resolve(null); };\n req.onsuccess = function () { return resolve(req.result ? req.result.value : null); };\n });\n }).catch(function () { return null; });\n };\n IndexedDbStorage.prototype.removeItem = function (key) {\n return this.withObjectStore(\"readwrite\", function (store) {\n var req = store.delete(key);\n return new Promise(function (resolve, reject) {\n req.onerror = function () { return reject(req.error); };\n req.onsuccess = function () { return resolve(); };\n });\n });\n };\n IndexedDbStorage.prototype.setItem = function (id, value) {\n return this.withObjectStore(\"readwrite\", function (store) {\n var req = store.put({ id: id, value: value });\n return new Promise(function (resolve, reject) {\n req.onerror = function () { return reject(req.error); };\n req.onsuccess = function () { return resolve(); };\n });\n });\n };\n IndexedDbStorage.prototype.getDb = function () {\n var openDbRequest = self.indexedDB.open(this.dbName, 1);\n return new Promise(function (resolve, reject) {\n openDbRequest.onsuccess = function () {\n resolve(openDbRequest.result);\n };\n openDbRequest.onerror = function () {\n reject(openDbRequest.error);\n };\n openDbRequest.onblocked = function () {\n reject(new Error(\"Unable to access DB\"));\n };\n openDbRequest.onupgradeneeded = function () {\n var db = openDbRequest.result;\n db.onerror = function () {\n reject(new Error(\"Failed to create object store\"));\n };\n db.createObjectStore(STORE_NAME, { keyPath: \"id\" });\n };\n });\n };\n IndexedDbStorage.prototype.withObjectStore = function (mode, action) {\n return this.getDb().then(function (db) {\n var tx = db.transaction(STORE_NAME, mode);\n tx.oncomplete = function () { return db.close(); };\n return new Promise(function (resolve, reject) {\n tx.onerror = function () { return reject(tx.error); };\n resolve(action(tx.objectStore(STORE_NAME)));\n }).catch(function (err) {\n db.close();\n throw err;\n });\n });\n };\n return IndexedDbStorage;\n}());\nexport { IndexedDbStorage };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5kZXhlZERiU3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9JbmRleGVkRGJTdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLElBQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQztBQUVqQztJQUNFLDBCQUE2QixNQUEyQztRQUEzQyx1QkFBQSxFQUFBLG1DQUEyQztRQUEzQyxXQUFNLEdBQU4sTUFBTSxDQUFxQztJQUFHLENBQUM7SUFFNUUsa0NBQU8sR0FBUCxVQUFRLEdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxVQUFDLEtBQUs7WUFDNUMsSUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUUzQixPQUFPLElBQUksT0FBTyxDQUFnQixVQUFDLE9BQU87Z0JBQ3hDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBYixDQUFhLENBQUM7Z0JBRWxDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsY0FBTSxPQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQTdDLENBQTZDLENBQUM7WUFDdEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBTSxPQUFBLElBQUksRUFBSixDQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQscUNBQVUsR0FBVixVQUFXLEdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxVQUFDLEtBQUs7WUFDN0MsSUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUU5QixPQUFPLElBQUksT0FBTyxDQUFPLFVBQUMsT0FBTyxFQUFFLE1B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S0FBSyxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxHQUFHLENBQUM7WUFDWixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNILHVCQUFDO0FBQUQsQ0FBQyxBQWhGRCxJQWdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tIFwiLi9TdG9yYWdlXCI7XG5cbmNvbnN0IFNUT1JFX05BTUUgPSBcIklkZW50aXR5SWRzXCI7XG5cbmV4cG9ydCBjbGFzcyBJbmRleGVkRGJTdG9yYWdlIGltcGxlbWVudHMgU3RvcmFnZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGJOYW1lOiBzdHJpbmcgPSBcImF3czpjb2duaXRvLWlkZW50aXR5LWlkc1wiKSB7fVxuXG4gIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy53aXRoT2JqZWN0U3RvcmUoXCJyZWFkb25seVwiLCAoc3RvcmUpID0+IHtcbiAgICAgIGNvbnN0IHJlcSA9IHN0b3JlLmdldChrZXkpO1xuXG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nIHwgbnVsbD4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgcmVxLm9uZXJyb3IgPSAoKSA9PiByZXNvbHZlKG51bGwpO1xuXG4gICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSAoKSA9PiByZXNvbHZlKHJlcS5yZXN1bHQgPyByZXEucmVzdWx0LnZhbHVlIDogbnVsbCk7XG4gICAgICB9KTtcbiAgICB9KS5jYXRjaCgoKSA9PiBudWxsKTtcbiAgfVxuXG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy53aXRoT2JqZWN0U3RvcmUoXCJyZWFkd3JpdGVcIiwgKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCByZXEgPSBzdG9yZS5kZWxldGUoa2V5KTtcblxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgcmVxLm9uZXJyb3IgPSAoKSA9PiByZWplY3QocmVxLmVycm9yKTtcblxuICAgICAgICByZXEub25zdWNjZXNzID0gKCkgPT4gcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRJdGVtKGlkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy53aXRoT2JqZWN0U3RvcmUoXCJyZWFkd3JpdGVcIiwgKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCByZXEgPSBzdG9yZS5wdXQoeyBpZCwgdmFsdWUgfSk7XG5cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHJlcS5vbmVycm9yID0gKCkgPT4gcmVqZWN0KHJlcS5lcnJvcik7XG5cbiAgICAgICAgcmVxLm9uc3VjY2VzcyA9ICgpID0+IHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREYigpOiBQcm9taXNlPElEQkRhdGFiYXNlPiB7XG4gICAgY29uc3Qgb3BlbkRiUmVxdWVzdCA9IHNlbGYuaW5kZXhlZERCLm9wZW4odGhpcy5kYk5hbWUsIDEpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBvcGVuRGJSZXF1ZXN0Lm9uc3VjY2VzcyA9ICgpID0+IHtcbiAgICAgICAgcmVzb2x2ZShvcGVuRGJSZXF1ZXN0LnJlc3VsdCk7XG4gICAgICB9O1xuXG4gICAgICBvcGVuRGJSZXF1ZXN0Lm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIHJlamVjdChvcGVuRGJSZXF1ZXN0LmVycm9yKTtcbiAgICAgIH07XG5cbiAgICAgIG9wZW5EYlJlcXVlc3Qub25ibG9ja2VkID0gKCkgPT4ge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKFwiVW5hYmxlIHRvIGFjY2VzcyBEQlwiKSk7XG4gICAgICB9O1xuXG4gICAgICBvcGVuRGJSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgZGIgPSBvcGVuRGJSZXF1ZXN0LnJlc3VsdDtcbiAgICAgICAgZGIub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICByZWplY3QobmV3IEVycm9yKFwiRmFpbGVkIHRvIGNyZWF0ZSBvYmplY3Qgc3RvcmVcIikpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKFNUT1JFX05BTUUsIHsga2V5UGF0aDogXCJpZFwiIH0pO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgd2l0aE9iamVjdFN0b3JlPFI+KG1vZGU6IElEQlRyYW5zYWN0aW9uTW9kZSwgYWN0aW9uOiAoc3RvcmU6IElEQk9iamVjdFN0b3JlKSA9PiBQcm9taXNlPFI+KTogUHJvbWlzZTxSPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGIoKS50aGVuKChkYikgPT4ge1xuICAgICAgY29uc3QgdHggPSBkYi50cmFuc2FjdGlvbihTVE9SRV9OQU1FLCBtb2RlKTtcbiAgICAgIHR4Lm9uY29tcGxldGUgPSAoKSA9PiBkYi5jbG9zZSgpO1xuXG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8Uj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB0eC5vbmVycm9yID0gKCkgPT4gcmVqZWN0KHR4LmVycm9yKTtcblxuICAgICAgICByZXNvbHZlKGFjdGlvbih0eC5vYmplY3RTdG9yZShTVE9SRV9OQU1FKSkpO1xuICAgICAgfSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICBkYi5jbG9zZSgpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19","import { IndexedDbStorage } from \"./IndexedDbStorage\";\nimport { InMemoryStorage } from \"./InMemoryStorage\";\nvar inMemoryStorage = new InMemoryStorage();\nexport function localStorage() {\n if (typeof self === \"object\" && self.indexedDB) {\n return new IndexedDbStorage();\n }\n if (typeof window === \"object\" && window.localStorage) {\n return window.localStorage;\n }\n return inMemoryStorage;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvY2FsU3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHcEQsSUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztBQUU5QyxNQUFNLFVBQVUsWUFBWTtJQUMxQixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQzlDLE9BQU8sSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0tBQy9CO0lBRUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtRQUNyRCxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUM7S0FDNUI7SUFFRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5kZXhlZERiU3RvcmFnZSB9IGZyb20gXCIuL0luZGV4ZWREYlN0b3JhZ2VcIjtcbmltcG9ydCB7IEluTWVtb3J5U3RvcmFnZSB9IGZyb20gXCIuL0luTWVtb3J5U3RvcmFnZVwiO1xuaW1wb3J0IHsgU3RvcmFnZSB9IGZyb20gXCIuL1N0b3JhZ2VcIjtcblxuY29uc3QgaW5NZW1vcnlTdG9yYWdlID0gbmV3IEluTWVtb3J5U3RvcmFnZSgpO1xuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxTdG9yYWdlKCk6IFN0b3JhZ2Uge1xuICBpZiAodHlwZW9mIHNlbGYgPT09IFwib2JqZWN0XCIgJiYgc2VsZi5pbmRleGVkREIpIHtcbiAgICByZXR1cm4gbmV3IEluZGV4ZWREYlN0b3JhZ2UoKTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UpIHtcbiAgICByZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZTtcbiAgfVxuXG4gIHJldHVybiBpbk1lbW9yeVN0b3JhZ2U7XG59XG4iXX0=","var InMemoryStorage = /** @class */ (function () {\n function InMemoryStorage(store) {\n if (store === void 0) { store = {}; }\n this.store = store;\n }\n InMemoryStorage.prototype.getItem = function (key) {\n if (key in this.store) {\n return this.store[key];\n }\n return null;\n };\n InMemoryStorage.prototype.removeItem = function (key) {\n delete this.store[key];\n };\n InMemoryStorage.prototype.setItem = function (key, value) {\n this.store[key] = value;\n };\n return InMemoryStorage;\n}());\nexport { InMemoryStorage };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5NZW1vcnlTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0luTWVtb3J5U3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtJQUNFLHlCQUFvQixLQUFxQztRQUFyQyxzQkFBQSxFQUFBLFVBQXFDO1FBQXJDLFVBQUssR0FBTCxLQUFLLENBQWdDO0lBQUcsQ0FBQztJQUU3RCxpQ0FBTyxHQUFQLFVBQVEsR0FBVztRQUNqQixJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELG9DQUFVLEdBQVYsVUFBVyxHQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsaUNBQU8sR0FBUCxVQUFRLEdBQVcsRUFBRSxLQUFhO1FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUFsQkQsSUFrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSBcIi4vU3RvcmFnZVwiO1xuXG5leHBvcnQgY2xhc3MgSW5NZW1vcnlTdG9yYWdlIGltcGxlbWVudHMgU3RvcmFnZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSkge31cblxuICBnZXRJdGVtKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKGtleSBpbiB0aGlzLnN0b3JlKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yZVtrZXldO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGRlbGV0ZSB0aGlzLnN0b3JlW2tleV07XG4gIH1cblxuICBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZVtrZXldID0gdmFsdWU7XG4gIH1cbn1cbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { GetIdCommand } from \"@aws-sdk/client-cognito-identity\";\nimport { ProviderError } from \"@aws-sdk/property-provider\";\nimport { fromCognitoIdentity } from \"./fromCognitoIdentity\";\nimport { localStorage } from \"./localStorage\";\nimport { resolveLogins } from \"./resolveLogins\";\n/**\n * Retrieves or generates a unique identifier using Amazon Cognito's `GetId`\n * operation, then generates temporary AWS credentials using Amazon Cognito's\n * `GetCredentialsForIdentity` operation.\n *\n * Results from `GetId` are cached internally, but results from\n * `GetCredentialsForIdentity` are not.\n */\nexport function fromCognitoIdentityPool(_a) {\n var _this = this;\n var accountId = _a.accountId, _b = _a.cache, cache = _b === void 0 ? localStorage() : _b, client = _a.client, customRoleArn = _a.customRoleArn, identityPoolId = _a.identityPoolId, logins = _a.logins, _c = _a.userIdentifier, userIdentifier = _c === void 0 ? !logins || Object.keys(logins).length === 0 ? \"ANONYMOUS\" : undefined : _c;\n var cacheKey = userIdentifier ? \"aws:cognito-identity-credentials:\" + identityPoolId + \":\" + userIdentifier : undefined;\n var provider = function () { return __awaiter(_this, void 0, void 0, function () {\n var identityId, _a, _b, IdentityId, _c, _d, _e, _f;\n var _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n _a = cacheKey;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, cache.getItem(cacheKey)];\n case 1:\n _a = (_h.sent());\n _h.label = 2;\n case 2:\n identityId = _a;\n if (!!identityId) return [3 /*break*/, 7];\n _d = (_c = client).send;\n _e = GetIdCommand.bind;\n _g = {\n AccountId: accountId,\n IdentityPoolId: identityPoolId\n };\n if (!logins) return [3 /*break*/, 4];\n return [4 /*yield*/, resolveLogins(logins)];\n case 3:\n _f = _h.sent();\n return [3 /*break*/, 5];\n case 4:\n _f = undefined;\n _h.label = 5;\n case 5: return [4 /*yield*/, _d.apply(_c, [new (_e.apply(GetIdCommand, [void 0, (_g.Logins = _f,\n _g)]))()])];\n case 6:\n _b = (_h.sent()).IdentityId, IdentityId = _b === void 0 ? throwOnMissingId() : _b;\n identityId = IdentityId;\n if (cacheKey) {\n Promise.resolve(cache.setItem(cacheKey, identityId)).catch(function () { });\n }\n _h.label = 7;\n case 7:\n provider = fromCognitoIdentity({\n client: client,\n customRoleArn: customRoleArn,\n logins: logins,\n identityId: identityId,\n });\n return [2 /*return*/, provider()];\n }\n });\n }); };\n return function () {\n return provider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (cacheKey) {\n Promise.resolve(cache.removeItem(cacheKey)).catch(function () { });\n }\n throw err;\n });\n }); });\n };\n}\nfunction throwOnMissingId() {\n throw new ProviderError(\"Response from Amazon Cognito contained no identity ID\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUNvZ25pdG9JZGVudGl0eVBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnJvbUNvZ25pdG9JZGVudGl0eVBvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdoRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEVBUUo7SUFScEMsaUJBNkNDO1FBNUNDLFNBQVMsZUFBQSxFQUNULGFBQXNCLEVBQXRCLEtBQUssbUJBQUcsWUFBWSxFQUFFLEtBQUEsRUFDdEIsTUFBTSxZQUFBLEVBQ04sYUFBYSxtQkFBQSxFQUNiLGNBQWMsb0JBQUEsRUFDZCxNQUFNLFlBQUEsRUFDTixzQkFBc0YsRUFBdEYsY0FBYyxtQkFBRyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFBO0lBRXRGLElBQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsc0NBQW9DLGNBQWMsU0FBSSxjQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFckgsSUFBSSxRQUFRLEdBQXVCOzs7Ozs7b0JBQ2hCLEtBQUEsUUFBUSxDQUFBOzZCQUFSLHdCQUFRO29CQUFLLHFCQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUE7O29CQUE5QixLQUFBLENBQUMsU0FBNkIsQ0FBQyxDQUFBOzs7b0JBQXhELFVBQVUsS0FBOEM7eUJBQ3hELENBQUMsVUFBVSxFQUFYLHdCQUFXO29CQUNxQyxLQUFBLENBQUEsS0FBQSxNQUFNLENBQUEsQ0FBQyxJQUFJLENBQUE7eUJBQ3ZELFlBQVk7O3dCQUNkLFNBQVMsRUFBRSxTQUFTO3dCQUNwQixjQUFjLEVBQUUsY0FBYzs7eUJBQ3RCLE1BQU0sRUFBTix3QkFBTTtvQkFBRyxxQkFBTSxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUE7O29CQUEzQixLQUFBLFNBQTJCLENBQUE7OztvQkFBRyxLQUFBLFNBQVMsQ0FBQTs7d0JBSmhCLHFCQUFNLGNBQ2hELGNBQUksWUFBWSxZQUdkLFNBQU0sS0FBa0Q7d0NBQ3hELEVBQ0gsRUFBQTs7b0JBTk8sS0FBb0MsQ0FBQSxTQU0zQyxDQUFBLFdBTnNDLEVBQS9CLFVBQVUsbUJBQUcsZ0JBQWdCLEVBQUUsS0FBQTtvQkFPdkMsVUFBVSxHQUFHLFVBQVUsQ0FBQztvQkFDeEIsSUFBSSxRQUFRLEVBQUU7d0JBQ1osT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDO3FCQUN0RTs7O29CQUdILFFBQVEsR0FBRyxtQkFBbUIsQ0FBQzt3QkFDN0IsTUFBTSxRQUFBO3dCQUNOLGFBQWEsZUFBQTt3QkFDYixNQUFNLFFBQUE7d0JBQ04sVUFBVSxZQUFBO3FCQUNYLENBQUMsQ0FBQztvQkFFSCxzQkFBTyxRQUFRLEVBQUUsRUFBQzs7O1NBQ25CLENBQUM7SUFFRixPQUFPO1FBQ0wsT0FBQSxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBTyxHQUFHOztnQkFDekIsSUFBSSxRQUFRLEVBQUU7b0JBQ1osT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQU8sQ0FBQyxDQUFDLENBQUM7aUJBQzdEO2dCQUVELE1BQU0sR0FBRyxDQUFDOzthQUNYLENBQUM7SUFORixDQU1FLENBQUM7QUFDUCxDQUFDO0FBc0NELFNBQVMsZ0JBQWdCO0lBQ3ZCLE1BQU0sSUFBSSxhQUFhLENBQUMsdURBQXVELENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0SWRDb21tYW5kIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1jb2duaXRvLWlkZW50aXR5XCI7XG5pbXBvcnQgeyBQcm92aWRlckVycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3BlcnR5LXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBDcmVkZW50aWFsUHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQ29nbml0b1Byb3ZpZGVyUGFyYW1ldGVycyB9IGZyb20gXCIuL0NvZ25pdG9Qcm92aWRlclBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IGZyb21Db2duaXRvSWRlbnRpdHkgfSBmcm9tIFwiLi9mcm9tQ29nbml0b0lkZW50aXR5XCI7XG5pbXBvcnQgeyBsb2NhbFN0b3JhZ2UgfSBmcm9tIFwiLi9sb2NhbFN0b3JhZ2VcIjtcbmltcG9ydCB7IHJlc29sdmVMb2dpbnMgfSBmcm9tIFwiLi9yZXNvbHZlTG9naW5zXCI7XG5pbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSBcIi4vU3RvcmFnZVwiO1xuXG4vKipcbiAqIFJldHJpZXZlcyBvciBnZW5lcmF0ZXMgYSB1bmlxdWUgaWRlbnRpZmllciB1c2luZyBBbWF6b24gQ29nbml0bydzIGBHZXRJZGBcbiAqIG9wZXJhdGlvbiwgdGhlbiBnZW5lcmF0ZXMgdGVtcG9yYXJ5IEFXUyBjcmVkZW50aWFscyB1c2luZyBBbWF6b24gQ29nbml0bydzXG4gKiBgR2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eWAgb3BlcmF0aW9uLlxuICpcbiAqIFJlc3VsdHMgZnJvbSBgR2V0SWRgIGFyZSBjYWNoZWQgaW50ZXJuYWxseSwgYnV0IHJlc3VsdHMgZnJvbVxuICogYEdldENyZWRlbnRpYWxzRm9ySWRlbnRpdHlgIGFyZSBub3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tQ29nbml0b0lkZW50aXR5UG9vbCh7XG4gIGFjY291bnRJZCxcbiAgY2FjaGUgPSBsb2NhbFN0b3JhZ2UoKSxcbiAgY2xpZW50LFxuICBjdXN0b21Sb2xlQXJuLFxuICBpZGVudGl0eVBvb2xJZCxcbiAgbG9naW5zLFxuICB1c2VySWRlbnRpZmllciA9ICFsb2dpbnMgfHwgT2JqZWN0LmtleXMobG9naW5zKS5sZW5ndGggPT09IDAgPyBcIkFOT05ZTU9VU1wiIDogdW5kZWZpbmVkLFxufTogRnJvbUNvZ25pdG9JZGVudGl0eVBvb2xQYXJhbWV0ZXJzKTogQ3JlZGVudGlhbFByb3ZpZGVyIHtcbiAgY29uc3QgY2FjaGVLZXkgPSB1c2VySWRlbnRpZmllciA/IGBhd3M6Y29nbml0by1pZGVudGl0eS1jcmVkZW50aWFsczoke2lkZW50aXR5UG9vbElkfToke3VzZXJJZGVudGlmaWVyfWAgOiB1bmRlZmluZWQ7XG5cbiAgbGV0IHByb3ZpZGVyOiBDcmVkZW50aWFsUHJvdmlkZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgbGV0IGlkZW50aXR5SWQgPSBjYWNoZUtleSAmJiAoYXdhaXQgY2FjaGUuZ2V0SXRlbShjYWNoZUtleSkpO1xuICAgIGlmICghaWRlbnRpdHlJZCkge1xuICAgICAgY29uc3QgeyBJZGVudGl0eUlkID0gdGhyb3dPbk1pc3NpbmdJZCgpIH0gPSBhd2FpdCBjbGllbnQuc2VuZChcbiAgICAgICAgbmV3IEdldElkQ29tbWFuZCh7XG4gICAgICAgICAgQWNjb3VudElkOiBhY2NvdW50SWQsXG4gICAgICAgICAgSWRlbnRpdHlQb29sSWQ6IGlkZW50aXR5UG9vbElkLFxuICAgICAgICAgIExvZ2luczogbG9naW5zID8gYXdhaXQgcmVzb2x2ZUxvZ2lucyhsb2dpbnMpIDogdW5kZWZpbmVkLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIGlkZW50aXR5SWQgPSBJZGVudGl0eUlkO1xuICAgICAgaWYgKGNhY2hlS2V5KSB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZShjYWNoZS5zZXRJdGVtKGNhY2hlS2V5LCBpZGVudGl0eUlkKSkuY2F0Y2goKCkgPT4ge30pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3ZpZGVyID0gZnJvbUNvZ25pdG9JZGVudGl0eSh7XG4gICAgICBjbGllbnQsXG4gICAgICBjdXN0b21Sb2xlQXJuLFxuICAgICAgbG9naW5zLFxuICAgICAgaWRlbnRpdHlJZCxcbiAgICB9KTtcblxuICAgIHJldHVybiBwcm92aWRlcigpO1xuICB9O1xuXG4gIHJldHVybiAoKSA9PlxuICAgIHByb3ZpZGVyKCkuY2F0Y2goYXN5bmMgKGVycikgPT4ge1xuICAgICAgaWYgKGNhY2hlS2V5KSB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZShjYWNoZS5yZW1vdmVJdGVtKGNhY2hlS2V5KSkuY2F0Y2goKCkgPT4ge30pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbUNvZ25pdG9JZGVudGl0eVBvb2xQYXJhbWV0ZXJzIGV4dGVuZHMgQ29nbml0b1Byb3ZpZGVyUGFyYW1ldGVycyB7XG4gIC8qKlxuICAgKiBBIHN0YW5kYXJkIEFXUyBhY2NvdW50IElEICg5KyBkaWdpdHMpLlxuICAgKi9cbiAgYWNjb3VudElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNhY2hlIGluIHdoaWNoIHRvIHN0b3JlIHJlc29sdmVkIENvZ25pdG8gSWRlbnRpdHlJZHMuIElmIG5vdCBzdXBwbGllZCxcbiAgICogdGhlIGNyZWRlbnRpYWwgcHJvdmlkZXIgd2lsbCBhdHRlbXB0IHRvIHN0b3JlIElkZW50aXR5SWRzIGluIG9uZSBvZiB0aGVcbiAgICogZm9sbG93aW5nIChpbiBvcmRlciBvZiBwcmVmZXJlbmNlKTpcbiAgICogICAxLiBJbmRleGVkREJcbiAgICogICAyLiBMb2NhbFN0b3JhZ2VcbiAgICogICAzLiBBbiBpbi1tZW1vcnkgY2FjaGUgb2JqZWN0IHRoYXQgd2lsbCBub3QgcGVyc2lzdCBiZXR3ZWVuIHBhZ2VzLlxuICAgKlxuICAgKiBJbmRleGVkREIgaXMgcHJlZmVycmVkIHRvIG1heGltaXplIGRhdGEgc2hhcmluZyBiZXR3ZWVuIHRvcC1sZXZlbFxuICAgKiBicm93c2luZyBjb250ZXh0cyBhbmQgd2ViIHdvcmtlcnMuXG4gICAqXG4gICAqIFRoZSBwcm92aWRlciB3aWxsIG5vdCBjYWNoZSBJZGVudGl0eUlkcyBvZiBhdXRoZW50aWNhdGVkIHVzZXJzIHVubGVzcyBhXG4gICAqIHNlcGFyYXRlIGB1c2VySWRlbnRpdGlmZXJgIHBhcmFtZXRlciBpcyBzdXBwbGllZC5cbiAgICovXG4gIGNhY2hlPzogU3RvcmFnZTtcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgaWRlbnRpdHkgcG9vbCBmcm9tIHdoaWNoIGFuIGlkZW50aXR5IHNob3VsZFxuICAgKiBiZSByZXRyaWV2ZWQgb3IgZ2VuZXJhdGVkLlxuICAgKi9cbiAgaWRlbnRpdHlQb29sSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHVzZXIuIFRoaXMgaXMgZGlzdGluY3QgZnJvbSBhIENvZ25pdG9cbiAgICogSWRlbnRpdHlJZCBhbmQgc2hvdWxkIGluc3RlYWQgYmUgYW4gaWRlbnRpZmllciBtZWFuaW5nZnVsIHRvIHlvdXJcbiAgICogYXBwbGljYXRpb24uIFVzZWQgdG8gY2FjaGUgQ29nbml0byBJZGVudGl0eUlkcyBvbiBhIHBlci11c2VyIGJhc2lzLlxuICAgKi9cbiAgdXNlcklkZW50aWZpZXI/OiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHRocm93T25NaXNzaW5nSWQoKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgUHJvdmlkZXJFcnJvcihcIlJlc3BvbnNlIGZyb20gQW1hem9uIENvZ25pdG8gY29udGFpbmVkIG5vIGlkZW50aXR5IElEXCIpO1xufVxuIl19","import { __assign } from \"tslib\";\n// Partition default templates\nvar AWS_TEMPLATE = \"cognito-identity.{region}.amazonaws.com\";\nvar AWS_CN_TEMPLATE = \"cognito-identity.{region}.amazonaws.com.cn\";\nvar AWS_ISO_TEMPLATE = \"cognito-identity.{region}.c2s.ic.gov\";\nvar AWS_ISO_B_TEMPLATE = \"cognito-identity.{region}.sc2s.sgov.gov\";\nvar AWS_US_GOV_TEMPLATE = \"cognito-identity.{region}.amazonaws.com\";\n// Partition regions\nvar AWS_REGIONS = new Set([\n \"af-south-1\",\n \"ap-east-1\",\n \"ap-northeast-1\",\n \"ap-northeast-2\",\n \"ap-south-1\",\n \"ap-southeast-1\",\n \"ap-southeast-2\",\n \"ca-central-1\",\n \"eu-central-1\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-west-1\",\n \"eu-west-2\",\n \"eu-west-3\",\n \"me-south-1\",\n \"sa-east-1\",\n \"us-east-1\",\n \"us-east-2\",\n \"us-west-1\",\n \"us-west-2\",\n]);\nvar AWS_CN_REGIONS = new Set([\"cn-north-1\", \"cn-northwest-1\"]);\nvar AWS_ISO_REGIONS = new Set([\"us-iso-east-1\"]);\nvar AWS_ISO_B_REGIONS = new Set([\"us-isob-east-1\"]);\nvar AWS_US_GOV_REGIONS = new Set([\"us-gov-east-1\", \"us-gov-west-1\"]);\nexport var defaultRegionInfoProvider = function (region, options) {\n var regionInfo = undefined;\n switch (region) {\n // First, try to match exact region names.\n case \"ap-northeast-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-northeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-2\":\n regionInfo = {\n hostname: \"cognito-identity.ap-northeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-south-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-southeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-2\":\n regionInfo = {\n hostname: \"cognito-identity.ap-southeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ca-central-1\":\n regionInfo = {\n hostname: \"cognito-identity.ca-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"cn-north-1\":\n regionInfo = {\n hostname: \"cognito-identity.cn-north-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"eu-central-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-north-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-north-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-2\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-3\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-3.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"fips-us-east-1\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-east-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\",\n };\n break;\n case \"fips-us-east-2\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-east-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-2\",\n };\n break;\n case \"fips-us-gov-west-1\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-west-1\",\n };\n break;\n case \"fips-us-west-2\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-west-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-west-2\",\n };\n break;\n case \"sa-east-1\":\n regionInfo = {\n hostname: \"cognito-identity.sa-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-2\":\n regionInfo = {\n hostname: \"cognito-identity.us-east-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-gov-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n };\n break;\n case \"us-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-west-2\":\n regionInfo = {\n hostname: \"cognito-identity.us-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n // Next, try to match partition endpoints.\n default:\n if (AWS_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n if (AWS_CN_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_CN_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-cn\",\n };\n }\n if (AWS_ISO_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso\",\n };\n }\n if (AWS_ISO_B_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_B_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso-b\",\n };\n }\n if (AWS_US_GOV_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_US_GOV_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-us-gov\",\n };\n }\n // Finally, assume it's an AWS partition endpoint.\n if (regionInfo === undefined) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n }\n return Promise.resolve(__assign({ signingService: \"cognito-identity\" }, regionInfo));\n};\n//# sourceMappingURL=endpoints.js.map","import { defaultRegionInfoProvider } from \"./endpoints\";\nimport { parseUrl } from \"@aws-sdk/url-parser\";\n/**\n * @internal\n */\nexport var ClientSharedValues = {\n apiVersion: \"2014-06-30\",\n disableHostPrefix: false,\n logger: {},\n regionInfoProvider: defaultRegionInfoProvider,\n serviceId: \"Cognito Identity\",\n urlParser: parseUrl,\n};\n//# sourceMappingURL=runtimeConfig.shared.js.map","import { __assign } from \"tslib\";\nimport packageInfo from \"./package.json\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { FetchHttpHandler, streamCollector } from \"@aws-sdk/fetch-http-handler\";\nimport { invalidProvider } from \"@aws-sdk/invalid-dependency\";\nimport { DEFAULT_MAX_ATTEMPTS } from \"@aws-sdk/middleware-retry\";\nimport { fromBase64, toBase64 } from \"@aws-sdk/util-base64-browser\";\nimport { calculateBodyLength } from \"@aws-sdk/util-body-length-browser\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { fromUtf8, toUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { ClientSharedValues } from \"./runtimeConfig.shared\";\n/**\n * @internal\n */\nexport var ClientDefaultValues = __assign(__assign({}, ClientSharedValues), { runtime: \"browser\", base64Decoder: fromBase64, base64Encoder: toBase64, bodyLengthChecker: calculateBodyLength, credentialDefaultProvider: function (_) { return function () { return Promise.reject(new Error(\"Credential is missing\")); }; }, defaultUserAgentProvider: defaultUserAgent({\n serviceId: ClientSharedValues.serviceId,\n clientVersion: packageInfo.version,\n }), maxAttempts: DEFAULT_MAX_ATTEMPTS, region: invalidProvider(\"Region is missing\"), requestHandler: new FetchHttpHandler(), sha256: Sha256, streamCollector: streamCollector, utf8Decoder: fromUtf8, utf8Encoder: toUtf8 });\n//# sourceMappingURL=runtimeConfig.browser.js.map","import { __assign, __extends } from \"tslib\";\nimport { ClientDefaultValues as __ClientDefaultValues } from \"./runtimeConfig\";\nimport { resolveEndpointsConfig, resolveRegionConfig, } from \"@aws-sdk/config-resolver\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@aws-sdk/middleware-retry\";\nimport { resolveAwsAuthConfig } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { Client as __Client, } from \"@aws-sdk/smithy-client\";\n/**\n * Amazon Cognito Federated Identities\n *

Amazon Cognito Federated Identities is a web service that delivers scoped temporary\n * credentials to mobile devices and other untrusted environments. It uniquely identifies a\n * device and supplies the user with a consistent identity over the lifetime of an\n * application.

\n *

Using Amazon Cognito Federated Identities, you can enable authentication with one or\n * more third-party identity providers (Facebook, Google, or Login with Amazon) or an Amazon\n * Cognito user pool, and you can also choose to support unauthenticated access from your app.\n * Cognito delivers a unique identifier for each user and acts as an OpenID token provider\n * trusted by AWS Security Token Service (STS) to access temporary, limited-privilege AWS\n * credentials.

\n *

For a description of the authentication flow from the Amazon Cognito Developer Guide\n * see Authentication Flow.

\n *

For more information see Amazon Cognito Federated Identities.

\n */\nvar CognitoIdentityClient = /** @class */ (function (_super) {\n __extends(CognitoIdentityClient, _super);\n function CognitoIdentityClient(configuration) {\n var _this = this;\n var _config_0 = __assign(__assign({}, __ClientDefaultValues), configuration);\n var _config_1 = resolveRegionConfig(_config_0);\n var _config_2 = resolveEndpointsConfig(_config_1);\n var _config_3 = resolveAwsAuthConfig(_config_2);\n var _config_4 = resolveRetryConfig(_config_3);\n var _config_5 = resolveHostHeaderConfig(_config_4);\n var _config_6 = resolveUserAgentConfig(_config_5);\n _this = _super.call(this, _config_6) || this;\n _this.config = _config_6;\n _this.middlewareStack.use(getRetryPlugin(_this.config));\n _this.middlewareStack.use(getContentLengthPlugin(_this.config));\n _this.middlewareStack.use(getHostHeaderPlugin(_this.config));\n _this.middlewareStack.use(getLoggerPlugin(_this.config));\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n return _this;\n }\n CognitoIdentityClient.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return CognitoIdentityClient;\n}(__Client));\nexport { CognitoIdentityClient };\n//# sourceMappingURL=CognitoIdentityClient.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { CognitoIdentityClient, } from '@aws-sdk/client-cognito-identity';\nimport { getAmplifyUserAgent } from '../Platform';\n/**\n * Returns a CognitoIdentityClient with middleware\n * @param {CognitoIdentityClientConfig} config\n * @return {CognitoIdentityClient}\n */\nexport function createCognitoIdentityClient(config) {\n var client = new CognitoIdentityClient({\n region: config.region,\n customUserAgent: getAmplifyUserAgent(),\n });\n client.middlewareStack.add(function (next, _) { return function (args) {\n return next(middlewareArgs(args));\n }; }, {\n step: 'build',\n name: 'cacheControlMiddleWare',\n });\n return client;\n}\nexport function middlewareArgs(args) {\n return __assign(__assign({}, args), { request: __assign(__assign({}, args.request), { headers: __assign(__assign({}, args.request.headers), { 'cache-control': 'no-store' }) }) });\n}\n//# sourceMappingURL=CognitoIdentityClient.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { ConsoleLogger as Logger } from './Logger';\nimport { StorageHelper } from './StorageHelper';\nimport { makeQuerablePromise } from './JS';\nimport { FacebookOAuth, GoogleOAuth } from './OAuthHelper';\nimport { jitteredExponentialRetry } from './Util';\nimport { Amplify } from './Amplify';\nimport { fromCognitoIdentity, fromCognitoIdentityPool, } from '@aws-sdk/credential-provider-cognito-identity';\nimport { GetIdCommand, GetCredentialsForIdentityCommand, } from '@aws-sdk/client-cognito-identity';\nimport { createCognitoIdentityClient } from './Util/CognitoIdentityClient';\nvar logger = new Logger('Credentials');\nvar CREDENTIALS_TTL = 50 * 60 * 1000; // 50 min, can be modified on config if required in the future\nvar COGNITO_IDENTITY_KEY_PREFIX = 'CognitoIdentityId-';\nvar CredentialsClass = /** @class */ (function () {\n function CredentialsClass(config) {\n this._gettingCredPromise = null;\n this._refreshHandlers = {};\n // Allow `Auth` to be injected for SSR, but Auth isn't a required dependency for Credentials\n this.Auth = undefined;\n this.configure(config);\n this._refreshHandlers['google'] = GoogleOAuth.refreshGoogleToken;\n this._refreshHandlers['facebook'] = FacebookOAuth.refreshFacebookToken;\n }\n CredentialsClass.prototype.getModuleName = function () {\n return 'Credentials';\n };\n CredentialsClass.prototype.getCredSource = function () {\n return this._credentials_source;\n };\n CredentialsClass.prototype.configure = function (config) {\n if (!config)\n return this._config || {};\n this._config = Object.assign({}, this._config, config);\n var refreshHandlers = this._config.refreshHandlers;\n // If the developer has provided an object of refresh handlers,\n // then we can merge the provided handlers with the current handlers.\n if (refreshHandlers) {\n this._refreshHandlers = __assign(__assign({}, this._refreshHandlers), refreshHandlers);\n }\n this._storage = this._config.storage;\n if (!this._storage) {\n this._storage = new StorageHelper().getStorage();\n }\n this._storageSync = Promise.resolve();\n if (typeof this._storage['sync'] === 'function') {\n this._storageSync = this._storage['sync']();\n }\n return this._config;\n };\n CredentialsClass.prototype.get = function () {\n logger.debug('getting credentials');\n return this._pickupCredentials();\n };\n // currently we only store the guest identity in local storage\n CredentialsClass.prototype._getCognitoIdentityIdStorageKey = function (identityPoolId) {\n return \"\" + COGNITO_IDENTITY_KEY_PREFIX + identityPoolId;\n };\n CredentialsClass.prototype._pickupCredentials = function () {\n logger.debug('picking up credentials');\n if (!this._gettingCredPromise || !this._gettingCredPromise.isPending()) {\n logger.debug('getting new cred promise');\n this._gettingCredPromise = makeQuerablePromise(this._keepAlive());\n }\n else {\n logger.debug('getting old cred promise');\n }\n return this._gettingCredPromise;\n };\n CredentialsClass.prototype._keepAlive = function () {\n return __awaiter(this, void 0, void 0, function () {\n var cred, _a, Auth, user_1, session, refreshToken_1, refreshRequest, err_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger.debug('checking if credentials exists and not expired');\n cred = this._credentials;\n if (cred && !this._isExpired(cred) && !this._isPastTTL()) {\n logger.debug('credentials not changed and not expired, directly return');\n return [2 /*return*/, Promise.resolve(cred)];\n }\n logger.debug('need to get a new credential or refresh the existing one');\n _a = this.Auth, Auth = _a === void 0 ? Amplify.Auth : _a;\n if (!Auth || typeof Auth.currentUserCredentials !== 'function') {\n return [2 /*return*/, Promise.reject('No Auth module registered in Amplify')];\n }\n if (!(!this._isExpired(cred) && this._isPastTTL())) return [3 /*break*/, 6];\n logger.debug('ttl has passed but token is not yet expired');\n _b.label = 1;\n case 1:\n _b.trys.push([1, 5, , 6]);\n return [4 /*yield*/, Auth.currentUserPoolUser()];\n case 2:\n user_1 = _b.sent();\n return [4 /*yield*/, Auth.currentSession()];\n case 3:\n session = _b.sent();\n refreshToken_1 = session.refreshToken;\n refreshRequest = new Promise(function (res, rej) {\n user_1.refreshSession(refreshToken_1, function (err, data) {\n return err ? rej(err) : res(data);\n });\n });\n return [4 /*yield*/, refreshRequest];\n case 4:\n _b.sent(); // note that rejections will be caught and handled in the catch block.\n return [3 /*break*/, 6];\n case 5:\n err_1 = _b.sent();\n // should not throw because user might just be on guest access or is authenticated through federation\n logger.debug('Error attempting to refreshing the session', err_1);\n return [3 /*break*/, 6];\n case 6: return [2 /*return*/, Auth.currentUserCredentials()];\n }\n });\n });\n };\n CredentialsClass.prototype.refreshFederatedToken = function (federatedInfo) {\n logger.debug('Getting federated credentials');\n var provider = federatedInfo.provider, user = federatedInfo.user, token = federatedInfo.token, identity_id = federatedInfo.identity_id;\n var expires_at = federatedInfo.expires_at;\n // Make sure expires_at is in millis\n expires_at =\n new Date(expires_at).getFullYear() === 1970\n ? expires_at * 1000\n : expires_at;\n var that = this;\n logger.debug('checking if federated jwt token expired');\n if (expires_at > new Date().getTime()) {\n // if not expired\n logger.debug('token not expired');\n return this._setCredentialsFromFederation({\n provider: provider,\n token: token,\n user: user,\n identity_id: identity_id,\n expires_at: expires_at,\n });\n }\n else {\n // if refresh handler exists\n if (that._refreshHandlers[provider] &&\n typeof that._refreshHandlers[provider] === 'function') {\n logger.debug('getting refreshed jwt token from federation provider');\n return this._providerRefreshWithRetry({\n refreshHandler: that._refreshHandlers[provider],\n provider: provider,\n user: user,\n });\n }\n else {\n logger.debug('no refresh handler for provider:', provider);\n this.clear();\n return Promise.reject('no refresh handler for provider');\n }\n }\n };\n CredentialsClass.prototype._providerRefreshWithRetry = function (_a) {\n var _this = this;\n var refreshHandler = _a.refreshHandler, provider = _a.provider, user = _a.user;\n var MAX_DELAY_MS = 10 * 1000;\n // refreshHandler will retry network errors, otherwise it will\n // return NonRetryableError to break out of jitteredExponentialRetry\n return jitteredExponentialRetry(refreshHandler, [], MAX_DELAY_MS)\n .then(function (data) {\n logger.debug('refresh federated token sucessfully', data);\n return _this._setCredentialsFromFederation({\n provider: provider,\n token: data.token,\n user: user,\n identity_id: data.identity_id,\n expires_at: data.expires_at,\n });\n })\n .catch(function (e) {\n var isNetworkError = typeof e === 'string' &&\n e.toLowerCase().lastIndexOf('network error', e.length) === 0;\n if (!isNetworkError) {\n _this.clear();\n }\n logger.debug('refresh federated token failed', e);\n return Promise.reject('refreshing federation token failed: ' + e);\n });\n };\n CredentialsClass.prototype._isExpired = function (credentials) {\n if (!credentials) {\n logger.debug('no credentials for expiration check');\n return true;\n }\n logger.debug('are these credentials expired?', credentials);\n var ts = Date.now();\n /* returns date object.\n https://github.com/aws/aws-sdk-js-v3/blob/v1.0.0-beta.1/packages/types/src/credentials.ts#L26\n */\n var expiration = credentials.expiration;\n return expiration.getTime() <= ts;\n };\n CredentialsClass.prototype._isPastTTL = function () {\n return this._nextCredentialsRefresh <= Date.now();\n };\n CredentialsClass.prototype._setCredentialsForGuest = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, identityPoolId, region, mandatorySignIn, identityId, _b, cognitoClient, credentials, cognitoIdentityParams, credentialsProvider;\n var _this = this;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n logger.debug('setting credentials for guest');\n _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region, mandatorySignIn = _a.mandatorySignIn;\n if (mandatorySignIn) {\n return [2 /*return*/, Promise.reject('cannot get guest credentials when mandatory signin enabled')];\n }\n if (!identityPoolId) {\n logger.debug('No Cognito Identity pool provided for unauthenticated access');\n return [2 /*return*/, Promise.reject('No Cognito Identity pool provided for unauthenticated access')];\n }\n if (!region) {\n logger.debug('region is not configured for getting the credentials');\n return [2 /*return*/, Promise.reject('region is not configured for getting the credentials')];\n }\n _b = this;\n return [4 /*yield*/, this._getGuestIdentityId()];\n case 1:\n identityId = (_b._identityId = _c.sent());\n cognitoClient = createCognitoIdentityClient({\n region: region,\n });\n credentials = undefined;\n if (identityId) {\n cognitoIdentityParams = {\n identityId: identityId,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentity(cognitoIdentityParams)();\n }\n else {\n credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var IdentityId, cognitoIdentityParams, credentialsFromCognitoIdentity;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n }))];\n case 1:\n IdentityId = (_a.sent()).IdentityId;\n this._identityId = IdentityId;\n cognitoIdentityParams = {\n client: cognitoClient,\n identityId: IdentityId,\n };\n credentialsFromCognitoIdentity = fromCognitoIdentity(cognitoIdentityParams);\n return [2 /*return*/, credentialsFromCognitoIdentity()];\n }\n });\n }); };\n credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n }\n return [2 /*return*/, this._loadCredentials(credentials, 'guest', false, null)\n .then(function (res) {\n return res;\n })\n .catch(function (e) { return __awaiter(_this, void 0, void 0, function () {\n var credentialsProvider;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(e.name === 'ResourceNotFoundException' &&\n e.message === \"Identity '\" + identityId + \"' not found.\")) return [3 /*break*/, 2];\n logger.debug('Failed to load guest credentials');\n return [4 /*yield*/, this._removeGuestIdentityId()];\n case 1:\n _a.sent();\n credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var IdentityId, cognitoIdentityParams, credentialsFromCognitoIdentity;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n }))];\n case 1:\n IdentityId = (_a.sent()).IdentityId;\n this._identityId = IdentityId;\n cognitoIdentityParams = {\n client: cognitoClient,\n identityId: IdentityId,\n };\n credentialsFromCognitoIdentity = fromCognitoIdentity(cognitoIdentityParams);\n return [2 /*return*/, credentialsFromCognitoIdentity()];\n }\n });\n }); };\n credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n return [2 /*return*/, this._loadCredentials(credentials, 'guest', false, null)];\n case 2: return [2 /*return*/, e];\n }\n });\n }); })];\n }\n });\n });\n };\n CredentialsClass.prototype._setCredentialsFromFederation = function (params) {\n var provider = params.provider, token = params.token, identity_id = params.identity_id;\n var domains = {\n google: 'accounts.google.com',\n facebook: 'graph.facebook.com',\n amazon: 'www.amazon.com',\n developer: 'cognito-identity.amazonaws.com',\n };\n // Use custom provider url instead of the predefined ones\n var domain = domains[provider] || provider;\n if (!domain) {\n return Promise.reject('You must specify a federated provider');\n }\n var logins = {};\n logins[domain] = token;\n var _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region;\n if (!identityPoolId) {\n logger.debug('No Cognito Federated Identity pool provided');\n return Promise.reject('No Cognito Federated Identity pool provided');\n }\n if (!region) {\n logger.debug('region is not configured for getting the credentials');\n return Promise.reject('region is not configured for getting the credentials');\n }\n var cognitoClient = createCognitoIdentityClient({\n region: region,\n });\n var credentials = undefined;\n if (identity_id) {\n var cognitoIdentityParams = {\n identityId: identity_id,\n logins: logins,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentity(cognitoIdentityParams)();\n }\n else {\n var cognitoIdentityParams = {\n logins: logins,\n identityPoolId: identityPoolId,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentityPool(cognitoIdentityParams)();\n }\n return this._loadCredentials(credentials, 'federated', true, params);\n };\n CredentialsClass.prototype._setCredentialsFromSession = function (session) {\n var _this = this;\n logger.debug('set credentials from session');\n var idToken = session.getIdToken().getJwtToken();\n var _a = this._config, region = _a.region, userPoolId = _a.userPoolId, identityPoolId = _a.identityPoolId;\n if (!identityPoolId) {\n logger.debug('No Cognito Federated Identity pool provided');\n return Promise.reject('No Cognito Federated Identity pool provided');\n }\n if (!region) {\n logger.debug('region is not configured for getting the credentials');\n return Promise.reject('region is not configured for getting the credentials');\n }\n var key = 'cognito-idp.' + region + '.amazonaws.com/' + userPoolId;\n var logins = {};\n logins[key] = idToken;\n var cognitoClient = createCognitoIdentityClient({\n region: region,\n });\n /*\n Retreiving identityId with GetIdCommand to mimic the behavior in the following code in aws-sdk-v3:\n https://git.io/JeDxU\n\n Note: Retreive identityId from CredentialsProvider once aws-sdk-js v3 supports this.\n */\n var credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var guestIdentityId, generatedOrRetrievedIdentityId, IdentityId, _a, _b, AccessKeyId, Expiration, SecretKey, SessionToken, primaryIdentityId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this._getGuestIdentityId()];\n case 1:\n guestIdentityId = _c.sent();\n if (!!guestIdentityId) return [3 /*break*/, 3];\n return [4 /*yield*/, cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n Logins: logins,\n }))];\n case 2:\n IdentityId = (_c.sent()).IdentityId;\n generatedOrRetrievedIdentityId = IdentityId;\n _c.label = 3;\n case 3: return [4 /*yield*/, cognitoClient.send(new GetCredentialsForIdentityCommand({\n IdentityId: guestIdentityId || generatedOrRetrievedIdentityId,\n Logins: logins,\n }))];\n case 4:\n _a = _c.sent(), _b = _a.Credentials, AccessKeyId = _b.AccessKeyId, Expiration = _b.Expiration, SecretKey = _b.SecretKey, SessionToken = _b.SessionToken, primaryIdentityId = _a.IdentityId;\n this._identityId = primaryIdentityId;\n if (!guestIdentityId) return [3 /*break*/, 6];\n // if guestIdentity is found and used by GetCredentialsForIdentity\n // it will be linked to the logins provided, and disqualified as an unauth identity\n logger.debug(\"The guest identity \" + guestIdentityId + \" has been successfully linked to the logins\");\n if (guestIdentityId === primaryIdentityId) {\n logger.debug(\"The guest identity \" + guestIdentityId + \" has become the primary identity\");\n }\n // remove it from local storage to avoid being used as a guest Identity by _setCredentialsForGuest\n return [4 /*yield*/, this._removeGuestIdentityId()];\n case 5:\n // remove it from local storage to avoid being used as a guest Identity by _setCredentialsForGuest\n _c.sent();\n _c.label = 6;\n case 6: \n // https://github.com/aws/aws-sdk-js-v3/blob/main/packages/credential-provider-cognito-identity/src/fromCognitoIdentity.ts#L40\n return [2 /*return*/, {\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration,\n identityId: primaryIdentityId,\n }];\n }\n });\n }); };\n var credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n return this._loadCredentials(credentials, 'userPool', true, null);\n };\n CredentialsClass.prototype._loadCredentials = function (credentials, source, authenticated, info) {\n var _this = this;\n var that = this;\n return new Promise(function (res, rej) {\n credentials\n .then(function (credentials) { return __awaiter(_this, void 0, void 0, function () {\n var user, provider, token, expires_at, identity_id;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('Load credentials successfully', credentials);\n if (this._identityId && !credentials.identityId) {\n credentials['identityId'] = this._identityId;\n }\n that._credentials = credentials;\n that._credentials.authenticated = authenticated;\n that._credentials_source = source;\n that._nextCredentialsRefresh = new Date().getTime() + CREDENTIALS_TTL;\n if (source === 'federated') {\n user = Object.assign({ id: this._credentials.identityId }, info.user);\n provider = info.provider, token = info.token, expires_at = info.expires_at, identity_id = info.identity_id;\n try {\n this._storage.setItem('aws-amplify-federatedInfo', JSON.stringify({\n provider: provider,\n token: token,\n user: user,\n expires_at: expires_at,\n identity_id: identity_id,\n }));\n }\n catch (e) {\n logger.debug('Failed to put federated info into auth storage', e);\n }\n }\n if (!(source === 'guest')) return [3 /*break*/, 2];\n return [4 /*yield*/, this._setGuestIdentityId(credentials.identityId)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n res(that._credentials);\n return [2 /*return*/];\n }\n });\n }); })\n .catch(function (err) {\n if (err) {\n logger.debug('Failed to load credentials', credentials);\n logger.debug('Error loading credentials', err);\n rej(err);\n return;\n }\n });\n });\n };\n CredentialsClass.prototype.set = function (params, source) {\n if (source === 'session') {\n return this._setCredentialsFromSession(params);\n }\n else if (source === 'federation') {\n return this._setCredentialsFromFederation(params);\n }\n else if (source === 'guest') {\n return this._setCredentialsForGuest();\n }\n else {\n logger.debug('no source specified for setting credentials');\n return Promise.reject('invalid source');\n }\n };\n CredentialsClass.prototype.clear = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this._credentials = null;\n this._credentials_source = null;\n logger.debug('removing aws-amplify-federatedInfo from storage');\n this._storage.removeItem('aws-amplify-federatedInfo');\n return [2 /*return*/];\n });\n });\n };\n /* operations on local stored guest identity */\n CredentialsClass.prototype._getGuestIdentityId = function () {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n identityPoolId = this._config.identityPoolId;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n return [2 /*return*/, this._storage.getItem(this._getCognitoIdentityIdStorageKey(identityPoolId))];\n case 3:\n e_1 = _a.sent();\n logger.debug('Failed to get the cached guest identityId', e_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CredentialsClass.prototype._setGuestIdentityId = function (identityId) {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId, e_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n identityPoolId = this._config.identityPoolId;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n this._storage.setItem(this._getCognitoIdentityIdStorageKey(identityPoolId), identityId);\n return [3 /*break*/, 4];\n case 3:\n e_2 = _a.sent();\n logger.debug('Failed to cache guest identityId', e_2);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CredentialsClass.prototype._removeGuestIdentityId = function () {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId;\n return __generator(this, function (_a) {\n identityPoolId = this._config.identityPoolId;\n logger.debug(\"removing \" + this._getCognitoIdentityIdStorageKey(identityPoolId) + \" from storage\");\n this._storage.removeItem(this._getCognitoIdentityIdStorageKey(identityPoolId));\n return [2 /*return*/];\n });\n });\n };\n /**\n * Compact version of credentials\n * @param {Object} credentials\n * @return {Object} - Credentials\n */\n CredentialsClass.prototype.shear = function (credentials) {\n return {\n accessKeyId: credentials.accessKeyId,\n sessionToken: credentials.sessionToken,\n secretAccessKey: credentials.secretAccessKey,\n identityId: credentials.identityId,\n authenticated: credentials.authenticated,\n };\n };\n return CredentialsClass;\n}());\nexport { CredentialsClass };\nexport var Credentials = new CredentialsClass(null);\nAmplify.register(Credentials);\n/**\n * @deprecated use named import\n */\nexport default Credentials;\n//# sourceMappingURL=Credentials.js.map","import * as React from 'react';\nexport default /*#__PURE__*/React.createContext(undefined);\n//# sourceMappingURL=BottomTabBarHeightCallbackContext.js.map","import * as React from 'react';\nexport default /*#__PURE__*/React.createContext(undefined);\n//# sourceMappingURL=BottomTabBarHeightContext.js.map","import { getPathFromState, NavigationHelpersContext } from '@react-navigation/core';\nimport * as React from 'react';\nimport LinkingContext from './LinkingContext';\nconst getRootStateForNavigate = (navigation, state) => {\n const parent = navigation.getParent();\n if (parent) {\n const parentState = parent.getState();\n return getRootStateForNavigate(parent, {\n index: 0,\n routes: [{\n ...parentState.routes[parentState.index],\n state: state\n }]\n });\n }\n return state;\n};\n\n/**\n * Build destination link for a navigate action.\n * Useful for showing anchor tags on the web for buttons that perform navigation.\n */\nexport default function useLinkBuilder() {\n const navigation = React.useContext(NavigationHelpersContext);\n const linking = React.useContext(LinkingContext);\n const buildLink = React.useCallback((name, params) => {\n const {\n options\n } = linking;\n if ((options === null || options === void 0 ? void 0 : options.enabled) === false) {\n return undefined;\n }\n const state = navigation ? getRootStateForNavigate(navigation, {\n index: 0,\n routes: [{\n name,\n params\n }]\n }) :\n // If we couldn't find a navigation object in context, we're at root\n // So we'll construct a basic state object to use\n {\n index: 0,\n routes: [{\n name,\n params\n }]\n };\n const path = options !== null && options !== void 0 && options.getPathFromState ? options.getPathFromState(state, options === null || options === void 0 ? void 0 : options.config) : getPathFromState(state, options === null || options === void 0 ? void 0 : options.config);\n return path;\n }, [linking, navigation]);\n return buildLink;\n}\n//# sourceMappingURL=useLinkBuilder.js.map","import { getPathFromState, NavigationContainerRefContext, NavigationHelpersContext } from '@react-navigation/core';\nimport * as React from 'react';\nimport { Platform } from 'react-native';\nimport LinkingContext from './LinkingContext';\nimport useLinkTo from './useLinkTo';\nconst getStateFromParams = params => {\n if (params !== null && params !== void 0 && params.state) {\n return params.state;\n }\n if (params !== null && params !== void 0 && params.screen) {\n return {\n routes: [{\n name: params.screen,\n params: params.params,\n // @ts-expect-error\n state: params.screen ? getStateFromParams(params.params) : undefined\n }]\n };\n }\n return undefined;\n};\n\n/**\n * Hook to get props for an anchor tag so it can work with in page navigation.\n *\n * @param props.to Absolute path to screen (e.g. `/feeds/hot`).\n * @param props.action Optional action to use for in-page navigation. By default, the path is parsed to an action based on linking config.\n */\nexport default function useLinkProps(_ref) {\n let {\n to,\n action\n } = _ref;\n const root = React.useContext(NavigationContainerRefContext);\n const navigation = React.useContext(NavigationHelpersContext);\n const {\n options\n } = React.useContext(LinkingContext);\n const linkTo = useLinkTo();\n const onPress = e => {\n var _e$currentTarget;\n let shouldHandle = false;\n if (Platform.OS !== 'web' || !e) {\n shouldHandle = e ? !e.defaultPrevented : true;\n } else if (!e.defaultPrevented &&\n // onPress prevented default\n // @ts-expect-error: these properties exist on web, but not in React Native\n !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && (\n // ignore clicks with modifier keys\n // @ts-expect-error: these properties exist on web, but not in React Native\n e.button == null || e.button === 0) &&\n // ignore everything but left clicks\n // @ts-expect-error: these properties exist on web, but not in React Native\n [undefined, null, '', 'self'].includes((_e$currentTarget = e.currentTarget) === null || _e$currentTarget === void 0 ? void 0 : _e$currentTarget.target) // let browser handle \"target=_blank\" etc.\n ) {\n e.preventDefault();\n shouldHandle = true;\n }\n if (shouldHandle) {\n if (action) {\n if (navigation) {\n navigation.dispatch(action);\n } else if (root) {\n root.dispatch(action);\n } else {\n throw new Error(\"Couldn't find a navigation object. Is your component inside NavigationContainer?\");\n }\n } else {\n linkTo(to);\n }\n }\n };\n const getPathFromStateHelper = (options === null || options === void 0 ? void 0 : options.getPathFromState) ?? getPathFromState;\n const href = typeof to === 'string' ? to : getPathFromStateHelper({\n routes: [{\n name: to.screen,\n // @ts-expect-error\n params: to.params,\n // @ts-expect-error\n state: getStateFromParams(to.params)\n }]\n }, options === null || options === void 0 ? void 0 : options.config);\n return {\n href,\n accessibilityRole: 'link',\n onPress\n };\n}\n//# sourceMappingURL=useLinkProps.js.map","import * as React from 'react';\nimport { Platform, Text } from 'react-native';\nimport useLinkProps from './useLinkProps';\n/**\n * Component to render link to another screen using a path.\n * Uses an anchor tag on the web.\n *\n * @param props.to Absolute path to screen (e.g. `/feeds/hot`).\n * @param props.action Optional action to use for in-page navigation. By default, the path is parsed to an action based on linking config.\n * @param props.children Child elements to render the content.\n */\nexport default function Link(_ref) {\n let {\n to,\n action,\n ...rest\n } = _ref;\n const props = useLinkProps({\n to,\n action\n });\n const onPress = e => {\n if ('onPress' in rest) {\n var _rest$onPress;\n (_rest$onPress = rest.onPress) === null || _rest$onPress === void 0 ? void 0 : _rest$onPress.call(rest, e);\n }\n props.onPress(e);\n };\n return /*#__PURE__*/React.createElement(Text, {\n ...props,\n ...rest,\n ...Platform.select({\n web: {\n onClick: onPress\n },\n default: {\n onPress\n }\n })\n });\n}\n//# sourceMappingURL=Link.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { useTheme } from '@react-navigation/native';\nimport color from 'color';\nimport * as React from 'react';\nimport { Animated, StyleSheet } from 'react-native';\nexport default function Badge(_ref) {\n let {\n children,\n style,\n visible = true,\n size = 18,\n ...rest\n } = _ref;\n const [opacity] = React.useState(() => new Animated.Value(visible ? 1 : 0));\n const [rendered, setRendered] = React.useState(visible);\n const theme = useTheme();\n React.useEffect(() => {\n if (!rendered) {\n return;\n }\n Animated.timing(opacity, {\n toValue: visible ? 1 : 0,\n duration: 150,\n useNativeDriver: true\n }).start(_ref2 => {\n let {\n finished\n } = _ref2;\n if (finished && !visible) {\n setRendered(false);\n }\n });\n return () => opacity.stopAnimation();\n }, [opacity, rendered, visible]);\n if (!rendered) {\n if (visible) {\n setRendered(true);\n } else {\n return null;\n }\n }\n\n // @ts-expect-error: backgroundColor definitely exists\n const {\n backgroundColor = theme.colors.notification,\n ...restStyle\n } = StyleSheet.flatten(style) || {};\n const textColor = color(backgroundColor).isLight() ? 'black' : 'white';\n const borderRadius = size / 2;\n const fontSize = Math.floor(size * 3 / 4);\n return /*#__PURE__*/React.createElement(Animated.Text, _extends({\n numberOfLines: 1,\n style: [{\n transform: [{\n scale: opacity.interpolate({\n inputRange: [0, 1],\n outputRange: [0.5, 1]\n })\n }],\n color: textColor,\n lineHeight: size - 1,\n height: size,\n minWidth: size,\n opacity,\n backgroundColor,\n fontSize,\n borderRadius\n }, styles.container, restStyle]\n }, rest), children);\n}\nconst styles = StyleSheet.create({\n container: {\n alignSelf: 'flex-end',\n textAlign: 'center',\n paddingHorizontal: 4,\n overflow: 'hidden'\n }\n});\n//# sourceMappingURL=Badge.js.map","import React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport Badge from './Badge';\nexport default function TabBarIcon(_ref) {\n let {\n route: _,\n horizontal,\n badge,\n badgeStyle,\n activeOpacity,\n inactiveOpacity,\n activeTintColor,\n inactiveTintColor,\n renderIcon,\n style\n } = _ref;\n const size = 25;\n\n // We render the icon twice at the same position on top of each other:\n // active and inactive one, so we can fade between them.\n return /*#__PURE__*/React.createElement(View, {\n style: [horizontal ? styles.iconHorizontal : styles.iconVertical, style]\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.icon, {\n opacity: activeOpacity\n }]\n }, renderIcon({\n focused: true,\n size,\n color: activeTintColor\n })), /*#__PURE__*/React.createElement(View, {\n style: [styles.icon, {\n opacity: inactiveOpacity\n }]\n }, renderIcon({\n focused: false,\n size,\n color: inactiveTintColor\n })), /*#__PURE__*/React.createElement(Badge, {\n visible: badge != null,\n style: [styles.badge, horizontal ? styles.badgeHorizontal : styles.badgeVertical, badgeStyle],\n size: size * 3 / 4\n }, badge));\n}\nconst styles = StyleSheet.create({\n icon: {\n // We render the icon twice at the same position on top of each other:\n // active and inactive one, so we can fade between them:\n // Cover the whole iconContainer:\n position: 'absolute',\n alignSelf: 'center',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n width: '100%',\n // Workaround for react-native >= 0.54 layout bug\n minWidth: 25\n },\n iconVertical: {\n flex: 1\n },\n iconHorizontal: {\n height: '100%',\n marginTop: 3\n },\n badge: {\n position: 'absolute',\n left: 3\n },\n badgeVertical: {\n top: 3\n },\n badgeHorizontal: {\n top: 7\n }\n});\n//# sourceMappingURL=TabBarIcon.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { Link, useTheme } from '@react-navigation/native';\nimport Color from 'color';\nimport React from 'react';\nimport { Platform, Pressable, StyleSheet, Text } from 'react-native';\nimport TabBarIcon from './TabBarIcon';\nexport default function BottomTabBarItem(_ref) {\n let {\n focused,\n route,\n descriptor,\n label,\n icon,\n badge,\n badgeStyle,\n to,\n button = _ref2 => {\n let {\n children,\n style,\n onPress,\n to,\n accessibilityRole,\n ...rest\n } = _ref2;\n if (Platform.OS === 'web' && to) {\n // React Native Web doesn't forward `onClick` if we use `TouchableWithoutFeedback`.\n // We need to use `onClick` to be able to prevent default browser handling of links.\n return /*#__PURE__*/React.createElement(Link, _extends({}, rest, {\n to: to,\n style: [styles.button, style],\n onPress: e => {\n if (!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && (\n // ignore clicks with modifier keys\n e.button == null || e.button === 0) // ignore everything but left clicks\n ) {\n e.preventDefault();\n onPress === null || onPress === void 0 ? void 0 : onPress(e);\n }\n }\n }), children);\n } else {\n return /*#__PURE__*/React.createElement(Pressable, _extends({}, rest, {\n accessibilityRole: accessibilityRole,\n onPress: onPress,\n style: style\n }), children);\n }\n },\n accessibilityLabel,\n testID,\n onPress,\n onLongPress,\n horizontal,\n activeTintColor: customActiveTintColor,\n inactiveTintColor: customInactiveTintColor,\n activeBackgroundColor = 'transparent',\n inactiveBackgroundColor = 'transparent',\n showLabel = true,\n allowFontScaling,\n labelStyle,\n iconStyle,\n style\n } = _ref;\n const {\n colors\n } = useTheme();\n const activeTintColor = customActiveTintColor === undefined ? colors.primary : customActiveTintColor;\n const inactiveTintColor = customInactiveTintColor === undefined ? Color(colors.text).mix(Color(colors.card), 0.5).hex() : customInactiveTintColor;\n const renderLabel = _ref3 => {\n let {\n focused\n } = _ref3;\n if (showLabel === false) {\n return null;\n }\n const color = focused ? activeTintColor : inactiveTintColor;\n if (typeof label === 'string') {\n return /*#__PURE__*/React.createElement(Text, {\n numberOfLines: 1,\n style: [styles.label, {\n color\n }, horizontal ? styles.labelBeside : styles.labelBeneath, labelStyle],\n allowFontScaling: allowFontScaling\n }, label);\n }\n const {\n options\n } = descriptor;\n const children = typeof options.tabBarLabel === 'string' ? options.tabBarLabel : options.title !== undefined ? options.title : route.name;\n return label({\n focused,\n color,\n position: horizontal ? 'beside-icon' : 'below-icon',\n children\n });\n };\n const renderIcon = _ref4 => {\n let {\n focused\n } = _ref4;\n if (icon === undefined) {\n return null;\n }\n const activeOpacity = focused ? 1 : 0;\n const inactiveOpacity = focused ? 0 : 1;\n return /*#__PURE__*/React.createElement(TabBarIcon, {\n route: route,\n horizontal: horizontal,\n badge: badge,\n badgeStyle: badgeStyle,\n activeOpacity: activeOpacity,\n inactiveOpacity: inactiveOpacity,\n activeTintColor: activeTintColor,\n inactiveTintColor: inactiveTintColor,\n renderIcon: icon,\n style: iconStyle\n });\n };\n const scene = {\n route,\n focused\n };\n const backgroundColor = focused ? activeBackgroundColor : inactiveBackgroundColor;\n return button({\n to,\n onPress,\n onLongPress,\n testID,\n accessibilityLabel,\n // FIXME: accessibilityRole: 'tab' doesn't seem to work as expected on iOS\n accessibilityRole: Platform.select({\n ios: 'button',\n default: 'tab'\n }),\n accessibilityState: {\n selected: focused\n },\n // @ts-expect-error: keep for compatibility with older React Native versions\n accessibilityStates: focused ? ['selected'] : [],\n style: [styles.tab, {\n backgroundColor\n }, horizontal ? styles.tabLandscape : styles.tabPortrait, style],\n children: /*#__PURE__*/React.createElement(React.Fragment, null, renderIcon(scene), renderLabel(scene))\n });\n}\nconst styles = StyleSheet.create({\n tab: {\n flex: 1,\n alignItems: 'center'\n },\n tabPortrait: {\n justifyContent: 'flex-end',\n flexDirection: 'column'\n },\n tabLandscape: {\n justifyContent: 'center',\n flexDirection: 'row'\n },\n label: {\n textAlign: 'center',\n backgroundColor: 'transparent'\n },\n labelBeneath: {\n fontSize: 10\n },\n labelBeside: {\n fontSize: 13,\n marginLeft: 20,\n marginTop: 3\n },\n button: {\n display: 'flex'\n }\n});\n//# sourceMappingURL=BottomTabItem.js.map","import { MissingIcon } from '@react-navigation/elements';\nimport { CommonActions, NavigationContext, NavigationRouteContext, useLinkBuilder, useTheme } from '@react-navigation/native';\nimport React from 'react';\nimport { Animated, Platform, StyleSheet, View } from 'react-native';\nimport { useSafeAreaFrame } from 'react-native-safe-area-context';\nimport BottomTabBarHeightCallbackContext from '../utils/BottomTabBarHeightCallbackContext';\nimport useIsKeyboardShown from '../utils/useIsKeyboardShown';\nimport BottomTabItem from './BottomTabItem';\nconst DEFAULT_TABBAR_HEIGHT = 49;\nconst COMPACT_TABBAR_HEIGHT = 32;\nconst DEFAULT_MAX_TAB_ITEM_WIDTH = 125;\nconst useNativeDriver = Platform.OS !== 'web';\nconst shouldUseHorizontalLabels = _ref => {\n let {\n state,\n descriptors,\n layout,\n dimensions\n } = _ref;\n const {\n tabBarLabelPosition\n } = descriptors[state.routes[state.index].key].options;\n if (tabBarLabelPosition) {\n switch (tabBarLabelPosition) {\n case 'beside-icon':\n return true;\n case 'below-icon':\n return false;\n }\n }\n if (layout.width >= 768) {\n // Screen size matches a tablet\n const maxTabWidth = state.routes.reduce((acc, route) => {\n const {\n tabBarItemStyle\n } = descriptors[route.key].options;\n const flattenedStyle = StyleSheet.flatten(tabBarItemStyle);\n if (flattenedStyle) {\n if (typeof flattenedStyle.width === 'number') {\n return acc + flattenedStyle.width;\n } else if (typeof flattenedStyle.maxWidth === 'number') {\n return acc + flattenedStyle.maxWidth;\n }\n }\n return acc + DEFAULT_MAX_TAB_ITEM_WIDTH;\n }, 0);\n return maxTabWidth <= layout.width;\n } else {\n return dimensions.width > dimensions.height;\n }\n};\nconst getPaddingBottom = insets => Math.max(insets.bottom - Platform.select({\n ios: 4,\n default: 0\n}), 0);\nexport const getTabBarHeight = _ref2 => {\n var _StyleSheet$flatten;\n let {\n state,\n descriptors,\n dimensions,\n insets,\n style,\n ...rest\n } = _ref2;\n // @ts-ignore\n const customHeight = (_StyleSheet$flatten = StyleSheet.flatten(style)) === null || _StyleSheet$flatten === void 0 ? void 0 : _StyleSheet$flatten.height;\n if (typeof customHeight === 'number') {\n return customHeight;\n }\n const isLandscape = dimensions.width > dimensions.height;\n const horizontalLabels = shouldUseHorizontalLabels({\n state,\n descriptors,\n dimensions,\n ...rest\n });\n const paddingBottom = getPaddingBottom(insets);\n if (Platform.OS === 'ios' && !Platform.isPad && isLandscape && horizontalLabels) {\n return COMPACT_TABBAR_HEIGHT + paddingBottom;\n }\n return DEFAULT_TABBAR_HEIGHT + paddingBottom;\n};\nexport default function BottomTabBar(_ref3) {\n let {\n state,\n navigation,\n descriptors,\n insets,\n style\n } = _ref3;\n const {\n colors\n } = useTheme();\n const buildLink = useLinkBuilder();\n const focusedRoute = state.routes[state.index];\n const focusedDescriptor = descriptors[focusedRoute.key];\n const focusedOptions = focusedDescriptor.options;\n const {\n tabBarShowLabel,\n tabBarHideOnKeyboard = false,\n tabBarVisibilityAnimationConfig,\n tabBarStyle,\n tabBarBackground,\n tabBarActiveTintColor,\n tabBarInactiveTintColor,\n tabBarActiveBackgroundColor,\n tabBarInactiveBackgroundColor\n } = focusedOptions;\n const dimensions = useSafeAreaFrame();\n const isKeyboardShown = useIsKeyboardShown();\n const onHeightChange = React.useContext(BottomTabBarHeightCallbackContext);\n const shouldShowTabBar = !(tabBarHideOnKeyboard && isKeyboardShown);\n const visibilityAnimationConfigRef = React.useRef(tabBarVisibilityAnimationConfig);\n React.useEffect(() => {\n visibilityAnimationConfigRef.current = tabBarVisibilityAnimationConfig;\n });\n const [isTabBarHidden, setIsTabBarHidden] = React.useState(!shouldShowTabBar);\n const [visible] = React.useState(() => new Animated.Value(shouldShowTabBar ? 1 : 0));\n React.useEffect(() => {\n const visibilityAnimationConfig = visibilityAnimationConfigRef.current;\n if (shouldShowTabBar) {\n var _visibilityAnimationC, _visibilityAnimationC2;\n const animation = (visibilityAnimationConfig === null || visibilityAnimationConfig === void 0 ? void 0 : (_visibilityAnimationC = visibilityAnimationConfig.show) === null || _visibilityAnimationC === void 0 ? void 0 : _visibilityAnimationC.animation) === 'spring' ? Animated.spring : Animated.timing;\n animation(visible, {\n toValue: 1,\n useNativeDriver,\n duration: 250,\n ...(visibilityAnimationConfig === null || visibilityAnimationConfig === void 0 ? void 0 : (_visibilityAnimationC2 = visibilityAnimationConfig.show) === null || _visibilityAnimationC2 === void 0 ? void 0 : _visibilityAnimationC2.config)\n }).start(_ref4 => {\n let {\n finished\n } = _ref4;\n if (finished) {\n setIsTabBarHidden(false);\n }\n });\n } else {\n var _visibilityAnimationC3, _visibilityAnimationC4;\n setIsTabBarHidden(true);\n const animation = (visibilityAnimationConfig === null || visibilityAnimationConfig === void 0 ? void 0 : (_visibilityAnimationC3 = visibilityAnimationConfig.hide) === null || _visibilityAnimationC3 === void 0 ? void 0 : _visibilityAnimationC3.animation) === 'spring' ? Animated.spring : Animated.timing;\n animation(visible, {\n toValue: 0,\n useNativeDriver,\n duration: 200,\n ...(visibilityAnimationConfig === null || visibilityAnimationConfig === void 0 ? void 0 : (_visibilityAnimationC4 = visibilityAnimationConfig.hide) === null || _visibilityAnimationC4 === void 0 ? void 0 : _visibilityAnimationC4.config)\n }).start();\n }\n return () => visible.stopAnimation();\n }, [visible, shouldShowTabBar]);\n const [layout, setLayout] = React.useState({\n height: 0,\n width: dimensions.width\n });\n const handleLayout = e => {\n const {\n height,\n width\n } = e.nativeEvent.layout;\n onHeightChange === null || onHeightChange === void 0 ? void 0 : onHeightChange(height);\n setLayout(layout => {\n if (height === layout.height && width === layout.width) {\n return layout;\n } else {\n return {\n height,\n width\n };\n }\n });\n };\n const {\n routes\n } = state;\n const paddingBottom = getPaddingBottom(insets);\n const tabBarHeight = getTabBarHeight({\n state,\n descriptors,\n insets,\n dimensions,\n layout,\n style: [tabBarStyle, style]\n });\n const hasHorizontalLabels = shouldUseHorizontalLabels({\n state,\n descriptors,\n dimensions,\n layout\n });\n const tabBarBackgroundElement = tabBarBackground === null || tabBarBackground === void 0 ? void 0 : tabBarBackground();\n return /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.tabBar, {\n backgroundColor: tabBarBackgroundElement != null ? 'transparent' : colors.card,\n borderTopColor: colors.border\n }, {\n transform: [{\n translateY: visible.interpolate({\n inputRange: [0, 1],\n outputRange: [layout.height + paddingBottom + StyleSheet.hairlineWidth, 0]\n })\n }],\n // Absolutely position the tab bar so that the content is below it\n // This is needed to avoid gap at bottom when the tab bar is hidden\n position: isTabBarHidden ? 'absolute' : null\n }, {\n height: tabBarHeight,\n paddingBottom,\n paddingHorizontal: Math.max(insets.left, insets.right)\n }, tabBarStyle],\n pointerEvents: isTabBarHidden ? 'none' : 'auto',\n onLayout: handleLayout\n }, /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n style: StyleSheet.absoluteFill\n }, tabBarBackgroundElement), /*#__PURE__*/React.createElement(View, {\n accessibilityRole: \"tablist\",\n style: styles.content\n }, routes.map((route, index) => {\n const focused = index === state.index;\n const {\n options\n } = descriptors[route.key];\n const onPress = () => {\n const event = navigation.emit({\n type: 'tabPress',\n target: route.key,\n canPreventDefault: true\n });\n if (!focused && !event.defaultPrevented) {\n navigation.dispatch({\n ...CommonActions.navigate({\n name: route.name,\n merge: true\n }),\n target: state.key\n });\n }\n };\n const onLongPress = () => {\n navigation.emit({\n type: 'tabLongPress',\n target: route.key\n });\n };\n const label = options.tabBarLabel !== undefined ? options.tabBarLabel : options.title !== undefined ? options.title : route.name;\n const accessibilityLabel = options.tabBarAccessibilityLabel !== undefined ? options.tabBarAccessibilityLabel : typeof label === 'string' && Platform.OS === 'ios' ? `${label}, tab, ${index + 1} of ${routes.length}` : undefined;\n return /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n key: route.key,\n value: descriptors[route.key].navigation\n }, /*#__PURE__*/React.createElement(NavigationRouteContext.Provider, {\n value: route\n }, /*#__PURE__*/React.createElement(BottomTabItem, {\n route: route,\n descriptor: descriptors[route.key],\n focused: focused,\n horizontal: hasHorizontalLabels,\n onPress: onPress,\n onLongPress: onLongPress,\n accessibilityLabel: accessibilityLabel,\n to: buildLink(route.name, route.params),\n testID: options.tabBarTestID,\n allowFontScaling: options.tabBarAllowFontScaling,\n activeTintColor: tabBarActiveTintColor,\n inactiveTintColor: tabBarInactiveTintColor,\n activeBackgroundColor: tabBarActiveBackgroundColor,\n inactiveBackgroundColor: tabBarInactiveBackgroundColor,\n button: options.tabBarButton,\n icon: options.tabBarIcon ?? (_ref5 => {\n let {\n color,\n size\n } = _ref5;\n return /*#__PURE__*/React.createElement(MissingIcon, {\n color: color,\n size: size\n });\n }),\n badge: options.tabBarBadge,\n badgeStyle: options.tabBarBadgeStyle,\n label: label,\n showLabel: tabBarShowLabel,\n labelStyle: options.tabBarLabelStyle,\n iconStyle: options.tabBarIconStyle,\n style: options.tabBarItemStyle\n })));\n })));\n}\nconst styles = StyleSheet.create({\n tabBar: {\n left: 0,\n right: 0,\n bottom: 0,\n borderTopWidth: StyleSheet.hairlineWidth,\n elevation: 8\n },\n content: {\n flex: 1,\n flexDirection: 'row'\n }\n});\n//# sourceMappingURL=BottomTabBar.js.map","import * as React from 'react';\nimport { Keyboard, Platform } from 'react-native';\nexport default function useIsKeyboardShown() {\n const [isKeyboardShown, setIsKeyboardShown] = React.useState(false);\n React.useEffect(() => {\n const handleKeyboardShow = () => setIsKeyboardShown(true);\n const handleKeyboardHide = () => setIsKeyboardShown(false);\n let subscriptions;\n if (Platform.OS === 'ios') {\n subscriptions = [Keyboard.addListener('keyboardWillShow', handleKeyboardShow), Keyboard.addListener('keyboardWillHide', handleKeyboardHide)];\n } else {\n subscriptions = [Keyboard.addListener('keyboardDidShow', handleKeyboardShow), Keyboard.addListener('keyboardDidHide', handleKeyboardHide)];\n }\n return () => {\n subscriptions.forEach(s => s.remove());\n };\n }, []);\n return isKeyboardShown;\n}\n//# sourceMappingURL=useIsKeyboardShown.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { ResourceSavingView } from '@react-navigation/elements';\nimport * as React from 'react';\nimport { View } from 'react-native';\nlet Screens;\ntry {\n Screens = require('react-native-screens');\n} catch (e) {\n // Ignore\n}\nexport const MaybeScreenContainer = _ref => {\n var _Screens, _Screens$screensEnabl;\n let {\n enabled,\n ...rest\n } = _ref;\n if ((_Screens = Screens) !== null && _Screens !== void 0 && (_Screens$screensEnabl = _Screens.screensEnabled) !== null && _Screens$screensEnabl !== void 0 && _Screens$screensEnabl.call(_Screens)) {\n return /*#__PURE__*/React.createElement(Screens.ScreenContainer, _extends({\n enabled: enabled\n }, rest));\n }\n return /*#__PURE__*/React.createElement(View, rest);\n};\nexport function MaybeScreen(_ref2) {\n var _Screens2, _Screens2$screensEnab;\n let {\n visible,\n children,\n ...rest\n } = _ref2;\n if ((_Screens2 = Screens) !== null && _Screens2 !== void 0 && (_Screens2$screensEnab = _Screens2.screensEnabled) !== null && _Screens2$screensEnab !== void 0 && _Screens2$screensEnab.call(_Screens2)) {\n return /*#__PURE__*/React.createElement(Screens.Screen, _extends({\n activityState: visible ? 2 : 0\n }, rest), children);\n }\n return /*#__PURE__*/React.createElement(ResourceSavingView, _extends({\n visible: visible\n }, rest), children);\n}\n//# sourceMappingURL=ScreenFallback.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { getHeaderTitle, Header, SafeAreaProviderCompat, Screen } from '@react-navigation/elements';\nimport * as React from 'react';\nimport { Platform, StyleSheet } from 'react-native';\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport BottomTabBarHeightCallbackContext from '../utils/BottomTabBarHeightCallbackContext';\nimport BottomTabBarHeightContext from '../utils/BottomTabBarHeightContext';\nimport BottomTabBar, { getTabBarHeight } from './BottomTabBar';\nimport { MaybeScreen, MaybeScreenContainer } from './ScreenFallback';\nexport default function BottomTabView(props) {\n const {\n tabBar = props => /*#__PURE__*/React.createElement(BottomTabBar, props),\n state,\n navigation,\n descriptors,\n safeAreaInsets,\n detachInactiveScreens = Platform.OS === 'web' || Platform.OS === 'android' || Platform.OS === 'ios',\n sceneContainerStyle\n } = props;\n const focusedRouteKey = state.routes[state.index].key;\n const [loaded, setLoaded] = React.useState([focusedRouteKey]);\n if (!loaded.includes(focusedRouteKey)) {\n setLoaded([...loaded, focusedRouteKey]);\n }\n const dimensions = SafeAreaProviderCompat.initialMetrics.frame;\n const [tabBarHeight, setTabBarHeight] = React.useState(() => getTabBarHeight({\n state,\n descriptors,\n dimensions,\n layout: {\n width: dimensions.width,\n height: 0\n },\n insets: {\n ...SafeAreaProviderCompat.initialMetrics.insets,\n ...props.safeAreaInsets\n },\n style: descriptors[state.routes[state.index].key].options.tabBarStyle\n }));\n const renderTabBar = () => {\n return /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, insets => tabBar({\n state: state,\n descriptors: descriptors,\n navigation: navigation,\n insets: {\n top: (safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.top) ?? (insets === null || insets === void 0 ? void 0 : insets.top) ?? 0,\n right: (safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.right) ?? (insets === null || insets === void 0 ? void 0 : insets.right) ?? 0,\n bottom: (safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.bottom) ?? (insets === null || insets === void 0 ? void 0 : insets.bottom) ?? 0,\n left: (safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.left) ?? (insets === null || insets === void 0 ? void 0 : insets.left) ?? 0\n }\n }));\n };\n const {\n routes\n } = state;\n return /*#__PURE__*/React.createElement(SafeAreaProviderCompat, null, /*#__PURE__*/React.createElement(MaybeScreenContainer, {\n enabled: detachInactiveScreens,\n hasTwoStates: true,\n style: styles.container\n }, routes.map((route, index) => {\n const descriptor = descriptors[route.key];\n const {\n lazy = true,\n unmountOnBlur\n } = descriptor.options;\n const isFocused = state.index === index;\n if (unmountOnBlur && !isFocused) {\n return null;\n }\n if (lazy && !loaded.includes(route.key) && !isFocused) {\n // Don't render a lazy screen if we've never navigated to it\n return null;\n }\n const {\n freezeOnBlur,\n header = _ref => {\n let {\n layout,\n options\n } = _ref;\n return /*#__PURE__*/React.createElement(Header, _extends({}, options, {\n layout: layout,\n title: getHeaderTitle(options, route.name)\n }));\n },\n headerShown,\n headerStatusBarHeight,\n headerTransparent\n } = descriptor.options;\n return /*#__PURE__*/React.createElement(MaybeScreen, {\n key: route.key,\n style: [StyleSheet.absoluteFill, {\n zIndex: isFocused ? 0 : -1\n }],\n visible: isFocused,\n enabled: detachInactiveScreens,\n freezeOnBlur: freezeOnBlur\n }, /*#__PURE__*/React.createElement(BottomTabBarHeightContext.Provider, {\n value: tabBarHeight\n }, /*#__PURE__*/React.createElement(Screen, {\n focused: isFocused,\n route: descriptor.route,\n navigation: descriptor.navigation,\n headerShown: headerShown,\n headerStatusBarHeight: headerStatusBarHeight,\n headerTransparent: headerTransparent,\n header: header({\n layout: dimensions,\n route: descriptor.route,\n navigation: descriptor.navigation,\n options: descriptor.options\n }),\n style: sceneContainerStyle\n }, descriptor.render())));\n })), /*#__PURE__*/React.createElement(BottomTabBarHeightCallbackContext.Provider, {\n value: setTabBarHeight\n }, renderTabBar()));\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n overflow: 'hidden'\n }\n});\n//# sourceMappingURL=BottomTabView.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { createNavigatorFactory, TabRouter, useNavigationBuilder } from '@react-navigation/native';\nimport * as React from 'react';\nimport warnOnce from 'warn-once';\nimport BottomTabView from '../views/BottomTabView';\nfunction BottomTabNavigator(_ref) {\n let {\n id,\n initialRouteName,\n backBehavior,\n children,\n screenListeners,\n screenOptions,\n sceneContainerStyle,\n ...restWithDeprecated\n } = _ref;\n const {\n // @ts-expect-error: lazy is deprecated\n lazy,\n // @ts-expect-error: tabBarOptions is deprecated\n tabBarOptions,\n ...rest\n } = restWithDeprecated;\n let defaultScreenOptions = {};\n if (tabBarOptions) {\n Object.assign(defaultScreenOptions, {\n tabBarHideOnKeyboard: tabBarOptions.keyboardHidesTabBar,\n tabBarActiveTintColor: tabBarOptions.activeTintColor,\n tabBarInactiveTintColor: tabBarOptions.inactiveTintColor,\n tabBarActiveBackgroundColor: tabBarOptions.activeBackgroundColor,\n tabBarInactiveBackgroundColor: tabBarOptions.inactiveBackgroundColor,\n tabBarAllowFontScaling: tabBarOptions.allowFontScaling,\n tabBarShowLabel: tabBarOptions.showLabel,\n tabBarLabelStyle: tabBarOptions.labelStyle,\n tabBarIconStyle: tabBarOptions.iconStyle,\n tabBarItemStyle: tabBarOptions.tabStyle,\n tabBarLabelPosition: tabBarOptions.labelPosition ?? (tabBarOptions.adaptive === false ? 'below-icon' : undefined),\n tabBarStyle: [{\n display: tabBarOptions.tabBarVisible ? 'none' : 'flex'\n }, defaultScreenOptions.tabBarStyle]\n });\n Object.keys(defaultScreenOptions).forEach(key => {\n if (defaultScreenOptions[key] === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete defaultScreenOptions[key];\n }\n });\n warnOnce(tabBarOptions, `Bottom Tab Navigator: 'tabBarOptions' is deprecated. Migrate the options to 'screenOptions' instead.\\n\\nPlace the following in 'screenOptions' in your code to keep current behavior:\\n\\n${JSON.stringify(defaultScreenOptions, null, 2)}\\n\\nSee https://reactnavigation.org/docs/bottom-tab-navigator#options for more details.`);\n }\n if (typeof lazy === 'boolean') {\n defaultScreenOptions.lazy = lazy;\n warnOnce(true, `Bottom Tab Navigator: 'lazy' in props is deprecated. Move it to 'screenOptions' instead.\\n\\nSee https://reactnavigation.org/docs/bottom-tab-navigator/#lazy for more details.`);\n }\n const {\n state,\n descriptors,\n navigation,\n NavigationContent\n } = useNavigationBuilder(TabRouter, {\n id,\n initialRouteName,\n backBehavior,\n children,\n screenListeners,\n screenOptions,\n defaultScreenOptions\n });\n return /*#__PURE__*/React.createElement(NavigationContent, null, /*#__PURE__*/React.createElement(BottomTabView, _extends({}, rest, {\n state: state,\n navigation: navigation,\n descriptors: descriptors,\n sceneContainerStyle: sceneContainerStyle\n })));\n}\nexport default createNavigatorFactory(BottomTabNavigator);\n//# sourceMappingURL=createBottomTabNavigator.js.map","import { UnavailabilityError } from 'expo-modules-core';\n\nimport ExpoApplication from './ExpoApplication';\n\n// @needsAudit\n/**\n * The human-readable version of the native application that may be displayed in the app store.\n * This is the `Info.plist` value for `CFBundleShortVersionString` on iOS and the version name set\n * by `version` in `app.json` on Android at the time the native app was built.\n * On web, this value is `null`.\n * @example `\"2.11.0\"`\n */\nexport const nativeApplicationVersion: string | null = ExpoApplication\n ? ExpoApplication.nativeApplicationVersion || null\n : null;\n\n// @needsAudit\n/**\n * The internal build version of the native application that the app store may use to distinguish\n * between different binaries. This is the `Info.plist` value for `CFBundleVersion` on iOS (set with\n * `ios.buildNumber` value in `app.json` in a standalone app) and the version code set by\n * `android.versionCode` in `app.json` on Android at the time the native app was built. On web, this\n * value is `null`. The return type on Android and iOS is `string`.\n * @example iOS: `\"2.11.0\"`, Android: `\"114\"`\n */\nexport const nativeBuildVersion: string | null = ExpoApplication\n ? ExpoApplication.nativeBuildVersion || null\n : null;\n\n// @needsAudit\n/**\n * The human-readable name of the application that is displayed with the app's icon on the device's\n * home screen or desktop. On Android and iOS, this value is a `string` unless the name could not be\n * retrieved, in which case this value will be `null`. On web this value is `null`.\n * @example `\"Expo\"`, `\"Yelp\"`, `\"Instagram\"`\n */\nexport const applicationName: string | null = ExpoApplication\n ? ExpoApplication.applicationName || null\n : null;\n\n// @needsAudit\n/**\n * The ID of the application. On Android, this is the application ID. On iOS, this is the bundle ID.\n * On web, this is `null`.\n * @example `\"com.cocoacasts.scribbles\"`, `\"com.apple.Pages\"`\n */\nexport const applicationId: string | null = ExpoApplication\n ? ExpoApplication.applicationId || null\n : null;\n\n// @needsAudit\n/**\n * The value of [`Settings.Secure.ANDROID_ID`](https://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID).\n * This is a hexadecimal `string` unique to each combination of app-signing key, user, and device.\n * The value may change if a factory reset is performed on the device or if an APK signing key changes.\n * For more information about how the platform handles `ANDROID_ID` in Android 8.0 (API level 26)\n * and higher, see [Android 8.0 Behavior Changes](https://developer.android.com/about/versions/oreo/android-8.0-changes.html#privacy-all).\n * On iOS and web, this value is `null`.\n * > In versions of the platform lower than Android 8.0 (API level 26), this value remains constant\n * > for the lifetime of the user's device. See the [ANDROID_ID](https://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID)\n * > official docs for more information.\n * @example `\"dd96dec43fb81c97\"`\n * @platform android\n */\nexport const androidId: string | null = ExpoApplication ? ExpoApplication.androidId || null : null;\n\n// @needsAudit\n/**\n * Gets the referrer URL of the installed app with the [`Install Referrer API`](https://developer.android.com/google/play/installreferrer)\n * from the Google Play Store. In practice, the referrer URL may not be a complete, absolute URL.\n * @return A `Promise` that fulfills with a `string` of the referrer URL of the installed app.\n *\n * @example\n * ```ts\n * await Application.getInstallReferrerAsync();\n * // \"utm_source=google-play&utm_medium=organic\"\n * ```\n * @platform android\n */\nexport async function getInstallReferrerAsync(): Promise {\n if (!ExpoApplication.getInstallReferrerAsync) {\n throw new UnavailabilityError('expo-application', 'getInstallReferrerAsync');\n }\n return await ExpoApplication.getInstallReferrerAsync();\n}\n\n// @needsAudit\n/**\n * Gets the iOS \"identifier for vendor\" ([IDFV](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor))\n * value, a string ID that uniquely identifies a device to the app’s vendor. This method may\n * sometimes return `nil`, in which case wait and call the method again later. This might happen\n * when the device has been restarted before the user has unlocked the device.\n *\n * The OS will change the vendor identifier if all apps from the current app's vendor have been\n * uninstalled.\n *\n * @return A `Promise` that fulfills with a `string` specifying the app's vendor ID. Apps from the\n * same vendor will return the same ID. See Apple's documentation for more information about the\n * vendor ID's semantics.\n *\n * @example\n * ```ts\n * await Application.getIosIdForVendorAsync();\n * // \"68753A44-4D6F-1226-9C60-0050E4C00067\"\n * ```\n * @platform ios\n */\nexport async function getIosIdForVendorAsync(): Promise {\n if (!ExpoApplication.getIosIdForVendorAsync) {\n throw new UnavailabilityError('expo-application', 'getIosIdForVendorAsync');\n }\n return (await ExpoApplication.getIosIdForVendorAsync()) ?? null;\n}\n\n// @docsMissing\nexport enum ApplicationReleaseType {\n UNKNOWN = 0,\n SIMULATOR = 1,\n ENTERPRISE = 2,\n DEVELOPMENT = 3,\n AD_HOC = 4,\n APP_STORE = 5,\n}\n\n// @needsAudit\n/**\n * Gets the iOS application release type.\n * @return Returns a promise which fulfills with an [`ApplicationReleaseType`](#applicationreleasetype).\n * @platform ios\n */\nexport async function getIosApplicationReleaseTypeAsync(): Promise {\n if (!ExpoApplication.getApplicationReleaseTypeAsync) {\n throw new UnavailabilityError('expo-application', 'getApplicationReleaseTypeAsync');\n }\n return await ExpoApplication.getApplicationReleaseTypeAsync();\n}\n\n// @docsMissing\nexport type PushNotificationServiceEnvironment = 'development' | 'production' | null;\n\n// @needsAudit\n/**\n * Gets the current [Apple Push Notification (APN)](https://developer.apple.com/documentation/bundleresources/entitlements/aps-environment?language=objc)\n * service environment.\n * @return Returns a promise fulfilled with the string, either `'development'` or `'production'`,\n * based on the current APN environment, or `null` on the simulator as it does not support registering with APNs.\n * @platform ios\n */\nexport async function getIosPushNotificationServiceEnvironmentAsync(): Promise {\n if (!ExpoApplication.getPushNotificationServiceEnvironmentAsync) {\n throw new UnavailabilityError('expo-application', 'getPushNotificationServiceEnvironmentAsync');\n }\n return await ExpoApplication.getPushNotificationServiceEnvironmentAsync();\n}\n\n// @needsAudit\n/**\n * Gets the time the app was installed onto the device, not counting subsequent updates. If the app\n * is uninstalled and reinstalled, this method returns the time the app was reinstalled.\n * - On iOS, this method uses the [`NSFileCreationDate`](https://developer.apple.com/documentation/foundation/nsfilecreationdate?language=objc)\n * of the app's document root directory.\n * - On Android, this method uses [`PackageInfo.firstInstallTime`](https://developer.android.com/reference/android/content/pm/PackageInfo.html#firstInstallTime).\n * - On web, this method returns `null`.\n *\n * @return Returns a `Promise` that fulfills with a `Date` object that specifies the time the app\n * was installed on the device.\n *\n * @example\n * ```ts\n * await Application.getInstallationTimeAsync();\n * // 2019-07-18T18:08:26.121Z\n * ```\n */\nexport async function getInstallationTimeAsync(): Promise {\n if (!ExpoApplication.getInstallationTimeAsync) {\n throw new UnavailabilityError('expo-application', 'getInstallationTimeAsync');\n }\n const installationTime = await ExpoApplication.getInstallationTimeAsync();\n return new Date(installationTime);\n}\n\n// @needsAudit\n/**\n * Gets the last time the app was updated from the Google Play Store.\n * @return Returns a `Promise` that fulfills with a `Date` object that specifies the last time\n * the app was updated via the Google Play Store).\n *\n * @example\n * ```ts\n * await Application.getLastUpdateTimeAsync();\n * // 2019-07-18T21:20:16.887Z\n * ```\n * @platform android\n */\nexport async function getLastUpdateTimeAsync(): Promise {\n if (!ExpoApplication.getLastUpdateTimeAsync) {\n throw new UnavailabilityError('expo-application', 'getLastUpdateTimeAsync');\n }\n const lastUpdateTime = await ExpoApplication.getLastUpdateTimeAsync();\n return new Date(lastUpdateTime);\n}\n","export default {\n get name(): string {\n return 'ExpoApplication';\n },\n get applicationName(): null {\n return null;\n },\n get bundleId(): null {\n return null;\n },\n get nativeApplicationVersion(): null {\n return null;\n },\n get nativeBuildVersion(): null {\n return null;\n },\n get androidId(): null {\n return null;\n },\n async getInstallationTimeAsync(): Promise {\n return null;\n },\n};\n","/**\n * @author Toru Nagashima \n * @copyright 2015 Toru Nagashima. All rights reserved.\n * See LICENSE file in root directory for full license.\n */\n/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap}\n * @private\n */\nconst privateData = new WeakMap();\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap}\n * @private\n */\nconst wrappers = new WeakMap();\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event);\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n );\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n );\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true;\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault();\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n });\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true });\n\n // Define accessors\n const keys = Object.keys(event);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key));\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget;\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation();\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this);\n\n data.stopped = true;\n data.immediateStopped = true;\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation();\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this));\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true;\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this));\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n});\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype);\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event);\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value;\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event;\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto);\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event);\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n });\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n const isFunc = typeof descriptor.value === \"function\";\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n );\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto);\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto);\n wrappers.set(proto, wrapper);\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nfunction wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event));\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nfunction isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nfunction setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase;\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nfunction setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget;\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nfunction setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener;\n}\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap>}\n * @private\n */\nconst listenersMap = new WeakMap();\n\n// Listener types\nconst CAPTURE = 1;\nconst BUBBLE = 2;\nconst ATTRIBUTE = 3;\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget);\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this);\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next;\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null; // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this);\n\n // Traverse to the tail while removing old value.\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n node = node.next;\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n };\n if (prev === null) {\n listeners.set(eventName, newNode);\n } else {\n prev.next = newNode;\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n );\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this);\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n });\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i]);\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map());\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length);\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i];\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this);\n const optionsIsObj = isObject(options);\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n };\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName);\n if (node === undefined) {\n listeners.set(eventName, newNode);\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null;\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node;\n node = node.next;\n }\n\n // Add it.\n prev.next = newNode;\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this);\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n return\n }\n\n prev = node;\n node = node.next;\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this);\n const eventName = event.type;\n let node = listeners.get(eventName);\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event);\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null;\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n );\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent);\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err);\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent);\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next;\n }\n setPassiveListener(wrappedEvent, null);\n setEventPhase(wrappedEvent, 0);\n setCurrentTarget(wrappedEvent, null);\n\n return !wrappedEvent.defaultPrevented\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n});\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype);\n}\n\nexport default EventTarget;\nexport { defineEventAttribute, EventTarget };\n//# sourceMappingURL=event-target-shim.mjs.map\n","/**\n * @author Toru Nagashima \n * See LICENSE file in root directory for full license.\n */\nimport { EventTarget, defineEventAttribute } from 'event-target-shim';\n\n/**\n * The signal class.\n * @see https://dom.spec.whatwg.org/#abortsignal\n */\nclass AbortSignal extends EventTarget {\n /**\n * AbortSignal cannot be constructed directly.\n */\n constructor() {\n super();\n throw new TypeError(\"AbortSignal cannot be constructed directly\");\n }\n /**\n * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise.\n */\n get aborted() {\n const aborted = abortedFlags.get(this);\n if (typeof aborted !== \"boolean\") {\n throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this === null ? \"null\" : typeof this}`);\n }\n return aborted;\n }\n}\ndefineEventAttribute(AbortSignal.prototype, \"abort\");\n/**\n * Create an AbortSignal object.\n */\nfunction createAbortSignal() {\n const signal = Object.create(AbortSignal.prototype);\n EventTarget.call(signal);\n abortedFlags.set(signal, false);\n return signal;\n}\n/**\n * Abort a given signal.\n */\nfunction abortSignal(signal) {\n if (abortedFlags.get(signal) !== false) {\n return;\n }\n abortedFlags.set(signal, true);\n signal.dispatchEvent({ type: \"abort\" });\n}\n/**\n * Aborted flag for each instances.\n */\nconst abortedFlags = new WeakMap();\n// Properties should be enumerable.\nObject.defineProperties(AbortSignal.prototype, {\n aborted: { enumerable: true },\n});\n// `toString()` should return `\"[object AbortSignal]\"`\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortSignal\",\n });\n}\n\n/**\n * The AbortController.\n * @see https://dom.spec.whatwg.org/#abortcontroller\n */\nclass AbortController {\n /**\n * Initialize this controller.\n */\n constructor() {\n signals.set(this, createAbortSignal());\n }\n /**\n * Returns the `AbortSignal` object associated with this object.\n */\n get signal() {\n return getSignal(this);\n }\n /**\n * Abort and signal to any observers that the associated activity is to be aborted.\n */\n abort() {\n abortSignal(getSignal(this));\n }\n}\n/**\n * Associated signals.\n */\nconst signals = new WeakMap();\n/**\n * Get the associated signal of a given controller.\n */\nfunction getSignal(controller) {\n const signal = signals.get(controller);\n if (signal == null) {\n throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller === null ? \"null\" : typeof controller}`);\n }\n return signal;\n}\n// Properties should be enumerable.\nObject.defineProperties(AbortController.prototype, {\n signal: { enumerable: true },\n abort: { enumerable: true },\n});\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortController.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortController\",\n });\n}\n\nexport default AbortController;\nexport { AbortController, AbortSignal };\n//# sourceMappingURL=abort-controller.mjs.map\n","/*globals self, window */\nimport * as ac from \"./dist/abort-controller\"\n\n/*eslint-disable @mysticatea/prettier */\nconst g =\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window :\n typeof global !== \"undefined\" ? global :\n /* otherwise */ undefined\n/*eslint-enable @mysticatea/prettier */\n\nif (g) {\n if (typeof g.AbortController === \"undefined\") {\n g.AbortController = ac.AbortController\n }\n if (typeof g.AbortSignal === \"undefined\") {\n g.AbortSignal = ac.AbortSignal\n }\n}\n","import { CodedError } from 'expo-modules-core';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { ServerRegistrationModule } from './ServerRegistrationModule.types';\n\nconst INSTALLATION_ID_KEY = 'EXPO_NOTIFICATIONS_INSTALLATION_ID';\nconst REGISTRATION_INFO_KEY = 'EXPO_NOTIFICATIONS_REGISTRATION_INFO';\n\n// Lazy fallback installationId per session initializer\nlet getFallbackInstallationId = () => {\n const sessionInstallationId = uuidv4();\n getFallbackInstallationId = () => sessionInstallationId;\n};\n\nexport default {\n getInstallationIdAsync: async () => {\n let installationId;\n\n try {\n installationId = localStorage.getItem(INSTALLATION_ID_KEY);\n if (!installationId || typeof installationId !== 'string') {\n installationId = uuidv4();\n localStorage.setItem(INSTALLATION_ID_KEY, installationId);\n }\n } catch {\n installationId = getFallbackInstallationId();\n }\n\n return installationId;\n },\n getRegistrationInfoAsync: async () => {\n return localStorage.getItem(REGISTRATION_INFO_KEY);\n },\n setRegistrationInfoAsync: async (registrationInfo: string | null) => {\n try {\n if (registrationInfo) {\n localStorage.setItem(REGISTRATION_INFO_KEY, registrationInfo);\n } else {\n localStorage.removeItem(REGISTRATION_INFO_KEY);\n }\n } catch (error) {\n throw new CodedError(\n 'ERR_NOTIFICATIONS_STORAGE_ERROR',\n `Could not modify localStorage to persist auto-registration information: ${error}`\n );\n }\n },\n // mock implementations\n addListener: () => {},\n removeListeners: () => {},\n} as ServerRegistrationModule;\n","import { Platform } from 'expo-modules-core';\n\nimport { PushTokenManagerModule } from './PushTokenManager.types';\n\nlet warningHasBeenShown = false;\n\nexport default {\n addListener: () => {\n if (!warningHasBeenShown) {\n console.warn(\n `[expo-notifications] Listening to push token changes is not yet fully supported on ${Platform.OS}. Adding a listener will have no effect.`\n );\n warningHasBeenShown = true;\n }\n },\n removeListeners: () => {},\n} as PushTokenManagerModule;\n","import { EventEmitter, Subscription, Platform } from 'expo-modules-core';\n\nimport PushTokenManager from './PushTokenManager';\nimport { DevicePushToken } from './Tokens.types';\n\n/**\n * A function accepting a device push token ([`DevicePushToken`](#devicepushtoken)) as an argument.\n * > **Note:** You should not call `getDevicePushTokenAsync` inside this function, as it triggers the listener and may lead to an infinite loop.\n * @header fetch\n */\nexport type PushTokenListener = (token: DevicePushToken) => void;\n\n// Web uses SyntheticEventEmitter\nconst tokenEmitter = new EventEmitter(PushTokenManager);\nconst newTokenEventName = 'onDevicePushToken';\n\n/**\n * In rare situations, a push token may be changed by the push notification service while the app is running.\n * When a token is rolled, the old one becomes invalid and sending notifications to it will fail.\n * A push token listener will let you handle this situation gracefully by registering the new token with your backend right away.\n * @param listener A function accepting a push token as an argument, it will be called whenever the push token changes.\n * @return A [`Subscription`](#subscription) object represents the subscription of the provided listener.\n * @header fetch\n * @example Registering a push token listener using a React hook.\n * ```jsx\n * import React from 'react';\n * import * as Notifications from 'expo-notifications';\n *\n * import { registerDevicePushTokenAsync } from '../api';\n *\n * export default function App() {\n * React.useEffect(() => {\n * const subscription = Notifications.addPushTokenListener(registerDevicePushTokenAsync);\n * return () => subscription.remove();\n * }, []);\n *\n * return (\n * // Your app content\n * );\n * }\n * ```\n */\nexport function addPushTokenListener(listener: PushTokenListener): Subscription {\n const wrappingListener = ({ devicePushToken }) =>\n listener({ data: devicePushToken, type: Platform.OS });\n return tokenEmitter.addListener(newTokenEventName, wrappingListener);\n}\n\n/**\n * Removes a push token subscription returned by an `addPushTokenListener` call.\n * @param subscription A subscription returned by `addPushTokenListener` method.\n * @header fetch\n */\nexport function removePushTokenSubscription(subscription: Subscription) {\n tokenEmitter.removeSubscription(subscription);\n}\n","import Constants from 'expo-constants';\nimport { CodedError, Platform, SyntheticPlatformEmitter } from 'expo-modules-core';\n\nimport { DevicePushToken } from './Tokens.types';\n\nexport default async function getDevicePushTokenAsync(): Promise {\n const data = await _subscribeDeviceToPushNotificationsAsync();\n SyntheticPlatformEmitter.emit('onDevicePushToken', { devicePushToken: data });\n return { type: Platform.OS, data };\n}\n\nfunction guardPermission() {\n if (!('Notification' in window)) {\n throw new CodedError(\n 'ERR_UNAVAILABLE',\n 'The Web Notifications API is not available on this device.'\n );\n }\n if (!navigator.serviceWorker) {\n throw new CodedError(\n 'ERR_UNAVAILABLE',\n 'Notifications cannot be used because the service worker API is not supported on this device. This might also happen because your web page does not support HTTPS.'\n );\n }\n if (Notification.permission !== 'granted') {\n throw new CodedError(\n 'ERR_NOTIFICATIONS_PERMISSION_DENIED',\n `Cannot use web notifications without permissions granted. Request permissions with \"expo-permissions\".`\n );\n }\n}\n\nasync function _subscribeDeviceToPushNotificationsAsync(): Promise {\n // @ts-expect-error: TODO: not on the schema\n const vapidPublicKey: string | null = Constants.expoConfig?.notification?.vapidPublicKey;\n if (!vapidPublicKey) {\n throw new CodedError(\n 'ERR_NOTIFICATIONS_PUSH_WEB_MISSING_CONFIG',\n 'You must provide `notification.vapidPublicKey` in `app.json` to use push notifications on web. Learn more: https://docs.expo.dev/versions/latest/guides/using-vapid/.'\n );\n }\n\n // @ts-expect-error: TODO: not on the schema\n const serviceWorkerPath = Constants.expoConfig?.notification?.serviceWorkerPath;\n if (!serviceWorkerPath) {\n throw new CodedError(\n 'ERR_NOTIFICATIONS_PUSH_MISSING_CONFIGURATION',\n 'You must specify `notification.serviceWorkerPath` in `app.json` to use push notifications on the web. Please provide the path to the service worker that will handle notifications.'\n );\n }\n guardPermission();\n\n let registration: ServiceWorkerRegistration | null = null;\n try {\n registration = await navigator.serviceWorker.register(serviceWorkerPath);\n } catch (error) {\n throw new CodedError(\n 'ERR_NOTIFICATIONS_PUSH_REGISTRATION_FAILED',\n `Could not register this device for push notifications because the service worker (${serviceWorkerPath}) could not be registered: ${error}`\n );\n }\n await navigator.serviceWorker.ready;\n\n if (!registration.active) {\n throw new CodedError(\n 'ERR_NOTIFICATIONS_PUSH_REGISTRATION_FAILED',\n 'Could not register this device for push notifications because the service worker is not active.'\n );\n }\n\n const subscribeOptions = {\n userVisibleOnly: true,\n applicationServerKey: _urlBase64ToUint8Array(vapidPublicKey),\n };\n let pushSubscription: PushSubscription | null = null;\n try {\n pushSubscription = await registration.pushManager.subscribe(subscribeOptions);\n } catch (error) {\n throw new CodedError(\n 'ERR_NOTIFICATIONS_PUSH_REGISTRATION_FAILED',\n 'The device was unable to register for remote notifications with the browser endpoint. (' +\n error +\n ')'\n );\n }\n const pushSubscriptionJson = pushSubscription.toJSON();\n\n const subscriptionObject = {\n endpoint: pushSubscriptionJson.endpoint,\n keys: {\n p256dh: pushSubscriptionJson.keys!.p256dh,\n auth: pushSubscriptionJson.keys!.auth,\n },\n };\n\n // Store notification icon string in service worker.\n // This message is received by `/expo-service-worker.js`.\n // We wrap it with `fromExpoWebClient` to make sure other message\n // will not override content such as `notificationIcon`.\n // https://stackoverflow.com/a/35729334/2603230\n const notificationIcon = (Constants.expoConfig?.notification ?? {}).icon;\n await registration.active.postMessage(\n JSON.stringify({ fromExpoWebClient: { notificationIcon } })\n );\n\n return subscriptionObject;\n}\n\n// https://github.com/web-push-libs/web-push#using-vapid-key-for-applicationserverkey\nfunction _urlBase64ToUint8Array(base64String: string): Uint8Array {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\n const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/');\n\n const rawData = window.atob(base64);\n const outputArray = new Uint8Array(rawData.length);\n\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n return outputArray;\n}\n","import { computeNextBackoffInterval } from '@ide/backoff';\nimport * as Application from 'expo-application';\nimport { CodedError, Platform, UnavailabilityError } from 'expo-modules-core';\n\nimport ServerRegistrationModule from '../ServerRegistrationModule';\nimport { DevicePushToken } from '../Tokens.types';\n\nconst updateDevicePushTokenUrl = 'https://exp.host/--/api/v2/push/updateDeviceToken';\n\nexport async function updateDevicePushTokenAsync(signal: AbortSignal, token: DevicePushToken) {\n const doUpdateDevicePushTokenAsync = async (retry: () => void) => {\n const [development, deviceId] = await Promise.all([\n shouldUseDevelopmentNotificationService(),\n getDeviceIdAsync(),\n ]);\n const body = {\n deviceId: deviceId.toLowerCase(),\n development,\n deviceToken: token.data,\n appId: Application.applicationId,\n type: getTypeOfToken(token),\n };\n\n try {\n const response = await fetch(updateDevicePushTokenUrl, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify(body),\n signal,\n });\n\n // Help debug erroring servers\n if (!response.ok) {\n console.debug(\n '[expo-notifications] Error encountered while updating the device push token with the server:',\n await response.text()\n );\n }\n\n // Retry if request failed\n if (!response.ok) {\n retry();\n }\n } catch (e) {\n // Error returned if the request is aborted should be an 'AbortError'. In\n // React Native fetch is polyfilled using `whatwg-fetch` which:\n // - creates `AbortError`s like this\n // https://github.com/github/fetch/blob/75d9455d380f365701151f3ac85c5bda4bbbde76/fetch.js#L505\n // - which creates exceptions like\n // https://github.com/github/fetch/blob/75d9455d380f365701151f3ac85c5bda4bbbde76/fetch.js#L490-L494\n if (e.name === 'AbortError') {\n // We don't consider AbortError a failure, it's a sign somewhere else the\n // request is expected to succeed and we don't need this one, so let's\n // just return.\n return;\n }\n\n console.warn(\n '[expo-notifications] Error thrown while updating the device push token with the server:',\n e\n );\n\n retry();\n }\n };\n\n let shouldTry = true;\n const retry = () => {\n shouldTry = true;\n };\n\n let retriesCount = 0;\n const initialBackoff = 500; // 0.5 s\n const backoffOptions = {\n maxBackoff: 2 * 60 * 1000, // 2 minutes\n };\n let nextBackoffInterval = computeNextBackoffInterval(\n initialBackoff,\n retriesCount,\n backoffOptions\n );\n\n while (shouldTry && !signal.aborted) {\n // Will be set to true by `retry` if it's called\n shouldTry = false;\n await doUpdateDevicePushTokenAsync(retry);\n\n // Do not wait if we won't retry\n if (shouldTry && !signal.aborted) {\n nextBackoffInterval = computeNextBackoffInterval(\n initialBackoff,\n retriesCount,\n backoffOptions\n );\n retriesCount += 1;\n await new Promise((resolve) => setTimeout(resolve, nextBackoffInterval));\n }\n }\n}\n\n// Same as in getExpoPushTokenAsync\nasync function getDeviceIdAsync() {\n try {\n if (!ServerRegistrationModule.getInstallationIdAsync) {\n throw new UnavailabilityError('ExpoServerRegistrationModule', 'getInstallationIdAsync');\n }\n\n return await ServerRegistrationModule.getInstallationIdAsync();\n } catch (e) {\n throw new CodedError(\n 'ERR_NOTIFICATIONS_DEVICE_ID',\n `Could not fetch the installation ID of the application: ${e}.`\n );\n }\n}\n\n// Same as in getExpoPushTokenAsync\nfunction getTypeOfToken(devicePushToken: DevicePushToken) {\n switch (devicePushToken.type) {\n case 'ios':\n return 'apns';\n case 'android':\n return 'fcm';\n // This probably will error on server, but let's make this function future-safe.\n default:\n return devicePushToken.type;\n }\n}\n\n// Same as in getExpoPushTokenAsync\nasync function shouldUseDevelopmentNotificationService() {\n if (Platform.OS === 'ios') {\n try {\n const notificationServiceEnvironment =\n await Application.getIosPushNotificationServiceEnvironmentAsync();\n if (notificationServiceEnvironment === 'development') {\n return true;\n }\n } catch {\n // We can't do anything here, we'll fallback to false then.\n }\n }\n\n return false;\n}\n","import 'abort-controller/polyfill';\nimport { UnavailabilityError } from 'expo-modules-core';\n\nimport ServerRegistrationModule from './ServerRegistrationModule';\nimport { addPushTokenListener } from './TokenEmitter';\nimport { DevicePushToken } from './Tokens.types';\nimport getDevicePushTokenAsync from './getDevicePushTokenAsync';\nimport { updateDevicePushTokenAsync as updateDevicePushTokenAsyncWithSignal } from './utils/updateDevicePushTokenAsync';\n\nlet lastAbortController: AbortController | null = null;\nasync function updatePushTokenAsync(token: DevicePushToken) {\n // Abort current update process\n lastAbortController?.abort();\n lastAbortController = new AbortController();\n return await updateDevicePushTokenAsyncWithSignal(lastAbortController.signal, token);\n}\n\n/**\n * Encapsulates device server registration data\n */\nexport type DevicePushTokenRegistration = {\n isEnabled: boolean;\n};\n\n/**\n * Sets the registration information so that the device push token gets pushed\n * to the given registration endpoint\n * @param enabled\n */\nexport async function setAutoServerRegistrationEnabledAsync(enabled: boolean) {\n // We are overwriting registration, so we shouldn't let\n // any pending request complete.\n lastAbortController?.abort();\n\n if (!ServerRegistrationModule.setRegistrationInfoAsync) {\n throw new UnavailabilityError('ServerRegistrationModule', 'setRegistrationInfoAsync');\n }\n\n await ServerRegistrationModule.setRegistrationInfoAsync(\n enabled ? JSON.stringify({ isEnabled: enabled }) : null\n );\n}\n\n// note(Chmiela): This function is exported only for testing purposes.\nexport async function __handlePersistedRegistrationInfoAsync(\n registrationInfo: string | null | undefined\n) {\n if (!registrationInfo) {\n // No registration info, nothing to do\n return;\n }\n\n let registration: DevicePushTokenRegistration | null = null;\n try {\n registration = JSON.parse(registrationInfo);\n } catch (e) {\n console.warn(\n '[expo-notifications] Error encountered while fetching registration information for auto token updates.',\n e\n );\n }\n\n if (!registration?.isEnabled) {\n // Registration is invalid or not enabled, nothing more to do\n return;\n }\n\n try {\n // Since the registration is enabled, fetching a \"new\" device token\n // shouldn't be a problem.\n const latestDevicePushToken = await getDevicePushTokenAsync();\n await updatePushTokenAsync(latestDevicePushToken);\n } catch (e) {\n console.warn(\n '[expo-notifications] Error encountered while updating server registration with latest device push token.',\n e\n );\n }\n}\n\nif (ServerRegistrationModule.getRegistrationInfoAsync) {\n // A global scope (to get all the updates) device push token\n // subscription, never cleared.\n addPushTokenListener(async (token) => {\n try {\n // Before updating the push token on server we always check if we should\n // Since modules can't change their method availability while running, we\n // can assert it's defined.\n const registrationInfo = await ServerRegistrationModule.getRegistrationInfoAsync!();\n\n if (!registrationInfo) {\n // Registration is not enabled\n return;\n }\n\n const registration: DevicePushTokenRegistration | null = JSON.parse(registrationInfo);\n if (registration?.isEnabled) {\n // Dispatch an abortable task to update\n // registration with new token.\n await updatePushTokenAsync(token);\n }\n } catch (e) {\n console.warn(\n '[expo-notifications] Error encountered while updating server registration with latest device push token.',\n e\n );\n }\n });\n\n // Verify if persisted registration\n // has successfully uploaded last known\n // device push token. If not, retry.\n ServerRegistrationModule.getRegistrationInfoAsync().then(__handlePersistedRegistrationInfoAsync);\n} else {\n console.warn(\n `[expo-notifications] Error encountered while fetching auto-registration state, new tokens will not be automatically registered on server.`,\n new UnavailabilityError('ServerRegistrationModule', 'getRegistrationInfoAsync')\n );\n}\n","import * as Application from 'expo-application';\nimport Constants from 'expo-constants';\nimport { Platform, CodedError, UnavailabilityError } from 'expo-modules-core';\n\nimport { setAutoServerRegistrationEnabledAsync } from './DevicePushTokenAutoRegistration.fx';\nimport ServerRegistrationModule from './ServerRegistrationModule';\nimport { DevicePushToken, ExpoPushToken, ExpoPushTokenOptions } from './Tokens.types';\nimport getDevicePushTokenAsync from './getDevicePushTokenAsync';\n\nconst productionBaseUrl = 'https://exp.host/--/api/v2/';\n\n/**\n * Returns an Expo token that can be used to send a push notification to the device using Expo's push notifications service.\n *\n * This method makes requests to the Expo's servers. It can get rejected in cases where the request itself fails\n * (for example, due to the device being offline, experiencing a network timeout, or other HTTPS request failures).\n * To provide offline support to your users, you should `try/catch` this method and implement retry logic to attempt\n * to get the push token later, once the device is back online.\n *\n * > For Expo's backend to be able to send notifications to your app, you will need to provide it with push notification keys.\n * For more information, see [credentials](/push-notifications/push-notifications-setup/#get-credentials-for-development-builds) in the push notifications setup.\n *\n * @param options Object allowing you to pass in push notification configuration.\n * @return Returns a `Promise` that resolves to an object representing acquired push token.\n * @header fetch\n *\n * @example\n * ```ts\n * import * as Notifications from 'expo-notifications';\n *\n * export async function registerForPushNotificationsAsync(userId: string) {\n * const expoPushToken = await Notifications.getExpoPushTokenAsync({\n * projectId: 'your-project-id',\n * });\n *\n * await fetch('https://example.com/', {\n * method: 'POST',\n * headers: {\n * 'Content-Type': 'application/json',\n * },\n * body: JSON.stringify({\n * userId,\n * expoPushToken,\n * }),\n * });\n * }\n * ```\n */\nexport default async function getExpoPushTokenAsync(\n options: ExpoPushTokenOptions = {}\n): Promise {\n const devicePushToken = options.devicePushToken || (await getDevicePushTokenAsync());\n\n const deviceId = options.deviceId || (await getDeviceIdAsync());\n\n const experienceId =\n options.experienceId || Constants.expoConfig?.originalFullName || Constants.manifest?.id;\n\n const projectId =\n options.projectId ||\n Constants.expoConfig?.extra?.eas?.projectId ||\n Constants.manifest?.projectId;\n\n if (!projectId) {\n console.warn(\n 'Calling getExpoPushTokenAsync without specifying a projectId is deprecated and will no longer be supported in SDK 49+'\n );\n }\n\n if (!experienceId && !projectId) {\n throw new CodedError(\n 'ERR_NOTIFICATIONS_NO_EXPERIENCE_ID',\n \"No experienceId or projectId found. If one or the other can't be inferred from the manifest (eg. in bare workflow), you have to pass one in yourself.\"\n );\n }\n\n const applicationId = options.applicationId || Application.applicationId;\n if (!applicationId) {\n throw new CodedError(\n 'ERR_NOTIFICATIONS_NO_APPLICATION_ID',\n \"No applicationId found. If it can't be inferred from native configuration by expo-application, you have to pass it in yourself.\"\n );\n }\n const type = options.type || getTypeOfToken(devicePushToken);\n const development = options.development || (await shouldUseDevelopmentNotificationService());\n\n const baseUrl = options.baseUrl ?? productionBaseUrl;\n const url = options.url ?? `${baseUrl}push/getExpoPushToken`;\n\n const body = {\n type,\n deviceId: deviceId.toLowerCase(),\n development,\n appId: applicationId,\n deviceToken: getDeviceToken(devicePushToken),\n ...(projectId ? { projectId } : { experienceId }),\n };\n\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify(body),\n }).catch((error) => {\n throw new CodedError(\n 'ERR_NOTIFICATIONS_NETWORK_ERROR',\n `Error encountered while fetching Expo token: ${error}.`\n );\n });\n\n if (!response.ok) {\n const statusInfo = response.statusText || response.status;\n let body: string | undefined = undefined;\n try {\n body = await response.text();\n } catch {\n // do nothing\n }\n throw new CodedError(\n 'ERR_NOTIFICATIONS_SERVER_ERROR',\n `Error encountered while fetching Expo token, expected an OK response, received: ${statusInfo} (body: \"${body}\").`\n );\n }\n\n const expoPushToken = getExpoPushToken(await parseResponse(response));\n\n try {\n if (options.url || options.baseUrl) {\n console.debug(\n `[expo-notifications] Since the URL endpoint to register in has been customized in the options, expo-notifications won't try to auto-update the device push token on the server.`\n );\n } else {\n await setAutoServerRegistrationEnabledAsync(true);\n }\n } catch (e) {\n console.warn(\n '[expo-notifications] Could not enable automatically registering new device tokens with the Expo notification service',\n e\n );\n }\n\n return {\n type: 'expo',\n data: expoPushToken,\n };\n}\n\nasync function parseResponse(response: Response) {\n try {\n return await response.json();\n } catch {\n try {\n throw new CodedError(\n 'ERR_NOTIFICATIONS_SERVER_ERROR',\n `Expected a JSON response from server when fetching Expo token, received body: ${JSON.stringify(\n await response.text()\n )}.`\n );\n } catch {\n throw new CodedError(\n 'ERR_NOTIFICATIONS_SERVER_ERROR',\n `Expected a JSON response from server when fetching Expo token, received response: ${JSON.stringify(\n response\n )}.`\n );\n }\n }\n}\n\nfunction getExpoPushToken(data: any) {\n if (\n !data ||\n !(typeof data === 'object') ||\n !data.data ||\n !(typeof data.data === 'object') ||\n !data.data.expoPushToken ||\n !(typeof data.data.expoPushToken === 'string')\n ) {\n throw new CodedError(\n 'ERR_NOTIFICATIONS_SERVER_ERROR',\n `Malformed response from server, expected \"{ data: { expoPushToken: string } }\", received: ${JSON.stringify(\n data,\n null,\n 2\n )}.`\n );\n }\n\n return data.data.expoPushToken as string;\n}\n\n// Same as in DevicePushTokenAutoRegistration\nasync function getDeviceIdAsync() {\n try {\n if (!ServerRegistrationModule.getInstallationIdAsync) {\n throw new UnavailabilityError('ExpoServerRegistrationModule', 'getInstallationIdAsync');\n }\n\n return await ServerRegistrationModule.getInstallationIdAsync();\n } catch (e) {\n throw new CodedError(\n 'ERR_NOTIF_DEVICE_ID',\n `Could not have fetched installation ID of the application: ${e}.`\n );\n }\n}\n\nfunction getDeviceToken(devicePushToken: DevicePushToken) {\n if (typeof devicePushToken.data === 'string') {\n return devicePushToken.data;\n }\n\n return JSON.stringify(devicePushToken.data);\n}\n\n// Same as in DevicePushTokenAutoRegistration\nasync function shouldUseDevelopmentNotificationService() {\n if (Platform.OS === 'ios') {\n try {\n const notificationServiceEnvironment =\n await Application.getIosPushNotificationServiceEnvironmentAsync();\n if (notificationServiceEnvironment === 'development') {\n return true;\n }\n } catch {\n // We can't do anything here, we'll fallback to false then.\n }\n }\n\n return false;\n}\n\n// Same as in DevicePushTokenAutoRegistration\nfunction getTypeOfToken(devicePushToken: DevicePushToken) {\n switch (devicePushToken.type) {\n case 'ios':\n return 'apns';\n case 'android':\n return 'fcm';\n // This probably will error on server, but let's make this function future-safe.\n default:\n return devicePushToken.type;\n }\n}\n","import {\n PermissionResponse,\n PermissionStatus,\n PermissionExpiration,\n PermissionHookOptions,\n} from 'expo-modules-core';\nimport type { ViewProps } from 'react-native';\n\nexport enum CameraType {\n front = 'front',\n back = 'back',\n}\n\nexport enum FlashMode {\n on = 'on',\n off = 'off',\n auto = 'auto',\n torch = 'torch',\n}\n\nexport enum AutoFocus {\n on = 'on',\n off = 'off',\n /**\n * @platform web\n */\n auto = 'auto',\n /**\n * @platform web\n */\n singleShot = 'singleShot',\n}\n\nexport enum WhiteBalance {\n auto = 'auto',\n /**\n * @platform android\n * @platform ios\n */\n sunny = 'sunny',\n /**\n * @platform android\n * @platform ios\n */\n cloudy = 'cloudy',\n /**\n * @platform android\n * @platform ios\n */\n shadow = 'shadow',\n /**\n * @platform android\n * @platform ios\n */\n incandescent = 'incandescent',\n /**\n * @platform android\n * @platform ios\n */\n fluorescent = 'fluorescent',\n /**\n * @platform web\n */\n continuous = 'continuous',\n /**\n * @platform web\n */\n manual = 'manual',\n}\n\nexport enum ImageType {\n png = 'png',\n jpg = 'jpg',\n}\n\n/**\n * This option specifies what codec to use when recording a video.\n * @platform ios\n */\nexport enum VideoCodec {\n H264 = 'avc1',\n HEVC = 'hvc1',\n JPEG = 'jpeg',\n AppleProRes422 = 'apcn',\n AppleProRes4444 = 'ap4h',\n}\n\n/**\n * This option specifies the stabilization mode to use when recording a video.\n * @platform ios\n */\nexport enum VideoStabilization {\n off = 'off',\n standard = 'standard',\n cinematic = 'cinematic',\n auto = 'auto',\n}\n\n// @docsMissing\nexport enum VideoQuality {\n '2160p' = '2160p',\n '1080p' = '1080p',\n '720p' = '720p',\n '480p' = '480p',\n '4:3' = '4:3',\n}\n\nexport enum CameraOrientation {\n portrait = 1,\n portraitUpsideDown = 2,\n landscapeLeft = 3,\n landscapeRight = 4,\n}\n\n// @docsMissing\n/**\n * @hidden We do not expose related web methods in docs.\n * @platform web\n */\nexport type ImageSize = {\n width: number;\n height: number;\n};\n\n// @docsMissing\n/**\n * @hidden We do not expose related web methods in docs.\n * @platform web\n */\nexport type WebCameraSettings = {\n autoFocus?: string;\n flashMode?: string;\n whiteBalance?: string;\n exposureCompensation?: number;\n colorTemperature?: number;\n iso?: number;\n brightness?: number;\n contrast?: number;\n saturation?: number;\n sharpness?: number;\n focusDistance?: number;\n zoom?: number;\n};\n\n// @needsAudit\nexport type CameraCapturedPicture = {\n /**\n * Captured image width.\n */\n width: number;\n /**\n * Captured image height.\n */\n height: number;\n /**\n * On web, the value of `uri` is the same as `base64` because file system URLs are not supported in the browser.\n */\n uri: string;\n /**\n * A Base64 representation of the image.\n */\n base64?: string;\n /**\n * On Android and iOS this object may include various fields based on the device and operating system.\n * On web, it is a partial representation of the [`MediaTrackSettings`](https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackSettings) dictionary.\n */\n exif?: Partial | any;\n};\n\n// @needsAudit\nexport type CameraPictureOptions = {\n /**\n * Specify the quality of compression, from 0 to 1. 0 means compress for small size, 1 means compress for maximum quality.\n */\n quality?: number;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64?: boolean;\n /**\n * Whether to also include the EXIF data for the image.\n */\n exif?: boolean;\n /**\n * Additional EXIF data to be included for the image. Only useful when `exif` option is set to `true`.\n * @platform android\n * @platform ios\n */\n additionalExif?: { [name: string]: any };\n /**\n * A callback invoked when picture is saved. If set, the promise of this method will resolve immediately with no data after picture is captured.\n * The data that it should contain will be passed to this callback. If displaying or processing a captured photo right after taking it\n * is not your case, this callback lets you skip waiting for it to be saved.\n * @param picture\n */\n onPictureSaved?: (picture: CameraCapturedPicture) => void;\n // TODO(Bacon): Is it possible to implement this in the browser?\n /**\n * If set to `true`, camera skips orientation adjustment and returns an image straight from the device's camera.\n * If enabled, `quality` option is discarded (processing pipeline is skipped as a whole).\n * Although enabling this option reduces image delivery time significantly, it may cause the image to appear in a wrong orientation\n * in the `Image` component (at the time of writing, it does not respect EXIF orientation of the images).\n * > **Note**: Enabling `skipProcessing` would cause orientation uncertainty. `Image` component does not respect EXIF\n * > stored orientation information, that means obtained image would be displayed wrongly (rotated by 90°, 180° or 270°).\n * > Different devices provide different orientations. For example some Sony Xperia or Samsung devices don't provide\n * > correctly oriented images by default. To always obtain correctly oriented image disable `skipProcessing` option.\n */\n skipProcessing?: boolean;\n /**\n * @platform web\n */\n scale?: number;\n /**\n * @platform web\n */\n imageType?: ImageType;\n /**\n * @platform web\n */\n isImageMirror?: boolean;\n /**\n * @hidden\n */\n id?: number;\n /**\n * @hidden\n */\n fastMode?: boolean;\n /**\n * @hidden\n */\n maxDownsampling?: number;\n};\n\n// @needsAudit\nexport type CameraRecordingOptions = {\n /**\n * Maximum video duration in seconds.\n */\n maxDuration?: number;\n /**\n * Maximum video file size in bytes.\n */\n maxFileSize?: number;\n /**\n * Specify the quality of recorded video. Use one of [`VideoQuality.`](#videoquality).\n * Possible values: for 16:9 resolution `2160p`, `1080p`, `720p`, `480p` : `Android only` and for 4:3 `4:3` (the size is 640x480).\n * If the chosen quality is not available for a device, the highest available is chosen.\n */\n quality?: number | string;\n /**\n * If present, video will be recorded with no sound.\n */\n mute?: boolean;\n /**\n * If `true`, the recorded video will be flipped along the vertical axis. iOS flips videos recorded with the front camera by default,\n * but you can reverse that back by setting this to `true`. On Android, this is handled in the user's device settings.\n * @platform ios\n */\n mirror?: boolean;\n /**\n * Only works if `useCamera2Api` is set to `true`. This option specifies a desired video bitrate. For example, `5*1000*1000` would be 5Mbps.\n * @platform android\n */\n videoBitrate?: number;\n /**\n * This option specifies what codec to use when recording the video. See [`VideoCodec`](#videocodec) for the possible values.\n * @platform ios\n */\n codec?: VideoCodec;\n};\n\n/**\n * @hidden\n */\nexport type PictureSavedListener = (event: {\n nativeEvent: { data: CameraCapturedPicture; id: number };\n}) => void;\n\n/**\n * @hidden\n */\nexport type CameraReadyListener = () => void;\n\n/**\n * @hidden\n */\nexport type ResponsiveOrientationChangedListener = (event: {\n nativeEvent: ResponsiveOrientationChanged;\n}) => void;\n\nexport type ResponsiveOrientationChanged = { orientation: CameraOrientation };\n\n/**\n * @hidden\n */\nexport type MountErrorListener = (event: { nativeEvent: CameraMountError }) => void;\n\n// @docsMissing\nexport type CameraMountError = { message: string };\n\n// @docsMissing\nexport type Point = {\n x: number;\n y: number;\n};\n\nexport type BarCodeSize = {\n /**\n * The height value.\n */\n height: number;\n /**\n * The width value.\n */\n width: number;\n};\n\n/**\n * These coordinates are represented in the coordinate space of the camera source (e.g. when you\n * are using the camera view, these values are adjusted to the dimensions of the view).\n */\nexport type BarCodePoint = Point;\n\nexport type BarCodeBounds = {\n /**\n * The origin point of the bounding box.\n */\n origin: BarCodePoint;\n /**\n * The size of the bounding box.\n */\n size: BarCodeSize;\n};\n\n// @needsAudit\nexport type BarCodeScanningResult = {\n /**\n * The barcode type.\n */\n type: string;\n /**\n * The information encoded in the bar code.\n */\n data: string;\n /**\n * Corner points of the bounding box.\n * `cornerPoints` is not always available and may be empty. On iOS, for `code39` and `pdf417`\n * you don't get this value.\n */\n cornerPoints: BarCodePoint[];\n /**\n * The [BarCodeBounds](#barcodebounds) object.\n * `bounds` in some case will be representing an empty rectangle.\n * Moreover, `bounds` doesn't have to bound the whole barcode.\n * For some types, they will represent the area used by the scanner.\n */\n bounds: BarCodeBounds;\n};\n\nexport type FaceDetectionResult = {\n /**\n * Array of objects representing results of face detection.\n * See [`FaceFeature`](facedetector/#facefeature) in FaceDetector documentation for more details.\n */\n faces: object[];\n};\n\n/**\n * @hidden\n */\nexport type ConstantsType = {\n Type: CameraType;\n FlashMode: FlashMode;\n AutoFocus: AutoFocus;\n WhiteBalance: WhiteBalance;\n VideoQuality: VideoQuality;\n VideoStabilization: VideoStabilization;\n VideoCodec: VideoCodec;\n};\n\n// @needsAudit\nexport type CameraProps = ViewProps & {\n /**\n * Camera facing. Use one of `CameraType`. When `CameraType.front`, use the front-facing camera.\n * When `CameraType.back`, use the back-facing camera.\n * @default CameraType.back\n */\n type?: number | CameraType;\n /**\n * Camera flash mode. Use one of [`FlashMode.`](#flashmode-1). When `FlashMode.on`, the flash on your device will\n * turn on when taking a picture, when `FlashMode.off`, it won't. Setting to `FlashMode.auto` will fire flash if required,\n * `FlashMode.torch` turns on flash during the preview.\n * @default FlashMode.off\n */\n flashMode?: number | FlashMode;\n /**\n * Camera white balance. Use one of [`WhiteBalance.`](#whitebalance). If a device does not support any of these values previous one is used.\n * @default WhiteBalance.auto\n */\n whiteBalance?: number | WhiteBalance;\n /**\n * State of camera auto focus. Use one of [`AutoFocus.`](#autofocus-1). When `AutoFocus.on`,\n * auto focus will be enabled, when `AutoFocus.off`, it won't and focus will lock as it was in the moment of change,\n * but it can be adjusted on some devices via `focusDepth` prop.\n * @default AutoFocus.on\n */\n autoFocus?: boolean | number | AutoFocus;\n /**\n * A value between `0` and `1` being a percentage of device's max zoom. `0` - not zoomed, `1` - maximum zoom.\n * @default 0\n */\n zoom?: number;\n /**\n * A string representing aspect ratio of the preview, eg. `4:3`, `16:9`, `1:1`. To check if a ratio is supported\n * by the device use [`getSupportedRatiosAsync`](#getsupportedratiosasync).\n * @default 4:3\n * @platform android\n */\n ratio?: string;\n /**\n * Distance to plane of the sharpest focus. A value between `0` and `1` where: `0` - infinity focus, `1` - focus as close as possible.\n * For Android this is available only for some devices and when `useCamera2Api` is set to `true`.\n * @default 0\n */\n focusDepth?: number;\n /**\n * Callback invoked when camera preview has been set.\n */\n onCameraReady?: () => void;\n /**\n * Whether to use Android's Camera2 API. See `Note` at the top of this page.\n * @platform android\n */\n useCamera2Api?: boolean;\n /**\n * A string representing the size of pictures [`takePictureAsync`](#takepictureasyncoptions) will take.\n * Available sizes can be fetched with [`getAvailablePictureSizesAsync`](#getavailablepicturesizesasyncratio).\n */\n pictureSize?: string;\n /**\n * The video stabilization mode used for a video recording. Use one of [`VideoStabilization.`](#videostabilization).\n * You can read more about each stabilization type in [Apple Documentation](https://developer.apple.com/documentation/avfoundation/avcapturevideostabilizationmode).\n * @platform ios\n */\n videoStabilizationMode?: VideoStabilization;\n /**\n * Callback invoked when camera preview could not been started.\n * @param event Error object that contains a `message`.\n */\n onMountError?: (event: CameraMountError) => void;\n /**\n * Settings exposed by [`BarCodeScanner`](bar-code-scanner) module. Supported settings: **barCodeTypes**.\n * @example\n * ```tsx\n * \n * ```\n */\n barCodeScannerSettings?: BarCodeSettings;\n /**\n * Callback that is invoked when a bar code has been successfully scanned. The callback is provided with\n * an object of the [`BarCodeScanningResult`](#barcodescanningresult) shape, where the `type`\n * refers to the bar code type that was scanned and the `data` is the information encoded in the bar code\n * (in this case of QR codes, this is often a URL). See [`BarCodeScanner.Constants.BarCodeType`](bar-code-scanner#supported-formats)\n * for supported values.\n * @param scanningResult\n */\n onBarCodeScanned?: (scanningResult: BarCodeScanningResult) => void;\n /**\n * A settings object passed directly to an underlying module providing face detection features.\n * See [`DetectionOptions`](facedetector/#detectionoptions) in FaceDetector documentation for details.\n */\n faceDetectorSettings?: object;\n /**\n * Callback invoked with results of face detection on the preview.\n * See [`DetectionResult`](facedetector/#detectionresult) in FaceDetector documentation for more details.\n * @param faces\n */\n onFacesDetected?: (faces: FaceDetectionResult) => void;\n /**\n * A URL for an image to be shown while the camera is loading.\n * @platform web\n */\n poster?: string;\n /**\n * Whether to allow responsive orientation of the camera when the screen orientation is locked (i.e. when set to `true`\n * landscape photos will be taken if the device is turned that way, even if the app or device orientation is locked to portrait)\n * @platform ios\n */\n responsiveOrientationWhenOrientationLocked?: boolean;\n /**\n * Callback invoked when responsive orientation changes. Only applicable if `responsiveOrientationWhenOrientationLocked` is `true`\n * @param event result object that contains updated orientation of camera\n * @platform ios\n */\n onResponsiveOrientationChanged?: (event: ResponsiveOrientationChanged) => void;\n};\n\n/**\n * @hidden\n */\nexport type CameraNativeProps = {\n pointerEvents?: any;\n style?: any;\n ref?: Function;\n onCameraReady?: CameraReadyListener;\n onMountError?: MountErrorListener;\n onBarCodeScanned?: (event: { nativeEvent: BarCodeScanningResult }) => void;\n onFacesDetected?: (event: { nativeEvent: FaceDetectionResult }) => void;\n onFaceDetectionError?: (event: { nativeEvent: Error }) => void;\n onPictureSaved?: PictureSavedListener;\n onResponsiveOrientationChanged?: ResponsiveOrientationChangedListener;\n type?: number | string;\n flashMode?: number | string;\n autoFocus?: string | boolean | number;\n focusDepth?: number;\n zoom?: number;\n whiteBalance?: number | string;\n pictureSize?: string;\n barCodeScannerSettings?: BarCodeSettings;\n faceDetectorSettings?: object;\n barCodeScannerEnabled?: boolean;\n faceDetectorEnabled?: boolean;\n ratio?: string;\n useCamera2Api?: boolean;\n poster?: string;\n responsiveOrientationWhenOrientationLocked?: boolean;\n};\n\n// @docsMissing\nexport type BarCodeSettings = {\n barCodeTypes: string[];\n interval?: number;\n};\n\nexport { PermissionResponse, PermissionStatus, PermissionExpiration, PermissionHookOptions };\n","/* eslint-env browser */\n/**\n * A web-only module for ponyfilling the UserMedia API.\n */\nimport { Platform } from 'expo-modules-core';\n\nexport const userMediaRequested: boolean = false;\n\nexport const mountedInstances: any[] = [];\n\nasync function requestLegacyUserMediaAsync(props): Promise {\n const optionalSource = (id) => ({ optional: [{ sourceId: id }] });\n\n const constraintToSourceId = (constraint) => {\n const { deviceId } = constraint;\n\n if (typeof deviceId === 'string') {\n return deviceId;\n }\n\n if (Array.isArray(deviceId) && deviceId.length > 0) {\n return deviceId[0];\n }\n\n if (typeof deviceId === 'object' && deviceId.ideal) {\n return deviceId.ideal;\n }\n\n return null;\n };\n\n const sources: any[] = await new Promise((resolve) =>\n // @ts-ignore: https://caniuse.com/#search=getSources Chrome for Android (78) & Samsung Internet (10.1) use this\n MediaStreamTrack.getSources((sources) => resolve(sources))\n );\n\n let audioSource = null;\n let videoSource = null;\n\n sources.forEach((source) => {\n if (source.kind === 'audio') {\n audioSource = source.id;\n } else if (source.kind === 'video') {\n videoSource = source.id;\n }\n });\n\n const audioSourceId = constraintToSourceId(props.audioConstraints);\n if (audioSourceId) {\n audioSource = audioSourceId;\n }\n\n const videoSourceId = constraintToSourceId(props.videoConstraints);\n if (videoSourceId) {\n videoSource = videoSourceId;\n }\n\n return [optionalSource(audioSource), optionalSource(videoSource)];\n}\n\nasync function sourceSelectedAsync(\n isMuted: boolean,\n audioConstraints?: MediaTrackConstraints | boolean,\n videoConstraints?: MediaTrackConstraints | boolean\n): Promise {\n const constraints: MediaStreamConstraints = {\n video: typeof videoConstraints !== 'undefined' ? videoConstraints : true,\n };\n\n if (!isMuted) {\n constraints.audio = typeof audioConstraints !== 'undefined' ? audioConstraints : true;\n }\n\n return await getAnyUserMediaAsync(constraints);\n}\n\nexport async function requestUserMediaAsync(\n props: { audio?: any; video?: any },\n isMuted: boolean = true\n): Promise {\n if (canGetUserMedia()) {\n return await sourceSelectedAsync(isMuted, props.audio, props.video);\n }\n const [audio, video] = await requestLegacyUserMediaAsync(props);\n return await sourceSelectedAsync(isMuted, audio, video);\n}\n\nexport async function getAnyUserMediaAsync(\n constraints: MediaStreamConstraints,\n ignoreConstraints: boolean = false\n): Promise {\n try {\n return await getUserMediaAsync({\n ...constraints,\n video: ignoreConstraints || constraints.video,\n });\n } catch (error) {\n if (!ignoreConstraints && error.name === 'ConstraintNotSatisfiedError') {\n return await getAnyUserMediaAsync(constraints, true);\n }\n throw error;\n }\n}\n\nexport async function getUserMediaAsync(constraints: MediaStreamConstraints): Promise {\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n return navigator.mediaDevices.getUserMedia(constraints);\n }\n\n const _getUserMedia =\n navigator['mozGetUserMedia'] || navigator['webkitGetUserMedia'] || navigator['msGetUserMedia'];\n return new Promise((resolve, reject) =>\n _getUserMedia.call(navigator, constraints, resolve, reject)\n );\n}\n\nexport function canGetUserMedia(): boolean {\n return (\n // SSR\n Platform.isDOMAvailable &&\n // Has any form of media API\n !!(\n (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) ||\n navigator['mozGetUserMedia'] ||\n navigator['webkitGetUserMedia'] ||\n navigator['msGetUserMedia']\n )\n );\n}\n\nexport async function isFrontCameraAvailableAsync(\n devices?: MediaDeviceInfo[]\n): Promise {\n return await supportsCameraType(['front', 'user', 'facetime'], 'user', devices);\n}\n\nexport async function isBackCameraAvailableAsync(\n devices?: MediaDeviceInfo[]\n): Promise {\n return await supportsCameraType(['back', 'rear'], 'environment', devices);\n}\n\nasync function supportsCameraType(\n labels: string[],\n type: string,\n devices?: MediaDeviceInfo[]\n): Promise {\n if (!devices) {\n if (!navigator.mediaDevices.enumerateDevices) {\n return null;\n }\n devices = await navigator.mediaDevices.enumerateDevices();\n }\n const cameras = devices.filter((t) => t.kind === 'videoinput');\n const [hasCamera] = cameras.filter((camera) =>\n labels.some((label) => camera.label.toLowerCase().includes(label))\n );\n const [isCapable] = cameras.filter((camera) => {\n if (!('getCapabilities' in camera)) {\n return null;\n }\n\n const capabilities = (camera as any).getCapabilities();\n if (!capabilities.facingMode) {\n return null;\n }\n\n return capabilities.facingMode.find((_: string) => type);\n });\n\n return isCapable?.deviceId || hasCamera?.deviceId || null;\n}\n","import { UnavailabilityError } from 'expo-modules-core';\n\nimport {\n CameraCapturedPicture,\n CameraPictureOptions,\n CameraType,\n PermissionResponse,\n PermissionStatus,\n} from './Camera.types';\nimport { ExponentCameraRef } from './ExponentCamera.web';\nimport {\n canGetUserMedia,\n isBackCameraAvailableAsync,\n isFrontCameraAvailableAsync,\n} from './WebUserMediaManager';\n\nfunction getUserMedia(constraints: MediaStreamConstraints): Promise {\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n return navigator.mediaDevices.getUserMedia(constraints);\n }\n\n // Some browsers partially implement mediaDevices. We can't just assign an object\n // with getUserMedia as it would overwrite existing properties.\n // Here, we will just add the getUserMedia property if it's missing.\n\n // First get ahold of the legacy getUserMedia, if present\n const getUserMedia =\n // TODO: this method is deprecated, migrate to https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia\n navigator.getUserMedia ||\n navigator.webkitGetUserMedia ||\n navigator.mozGetUserMedia ||\n function () {\n const error: any = new Error('Permission unimplemented');\n error.code = 0;\n error.name = 'NotAllowedError';\n throw error;\n };\n\n return new Promise((resolve, reject) => {\n getUserMedia.call(navigator, constraints, resolve, reject);\n });\n}\n\nfunction handleGetUserMediaError({ message }: { message: string }): PermissionResponse {\n // name: NotAllowedError\n // code: 0\n if (message === 'Permission dismissed') {\n return {\n status: PermissionStatus.UNDETERMINED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n } else {\n // TODO: Bacon: [OSX] The system could deny access to chrome.\n // TODO: Bacon: add: { status: 'unimplemented' }\n return {\n status: PermissionStatus.DENIED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n }\n}\n\nasync function handleRequestPermissionsAsync(): Promise {\n try {\n await getUserMedia({\n video: true,\n });\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n } catch ({ message }) {\n return handleGetUserMediaError({ message });\n }\n}\n\nasync function handlePermissionsQueryAsync(\n query: 'camera' | 'microphone'\n): Promise {\n if (!navigator?.permissions?.query) {\n throw new UnavailabilityError('expo-camera', 'navigator.permissions API is not available');\n }\n\n try {\n const { state } = await navigator.permissions.query({ name: query });\n switch (state) {\n case 'prompt':\n return {\n status: PermissionStatus.UNDETERMINED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n case 'granted':\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n case 'denied':\n return {\n status: PermissionStatus.DENIED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n }\n } catch (e) {\n // Firefox doesn't support querying for the camera permission, so return undetermined status\n if (e instanceof TypeError) {\n return {\n status: PermissionStatus.UNDETERMINED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n }\n throw e;\n }\n}\n\nexport default {\n get name(): string {\n return 'ExponentCameraManager';\n },\n get Type() {\n return {\n back: 'back',\n front: 'front',\n };\n },\n get FlashMode() {\n return {\n on: 'on',\n off: 'off',\n auto: 'auto',\n torch: 'torch',\n };\n },\n get AutoFocus() {\n return {\n on: 'on',\n off: 'off',\n auto: 'auto',\n singleShot: 'singleShot',\n };\n },\n get WhiteBalance() {\n return {\n auto: 'auto',\n continuous: 'continuous',\n manual: 'manual',\n };\n },\n get VideoQuality() {\n return {};\n },\n get VideoStabilization() {\n return {};\n },\n async isAvailableAsync(): Promise {\n return canGetUserMedia();\n },\n async takePicture(\n options: CameraPictureOptions,\n camera: ExponentCameraRef\n ): Promise {\n return await camera.takePicture(options);\n },\n async pausePreview(camera: ExponentCameraRef): Promise {\n await camera.pausePreview();\n },\n async resumePreview(camera: ExponentCameraRef): Promise {\n return await camera.resumePreview();\n },\n async getAvailableCameraTypesAsync(): Promise {\n if (!canGetUserMedia() || !navigator.mediaDevices.enumerateDevices) return [];\n\n const devices = await navigator.mediaDevices.enumerateDevices();\n\n const types: (string | null)[] = await Promise.all([\n (await isFrontCameraAvailableAsync(devices)) && CameraType.front,\n (await isBackCameraAvailableAsync()) && CameraType.back,\n ]);\n\n return types.filter(Boolean) as string[];\n },\n async getAvailablePictureSizes(ratio: string, camera: ExponentCameraRef): Promise {\n return await camera.getAvailablePictureSizes(ratio);\n },\n /* async getSupportedRatios(camera: ExponentCameraRef): Promise {\n // TODO: Support on web\n },\n async record(\n options?: CameraRecordingOptions,\n camera: ExponentCameraRef\n ): Promise<{ uri: string }> {\n // TODO: Support on web\n },\n async stopRecording(camera: ExponentCameraRef): Promise {\n // TODO: Support on web\n }, */\n async getPermissionsAsync(): Promise {\n return handlePermissionsQueryAsync('camera');\n },\n async requestPermissionsAsync(): Promise {\n return handleRequestPermissionsAsync();\n },\n async getCameraPermissionsAsync(): Promise {\n return handlePermissionsQueryAsync('camera');\n },\n async requestCameraPermissionsAsync(): Promise {\n return handleRequestPermissionsAsync();\n },\n async getMicrophonePermissionsAsync(): Promise {\n return handlePermissionsQueryAsync('microphone');\n },\n async requestMicrophonePermissionsAsync(): Promise {\n try {\n await getUserMedia({\n audio: true,\n });\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n } catch ({ message }) {\n return handleGetUserMediaError({ message });\n }\n },\n};\n","/*\n * Native web camera (Android) has a torch: boolean\n */\nexport function convertFlashModeJSONToNative(input: string): boolean {\n switch (input) {\n case 'torch':\n return true;\n case 'on':\n case 'off':\n case 'auto':\n default:\n return false;\n }\n}\n\nexport function convertWhiteBalanceJSONToNative(input: string): MeteringMode | undefined {\n switch (input) {\n case 'on':\n case 'auto':\n return 'continuous';\n case 'off':\n return 'none';\n case 'singleShot':\n return 'single-shot';\n default:\n return undefined;\n }\n}\n\nexport function convertAutoFocusJSONToNative(input: string): MeteringMode | undefined {\n switch (input) {\n case 'on':\n case 'auto':\n return 'continuous';\n case 'off':\n return 'manual';\n case 'singleShot':\n return 'single-shot';\n default:\n return undefined;\n }\n}\n","import { CameraType, ImageType } from './Camera.types';\n\n// https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints/aspectRatio\nexport const VIDEO_ASPECT_RATIOS = {\n '3840x2160': 3840 / 2160,\n '1920x1080': 1920 / 1080,\n '1280x720': 1280 / 720,\n '640x480': 640 / 480,\n '352x288': 352 / 288,\n};\n\nexport const PictureSizes = Object.keys(VIDEO_ASPECT_RATIOS);\n\nexport const ImageTypeFormat = {\n [ImageType.jpg]: 'image/jpeg',\n [ImageType.png]: 'image/png',\n};\n\nexport const MinimumConstraints: MediaStreamConstraints = {\n audio: false,\n video: true,\n};\n\nexport const CameraTypeToFacingMode = {\n [CameraType.front]: 'user',\n [CameraType.back]: 'environment',\n};\n\nexport const FacingModeToCameraType = {\n user: CameraType.front,\n environment: CameraType.back,\n};\n","/* eslint-env browser */\nimport invariant from 'invariant';\n\nimport {\n CameraType,\n CameraCapturedPicture,\n ImageSize,\n ImageType,\n WebCameraSettings,\n CameraPictureOptions,\n} from './Camera.types';\nimport * as CapabilityUtils from './WebCapabilityUtils';\nimport { CameraTypeToFacingMode, ImageTypeFormat, MinimumConstraints } from './WebConstants';\nimport { requestUserMediaAsync } from './WebUserMediaManager';\n\ninterface ConstrainLongRange {\n max?: number;\n min?: number;\n exact?: number;\n ideal?: number;\n}\n\nexport function getImageSize(videoWidth: number, videoHeight: number, scale: number): ImageSize {\n const width = videoWidth * scale;\n const ratio = videoWidth / width;\n const height = videoHeight / ratio;\n\n return {\n width,\n height,\n };\n}\n\nexport function toDataURL(\n canvas: HTMLCanvasElement,\n imageType: ImageType,\n quality: number\n): string {\n invariant(\n Object.values(ImageType).includes(imageType),\n `expo-camera: ${imageType} is not a valid ImageType. Expected a string from: ${Object.values(\n ImageType\n ).join(', ')}`\n );\n\n const format = ImageTypeFormat[imageType];\n if (imageType === ImageType.jpg) {\n invariant(\n quality <= 1 && quality >= 0,\n `expo-camera: ${quality} is not a valid image quality. Expected a number from 0...1`\n );\n return canvas.toDataURL(format, quality);\n } else {\n return canvas.toDataURL(format);\n }\n}\n\nexport function hasValidConstraints(\n preferredCameraType?: CameraType,\n width?: number | ConstrainLongRange,\n height?: number | ConstrainLongRange\n): boolean {\n return preferredCameraType !== undefined && width !== undefined && height !== undefined;\n}\n\nfunction ensureCameraPictureOptions(config: CameraPictureOptions): CameraPictureOptions {\n const captureOptions = {\n scale: 1,\n imageType: ImageType.png,\n isImageMirror: false,\n };\n\n for (const key in config) {\n if (key in config && config[key] !== undefined && key in captureOptions) {\n captureOptions[key] = config[key];\n }\n }\n return captureOptions;\n}\n\nconst DEFAULT_QUALITY = 0.92;\n\nexport function captureImageData(\n video: HTMLVideoElement | null,\n pictureOptions: Pick = {}\n): ImageData | null {\n if (!video || video.readyState !== video.HAVE_ENOUGH_DATA) {\n return null;\n }\n const canvas = captureImageContext(video, pictureOptions);\n\n const context = canvas.getContext('2d', { alpha: false });\n if (!context || !canvas.width || !canvas.height) {\n return null;\n }\n\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\n return imageData;\n}\n\nexport function captureImageContext(\n video: HTMLVideoElement,\n { scale = 1, isImageMirror = false }: Pick\n): HTMLCanvasElement {\n const { videoWidth, videoHeight } = video;\n const { width, height } = getImageSize(videoWidth, videoHeight, scale!);\n\n // Build the canvas size and draw the camera image to the context from video\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const context = canvas.getContext('2d', { alpha: false });\n\n if (!context) {\n // Should never be called\n throw new Error('Context is not defined');\n }\n // sharp image details\n // context.imageSmoothingEnabled = false;\n\n // Flip horizontally (as css transform: rotateY(180deg))\n if (isImageMirror) {\n context.setTransform(-1, 0, 0, 1, canvas.width, 0);\n }\n\n context.drawImage(video, 0, 0, width, height);\n\n return canvas;\n}\n\nexport function captureImage(\n video: HTMLVideoElement,\n pictureOptions: CameraPictureOptions\n): string {\n const config = ensureCameraPictureOptions(pictureOptions);\n const canvas = captureImageContext(video, config);\n const { imageType, quality = DEFAULT_QUALITY } = config;\n return toDataURL(canvas, imageType!, quality);\n}\n\nfunction getSupportedConstraints(): MediaTrackSupportedConstraints | null {\n if (navigator.mediaDevices && navigator.mediaDevices.getSupportedConstraints) {\n return navigator.mediaDevices.getSupportedConstraints();\n }\n return null;\n}\n\nexport function getIdealConstraints(\n preferredCameraType: CameraType,\n width?: number | ConstrainLongRange,\n height?: number | ConstrainLongRange\n): MediaStreamConstraints {\n const preferredConstraints: MediaStreamConstraints = {\n audio: false,\n video: {},\n };\n\n if (hasValidConstraints(preferredCameraType, width, height)) {\n return MinimumConstraints;\n }\n\n const supports = getSupportedConstraints();\n // TODO(Bacon): Test this\n if (!supports || !supports.facingMode || !supports.width || !supports.height) {\n return MinimumConstraints;\n }\n\n if (preferredCameraType && Object.values(CameraType).includes(preferredCameraType)) {\n const facingMode = CameraTypeToFacingMode[preferredCameraType];\n if (isWebKit()) {\n const key = facingMode === 'user' ? 'exact' : 'ideal';\n (preferredConstraints.video as MediaTrackConstraints).facingMode = {\n [key]: facingMode,\n };\n } else {\n (preferredConstraints.video as MediaTrackConstraints).facingMode = {\n ideal: CameraTypeToFacingMode[preferredCameraType],\n };\n }\n }\n\n if (isMediaTrackConstraints(preferredConstraints.video)) {\n preferredConstraints.video.width = width;\n preferredConstraints.video.height = height;\n }\n\n return preferredConstraints;\n}\n\nfunction isMediaTrackConstraints(input: any): input is MediaTrackConstraints {\n return input && typeof input.video !== 'boolean';\n}\n\n/**\n * Invoke getStreamDevice a second time with the opposing camera type if the preferred type cannot be retrieved.\n *\n * @param preferredCameraType\n * @param preferredWidth\n * @param preferredHeight\n */\nexport async function getPreferredStreamDevice(\n preferredCameraType: CameraType,\n preferredWidth?: number | ConstrainLongRange,\n preferredHeight?: number | ConstrainLongRange\n): Promise {\n try {\n return await getStreamDevice(preferredCameraType, preferredWidth, preferredHeight);\n } catch (error) {\n // A hack on desktop browsers to ensure any camera is used.\n // eslint-disable-next-line no-undef\n if (error instanceof OverconstrainedError && error.constraint === 'facingMode') {\n const nextCameraType =\n preferredCameraType === CameraType.back ? CameraType.front : CameraType.back;\n return await getStreamDevice(nextCameraType, preferredWidth, preferredHeight);\n }\n throw error;\n }\n}\n\nexport async function getStreamDevice(\n preferredCameraType: CameraType,\n preferredWidth?: number | ConstrainLongRange,\n preferredHeight?: number | ConstrainLongRange\n): Promise {\n const constraints: MediaStreamConstraints = getIdealConstraints(\n preferredCameraType,\n preferredWidth,\n preferredHeight\n );\n const stream: MediaStream = await requestUserMediaAsync(constraints);\n return stream;\n}\n\nexport function isWebKit(): boolean {\n return /WebKit/.test(navigator.userAgent) && !/Edg/.test(navigator.userAgent);\n}\n\nexport function compareStreams(a: MediaStream | null, b: MediaStream | null): boolean {\n if (!a || !b) {\n return false;\n }\n const settingsA = a.getTracks()[0].getSettings();\n const settingsB = b.getTracks()[0].getSettings();\n return settingsA.deviceId === settingsB.deviceId;\n}\n\nexport function capture(\n video: HTMLVideoElement,\n settings: MediaTrackSettings,\n config: CameraPictureOptions\n): CameraCapturedPicture {\n const base64 = captureImage(video, config);\n\n const capturedPicture: CameraCapturedPicture = {\n uri: base64,\n base64,\n width: 0,\n height: 0,\n };\n\n if (settings) {\n const { width = 0, height = 0 } = settings;\n capturedPicture.width = width;\n capturedPicture.height = height;\n capturedPicture.exif = settings;\n }\n\n if (config.onPictureSaved) {\n config.onPictureSaved(capturedPicture);\n }\n return capturedPicture;\n}\n\nexport async function syncTrackCapabilities(\n cameraType: CameraType,\n stream: MediaStream | null,\n settings: WebCameraSettings = {}\n): Promise {\n if (stream?.getVideoTracks) {\n await Promise.all(\n stream.getVideoTracks().map((track) => onCapabilitiesReady(cameraType, track, settings))\n );\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints\nasync function onCapabilitiesReady(\n cameraType: CameraType,\n track: MediaStreamTrack,\n settings: WebCameraSettings = {}\n): Promise {\n const capabilities = track.getCapabilities();\n\n // Create an empty object because if you set a constraint that isn't available an error will be thrown.\n const constraints: MediaTrackConstraintSet = {};\n\n // TODO(Bacon): Add `pointsOfInterest` support\n const clampedValues = [\n 'exposureCompensation',\n 'colorTemperature',\n 'iso',\n 'brightness',\n 'contrast',\n 'saturation',\n 'sharpness',\n 'focusDistance',\n 'zoom',\n ];\n\n for (const property of clampedValues) {\n if (capabilities[property]) {\n constraints[property] = convertNormalizedSetting(capabilities[property], settings[property]);\n }\n }\n\n function validatedInternalConstrainedValue(\n constraintKey: string,\n settingsKey: string,\n converter: (settingValue: any) => IConvertedType\n ) {\n const convertedSetting = converter(settings[settingsKey]);\n return validatedConstrainedValue({\n constraintKey,\n settingsKey,\n convertedSetting,\n capabilities,\n settings,\n cameraType,\n });\n }\n\n if (capabilities.focusMode && settings.autoFocus !== undefined) {\n constraints.focusMode = validatedInternalConstrainedValue(\n 'focusMode',\n 'autoFocus',\n CapabilityUtils.convertAutoFocusJSONToNative\n );\n }\n\n if (capabilities.torch && settings.flashMode !== undefined) {\n constraints.torch = validatedInternalConstrainedValue(\n 'torch',\n 'flashMode',\n CapabilityUtils.convertFlashModeJSONToNative\n );\n }\n\n if (capabilities.whiteBalanceMode && settings.whiteBalance !== undefined) {\n constraints.whiteBalanceMode = validatedInternalConstrainedValue<\n MediaTrackConstraintSet['whiteBalanceMode']\n >('whiteBalanceMode', 'whiteBalance', CapabilityUtils.convertWhiteBalanceJSONToNative);\n }\n\n try {\n await track.applyConstraints({ advanced: [constraints] });\n } catch (error) {\n if (__DEV__) console.warn('Failed to apply constraints', error);\n }\n}\n\nexport function stopMediaStream(stream: MediaStream | null) {\n if (!stream) {\n return;\n }\n if (stream.getAudioTracks) {\n stream.getAudioTracks().forEach((track) => track.stop());\n }\n if (stream.getVideoTracks) {\n stream.getVideoTracks().forEach((track) => track.stop());\n }\n if (isMediaStreamTrack(stream)) {\n stream.stop();\n }\n}\n\nexport function setVideoSource(\n video: HTMLVideoElement,\n stream: MediaStream | MediaSource | Blob | null\n): void {\n const createObjectURL = window.URL.createObjectURL ?? window.webkitURL.createObjectURL;\n\n if (typeof video.srcObject !== 'undefined') {\n video.srcObject = stream;\n } else if (typeof (video as any).mozSrcObject !== 'undefined') {\n (video as any).mozSrcObject = stream;\n } else if (stream && createObjectURL) {\n video.src = createObjectURL(stream as MediaSource | Blob);\n }\n\n if (!stream) {\n const revokeObjectURL = window.URL.revokeObjectURL ?? window.webkitURL.revokeObjectURL;\n const source = video.src ?? video.srcObject ?? (video as any).mozSrcObject;\n if (revokeObjectURL && typeof source === 'string') {\n revokeObjectURL(source);\n }\n }\n}\n\nexport function isCapabilityAvailable(video: HTMLVideoElement, keyName: string): boolean {\n const stream = video.srcObject;\n\n if (stream instanceof MediaStream) {\n const videoTrack = stream.getVideoTracks()[0];\n return videoTrack.getCapabilities?.()?.[keyName];\n }\n\n return false;\n}\n\nfunction isMediaStreamTrack(input: any): input is MediaStreamTrack {\n return typeof input.stop === 'function';\n}\n\nfunction convertNormalizedSetting(range: MediaSettingsRange, value?: number): number | undefined {\n if (!value) {\n return;\n }\n // convert the normalized incoming setting to the native camera zoom range\n const converted = convertRange(value, [range.min, range.max]);\n // clamp value so we don't get an error\n return Math.min(range.max, Math.max(range.min, converted));\n}\n\nfunction convertRange(value: number, r2: number[], r1: number[] = [0, 1]): number {\n return ((value - r1[0]) * (r2[1] - r2[0])) / (r1[1] - r1[0]) + r2[0];\n}\n\nfunction validatedConstrainedValue(props: {\n constraintKey: string;\n settingsKey: string;\n convertedSetting: T;\n capabilities: MediaTrackCapabilities;\n settings: WebCameraSettings;\n cameraType: string;\n}): T | undefined {\n const { constraintKey, settingsKey, convertedSetting, capabilities, settings, cameraType } =\n props;\n const setting = settings[settingsKey];\n if (\n Array.isArray(capabilities[constraintKey]) &&\n convertedSetting &&\n !capabilities[constraintKey].includes(convertedSetting)\n ) {\n if (__DEV__) {\n // Only warn in dev mode.\n console.warn(\n ` { ${settingsKey}: \"${setting}\" } (converted to \"${convertedSetting}\" in the browser) is not supported for camera type \"${cameraType}\" in your browser. Using the default value instead.`\n );\n }\n return undefined;\n }\n return convertedSetting;\n}\n","/* eslint-env browser */\nimport * as React from 'react';\n\nimport {\n CameraReadyListener,\n CameraType,\n MountErrorListener,\n WebCameraSettings,\n} from './Camera.types';\nimport * as Utils from './WebCameraUtils';\nimport { FacingModeToCameraType } from './WebConstants';\n\nconst VALID_SETTINGS_KEYS = [\n 'autoFocus',\n 'flashMode',\n 'exposureCompensation',\n 'colorTemperature',\n 'iso',\n 'brightness',\n 'contrast',\n 'saturation',\n 'sharpness',\n 'focusDistance',\n 'whiteBalance',\n 'zoom',\n];\n\nfunction useLoadedVideo(video: HTMLVideoElement | null, onLoaded: () => void) {\n React.useEffect(() => {\n if (video) {\n video.addEventListener('loadedmetadata', () => {\n // without this async block the constraints aren't properly applied to the camera,\n // this means that if you were to turn on the torch and swap to the front camera,\n // then swap back to the rear camera the torch setting wouldn't be applied.\n requestAnimationFrame(() => {\n onLoaded();\n });\n });\n }\n }, [video]);\n}\n\nexport function useWebCameraStream(\n video: React.MutableRefObject,\n preferredType: CameraType,\n settings: Record,\n {\n onCameraReady,\n onMountError,\n }: { onCameraReady?: CameraReadyListener; onMountError?: MountErrorListener }\n): {\n type: CameraType | null;\n mediaTrackSettings: MediaTrackSettings | null;\n} {\n const isStartingCamera = React.useRef(false);\n const activeStreams = React.useRef([]);\n const capabilities = React.useRef({\n autoFocus: 'continuous',\n flashMode: 'off',\n whiteBalance: 'continuous',\n zoom: 1,\n });\n const [stream, setStream] = React.useState(null);\n\n const mediaTrackSettings = React.useMemo(() => {\n return stream ? stream.getTracks()[0].getSettings() : null;\n }, [stream]);\n\n // The actual camera type - this can be different from the incoming camera type.\n const type = React.useMemo(() => {\n if (!mediaTrackSettings) {\n return null;\n }\n // On desktop no value will be returned, in this case we should assume the cameraType is 'front'\n const { facingMode = 'user' } = mediaTrackSettings;\n return FacingModeToCameraType[facingMode];\n }, [mediaTrackSettings]);\n\n const getStreamDeviceAsync = React.useCallback(async (): Promise => {\n try {\n return await Utils.getPreferredStreamDevice(preferredType);\n } catch (nativeEvent) {\n if (__DEV__) {\n console.warn(`Error requesting UserMedia for type \"${preferredType}\":`, nativeEvent);\n }\n if (onMountError) {\n onMountError({ nativeEvent });\n }\n return null;\n }\n }, [preferredType, onMountError]);\n\n const resumeAsync = React.useCallback(async (): Promise => {\n const nextStream = await getStreamDeviceAsync();\n if (Utils.compareStreams(nextStream, stream)) {\n // Do nothing if the streams are the same.\n // This happens when the device only supports one camera (i.e. desktop) and the mode was toggled between front/back while already active.\n // Without this check there is a screen flash while the video switches.\n return false;\n }\n\n // Save a history of all active streams (usually 2+) so we can close them later.\n // Keeping them open makes swapping camera types much faster.\n if (!activeStreams.current.some((value) => value.id === nextStream?.id)) {\n activeStreams.current.push(nextStream!);\n }\n\n // Set the new stream -> update the video, settings, and actual camera type.\n setStream(nextStream);\n if (onCameraReady) {\n onCameraReady();\n }\n return false;\n }, [getStreamDeviceAsync, setStream, onCameraReady, stream, activeStreams.current]);\n\n React.useEffect(() => {\n // Restart the camera and guard concurrent actions.\n if (isStartingCamera.current) {\n return;\n }\n isStartingCamera.current = true;\n\n resumeAsync()\n .then((isStarting) => {\n isStartingCamera.current = isStarting;\n })\n .catch(() => {\n // ensure the camera can be started again.\n isStartingCamera.current = false;\n });\n }, [preferredType]);\n\n // Update the native camera with any custom capabilities.\n React.useEffect(() => {\n const changes: WebCameraSettings = {};\n\n for (const key of Object.keys(settings)) {\n if (!VALID_SETTINGS_KEYS.includes(key)) {\n continue;\n }\n const nextValue = settings[key];\n if (nextValue !== capabilities.current[key]) {\n changes[key] = nextValue;\n }\n }\n\n // Only update the native camera if changes were found\n const hasChanges = !!Object.keys(changes).length;\n\n const nextWebCameraSettings = { ...capabilities.current, ...changes };\n if (hasChanges) {\n Utils.syncTrackCapabilities(preferredType, stream, changes);\n }\n\n capabilities.current = nextWebCameraSettings;\n }, [\n settings.autoFocus,\n settings.flashMode,\n settings.exposureCompensation,\n settings.colorTemperature,\n settings.iso,\n settings.brightness,\n settings.contrast,\n settings.saturation,\n settings.sharpness,\n settings.focusDistance,\n settings.whiteBalance,\n settings.zoom,\n ]);\n\n React.useEffect(() => {\n // set or unset the video source.\n if (!video.current) {\n return;\n }\n Utils.setVideoSource(video.current, stream);\n }, [video.current, stream]);\n\n React.useEffect(() => {\n return () => {\n // Clean up on dismount, this is important for making sure the camera light goes off when the component is removed.\n for (const stream of activeStreams.current) {\n // Close all open streams.\n Utils.stopMediaStream(stream);\n }\n if (video.current) {\n // Invalidate the video source.\n Utils.setVideoSource(video.current, stream);\n }\n };\n }, []);\n\n // Update props when the video loads.\n useLoadedVideo(video.current, () => {\n Utils.syncTrackCapabilities(preferredType, stream, capabilities.current);\n });\n\n return {\n type,\n mediaTrackSettings,\n };\n}\n","import * as React from 'react';\n\nimport { BarCodeScanningResult, CameraPictureOptions, MountErrorListener } from './Camera.types';\nimport { captureImageData } from './WebCameraUtils';\n\nconst qrWorkerMethod = ({ data, width, height }: ImageData): any => {\n // eslint-disable-next-line no-undef\n const decoded = (self as any).jsQR(data, width, height, {\n inversionAttempts: 'attemptBoth',\n });\n\n let parsed;\n try {\n parsed = JSON.parse(decoded);\n } catch {\n parsed = decoded;\n }\n\n if (parsed?.data) {\n const nativeEvent: BarCodeScanningResult = {\n type: 'qr',\n data: parsed.data,\n cornerPoints: [],\n bounds: { origin: { x: 0, y: 0 }, size: { width: 0, height: 0 } },\n };\n if (parsed.location) {\n nativeEvent.cornerPoints = [\n parsed.location.topLeftCorner,\n parsed.location.bottomLeftCorner,\n parsed.location.topRightCorner,\n parsed.location.bottomRightCorner,\n ];\n }\n return nativeEvent;\n }\n return parsed;\n};\n\nconst createWorkerAsyncFunction = any>(fn: T, deps: string[]) => {\n const stringifiedFn = [\n `self.func = ${fn.toString()};`,\n 'self.onmessage = (e) => {',\n ' const result = self.func(e.data);',\n ' self.postMessage(result);',\n '};',\n ];\n\n if (deps.length > 0) {\n stringifiedFn.unshift(`importScripts(${deps.map((dep) => `'${dep}'`).join(', ')});`);\n }\n\n const blob = new Blob(stringifiedFn, { type: 'text/javascript' });\n const worker = new Worker(URL.createObjectURL(blob));\n\n // First-In First-Out queue of promises\n const promises: {\n resolve: (value: ReturnType) => void;\n reject: (reason?: any) => void;\n }[] = [];\n\n worker.onmessage = (e) => promises.shift()?.resolve(e.data);\n\n return (data: Parameters[0]) => {\n return new Promise>((resolve, reject) => {\n promises.push({ resolve, reject });\n worker.postMessage(data);\n });\n };\n};\n\nconst decode = createWorkerAsyncFunction(qrWorkerMethod, [\n 'https://cdn.jsdelivr.net/npm/jsqr@1.2.0/dist/jsQR.min.js',\n]);\n\nexport function useWebQRScanner(\n video: React.MutableRefObject,\n {\n isEnabled,\n captureOptions,\n interval,\n onScanned,\n onError,\n }: {\n isEnabled: boolean;\n captureOptions: Pick;\n interval?: number;\n onScanned?: (scanningResult: { nativeEvent: BarCodeScanningResult }) => void;\n onError?: MountErrorListener;\n }\n) {\n const isRunning = React.useRef(false);\n const timeout = React.useRef(undefined);\n\n async function scanAsync() {\n // If interval is 0 then only scan once.\n if (!isRunning.current || !onScanned) {\n stop();\n return;\n }\n try {\n const data = captureImageData(video.current, captureOptions);\n\n if (data) {\n const nativeEvent: BarCodeScanningResult | any = await decode(data);\n if (nativeEvent?.data) {\n onScanned({\n nativeEvent,\n });\n }\n }\n } catch (error) {\n if (onError) {\n onError({ nativeEvent: error });\n }\n } finally {\n // If interval is 0 then only scan once.\n if (interval === 0) {\n stop();\n return;\n }\n const intervalToUse = !interval || interval < 0 ? 16 : interval;\n // @ts-ignore: Type 'Timeout' is not assignable to type 'number'\n timeout.current = setTimeout(() => {\n scanAsync();\n }, intervalToUse);\n }\n }\n\n function stop() {\n isRunning.current = false;\n clearTimeout(timeout.current);\n }\n\n React.useEffect(() => {\n if (isEnabled) {\n isRunning.current = true;\n scanAsync();\n }\n\n return () => {\n if (isEnabled) {\n stop();\n }\n };\n }, [isEnabled]);\n}\n","import { CodedError } from 'expo-modules-core';\nimport * as React from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\nimport createElement from 'react-native-web/dist/exports/createElement';\n\nimport {\n CameraCapturedPicture,\n CameraNativeProps,\n CameraPictureOptions,\n CameraType,\n} from './Camera.types';\nimport CameraManager from './ExponentCameraManager.web';\nimport { capture } from './WebCameraUtils';\nimport { PictureSizes } from './WebConstants';\nimport { useWebCameraStream } from './useWebCameraStream';\nimport { useWebQRScanner } from './useWebQRScanner';\n\nexport interface ExponentCameraRef {\n getAvailablePictureSizes: (ratio: string) => Promise;\n takePicture: (options: CameraPictureOptions) => Promise;\n resumePreview: () => Promise;\n pausePreview: () => Promise;\n}\n\nconst ExponentCamera = React.forwardRef(\n (\n { type, pictureSize, poster, ...props }: CameraNativeProps & { children?: React.ReactNode },\n ref: React.Ref\n ) => {\n const video = React.useRef(null);\n\n const native = useWebCameraStream(video, type as CameraType, props, {\n onCameraReady() {\n if (props.onCameraReady) {\n props.onCameraReady();\n }\n },\n onMountError: props.onMountError,\n });\n\n const isQRScannerEnabled = React.useMemo(() => {\n return !!(\n props.barCodeScannerSettings?.barCodeTypes?.includes('qr') && !!props.onBarCodeScanned\n );\n }, [props.barCodeScannerSettings?.barCodeTypes, props.onBarCodeScanned]);\n\n useWebQRScanner(video, {\n interval: props.barCodeScannerSettings?.interval,\n isEnabled: isQRScannerEnabled,\n captureOptions: { scale: 1, isImageMirror: native.type === CameraType.front },\n onScanned(event) {\n if (props.onBarCodeScanned) {\n props.onBarCodeScanned(event);\n }\n },\n // onError: props.onMountError,\n });\n\n // const [pause, setPaused]\n\n React.useImperativeHandle(\n ref,\n () => ({\n async getAvailablePictureSizes(ratio: string): Promise {\n return PictureSizes;\n },\n async takePicture(options: CameraPictureOptions): Promise {\n if (!video.current || video.current?.readyState !== video.current?.HAVE_ENOUGH_DATA) {\n throw new CodedError(\n 'ERR_CAMERA_NOT_READY',\n 'HTMLVideoElement does not have enough camera data to construct an image yet.'\n );\n }\n const settings = native.mediaTrackSettings;\n if (!settings) {\n throw new CodedError('ERR_CAMERA_NOT_READY', 'MediaStream is not ready yet.');\n }\n\n return capture(video.current, settings, {\n ...options,\n // This will always be defined, the option gets added to a queue in the upper-level. We should replace the original so it isn't called twice.\n onPictureSaved(picture) {\n if (options.onPictureSaved) {\n options.onPictureSaved(picture);\n }\n if (props.onPictureSaved) {\n props.onPictureSaved({ nativeEvent: { data: picture, id: -1 } });\n }\n },\n });\n },\n async resumePreview(): Promise {\n if (video.current) {\n video.current.play();\n }\n },\n async pausePreview(): Promise {\n if (video.current) {\n video.current.pause();\n }\n },\n }),\n [native.mediaTrackSettings, props.onPictureSaved]\n );\n\n // TODO(Bacon): Create a universal prop, on native the microphone is only used when recording videos.\n // Because we don't support recording video in the browser we don't need the user to give microphone permissions.\n const isMuted = true;\n\n const style = React.useMemo>(() => {\n const isFrontFacingCamera = native.type === CameraManager.Type.front;\n return [\n StyleSheet.absoluteFill,\n styles.video,\n {\n // Flip the camera\n transform: isFrontFacingCamera ? [{ scaleX: -1 }] : undefined,\n },\n ];\n }, [native.type]);\n\n return (\n \n \n {props.children}\n \n );\n }\n);\n\nexport default ExponentCamera;\n\nconst Video = React.forwardRef(\n (\n props: React.ComponentProps & {\n autoPlay?: boolean;\n playsInline?: boolean;\n muted?: boolean;\n poster?: string;\n },\n ref: React.Ref\n ) => createElement('video', { ...props, ref })\n);\n\nconst styles = StyleSheet.create({\n videoWrapper: {\n flex: 1,\n alignItems: 'stretch',\n },\n video: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n});\n","import { Platform } from 'expo-modules-core';\n\nimport {\n CameraNativeProps,\n CameraType,\n FlashMode,\n AutoFocus,\n WhiteBalance,\n CameraProps,\n} from '../Camera.types';\nimport CameraManager from '../ExponentCameraManager';\n\n// Values under keys from this object will be transformed to native options\nexport const ConversionTables: {\n type: Record;\n flashMode: Record;\n autoFocus: Record;\n whiteBalance: Record;\n} = {\n type: CameraManager.Type,\n flashMode: CameraManager.FlashMode,\n autoFocus: CameraManager.AutoFocus,\n whiteBalance: CameraManager.WhiteBalance,\n};\n\nexport function convertNativeProps(props?: CameraProps): CameraNativeProps {\n if (!props || typeof props !== 'object') {\n return {};\n }\n\n const nativeProps: CameraNativeProps = {};\n\n for (const [key, value] of Object.entries(props)) {\n if (typeof value === 'string' && ConversionTables[key]) {\n nativeProps[key] = ConversionTables[key][value];\n } else {\n nativeProps[key] = value;\n }\n }\n\n return nativeProps;\n}\n\nexport function ensureNativeProps(props?: CameraProps): CameraNativeProps {\n const newProps = convertNativeProps(props);\n\n if (newProps.onBarCodeScanned) {\n newProps.barCodeScannerEnabled = true;\n }\n\n if (newProps.onFacesDetected) {\n newProps.faceDetectorEnabled = true;\n }\n\n if (Platform.OS !== 'android') {\n delete newProps.ratio;\n delete newProps.useCamera2Api;\n }\n\n if (Platform.OS !== 'web') {\n delete newProps.poster;\n }\n\n return newProps;\n}\n","import { createPermissionHook, Platform, UnavailabilityError } from 'expo-modules-core';\nimport * as React from 'react';\nimport { findNodeHandle } from 'react-native';\n\nimport {\n CameraCapturedPicture,\n CameraOrientation,\n CameraPictureOptions,\n CameraProps,\n CameraRecordingOptions,\n CameraType,\n ConstantsType,\n PermissionResponse,\n VideoCodec,\n} from './Camera.types';\nimport ExponentCamera from './ExponentCamera';\nimport CameraManager from './ExponentCameraManager';\nimport { ConversionTables, ensureNativeProps } from './utils/props';\n\nconst EventThrottleMs = 500;\n\nconst _PICTURE_SAVED_CALLBACKS = {};\n\nlet _GLOBAL_PICTURE_ID = 1;\n\nfunction ensurePictureOptions(options?: CameraPictureOptions): CameraPictureOptions {\n const pictureOptions: CameraPictureOptions =\n !options || typeof options !== 'object' ? {} : options;\n\n if (!pictureOptions.quality) {\n pictureOptions.quality = 1;\n }\n if (pictureOptions.onPictureSaved) {\n const id = _GLOBAL_PICTURE_ID++;\n _PICTURE_SAVED_CALLBACKS[id] = pictureOptions.onPictureSaved;\n pictureOptions.id = id;\n pictureOptions.fastMode = true;\n }\n return pictureOptions;\n}\n\nfunction ensureRecordingOptions(options?: CameraRecordingOptions): CameraRecordingOptions {\n let recordingOptions = options || {};\n\n if (!recordingOptions || typeof recordingOptions !== 'object') {\n recordingOptions = {};\n } else if (typeof recordingOptions.quality === 'string') {\n recordingOptions.quality = Camera.Constants.VideoQuality[recordingOptions.quality];\n }\n\n return recordingOptions;\n}\n\nfunction _onPictureSaved({\n nativeEvent,\n}: {\n nativeEvent: { data: CameraCapturedPicture; id: number };\n}) {\n const { id, data } = nativeEvent;\n const callback = _PICTURE_SAVED_CALLBACKS[id];\n if (callback) {\n callback(data);\n delete _PICTURE_SAVED_CALLBACKS[id];\n }\n}\n\nexport default class Camera extends React.Component {\n /**\n * Check whether the current device has a camera. This is useful for web and simulators cases.\n * This isn't influenced by the Permissions API (all platforms), or HTTP usage (in the browser).\n * You will still need to check if the native permission has been accepted.\n * @platform web\n */\n static async isAvailableAsync(): Promise {\n if (!CameraManager.isAvailableAsync) {\n throw new UnavailabilityError('expo-camera', 'isAvailableAsync');\n }\n\n return await CameraManager.isAvailableAsync();\n }\n\n /**\n * Returns a list of camera types `['front', 'back']`. This is useful for desktop browsers which only have front-facing cameras.\n * @platform web\n */\n static async getAvailableCameraTypesAsync(): Promise {\n if (!CameraManager.getAvailableCameraTypesAsync) {\n throw new UnavailabilityError('expo-camera', 'getAvailableCameraTypesAsync');\n }\n\n return await CameraManager.getAvailableCameraTypesAsync();\n }\n\n // @needsAudit\n /**\n * Queries the device for the available video codecs that can be used in video recording.\n * @return A promise that resolves to a list of strings that represents available codecs.\n * @platform ios\n */\n static async getAvailableVideoCodecsAsync(): Promise {\n if (!CameraManager.getAvailableVideoCodecsAsync) {\n throw new UnavailabilityError('Camera', 'getAvailableVideoCodecsAsync');\n }\n\n return await CameraManager.getAvailableVideoCodecsAsync();\n }\n\n static Constants: ConstantsType = {\n Type: CameraManager.Type,\n FlashMode: CameraManager.FlashMode,\n AutoFocus: CameraManager.AutoFocus,\n WhiteBalance: CameraManager.WhiteBalance,\n VideoQuality: CameraManager.VideoQuality,\n VideoStabilization: CameraManager.VideoStabilization || {},\n VideoCodec: CameraManager.VideoCodec,\n };\n\n // Values under keys from this object will be transformed to native options\n static ConversionTables = ConversionTables;\n\n static defaultProps: CameraProps = {\n zoom: 0,\n ratio: '4:3',\n focusDepth: 0,\n faceDetectorSettings: {},\n type: CameraManager.Type.back,\n autoFocus: CameraManager.AutoFocus.on,\n flashMode: CameraManager.FlashMode.off,\n whiteBalance: CameraManager.WhiteBalance.auto,\n };\n\n // @needsAudit\n /**\n * @deprecated Use `getCameraPermissionsAsync` or `getMicrophonePermissionsAsync` instead.\n * Checks user's permissions for accessing camera.\n */\n static async getPermissionsAsync(): Promise {\n console.warn(\n `\"getPermissionsAsync()\" is now deprecated. Please use \"getCameraPermissionsAsync()\" or \"getMicrophonePermissionsAsync()\" instead.`\n );\n return CameraManager.getPermissionsAsync();\n }\n\n // @needsAudit\n /**\n * Asks the user to grant permissions for accessing camera.\n * On iOS this will require apps to specify both `NSCameraUsageDescription` and `NSMicrophoneUsageDescription` entries in the **Info.plist**.\n * @return A promise that resolves to an object of type [PermissionResponse](#permissionresponse).\n * @deprecated Use `requestCameraPermissionsAsync` or `requestMicrophonePermissionsAsync` instead.\n */\n static async requestPermissionsAsync(): Promise {\n console.warn(\n `\"requestPermissionsAsync()\" is now deprecated. Please use \"requestCameraPermissionsAsync()\" or \"requestMicrophonePermissionsAsync()\" instead.`\n );\n return CameraManager.requestPermissionsAsync();\n }\n\n // @needsAudit\n /**\n * Checks user's permissions for accessing camera.\n * @return A promise that resolves to an object of type [PermissionResponse](#permissionresponse).\n */\n static async getCameraPermissionsAsync(): Promise {\n return CameraManager.getCameraPermissionsAsync();\n }\n\n // @needsAudit\n /**\n * Asks the user to grant permissions for accessing camera.\n * On iOS this will require apps to specify an `NSCameraUsageDescription` entry in the **Info.plist**.\n * @return A promise that resolves to an object of type [PermissionResponse](#permissionresponse).\n */\n static async requestCameraPermissionsAsync(): Promise {\n return CameraManager.requestCameraPermissionsAsync();\n }\n\n // @needsAudit\n /**\n * Check or request permissions to access the camera.\n * This uses both `requestCameraPermissionsAsync` and `getCameraPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = Camera.useCameraPermissions();\n * ```\n */\n static useCameraPermissions = createPermissionHook({\n getMethod: Camera.getCameraPermissionsAsync,\n requestMethod: Camera.requestCameraPermissionsAsync,\n });\n\n // @needsAudit\n /**\n * Checks user's permissions for accessing microphone.\n * @return A promise that resolves to an object of type [PermissionResponse](#permissionresponse).\n */\n static async getMicrophonePermissionsAsync(): Promise {\n return CameraManager.getMicrophonePermissionsAsync();\n }\n\n // @needsAudit\n /**\n * Asks the user to grant permissions for accessing the microphone.\n * On iOS this will require apps to specify an `NSMicrophoneUsageDescription` entry in the **Info.plist**.\n * @return A promise that resolves to an object of type [PermissionResponse](#permissionresponse).\n */\n static async requestMicrophonePermissionsAsync(): Promise {\n return CameraManager.requestMicrophonePermissionsAsync();\n }\n\n // @needsAudit\n /**\n * Check or request permissions to access the microphone.\n * This uses both `requestMicrophonePermissionsAsync` and `getMicrophonePermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = Camera.useMicrophonePermissions();\n * ```\n */\n static useMicrophonePermissions = createPermissionHook({\n getMethod: Camera.getMicrophonePermissionsAsync,\n requestMethod: Camera.requestMicrophonePermissionsAsync,\n });\n\n _cameraHandle?: number | null;\n _cameraRef?: React.Component | null;\n _lastEvents: { [eventName: string]: string } = {};\n _lastEventsTimes: { [eventName: string]: Date } = {};\n\n // @needsAudit\n /**\n * Takes a picture and saves it to app's cache directory. Photos are rotated to match device's orientation\n * (if `options.skipProcessing` flag is not enabled) and scaled to match the preview. Anyway on Android it is essential\n * to set ratio prop to get a picture with correct dimensions.\n * > **Note**: Make sure to wait for the [`onCameraReady`](#oncameraready) callback before calling this method.\n * @param options An object in form of `CameraPictureOptions` type.\n * @return Returns a Promise that resolves to `CameraCapturedPicture` object, where `uri` is a URI to the local image file on iOS,\n * Android, and a base64 string on web (usable as the source for an `Image` element). The `width` and `height` properties specify\n * the dimensions of the image. `base64` is included if the `base64` option was truthy, and is a string containing the JPEG data\n * of the image in Base64--prepend that with `'data:image/jpg;base64,'` to get a data URI, which you can use as the source\n * for an `Image` element for example. `exif` is included if the `exif` option was truthy, and is an object containing EXIF\n * data for the image--the names of its properties are EXIF tags and their values are the values for those tags.\n *\n * > On native platforms, the local image URI is temporary. Use [`FileSystem.copyAsync`](filesystem.md#filesystemcopyasyncoptions)\n * > to make a permanent copy of the image.\n */\n async takePictureAsync(options?: CameraPictureOptions): Promise {\n const pictureOptions = ensurePictureOptions(options);\n\n return await CameraManager.takePicture(pictureOptions, this._cameraHandle);\n }\n\n /**\n * Get aspect ratios that are supported by the device and can be passed via `ratio` prop.\n * @return Returns a Promise that resolves to an array of strings representing ratios, eg. `['4:3', '1:1']`.\n * @platform android\n */\n async getSupportedRatiosAsync(): Promise {\n if (!CameraManager.getSupportedRatios) {\n throw new UnavailabilityError('Camera', 'getSupportedRatiosAsync');\n }\n\n return await CameraManager.getSupportedRatios(this._cameraHandle);\n }\n\n /**\n * Get picture sizes that are supported by the device for given `ratio`.\n * @param ratio A string representing aspect ratio of sizes to be returned.\n * @return Returns a Promise that resolves to an array of strings representing picture sizes that can be passed to `pictureSize` prop.\n * The list varies across Android devices but is the same for every iOS.\n */\n async getAvailablePictureSizesAsync(ratio?: string): Promise {\n if (!CameraManager.getAvailablePictureSizes) {\n throw new UnavailabilityError('Camera', 'getAvailablePictureSizesAsync');\n }\n return await CameraManager.getAvailablePictureSizes(ratio, this._cameraHandle);\n }\n\n /**\n * Starts recording a video that will be saved to cache directory. Videos are rotated to match device's orientation.\n * Flipping camera during a recording results in stopping it.\n * @param options A map of `CameraRecordingOptions` type.\n * @return Returns a Promise that resolves to an object containing video file `uri` property and a `codec` property on iOS.\n * The Promise is returned if `stopRecording` was invoked, one of `maxDuration` and `maxFileSize` is reached or camera preview is stopped.\n * @platform android\n * @platform ios\n */\n async recordAsync(options?: CameraRecordingOptions): Promise<{ uri: string }> {\n if (!CameraManager.record) {\n throw new UnavailabilityError('Camera', 'recordAsync');\n }\n\n const recordingOptions = ensureRecordingOptions(options);\n return await CameraManager.record(recordingOptions, this._cameraHandle);\n }\n\n /**\n * Stops recording if any is in progress.\n */\n stopRecording() {\n if (!CameraManager.stopRecording) {\n throw new UnavailabilityError('Camera', 'stopRecording');\n }\n\n CameraManager.stopRecording(this._cameraHandle);\n }\n\n /**\n * Pauses the camera preview. It is not recommended to use `takePictureAsync` when preview is paused.\n */\n pausePreview() {\n if (!CameraManager.pausePreview) {\n throw new UnavailabilityError('Camera', 'pausePreview');\n }\n\n CameraManager.pausePreview(this._cameraHandle);\n }\n\n /**\n * Resumes the camera preview.\n */\n resumePreview() {\n if (!CameraManager.resumePreview) {\n throw new UnavailabilityError('Camera', 'resumePreview');\n }\n\n CameraManager.resumePreview(this._cameraHandle);\n }\n\n _onCameraReady = () => {\n if (this.props.onCameraReady) {\n this.props.onCameraReady();\n }\n };\n\n _onMountError = ({ nativeEvent }: { nativeEvent: { message: string } }) => {\n if (this.props.onMountError) {\n this.props.onMountError(nativeEvent);\n }\n };\n\n _onResponsiveOrientationChanged = ({\n nativeEvent,\n }: {\n nativeEvent: { orientation: CameraOrientation };\n }) => {\n if (this.props.onResponsiveOrientationChanged) {\n this.props.onResponsiveOrientationChanged(nativeEvent);\n }\n };\n\n _onObjectDetected =\n (callback?: Function) =>\n ({ nativeEvent }: { nativeEvent: any }) => {\n const { type } = nativeEvent;\n if (\n this._lastEvents[type] &&\n this._lastEventsTimes[type] &&\n JSON.stringify(nativeEvent) === this._lastEvents[type] &&\n new Date().getTime() - this._lastEventsTimes[type].getTime() < EventThrottleMs\n ) {\n return;\n }\n\n if (callback) {\n callback(nativeEvent);\n this._lastEventsTimes[type] = new Date();\n this._lastEvents[type] = JSON.stringify(nativeEvent);\n }\n };\n\n _setReference = (ref?: React.Component) => {\n if (ref) {\n this._cameraRef = ref;\n // TODO(Bacon): Unify these - perhaps with hooks?\n if (Platform.OS === 'web') {\n this._cameraHandle = ref as any;\n } else {\n this._cameraHandle = findNodeHandle(ref);\n }\n } else {\n this._cameraRef = null;\n this._cameraHandle = null;\n }\n };\n\n render() {\n const nativeProps = ensureNativeProps(this.props);\n\n const onBarCodeScanned = this.props.onBarCodeScanned\n ? this._onObjectDetected(this.props.onBarCodeScanned)\n : undefined;\n\n const onFacesDetected = this._onObjectDetected(this.props.onFacesDetected);\n\n return (\n \n );\n }\n}\n\nexport const {\n Constants,\n getPermissionsAsync,\n requestPermissionsAsync,\n getCameraPermissionsAsync,\n requestCameraPermissionsAsync,\n getMicrophonePermissionsAsync,\n requestMicrophonePermissionsAsync,\n} = Camera;\n","import { __assign, __extends, __rest } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { dep } from 'optimism';\nimport { equal } from '@wry/equality';\nimport { Trie } from '@wry/trie';\nimport { isReference, makeReference, DeepMerger, maybeDeepFreeze, canUseWeakMap, isNonNullObject, } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName } from \"./helpers.js\";\nvar DELETE = Object.create(null);\nvar delModifier = function () { return DELETE; };\nvar INVALIDATE = Object.create(null);\nvar EntityStore = (function () {\n function EntityStore(policies, group) {\n var _this = this;\n this.policies = policies;\n this.group = group;\n this.data = Object.create(null);\n this.rootIds = Object.create(null);\n this.refs = Object.create(null);\n this.getFieldValue = function (objectOrReference, storeFieldName) { return maybeDeepFreeze(isReference(objectOrReference)\n ? _this.get(objectOrReference.__ref, storeFieldName)\n : objectOrReference && objectOrReference[storeFieldName]); };\n this.canRead = function (objOrRef) {\n return isReference(objOrRef)\n ? _this.has(objOrRef.__ref)\n : typeof objOrRef === \"object\";\n };\n this.toReference = function (objOrIdOrRef, mergeIntoStore) {\n if (typeof objOrIdOrRef === \"string\") {\n return makeReference(objOrIdOrRef);\n }\n if (isReference(objOrIdOrRef)) {\n return objOrIdOrRef;\n }\n var id = _this.policies.identify(objOrIdOrRef)[0];\n if (id) {\n var ref = makeReference(id);\n if (mergeIntoStore) {\n _this.merge(id, objOrIdOrRef);\n }\n return ref;\n }\n };\n }\n EntityStore.prototype.toObject = function () {\n return __assign({}, this.data);\n };\n EntityStore.prototype.has = function (dataId) {\n return this.lookup(dataId, true) !== void 0;\n };\n EntityStore.prototype.get = function (dataId, fieldName) {\n this.group.depend(dataId, fieldName);\n if (hasOwn.call(this.data, dataId)) {\n var storeObject = this.data[dataId];\n if (storeObject && hasOwn.call(storeObject, fieldName)) {\n return storeObject[fieldName];\n }\n }\n if (fieldName === \"__typename\" &&\n hasOwn.call(this.policies.rootTypenamesById, dataId)) {\n return this.policies.rootTypenamesById[dataId];\n }\n if (this instanceof Layer) {\n return this.parent.get(dataId, fieldName);\n }\n };\n EntityStore.prototype.lookup = function (dataId, dependOnExistence) {\n if (dependOnExistence)\n this.group.depend(dataId, \"__exists\");\n if (hasOwn.call(this.data, dataId)) {\n return this.data[dataId];\n }\n if (this instanceof Layer) {\n return this.parent.lookup(dataId, dependOnExistence);\n }\n if (this.policies.rootTypenamesById[dataId]) {\n return Object.create(null);\n }\n };\n EntityStore.prototype.merge = function (older, newer) {\n var _this = this;\n var dataId;\n if (isReference(older))\n older = older.__ref;\n if (isReference(newer))\n newer = newer.__ref;\n var existing = typeof older === \"string\"\n ? this.lookup(dataId = older)\n : older;\n var incoming = typeof newer === \"string\"\n ? this.lookup(dataId = newer)\n : newer;\n if (!incoming)\n return;\n __DEV__ ? invariant(typeof dataId === \"string\", \"store.merge expects a string ID\") : invariant(typeof dataId === \"string\", 1);\n var merged = new DeepMerger(storeObjectReconciler).merge(existing, incoming);\n this.data[dataId] = merged;\n if (merged !== existing) {\n delete this.refs[dataId];\n if (this.group.caching) {\n var fieldsToDirty_1 = Object.create(null);\n if (!existing)\n fieldsToDirty_1.__exists = 1;\n Object.keys(incoming).forEach(function (storeFieldName) {\n if (!existing || existing[storeFieldName] !== merged[storeFieldName]) {\n fieldsToDirty_1[storeFieldName] = 1;\n var fieldName = fieldNameFromStoreName(storeFieldName);\n if (fieldName !== storeFieldName &&\n !_this.policies.hasKeyArgs(merged.__typename, fieldName)) {\n fieldsToDirty_1[fieldName] = 1;\n }\n if (merged[storeFieldName] === void 0 && !(_this instanceof Layer)) {\n delete merged[storeFieldName];\n }\n }\n });\n if (fieldsToDirty_1.__typename &&\n !(existing && existing.__typename) &&\n this.policies.rootTypenamesById[dataId] === merged.__typename) {\n delete fieldsToDirty_1.__typename;\n }\n Object.keys(fieldsToDirty_1).forEach(function (fieldName) { return _this.group.dirty(dataId, fieldName); });\n }\n }\n };\n EntityStore.prototype.modify = function (dataId, fields) {\n var _this = this;\n var storeObject = this.lookup(dataId);\n if (storeObject) {\n var changedFields_1 = Object.create(null);\n var needToMerge_1 = false;\n var allDeleted_1 = true;\n var sharedDetails_1 = {\n DELETE: DELETE,\n INVALIDATE: INVALIDATE,\n isReference: isReference,\n toReference: this.toReference,\n canRead: this.canRead,\n readField: function (fieldNameOrOptions, from) { return _this.policies.readField(typeof fieldNameOrOptions === \"string\" ? {\n fieldName: fieldNameOrOptions,\n from: from || makeReference(dataId),\n } : fieldNameOrOptions, { store: _this }); },\n };\n Object.keys(storeObject).forEach(function (storeFieldName) {\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var fieldValue = storeObject[storeFieldName];\n if (fieldValue === void 0)\n return;\n var modify = typeof fields === \"function\"\n ? fields\n : fields[storeFieldName] || fields[fieldName];\n if (modify) {\n var newValue = modify === delModifier ? DELETE :\n modify(maybeDeepFreeze(fieldValue), __assign(__assign({}, sharedDetails_1), { fieldName: fieldName, storeFieldName: storeFieldName, storage: _this.getStorage(dataId, storeFieldName) }));\n if (newValue === INVALIDATE) {\n _this.group.dirty(dataId, storeFieldName);\n }\n else {\n if (newValue === DELETE)\n newValue = void 0;\n if (newValue !== fieldValue) {\n changedFields_1[storeFieldName] = newValue;\n needToMerge_1 = true;\n fieldValue = newValue;\n }\n }\n }\n if (fieldValue !== void 0) {\n allDeleted_1 = false;\n }\n });\n if (needToMerge_1) {\n this.merge(dataId, changedFields_1);\n if (allDeleted_1) {\n if (this instanceof Layer) {\n this.data[dataId] = void 0;\n }\n else {\n delete this.data[dataId];\n }\n this.group.dirty(dataId, \"__exists\");\n }\n return true;\n }\n }\n return false;\n };\n EntityStore.prototype.delete = function (dataId, fieldName, args) {\n var _a;\n var storeObject = this.lookup(dataId);\n if (storeObject) {\n var typename = this.getFieldValue(storeObject, \"__typename\");\n var storeFieldName = fieldName && args\n ? this.policies.getStoreFieldName({ typename: typename, fieldName: fieldName, args: args })\n : fieldName;\n return this.modify(dataId, storeFieldName ? (_a = {},\n _a[storeFieldName] = delModifier,\n _a) : delModifier);\n }\n return false;\n };\n EntityStore.prototype.evict = function (options, limit) {\n var evicted = false;\n if (options.id) {\n if (hasOwn.call(this.data, options.id)) {\n evicted = this.delete(options.id, options.fieldName, options.args);\n }\n if (this instanceof Layer && this !== limit) {\n evicted = this.parent.evict(options, limit) || evicted;\n }\n if (options.fieldName || evicted) {\n this.group.dirty(options.id, options.fieldName || \"__exists\");\n }\n }\n return evicted;\n };\n EntityStore.prototype.clear = function () {\n this.replace(null);\n };\n EntityStore.prototype.extract = function () {\n var _this = this;\n var obj = this.toObject();\n var extraRootIds = [];\n this.getRootIdSet().forEach(function (id) {\n if (!hasOwn.call(_this.policies.rootTypenamesById, id)) {\n extraRootIds.push(id);\n }\n });\n if (extraRootIds.length) {\n obj.__META = { extraRootIds: extraRootIds.sort() };\n }\n return obj;\n };\n EntityStore.prototype.replace = function (newData) {\n var _this = this;\n Object.keys(this.data).forEach(function (dataId) {\n if (!(newData && hasOwn.call(newData, dataId))) {\n _this.delete(dataId);\n }\n });\n if (newData) {\n var __META = newData.__META, rest_1 = __rest(newData, [\"__META\"]);\n Object.keys(rest_1).forEach(function (dataId) {\n _this.merge(dataId, rest_1[dataId]);\n });\n if (__META) {\n __META.extraRootIds.forEach(this.retain, this);\n }\n }\n };\n EntityStore.prototype.retain = function (rootId) {\n return this.rootIds[rootId] = (this.rootIds[rootId] || 0) + 1;\n };\n EntityStore.prototype.release = function (rootId) {\n if (this.rootIds[rootId] > 0) {\n var count = --this.rootIds[rootId];\n if (!count)\n delete this.rootIds[rootId];\n return count;\n }\n return 0;\n };\n EntityStore.prototype.getRootIdSet = function (ids) {\n if (ids === void 0) { ids = new Set(); }\n Object.keys(this.rootIds).forEach(ids.add, ids);\n if (this instanceof Layer) {\n this.parent.getRootIdSet(ids);\n }\n else {\n Object.keys(this.policies.rootTypenamesById).forEach(ids.add, ids);\n }\n return ids;\n };\n EntityStore.prototype.gc = function () {\n var _this = this;\n var ids = this.getRootIdSet();\n var snapshot = this.toObject();\n ids.forEach(function (id) {\n if (hasOwn.call(snapshot, id)) {\n Object.keys(_this.findChildRefIds(id)).forEach(ids.add, ids);\n delete snapshot[id];\n }\n });\n var idsToRemove = Object.keys(snapshot);\n if (idsToRemove.length) {\n var root_1 = this;\n while (root_1 instanceof Layer)\n root_1 = root_1.parent;\n idsToRemove.forEach(function (id) { return root_1.delete(id); });\n }\n return idsToRemove;\n };\n EntityStore.prototype.findChildRefIds = function (dataId) {\n if (!hasOwn.call(this.refs, dataId)) {\n var found_1 = this.refs[dataId] = Object.create(null);\n var root = this.data[dataId];\n if (!root)\n return found_1;\n var workSet_1 = new Set([root]);\n workSet_1.forEach(function (obj) {\n if (isReference(obj)) {\n found_1[obj.__ref] = true;\n }\n if (isNonNullObject(obj)) {\n Object.keys(obj).forEach(function (key) {\n var child = obj[key];\n if (isNonNullObject(child)) {\n workSet_1.add(child);\n }\n });\n }\n });\n }\n return this.refs[dataId];\n };\n EntityStore.prototype.makeCacheKey = function () {\n return this.group.keyMaker.lookupArray(arguments);\n };\n return EntityStore;\n}());\nexport { EntityStore };\nvar CacheGroup = (function () {\n function CacheGroup(caching, parent) {\n if (parent === void 0) { parent = null; }\n this.caching = caching;\n this.parent = parent;\n this.d = null;\n this.resetCaching();\n }\n CacheGroup.prototype.resetCaching = function () {\n this.d = this.caching ? dep() : null;\n this.keyMaker = new Trie(canUseWeakMap);\n };\n CacheGroup.prototype.depend = function (dataId, storeFieldName) {\n if (this.d) {\n this.d(makeDepKey(dataId, storeFieldName));\n var fieldName = fieldNameFromStoreName(storeFieldName);\n if (fieldName !== storeFieldName) {\n this.d(makeDepKey(dataId, fieldName));\n }\n if (this.parent) {\n this.parent.depend(dataId, storeFieldName);\n }\n }\n };\n CacheGroup.prototype.dirty = function (dataId, storeFieldName) {\n if (this.d) {\n this.d.dirty(makeDepKey(dataId, storeFieldName), storeFieldName === \"__exists\" ? \"forget\" : \"setDirty\");\n }\n };\n return CacheGroup;\n}());\nfunction makeDepKey(dataId, storeFieldName) {\n return storeFieldName + '#' + dataId;\n}\nexport function maybeDependOnExistenceOfEntity(store, entityId) {\n if (supportsResultCaching(store)) {\n store.group.depend(entityId, \"__exists\");\n }\n}\n(function (EntityStore) {\n var Root = (function (_super) {\n __extends(Root, _super);\n function Root(_a) {\n var policies = _a.policies, _b = _a.resultCaching, resultCaching = _b === void 0 ? true : _b, seed = _a.seed;\n var _this = _super.call(this, policies, new CacheGroup(resultCaching)) || this;\n _this.stump = new Stump(_this);\n _this.storageTrie = new Trie(canUseWeakMap);\n if (seed)\n _this.replace(seed);\n return _this;\n }\n Root.prototype.addLayer = function (layerId, replay) {\n return this.stump.addLayer(layerId, replay);\n };\n Root.prototype.removeLayer = function () {\n return this;\n };\n Root.prototype.getStorage = function () {\n return this.storageTrie.lookupArray(arguments);\n };\n return Root;\n }(EntityStore));\n EntityStore.Root = Root;\n})(EntityStore || (EntityStore = {}));\nvar Layer = (function (_super) {\n __extends(Layer, _super);\n function Layer(id, parent, replay, group) {\n var _this = _super.call(this, parent.policies, group) || this;\n _this.id = id;\n _this.parent = parent;\n _this.replay = replay;\n _this.group = group;\n replay(_this);\n return _this;\n }\n Layer.prototype.addLayer = function (layerId, replay) {\n return new Layer(layerId, this, replay, this.group);\n };\n Layer.prototype.removeLayer = function (layerId) {\n var _this = this;\n var parent = this.parent.removeLayer(layerId);\n if (layerId === this.id) {\n if (this.group.caching) {\n Object.keys(this.data).forEach(function (dataId) {\n var ownStoreObject = _this.data[dataId];\n var parentStoreObject = parent[\"lookup\"](dataId);\n if (!parentStoreObject) {\n _this.delete(dataId);\n }\n else if (!ownStoreObject) {\n _this.group.dirty(dataId, \"__exists\");\n Object.keys(parentStoreObject).forEach(function (storeFieldName) {\n _this.group.dirty(dataId, storeFieldName);\n });\n }\n else if (ownStoreObject !== parentStoreObject) {\n Object.keys(ownStoreObject).forEach(function (storeFieldName) {\n if (!equal(ownStoreObject[storeFieldName], parentStoreObject[storeFieldName])) {\n _this.group.dirty(dataId, storeFieldName);\n }\n });\n }\n });\n }\n return parent;\n }\n if (parent === this.parent)\n return this;\n return parent.addLayer(this.id, this.replay);\n };\n Layer.prototype.toObject = function () {\n return __assign(__assign({}, this.parent.toObject()), this.data);\n };\n Layer.prototype.findChildRefIds = function (dataId) {\n var fromParent = this.parent.findChildRefIds(dataId);\n return hasOwn.call(this.data, dataId) ? __assign(__assign({}, fromParent), _super.prototype.findChildRefIds.call(this, dataId)) : fromParent;\n };\n Layer.prototype.getStorage = function () {\n var p = this.parent;\n while (p.parent)\n p = p.parent;\n return p.getStorage.apply(p, arguments);\n };\n return Layer;\n}(EntityStore));\nvar Stump = (function (_super) {\n __extends(Stump, _super);\n function Stump(root) {\n return _super.call(this, \"EntityStore.Stump\", root, function () { }, new CacheGroup(root.group.caching, root.group)) || this;\n }\n Stump.prototype.removeLayer = function () {\n return this;\n };\n Stump.prototype.merge = function () {\n return this.parent.merge.apply(this.parent, arguments);\n };\n return Stump;\n}(Layer));\nfunction storeObjectReconciler(existingObject, incomingObject, property) {\n var existingValue = existingObject[property];\n var incomingValue = incomingObject[property];\n return equal(existingValue, incomingValue) ? existingValue : incomingValue;\n}\nexport function supportsResultCaching(store) {\n return !!(store instanceof EntityStore && store.group.caching);\n}\n//# sourceMappingURL=entityStore.js.map","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { wrap } from 'optimism';\nimport { isField, resultKeyNameFromField, isReference, makeReference, createFragmentMap, shouldInclude, addTypenameToDocument, getDefaultValues, getFragmentDefinitions, getMainDefinition, getQueryDefinition, mergeDeepArray, getFragmentFromSelection, maybeDeepFreeze, isNonNullObject, canUseWeakMap, compact, } from \"../../utilities/index.js\";\nimport { maybeDependOnExistenceOfEntity, supportsResultCaching } from \"./entityStore.js\";\nimport { getTypenameFromStoreObject, shouldCanonizeResults } from \"./helpers.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { canonicalStringify, ObjectCanon } from \"./object-canon.js\";\n;\nfunction missingFromInvariant(err, context) {\n return new MissingFieldError(err.message, context.path.slice(), context.query, context.variables);\n}\nfunction execSelectionSetKeyArgs(options) {\n return [\n options.selectionSet,\n options.objectOrReference,\n options.context,\n options.context.canonizeResults,\n ];\n}\nvar StoreReader = (function () {\n function StoreReader(config) {\n var _this = this;\n this.knownResults = new (canUseWeakMap ? WeakMap : Map)();\n this.config = compact(config, {\n addTypename: config.addTypename !== false,\n canonizeResults: shouldCanonizeResults(config),\n });\n this.canon = config.canon || new ObjectCanon;\n this.executeSelectionSet = wrap(function (options) {\n var _a;\n var canonizeResults = options.context.canonizeResults;\n var peekArgs = execSelectionSetKeyArgs(options);\n peekArgs[3] = !canonizeResults;\n var other = (_a = _this.executeSelectionSet).peek.apply(_a, peekArgs);\n if (other) {\n if (canonizeResults) {\n return __assign(__assign({}, other), { result: _this.canon.admit(other.result) });\n }\n return other;\n }\n maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref);\n return _this.execSelectionSetImpl(options);\n }, {\n max: this.config.resultCacheMaxSize,\n keyArgs: execSelectionSetKeyArgs,\n makeCacheKey: function (selectionSet, parent, context, canonizeResults) {\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(selectionSet, isReference(parent) ? parent.__ref : parent, context.varString, canonizeResults);\n }\n }\n });\n this.executeSubSelectedArray = wrap(function (options) {\n maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref);\n return _this.execSubSelectedArrayImpl(options);\n }, {\n max: this.config.resultCacheMaxSize,\n makeCacheKey: function (_a) {\n var field = _a.field, array = _a.array, context = _a.context;\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(field, array, context.varString);\n }\n }\n });\n }\n StoreReader.prototype.resetCanon = function () {\n this.canon = new ObjectCanon;\n };\n StoreReader.prototype.diffQueryAgainstStore = function (_a) {\n var store = _a.store, query = _a.query, _b = _a.rootId, rootId = _b === void 0 ? 'ROOT_QUERY' : _b, variables = _a.variables, _c = _a.returnPartialData, returnPartialData = _c === void 0 ? true : _c, _d = _a.canonizeResults, canonizeResults = _d === void 0 ? this.config.canonizeResults : _d;\n var policies = this.config.cache.policies;\n variables = __assign(__assign({}, getDefaultValues(getQueryDefinition(query))), variables);\n var rootRef = makeReference(rootId);\n var execResult = this.executeSelectionSet({\n selectionSet: getMainDefinition(query).selectionSet,\n objectOrReference: rootRef,\n enclosingRef: rootRef,\n context: {\n store: store,\n query: query,\n policies: policies,\n variables: variables,\n varString: canonicalStringify(variables),\n canonizeResults: canonizeResults,\n fragmentMap: createFragmentMap(getFragmentDefinitions(query)),\n path: [],\n },\n });\n var hasMissingFields = execResult.missing && execResult.missing.length > 0;\n if (hasMissingFields && !returnPartialData) {\n throw execResult.missing[0];\n }\n return {\n result: execResult.result,\n missing: execResult.missing,\n complete: !hasMissingFields,\n };\n };\n StoreReader.prototype.isFresh = function (result, parent, selectionSet, context) {\n if (supportsResultCaching(context.store) &&\n this.knownResults.get(result) === selectionSet) {\n var latest = this.executeSelectionSet.peek(selectionSet, parent, context, this.canon.isKnown(result));\n if (latest && result === latest.result) {\n return true;\n }\n }\n return false;\n };\n StoreReader.prototype.execSelectionSetImpl = function (_a) {\n var _this = this;\n var selectionSet = _a.selectionSet, objectOrReference = _a.objectOrReference, enclosingRef = _a.enclosingRef, context = _a.context;\n if (isReference(objectOrReference) &&\n !context.policies.rootTypenamesById[objectOrReference.__ref] &&\n !context.store.has(objectOrReference.__ref)) {\n return {\n result: this.canon.empty,\n missing: [missingFromInvariant(__DEV__ ? new InvariantError(\"Dangling reference to missing \" + objectOrReference.__ref + \" object\") : new InvariantError(5), context)],\n };\n }\n var variables = context.variables, policies = context.policies, store = context.store;\n var objectsToMerge = [];\n var finalResult = { result: null };\n var typename = store.getFieldValue(objectOrReference, \"__typename\");\n if (this.config.addTypename &&\n typeof typename === \"string\" &&\n !policies.rootIdsByTypename[typename]) {\n objectsToMerge.push({ __typename: typename });\n }\n function getMissing() {\n return finalResult.missing || (finalResult.missing = []);\n }\n function handleMissing(result) {\n var _a;\n if (result.missing)\n (_a = getMissing()).push.apply(_a, result.missing);\n return result.result;\n }\n var workSet = new Set(selectionSet.selections);\n workSet.forEach(function (selection) {\n var _a;\n if (!shouldInclude(selection, variables))\n return;\n if (isField(selection)) {\n var fieldValue = policies.readField({\n fieldName: selection.name.value,\n field: selection,\n variables: context.variables,\n from: objectOrReference,\n }, context);\n var resultName = resultKeyNameFromField(selection);\n context.path.push(resultName);\n if (fieldValue === void 0) {\n if (!addTypenameToDocument.added(selection)) {\n getMissing().push(missingFromInvariant(__DEV__ ? new InvariantError(\"Can't find field '\" + selection.name.value + \"' on \" + (isReference(objectOrReference)\n ? objectOrReference.__ref + \" object\"\n : \"object \" + JSON.stringify(objectOrReference, null, 2))) : new InvariantError(6), context));\n }\n }\n else if (Array.isArray(fieldValue)) {\n fieldValue = handleMissing(_this.executeSubSelectedArray({\n field: selection,\n array: fieldValue,\n enclosingRef: enclosingRef,\n context: context,\n }));\n }\n else if (!selection.selectionSet) {\n if (context.canonizeResults) {\n fieldValue = _this.canon.pass(fieldValue);\n }\n }\n else if (fieldValue != null) {\n fieldValue = handleMissing(_this.executeSelectionSet({\n selectionSet: selection.selectionSet,\n objectOrReference: fieldValue,\n enclosingRef: isReference(fieldValue) ? fieldValue : enclosingRef,\n context: context,\n }));\n }\n if (fieldValue !== void 0) {\n objectsToMerge.push((_a = {}, _a[resultName] = fieldValue, _a));\n }\n invariant(context.path.pop() === resultName);\n }\n else {\n var fragment = getFragmentFromSelection(selection, context.fragmentMap);\n if (fragment && policies.fragmentMatches(fragment, typename)) {\n fragment.selectionSet.selections.forEach(workSet.add, workSet);\n }\n }\n });\n var merged = mergeDeepArray(objectsToMerge);\n finalResult.result = context.canonizeResults\n ? this.canon.admit(merged)\n : maybeDeepFreeze(merged);\n this.knownResults.set(finalResult.result, selectionSet);\n return finalResult;\n };\n StoreReader.prototype.execSubSelectedArrayImpl = function (_a) {\n var _this = this;\n var field = _a.field, array = _a.array, enclosingRef = _a.enclosingRef, context = _a.context;\n var missing;\n function handleMissing(childResult, i) {\n if (childResult.missing) {\n missing = missing || [];\n missing.push.apply(missing, childResult.missing);\n }\n invariant(context.path.pop() === i);\n return childResult.result;\n }\n if (field.selectionSet) {\n array = array.filter(context.store.canRead);\n }\n array = array.map(function (item, i) {\n if (item === null) {\n return null;\n }\n context.path.push(i);\n if (Array.isArray(item)) {\n return handleMissing(_this.executeSubSelectedArray({\n field: field,\n array: item,\n enclosingRef: enclosingRef,\n context: context,\n }), i);\n }\n if (field.selectionSet) {\n return handleMissing(_this.executeSelectionSet({\n selectionSet: field.selectionSet,\n objectOrReference: item,\n enclosingRef: isReference(item) ? item : enclosingRef,\n context: context,\n }), i);\n }\n if (__DEV__) {\n assertSelectionSetForIdValue(context.store, field, item);\n }\n invariant(context.path.pop() === i);\n return item;\n });\n return {\n result: context.canonizeResults ? this.canon.admit(array) : array,\n missing: missing,\n };\n };\n return StoreReader;\n}());\nexport { StoreReader };\nfunction assertSelectionSetForIdValue(store, field, fieldValue) {\n if (!field.selectionSet) {\n var workSet_1 = new Set([fieldValue]);\n workSet_1.forEach(function (value) {\n if (isNonNullObject(value)) {\n __DEV__ ? invariant(!isReference(value), \"Missing selection set for object of type \" + getTypenameFromStoreObject(store, value) + \" returned for query field \" + field.name.value) : invariant(!isReference(value), 7);\n Object.values(value).forEach(workSet_1.add, workSet_1);\n }\n });\n }\n}\n//# sourceMappingURL=readFromStore.js.map","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { createFragmentMap, getFragmentFromSelection, getDefaultValues, getFragmentDefinitions, getOperationDefinition, getTypenameFromResult, makeReference, isField, resultKeyNameFromField, isReference, shouldInclude, cloneDeep, addTypenameToDocument, } from \"../../utilities/index.js\";\nimport { makeProcessedFieldsMerger, fieldNameFromStoreName, storeValueIsStoreObject } from \"./helpers.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\n;\nvar StoreWriter = (function () {\n function StoreWriter(cache, reader) {\n this.cache = cache;\n this.reader = reader;\n }\n StoreWriter.prototype.writeToStore = function (store, _a) {\n var _this = this;\n var query = _a.query, result = _a.result, dataId = _a.dataId, variables = _a.variables, overwrite = _a.overwrite;\n var operationDefinition = getOperationDefinition(query);\n var merger = makeProcessedFieldsMerger();\n variables = __assign(__assign({}, getDefaultValues(operationDefinition)), variables);\n var context = {\n store: store,\n written: Object.create(null),\n merge: function (existing, incoming) {\n return merger.merge(existing, incoming);\n },\n variables: variables,\n varString: canonicalStringify(variables),\n fragmentMap: createFragmentMap(getFragmentDefinitions(query)),\n overwrite: !!overwrite,\n incomingById: new Map,\n clientOnly: false,\n };\n var ref = this.processSelectionSet({\n result: result || Object.create(null),\n dataId: dataId,\n selectionSet: operationDefinition.selectionSet,\n mergeTree: { map: new Map },\n context: context,\n });\n if (!isReference(ref)) {\n throw __DEV__ ? new InvariantError(\"Could not identify object \" + JSON.stringify(result)) : new InvariantError(8);\n }\n context.incomingById.forEach(function (_a, dataId) {\n var fields = _a.fields, mergeTree = _a.mergeTree, selections = _a.selections;\n var entityRef = makeReference(dataId);\n if (mergeTree && mergeTree.map.size) {\n var applied = _this.applyMerges(mergeTree, entityRef, fields, context);\n if (isReference(applied)) {\n return;\n }\n fields = applied;\n }\n if (__DEV__ && !context.overwrite) {\n var hasSelectionSet_1 = function (storeFieldName) {\n return fieldsWithSelectionSets_1.has(fieldNameFromStoreName(storeFieldName));\n };\n var fieldsWithSelectionSets_1 = new Set();\n selections.forEach(function (selection) {\n if (isField(selection) && selection.selectionSet) {\n fieldsWithSelectionSets_1.add(selection.name.value);\n }\n });\n var hasMergeFunction_1 = function (storeFieldName) {\n var childTree = mergeTree && mergeTree.map.get(storeFieldName);\n return Boolean(childTree && childTree.info && childTree.info.merge);\n };\n Object.keys(fields).forEach(function (storeFieldName) {\n if (hasSelectionSet_1(storeFieldName) &&\n !hasMergeFunction_1(storeFieldName)) {\n warnAboutDataLoss(entityRef, fields, storeFieldName, context.store);\n }\n });\n }\n store.merge(dataId, fields);\n });\n store.retain(ref.__ref);\n return ref;\n };\n StoreWriter.prototype.processSelectionSet = function (_a) {\n var _this = this;\n var dataId = _a.dataId, result = _a.result, selectionSet = _a.selectionSet, context = _a.context, mergeTree = _a.mergeTree;\n var policies = this.cache.policies;\n var _b = policies.identify(result, selectionSet, context.fragmentMap), id = _b[0], keyObject = _b[1];\n dataId = dataId || id;\n if (\"string\" === typeof dataId) {\n var sets = context.written[dataId] || (context.written[dataId] = []);\n var ref = makeReference(dataId);\n if (sets.indexOf(selectionSet) >= 0)\n return ref;\n sets.push(selectionSet);\n if (this.reader && this.reader.isFresh(result, ref, selectionSet, context)) {\n return ref;\n }\n }\n var incomingFields = Object.create(null);\n if (keyObject) {\n incomingFields = context.merge(incomingFields, keyObject);\n }\n var typename = (dataId && policies.rootTypenamesById[dataId]) ||\n getTypenameFromResult(result, selectionSet, context.fragmentMap) ||\n (dataId && context.store.get(dataId, \"__typename\"));\n if (\"string\" === typeof typename) {\n incomingFields.__typename = typename;\n }\n var selections = new Set(selectionSet.selections);\n selections.forEach(function (selection) {\n var _a;\n if (!shouldInclude(selection, context.variables))\n return;\n if (isField(selection)) {\n var resultFieldKey = resultKeyNameFromField(selection);\n var value = result[resultFieldKey];\n var wasClientOnly = context.clientOnly;\n context.clientOnly = wasClientOnly || !!(selection.directives &&\n selection.directives.some(function (d) { return d.name.value === \"client\"; }));\n if (value !== void 0) {\n var storeFieldName = policies.getStoreFieldName({\n typename: typename,\n fieldName: selection.name.value,\n field: selection,\n variables: context.variables,\n });\n var childTree = getChildMergeTree(mergeTree, storeFieldName);\n var incomingValue = _this.processFieldValue(value, selection, context, childTree);\n var childTypename = void 0;\n if (selection.selectionSet) {\n childTypename = context.store.getFieldValue(incomingValue, \"__typename\");\n if (!childTypename && isReference(incomingValue)) {\n var info = context.incomingById.get(incomingValue.__ref);\n childTypename = info && info.fields.__typename;\n }\n }\n var merge = policies.getMergeFunction(typename, selection.name.value, childTypename);\n if (merge) {\n childTree.info = {\n field: selection,\n typename: typename,\n merge: merge,\n };\n }\n else {\n maybeRecycleChildMergeTree(mergeTree, storeFieldName);\n }\n incomingFields = context.merge(incomingFields, (_a = {},\n _a[storeFieldName] = incomingValue,\n _a));\n }\n else if (!context.clientOnly &&\n !addTypenameToDocument.added(selection)) {\n __DEV__ && invariant.error((\"Missing field '\" + resultKeyNameFromField(selection) + \"' while writing result \" + JSON.stringify(result, null, 2)).substring(0, 1000));\n }\n context.clientOnly = wasClientOnly;\n }\n else {\n var fragment = getFragmentFromSelection(selection, context.fragmentMap);\n if (fragment &&\n policies.fragmentMatches(fragment, typename, result, context.variables)) {\n fragment.selectionSet.selections.forEach(selections.add, selections);\n }\n }\n });\n if (\"string\" === typeof dataId) {\n var previous = context.incomingById.get(dataId);\n if (previous) {\n previous.fields = context.merge(previous.fields, incomingFields);\n previous.mergeTree = mergeMergeTrees(previous.mergeTree, mergeTree);\n previous.selections.forEach(selections.add, selections);\n previous.selections = selections;\n }\n else {\n context.incomingById.set(dataId, {\n fields: incomingFields,\n mergeTree: mergeTreeIsEmpty(mergeTree) ? void 0 : mergeTree,\n selections: selections,\n });\n }\n return makeReference(dataId);\n }\n return incomingFields;\n };\n StoreWriter.prototype.processFieldValue = function (value, field, context, mergeTree) {\n var _this = this;\n if (!field.selectionSet || value === null) {\n return __DEV__ ? cloneDeep(value) : value;\n }\n if (Array.isArray(value)) {\n return value.map(function (item, i) {\n var value = _this.processFieldValue(item, field, context, getChildMergeTree(mergeTree, i));\n maybeRecycleChildMergeTree(mergeTree, i);\n return value;\n });\n }\n return this.processSelectionSet({\n result: value,\n selectionSet: field.selectionSet,\n context: context,\n mergeTree: mergeTree,\n });\n };\n StoreWriter.prototype.applyMerges = function (mergeTree, existing, incoming, context, getStorageArgs) {\n var _a;\n var _this = this;\n if (mergeTree.map.size && !isReference(incoming)) {\n var e_1 = (!Array.isArray(incoming) &&\n (isReference(existing) || storeValueIsStoreObject(existing))) ? existing : void 0;\n var i_1 = incoming;\n if (e_1 && !getStorageArgs) {\n getStorageArgs = [isReference(e_1) ? e_1.__ref : e_1];\n }\n var changedFields_1;\n var getValue_1 = function (from, name) {\n return Array.isArray(from)\n ? (typeof name === \"number\" ? from[name] : void 0)\n : context.store.getFieldValue(from, String(name));\n };\n mergeTree.map.forEach(function (childTree, storeFieldName) {\n var eVal = getValue_1(e_1, storeFieldName);\n var iVal = getValue_1(i_1, storeFieldName);\n if (void 0 === iVal)\n return;\n if (getStorageArgs) {\n getStorageArgs.push(storeFieldName);\n }\n var aVal = _this.applyMerges(childTree, eVal, iVal, context, getStorageArgs);\n if (aVal !== iVal) {\n changedFields_1 = changedFields_1 || new Map;\n changedFields_1.set(storeFieldName, aVal);\n }\n if (getStorageArgs) {\n invariant(getStorageArgs.pop() === storeFieldName);\n }\n });\n if (changedFields_1) {\n incoming = (Array.isArray(i_1) ? i_1.slice(0) : __assign({}, i_1));\n changedFields_1.forEach(function (value, name) {\n incoming[name] = value;\n });\n }\n }\n if (mergeTree.info) {\n return this.cache.policies.runMergeFunction(existing, incoming, mergeTree.info, context, getStorageArgs && (_a = context.store).getStorage.apply(_a, getStorageArgs));\n }\n return incoming;\n };\n return StoreWriter;\n}());\nexport { StoreWriter };\nvar emptyMergeTreePool = [];\nfunction getChildMergeTree(_a, name) {\n var map = _a.map;\n if (!map.has(name)) {\n map.set(name, emptyMergeTreePool.pop() || { map: new Map });\n }\n return map.get(name);\n}\nfunction mergeMergeTrees(left, right) {\n if (left === right || !right || mergeTreeIsEmpty(right))\n return left;\n if (!left || mergeTreeIsEmpty(left))\n return right;\n var info = left.info && right.info ? __assign(__assign({}, left.info), right.info) : left.info || right.info;\n var needToMergeMaps = left.map.size && right.map.size;\n var map = needToMergeMaps ? new Map :\n left.map.size ? left.map : right.map;\n var merged = { info: info, map: map };\n if (needToMergeMaps) {\n var remainingRightKeys_1 = new Set(right.map.keys());\n left.map.forEach(function (leftTree, key) {\n merged.map.set(key, mergeMergeTrees(leftTree, right.map.get(key)));\n remainingRightKeys_1.delete(key);\n });\n remainingRightKeys_1.forEach(function (key) {\n merged.map.set(key, mergeMergeTrees(right.map.get(key), left.map.get(key)));\n });\n }\n return merged;\n}\nfunction mergeTreeIsEmpty(tree) {\n return !tree || !(tree.info || tree.map.size);\n}\nfunction maybeRecycleChildMergeTree(_a, name) {\n var map = _a.map;\n var childTree = map.get(name);\n if (childTree && mergeTreeIsEmpty(childTree)) {\n emptyMergeTreePool.push(childTree);\n map.delete(name);\n }\n}\nvar warnings = new Set();\nfunction warnAboutDataLoss(existingRef, incomingObj, storeFieldName, store) {\n var getChild = function (objOrRef) {\n var child = store.getFieldValue(objOrRef, storeFieldName);\n return typeof child === \"object\" && child;\n };\n var existing = getChild(existingRef);\n if (!existing)\n return;\n var incoming = getChild(incomingObj);\n if (!incoming)\n return;\n if (isReference(existing))\n return;\n if (equal(existing, incoming))\n return;\n if (Object.keys(existing).every(function (key) { return store.getFieldValue(incoming, key) !== void 0; })) {\n return;\n }\n var parentType = store.getFieldValue(existingRef, \"__typename\") ||\n store.getFieldValue(incomingObj, \"__typename\");\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var typeDotName = parentType + \".\" + fieldName;\n if (warnings.has(typeDotName))\n return;\n warnings.add(typeDotName);\n var childTypenames = [];\n if (!Array.isArray(existing) &&\n !Array.isArray(incoming)) {\n [existing, incoming].forEach(function (child) {\n var typename = store.getFieldValue(child, \"__typename\");\n if (typeof typename === \"string\" &&\n !childTypenames.includes(typename)) {\n childTypenames.push(typename);\n }\n });\n }\n __DEV__ && invariant.warn(\"Cache data may be lost when replacing the \" + fieldName + \" field of a \" + parentType + \" object.\\n\\nTo address this problem (which is not a bug in Apollo Client), \" + (childTypenames.length\n ? \"either ensure all objects of type \" +\n childTypenames.join(\" and \") + \" have an ID or a custom merge function, or \"\n : \"\") + \"define a custom merge function for the \" + typeDotName + \" field, so InMemoryCache can safely merge these objects:\\n\\n existing: \" + JSON.stringify(existing).slice(0, 1000) + \"\\n incoming: \" + JSON.stringify(incoming).slice(0, 1000) + \"\\n\\nFor more information about these options, please refer to the documentation:\\n\\n * Ensuring entity objects have IDs: https://go.apollo.dev/c/generating-unique-identifiers\\n * Defining custom merge functions: https://go.apollo.dev/c/merging-non-normalized-objects\\n\");\n}\n//# sourceMappingURL=writeToStore.js.map","import { __assign, __rest } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { Trie } from '@wry/trie';\nimport { getFragmentFromSelection, isField, getTypenameFromResult, storeKeyNameFromField, argumentsObjectFromField, isReference, getStoreKeyName, canUseWeakMap, isNonNullObject, stringifyForDisplay, } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName, storeValueIsStoreObject, selectionSetMatchesResult, TypeOrFieldNameRegExp, defaultDataIdFromObject, } from \"./helpers.js\";\nimport { cacheSlot } from \"./reactiveVars.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\ngetStoreKeyName.setStringify(canonicalStringify);\nfunction argsFromFieldSpecifier(spec) {\n return spec.args !== void 0 ? spec.args :\n spec.field ? argumentsObjectFromField(spec.field, spec.variables) : null;\n}\nvar nullKeyFieldsFn = function () { return void 0; };\nvar simpleKeyArgsFn = function (_args, context) { return context.fieldName; };\nvar mergeTrueFn = function (existing, incoming, _a) {\n var mergeObjects = _a.mergeObjects;\n return mergeObjects(existing, incoming);\n};\nvar mergeFalseFn = function (_, incoming) { return incoming; };\nvar Policies = (function () {\n function Policies(config) {\n this.config = config;\n this.typePolicies = Object.create(null);\n this.toBeAdded = Object.create(null);\n this.supertypeMap = new Map();\n this.fuzzySubtypes = new Map();\n this.rootIdsByTypename = Object.create(null);\n this.rootTypenamesById = Object.create(null);\n this.usingPossibleTypes = false;\n this.config = __assign({ dataIdFromObject: defaultDataIdFromObject }, config);\n this.cache = this.config.cache;\n this.setRootTypename(\"Query\");\n this.setRootTypename(\"Mutation\");\n this.setRootTypename(\"Subscription\");\n if (config.possibleTypes) {\n this.addPossibleTypes(config.possibleTypes);\n }\n if (config.typePolicies) {\n this.addTypePolicies(config.typePolicies);\n }\n }\n Policies.prototype.identify = function (object, selectionSet, fragmentMap) {\n var typename = selectionSet && fragmentMap\n ? getTypenameFromResult(object, selectionSet, fragmentMap)\n : object.__typename;\n if (typename === this.rootTypenamesById.ROOT_QUERY) {\n return [\"ROOT_QUERY\"];\n }\n var context = {\n typename: typename,\n selectionSet: selectionSet,\n fragmentMap: fragmentMap,\n };\n var id;\n var policy = typename && this.getTypePolicy(typename);\n var keyFn = policy && policy.keyFn || this.config.dataIdFromObject;\n while (keyFn) {\n var specifierOrId = keyFn(object, context);\n if (Array.isArray(specifierOrId)) {\n keyFn = keyFieldsFnFromSpecifier(specifierOrId);\n }\n else {\n id = specifierOrId;\n break;\n }\n }\n id = id ? String(id) : void 0;\n return context.keyObject ? [id, context.keyObject] : [id];\n };\n Policies.prototype.addTypePolicies = function (typePolicies) {\n var _this = this;\n Object.keys(typePolicies).forEach(function (typename) {\n var _a = typePolicies[typename], queryType = _a.queryType, mutationType = _a.mutationType, subscriptionType = _a.subscriptionType, incoming = __rest(_a, [\"queryType\", \"mutationType\", \"subscriptionType\"]);\n if (queryType)\n _this.setRootTypename(\"Query\", typename);\n if (mutationType)\n _this.setRootTypename(\"Mutation\", typename);\n if (subscriptionType)\n _this.setRootTypename(\"Subscription\", typename);\n if (hasOwn.call(_this.toBeAdded, typename)) {\n _this.toBeAdded[typename].push(incoming);\n }\n else {\n _this.toBeAdded[typename] = [incoming];\n }\n });\n };\n Policies.prototype.updateTypePolicy = function (typename, incoming) {\n var _this = this;\n var existing = this.getTypePolicy(typename);\n var keyFields = incoming.keyFields, fields = incoming.fields;\n function setMerge(existing, merge) {\n existing.merge =\n typeof merge === \"function\" ? merge :\n merge === true ? mergeTrueFn :\n merge === false ? mergeFalseFn :\n existing.merge;\n }\n setMerge(existing, incoming.merge);\n existing.keyFn =\n keyFields === false ? nullKeyFieldsFn :\n Array.isArray(keyFields) ? keyFieldsFnFromSpecifier(keyFields) :\n typeof keyFields === \"function\" ? keyFields :\n existing.keyFn;\n if (fields) {\n Object.keys(fields).forEach(function (fieldName) {\n var existing = _this.getFieldPolicy(typename, fieldName, true);\n var incoming = fields[fieldName];\n if (typeof incoming === \"function\") {\n existing.read = incoming;\n }\n else {\n var keyArgs = incoming.keyArgs, read = incoming.read, merge = incoming.merge;\n existing.keyFn =\n keyArgs === false ? simpleKeyArgsFn :\n Array.isArray(keyArgs) ? keyArgsFnFromSpecifier(keyArgs) :\n typeof keyArgs === \"function\" ? keyArgs :\n existing.keyFn;\n if (typeof read === \"function\") {\n existing.read = read;\n }\n setMerge(existing, merge);\n }\n if (existing.read && existing.merge) {\n existing.keyFn = existing.keyFn || simpleKeyArgsFn;\n }\n });\n }\n };\n Policies.prototype.setRootTypename = function (which, typename) {\n if (typename === void 0) { typename = which; }\n var rootId = \"ROOT_\" + which.toUpperCase();\n var old = this.rootTypenamesById[rootId];\n if (typename !== old) {\n __DEV__ ? invariant(!old || old === which, \"Cannot change root \" + which + \" __typename more than once\") : invariant(!old || old === which, 2);\n if (old)\n delete this.rootIdsByTypename[old];\n this.rootIdsByTypename[typename] = rootId;\n this.rootTypenamesById[rootId] = typename;\n }\n };\n Policies.prototype.addPossibleTypes = function (possibleTypes) {\n var _this = this;\n this.usingPossibleTypes = true;\n Object.keys(possibleTypes).forEach(function (supertype) {\n _this.getSupertypeSet(supertype, true);\n possibleTypes[supertype].forEach(function (subtype) {\n _this.getSupertypeSet(subtype, true).add(supertype);\n var match = subtype.match(TypeOrFieldNameRegExp);\n if (!match || match[0] !== subtype) {\n _this.fuzzySubtypes.set(subtype, new RegExp(subtype));\n }\n });\n });\n };\n Policies.prototype.getTypePolicy = function (typename) {\n var _this = this;\n if (!hasOwn.call(this.typePolicies, typename)) {\n var policy_1 = this.typePolicies[typename] = Object.create(null);\n policy_1.fields = Object.create(null);\n var supertypes = this.supertypeMap.get(typename);\n if (supertypes && supertypes.size) {\n supertypes.forEach(function (supertype) {\n var _a = _this.getTypePolicy(supertype), fields = _a.fields, rest = __rest(_a, [\"fields\"]);\n Object.assign(policy_1, rest);\n Object.assign(policy_1.fields, fields);\n });\n }\n }\n var inbox = this.toBeAdded[typename];\n if (inbox && inbox.length) {\n inbox.splice(0).forEach(function (policy) {\n _this.updateTypePolicy(typename, policy);\n });\n }\n return this.typePolicies[typename];\n };\n Policies.prototype.getFieldPolicy = function (typename, fieldName, createIfMissing) {\n if (typename) {\n var fieldPolicies = this.getTypePolicy(typename).fields;\n return fieldPolicies[fieldName] || (createIfMissing && (fieldPolicies[fieldName] = Object.create(null)));\n }\n };\n Policies.prototype.getSupertypeSet = function (subtype, createIfMissing) {\n var supertypeSet = this.supertypeMap.get(subtype);\n if (!supertypeSet && createIfMissing) {\n this.supertypeMap.set(subtype, supertypeSet = new Set());\n }\n return supertypeSet;\n };\n Policies.prototype.fragmentMatches = function (fragment, typename, result, variables) {\n var _this = this;\n if (!fragment.typeCondition)\n return true;\n if (!typename)\n return false;\n var supertype = fragment.typeCondition.name.value;\n if (typename === supertype)\n return true;\n if (this.usingPossibleTypes &&\n this.supertypeMap.has(supertype)) {\n var typenameSupertypeSet = this.getSupertypeSet(typename, true);\n var workQueue_1 = [typenameSupertypeSet];\n var maybeEnqueue_1 = function (subtype) {\n var supertypeSet = _this.getSupertypeSet(subtype, false);\n if (supertypeSet &&\n supertypeSet.size &&\n workQueue_1.indexOf(supertypeSet) < 0) {\n workQueue_1.push(supertypeSet);\n }\n };\n var needToCheckFuzzySubtypes = !!(result && this.fuzzySubtypes.size);\n var checkingFuzzySubtypes = false;\n for (var i = 0; i < workQueue_1.length; ++i) {\n var supertypeSet = workQueue_1[i];\n if (supertypeSet.has(supertype)) {\n if (!typenameSupertypeSet.has(supertype)) {\n if (checkingFuzzySubtypes) {\n __DEV__ && invariant.warn(\"Inferring subtype \" + typename + \" of supertype \" + supertype);\n }\n typenameSupertypeSet.add(supertype);\n }\n return true;\n }\n supertypeSet.forEach(maybeEnqueue_1);\n if (needToCheckFuzzySubtypes &&\n i === workQueue_1.length - 1 &&\n selectionSetMatchesResult(fragment.selectionSet, result, variables)) {\n needToCheckFuzzySubtypes = false;\n checkingFuzzySubtypes = true;\n this.fuzzySubtypes.forEach(function (regExp, fuzzyString) {\n var match = typename.match(regExp);\n if (match && match[0] === typename) {\n maybeEnqueue_1(fuzzyString);\n }\n });\n }\n }\n }\n return false;\n };\n Policies.prototype.hasKeyArgs = function (typename, fieldName) {\n var policy = this.getFieldPolicy(typename, fieldName, false);\n return !!(policy && policy.keyFn);\n };\n Policies.prototype.getStoreFieldName = function (fieldSpec) {\n var typename = fieldSpec.typename, fieldName = fieldSpec.fieldName;\n var policy = this.getFieldPolicy(typename, fieldName, false);\n var storeFieldName;\n var keyFn = policy && policy.keyFn;\n if (keyFn && typename) {\n var context = {\n typename: typename,\n fieldName: fieldName,\n field: fieldSpec.field || null,\n variables: fieldSpec.variables,\n };\n var args = argsFromFieldSpecifier(fieldSpec);\n while (keyFn) {\n var specifierOrString = keyFn(args, context);\n if (Array.isArray(specifierOrString)) {\n keyFn = keyArgsFnFromSpecifier(specifierOrString);\n }\n else {\n storeFieldName = specifierOrString || fieldName;\n break;\n }\n }\n }\n if (storeFieldName === void 0) {\n storeFieldName = fieldSpec.field\n ? storeKeyNameFromField(fieldSpec.field, fieldSpec.variables)\n : getStoreKeyName(fieldName, argsFromFieldSpecifier(fieldSpec));\n }\n if (storeFieldName === false) {\n return fieldName;\n }\n return fieldName === fieldNameFromStoreName(storeFieldName)\n ? storeFieldName\n : fieldName + \":\" + storeFieldName;\n };\n Policies.prototype.readField = function (options, context) {\n var objectOrReference = options.from;\n if (!objectOrReference)\n return;\n var nameOrField = options.field || options.fieldName;\n if (!nameOrField)\n return;\n if (options.typename === void 0) {\n var typename = context.store.getFieldValue(objectOrReference, \"__typename\");\n if (typename)\n options.typename = typename;\n }\n var storeFieldName = this.getStoreFieldName(options);\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var existing = context.store.getFieldValue(objectOrReference, storeFieldName);\n var policy = this.getFieldPolicy(options.typename, fieldName, false);\n var read = policy && policy.read;\n if (read) {\n var readOptions = makeFieldFunctionOptions(this, objectOrReference, options, context, context.store.getStorage(isReference(objectOrReference)\n ? objectOrReference.__ref\n : objectOrReference, storeFieldName));\n return cacheSlot.withValue(this.cache, read, [existing, readOptions]);\n }\n return existing;\n };\n Policies.prototype.getMergeFunction = function (parentTypename, fieldName, childTypename) {\n var policy = this.getFieldPolicy(parentTypename, fieldName, false);\n var merge = policy && policy.merge;\n if (!merge && childTypename) {\n policy = this.getTypePolicy(childTypename);\n merge = policy && policy.merge;\n }\n return merge;\n };\n Policies.prototype.runMergeFunction = function (existing, incoming, _a, context, storage) {\n var field = _a.field, typename = _a.typename, merge = _a.merge;\n if (merge === mergeTrueFn) {\n return makeMergeObjectsFunction(context.store)(existing, incoming);\n }\n if (merge === mergeFalseFn) {\n return incoming;\n }\n if (context.overwrite) {\n existing = void 0;\n }\n return merge(existing, incoming, makeFieldFunctionOptions(this, void 0, { typename: typename, fieldName: field.name.value, field: field, variables: context.variables }, context, storage || Object.create(null)));\n };\n return Policies;\n}());\nexport { Policies };\nfunction makeFieldFunctionOptions(policies, objectOrReference, fieldSpec, context, storage) {\n var storeFieldName = policies.getStoreFieldName(fieldSpec);\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var variables = fieldSpec.variables || context.variables;\n var _a = context.store, toReference = _a.toReference, canRead = _a.canRead;\n return {\n args: argsFromFieldSpecifier(fieldSpec),\n field: fieldSpec.field || null,\n fieldName: fieldName,\n storeFieldName: storeFieldName,\n variables: variables,\n isReference: isReference,\n toReference: toReference,\n storage: storage,\n cache: policies.cache,\n canRead: canRead,\n readField: function (fieldNameOrOptions, from) {\n var options;\n if (typeof fieldNameOrOptions === \"string\") {\n options = {\n fieldName: fieldNameOrOptions,\n from: arguments.length > 1 ? from : objectOrReference,\n };\n }\n else if (isNonNullObject(fieldNameOrOptions)) {\n options = __assign({}, fieldNameOrOptions);\n if (!hasOwn.call(fieldNameOrOptions, \"from\")) {\n options.from = objectOrReference;\n }\n }\n else {\n __DEV__ && invariant.warn(\"Unexpected readField arguments: \" + stringifyForDisplay(Array.from(arguments)));\n return;\n }\n if (__DEV__ && options.from === void 0) {\n __DEV__ && invariant.warn(\"Undefined 'from' passed to readField with arguments \" + stringifyForDisplay(Array.from(arguments)));\n }\n if (void 0 === options.variables) {\n options.variables = variables;\n }\n return policies.readField(options, context);\n },\n mergeObjects: makeMergeObjectsFunction(context.store),\n };\n}\nfunction makeMergeObjectsFunction(store) {\n return function mergeObjects(existing, incoming) {\n if (Array.isArray(existing) || Array.isArray(incoming)) {\n throw __DEV__ ? new InvariantError(\"Cannot automatically merge arrays\") : new InvariantError(3);\n }\n if (isNonNullObject(existing) &&\n isNonNullObject(incoming)) {\n var eType = store.getFieldValue(existing, \"__typename\");\n var iType = store.getFieldValue(incoming, \"__typename\");\n var typesDiffer = eType && iType && eType !== iType;\n if (typesDiffer) {\n return incoming;\n }\n if (isReference(existing) &&\n storeValueIsStoreObject(incoming)) {\n store.merge(existing.__ref, incoming);\n return existing;\n }\n if (storeValueIsStoreObject(existing) &&\n isReference(incoming)) {\n store.merge(existing, incoming.__ref);\n return incoming;\n }\n if (storeValueIsStoreObject(existing) &&\n storeValueIsStoreObject(incoming)) {\n return __assign(__assign({}, existing), incoming);\n }\n }\n return incoming;\n };\n}\nfunction keyArgsFnFromSpecifier(specifier) {\n return function (args, context) {\n return args ? context.fieldName + \":\" + JSON.stringify(computeKeyObject(args, specifier, false)) : context.fieldName;\n };\n}\nfunction keyFieldsFnFromSpecifier(specifier) {\n var trie = new Trie(canUseWeakMap);\n return function (object, context) {\n var aliasMap;\n if (context.selectionSet && context.fragmentMap) {\n var info = trie.lookupArray([\n context.selectionSet,\n context.fragmentMap,\n ]);\n aliasMap = info.aliasMap || (info.aliasMap = makeAliasMap(context.selectionSet, context.fragmentMap));\n }\n var keyObject = context.keyObject =\n computeKeyObject(object, specifier, true, aliasMap);\n return context.typename + \":\" + JSON.stringify(keyObject);\n };\n}\nfunction makeAliasMap(selectionSet, fragmentMap) {\n var map = Object.create(null);\n var workQueue = new Set([selectionSet]);\n workQueue.forEach(function (selectionSet) {\n selectionSet.selections.forEach(function (selection) {\n if (isField(selection)) {\n if (selection.alias) {\n var responseKey = selection.alias.value;\n var storeKey = selection.name.value;\n if (storeKey !== responseKey) {\n var aliases = map.aliases || (map.aliases = Object.create(null));\n aliases[storeKey] = responseKey;\n }\n }\n if (selection.selectionSet) {\n var subsets = map.subsets || (map.subsets = Object.create(null));\n subsets[selection.name.value] =\n makeAliasMap(selection.selectionSet, fragmentMap);\n }\n }\n else {\n var fragment = getFragmentFromSelection(selection, fragmentMap);\n if (fragment) {\n workQueue.add(fragment.selectionSet);\n }\n }\n });\n });\n return map;\n}\nfunction computeKeyObject(response, specifier, strict, aliasMap) {\n var keyObj = Object.create(null);\n var lastResponseKey;\n var lastActualKey;\n specifier.forEach(function (s) {\n if (Array.isArray(s)) {\n if (typeof lastActualKey === \"string\" &&\n typeof lastResponseKey === \"string\") {\n var subsets = aliasMap && aliasMap.subsets;\n var subset = subsets && subsets[lastActualKey];\n keyObj[lastActualKey] =\n computeKeyObject(response[lastResponseKey], s, strict, subset);\n }\n }\n else {\n var aliases = aliasMap && aliasMap.aliases;\n var responseName = aliases && aliases[s] || s;\n if (hasOwn.call(response, responseName)) {\n keyObj[lastActualKey = s] = response[lastResponseKey = responseName];\n }\n else {\n __DEV__ ? invariant(!strict, \"Missing field '\" + responseName + \"' while computing key fields\") : invariant(!strict, 4);\n lastResponseKey = lastActualKey = void 0;\n }\n }\n });\n return keyObj;\n}\n//# sourceMappingURL=policies.js.map","import { __assign, __extends } from \"tslib\";\nimport \"./fixPolyfills.js\";\nimport { wrap } from 'optimism';\nimport { equal } from '@wry/equality';\nimport { ApolloCache } from \"../core/cache.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { addTypenameToDocument, isReference, } from \"../../utilities/index.js\";\nimport { StoreReader } from \"./readFromStore.js\";\nimport { StoreWriter } from \"./writeToStore.js\";\nimport { EntityStore, supportsResultCaching } from \"./entityStore.js\";\nimport { makeVar, forgetCache, recallCache } from \"./reactiveVars.js\";\nimport { Policies } from \"./policies.js\";\nimport { hasOwn, normalizeConfig, shouldCanonizeResults } from \"./helpers.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\nvar InMemoryCache = (function (_super) {\n __extends(InMemoryCache, _super);\n function InMemoryCache(config) {\n if (config === void 0) { config = {}; }\n var _this = _super.call(this) || this;\n _this.watches = new Set();\n _this.typenameDocumentCache = new Map();\n _this.makeVar = makeVar;\n _this.txCount = 0;\n _this.config = normalizeConfig(config);\n _this.addTypename = !!_this.config.addTypename;\n _this.policies = new Policies({\n cache: _this,\n dataIdFromObject: _this.config.dataIdFromObject,\n possibleTypes: _this.config.possibleTypes,\n typePolicies: _this.config.typePolicies,\n });\n _this.init();\n return _this;\n }\n InMemoryCache.prototype.init = function () {\n var rootStore = this.data = new EntityStore.Root({\n policies: this.policies,\n resultCaching: this.config.resultCaching,\n });\n this.optimisticData = rootStore.stump;\n this.resetResultCache();\n };\n InMemoryCache.prototype.resetResultCache = function (resetResultIdentities) {\n var _this = this;\n var previousReader = this.storeReader;\n this.storeWriter = new StoreWriter(this, this.storeReader = new StoreReader({\n cache: this,\n addTypename: this.addTypename,\n resultCacheMaxSize: this.config.resultCacheMaxSize,\n canonizeResults: shouldCanonizeResults(this.config),\n canon: resetResultIdentities\n ? void 0\n : previousReader && previousReader.canon,\n }));\n this.maybeBroadcastWatch = wrap(function (c, options) {\n return _this.broadcastWatch(c, options);\n }, {\n max: this.config.resultCacheMaxSize,\n makeCacheKey: function (c) {\n var store = c.optimistic ? _this.optimisticData : _this.data;\n if (supportsResultCaching(store)) {\n var optimistic = c.optimistic, rootId = c.rootId, variables = c.variables;\n return store.makeCacheKey(c.query, c.callback, canonicalStringify({ optimistic: optimistic, rootId: rootId, variables: variables }));\n }\n }\n });\n new Set([\n this.data.group,\n this.optimisticData.group,\n ]).forEach(function (group) { return group.resetCaching(); });\n };\n InMemoryCache.prototype.restore = function (data) {\n this.init();\n if (data)\n this.data.replace(data);\n return this;\n };\n InMemoryCache.prototype.extract = function (optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return (optimistic ? this.optimisticData : this.data).extract();\n };\n InMemoryCache.prototype.read = function (options) {\n var _a = options.returnPartialData, returnPartialData = _a === void 0 ? false : _a;\n try {\n return this.storeReader.diffQueryAgainstStore(__assign(__assign({}, options), { store: options.optimistic ? this.optimisticData : this.data, config: this.config, returnPartialData: returnPartialData })).result || null;\n }\n catch (e) {\n if (e instanceof MissingFieldError) {\n return null;\n }\n throw e;\n }\n };\n InMemoryCache.prototype.write = function (options) {\n try {\n ++this.txCount;\n return this.storeWriter.writeToStore(this.data, options);\n }\n finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n InMemoryCache.prototype.modify = function (options) {\n if (hasOwn.call(options, \"id\") && !options.id) {\n return false;\n }\n var store = options.optimistic\n ? this.optimisticData\n : this.data;\n try {\n ++this.txCount;\n return store.modify(options.id || \"ROOT_QUERY\", options.fields);\n }\n finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n InMemoryCache.prototype.diff = function (options) {\n return this.storeReader.diffQueryAgainstStore(__assign(__assign({}, options), { store: options.optimistic ? this.optimisticData : this.data, rootId: options.id || \"ROOT_QUERY\", config: this.config }));\n };\n InMemoryCache.prototype.watch = function (watch) {\n var _this = this;\n if (!this.watches.size) {\n recallCache(this);\n }\n this.watches.add(watch);\n if (watch.immediate) {\n this.maybeBroadcastWatch(watch);\n }\n return function () {\n if (_this.watches.delete(watch) && !_this.watches.size) {\n forgetCache(_this);\n }\n _this.maybeBroadcastWatch.forget(watch);\n };\n };\n InMemoryCache.prototype.gc = function (options) {\n canonicalStringify.reset();\n var ids = this.optimisticData.gc();\n if (options && !this.txCount) {\n if (options.resetResultCache) {\n this.resetResultCache(options.resetResultIdentities);\n }\n else if (options.resetResultIdentities) {\n this.storeReader.resetCanon();\n }\n }\n return ids;\n };\n InMemoryCache.prototype.retain = function (rootId, optimistic) {\n return (optimistic ? this.optimisticData : this.data).retain(rootId);\n };\n InMemoryCache.prototype.release = function (rootId, optimistic) {\n return (optimistic ? this.optimisticData : this.data).release(rootId);\n };\n InMemoryCache.prototype.identify = function (object) {\n return isReference(object) ? object.__ref :\n this.policies.identify(object)[0];\n };\n InMemoryCache.prototype.evict = function (options) {\n if (!options.id) {\n if (hasOwn.call(options, \"id\")) {\n return false;\n }\n options = __assign(__assign({}, options), { id: \"ROOT_QUERY\" });\n }\n try {\n ++this.txCount;\n return this.optimisticData.evict(options, this.data);\n }\n finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n InMemoryCache.prototype.reset = function (options) {\n var _this = this;\n this.init();\n canonicalStringify.reset();\n if (options && options.discardWatches) {\n this.watches.forEach(function (watch) { return _this.maybeBroadcastWatch.forget(watch); });\n this.watches.clear();\n forgetCache(this);\n }\n else {\n this.broadcastWatches();\n }\n return Promise.resolve();\n };\n InMemoryCache.prototype.removeOptimistic = function (idToRemove) {\n var newOptimisticData = this.optimisticData.removeLayer(idToRemove);\n if (newOptimisticData !== this.optimisticData) {\n this.optimisticData = newOptimisticData;\n this.broadcastWatches();\n }\n };\n InMemoryCache.prototype.batch = function (options) {\n var _this = this;\n var update = options.update, _a = options.optimistic, optimistic = _a === void 0 ? true : _a, removeOptimistic = options.removeOptimistic, onWatchUpdated = options.onWatchUpdated;\n var perform = function (layer) {\n var _a = _this, data = _a.data, optimisticData = _a.optimisticData;\n ++_this.txCount;\n if (layer) {\n _this.data = _this.optimisticData = layer;\n }\n try {\n update(_this);\n }\n finally {\n --_this.txCount;\n _this.data = data;\n _this.optimisticData = optimisticData;\n }\n };\n var alreadyDirty = new Set();\n if (onWatchUpdated && !this.txCount) {\n this.broadcastWatches(__assign(__assign({}, options), { onWatchUpdated: function (watch) {\n alreadyDirty.add(watch);\n return false;\n } }));\n }\n if (typeof optimistic === 'string') {\n this.optimisticData = this.optimisticData.addLayer(optimistic, perform);\n }\n else if (optimistic === false) {\n perform(this.data);\n }\n else {\n perform();\n }\n if (typeof removeOptimistic === \"string\") {\n this.optimisticData = this.optimisticData.removeLayer(removeOptimistic);\n }\n if (onWatchUpdated && alreadyDirty.size) {\n this.broadcastWatches(__assign(__assign({}, options), { onWatchUpdated: function (watch, diff) {\n var result = onWatchUpdated.call(this, watch, diff);\n if (result !== false) {\n alreadyDirty.delete(watch);\n }\n return result;\n } }));\n if (alreadyDirty.size) {\n alreadyDirty.forEach(function (watch) { return _this.maybeBroadcastWatch.dirty(watch); });\n }\n }\n else {\n this.broadcastWatches(options);\n }\n };\n InMemoryCache.prototype.performTransaction = function (update, optimisticId) {\n return this.batch({\n update: update,\n optimistic: optimisticId || (optimisticId !== null),\n });\n };\n InMemoryCache.prototype.transformDocument = function (document) {\n if (this.addTypename) {\n var result = this.typenameDocumentCache.get(document);\n if (!result) {\n result = addTypenameToDocument(document);\n this.typenameDocumentCache.set(document, result);\n this.typenameDocumentCache.set(result, result);\n }\n return result;\n }\n return document;\n };\n InMemoryCache.prototype.broadcastWatches = function (options) {\n var _this = this;\n if (!this.txCount) {\n this.watches.forEach(function (c) { return _this.maybeBroadcastWatch(c, options); });\n }\n };\n InMemoryCache.prototype.broadcastWatch = function (c, options) {\n var lastDiff = c.lastDiff;\n var diff = this.diff(c);\n if (options) {\n if (c.optimistic &&\n typeof options.optimistic === \"string\") {\n diff.fromOptimisticTransaction = true;\n }\n if (options.onWatchUpdated &&\n options.onWatchUpdated.call(this, c, diff, lastDiff) === false) {\n return;\n }\n }\n if (!lastDiff || !equal(lastDiff.result, diff.result)) {\n c.callback(c.lastDiff = diff, lastDiff);\n }\n };\n return InMemoryCache;\n}(ApolloCache));\nexport { InMemoryCache };\n//# sourceMappingURL=inMemoryCache.js.map","import { __assign, __extends } from \"tslib\";\nimport { equal } from '@wry/equality';\nimport { ApolloError } from \"../../errors/index.js\";\nimport { NetworkStatus, } from \"../../core/index.js\";\nimport { DocumentType } from \"../parser/index.js\";\nimport { OperationData } from \"./OperationData.js\";\nvar QueryData = (function (_super) {\n __extends(QueryData, _super);\n function QueryData(_a) {\n var options = _a.options, context = _a.context, onNewData = _a.onNewData;\n var _this = _super.call(this, options, context) || this;\n _this.runLazy = false;\n _this.previous = Object.create(null);\n _this.runLazyQuery = function (options) {\n _this.cleanup();\n _this.runLazy = true;\n _this.lazyOptions = options;\n _this.onNewData();\n };\n _this.obsRefetch = function (variables) { var _a; return (_a = _this.currentObservable) === null || _a === void 0 ? void 0 : _a.refetch(variables); };\n _this.obsFetchMore = function (fetchMoreOptions) { var _a; return (_a = _this.currentObservable) === null || _a === void 0 ? void 0 : _a.fetchMore(fetchMoreOptions); };\n _this.obsUpdateQuery = function (mapFn) { var _a; return (_a = _this.currentObservable) === null || _a === void 0 ? void 0 : _a.updateQuery(mapFn); };\n _this.obsStartPolling = function (pollInterval) {\n var _a;\n (_a = _this.currentObservable) === null || _a === void 0 ? void 0 : _a.startPolling(pollInterval);\n };\n _this.obsStopPolling = function () {\n var _a;\n (_a = _this.currentObservable) === null || _a === void 0 ? void 0 : _a.stopPolling();\n };\n _this.obsSubscribeToMore = function (options) { var _a; return (_a = _this.currentObservable) === null || _a === void 0 ? void 0 : _a.subscribeToMore(options); };\n _this.onNewData = onNewData;\n return _this;\n }\n QueryData.prototype.execute = function () {\n this.refreshClient();\n var _a = this.getOptions(), skip = _a.skip, query = _a.query;\n if (skip || query !== this.previous.query) {\n this.removeQuerySubscription();\n this.removeObservable(!skip);\n this.previous.query = query;\n }\n this.updateObservableQuery();\n return this.getExecuteSsrResult() || this.getExecuteResult();\n };\n QueryData.prototype.executeLazy = function () {\n return !this.runLazy\n ? [\n this.runLazyQuery,\n {\n loading: false,\n networkStatus: NetworkStatus.ready,\n called: false,\n data: undefined\n }\n ]\n : [this.runLazyQuery, this.execute()];\n };\n QueryData.prototype.fetchData = function () {\n var _this = this;\n var options = this.getOptions();\n if (options.skip || options.ssr === false)\n return false;\n return new Promise(function (resolve) { return _this.startQuerySubscription(resolve); });\n };\n QueryData.prototype.afterExecute = function (_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.lazy, lazy = _c === void 0 ? false : _c;\n this.isMounted = true;\n var options = this.getOptions();\n if (this.currentObservable && !this.ssrInitiated()) {\n this.startQuerySubscription();\n }\n if (!lazy || this.runLazy) {\n this.handleErrorOrCompleted();\n }\n this.previousOptions = options;\n return this.unmount.bind(this);\n };\n QueryData.prototype.cleanup = function () {\n this.removeQuerySubscription();\n this.removeObservable(true);\n delete this.previous.result;\n };\n QueryData.prototype.getOptions = function () {\n var options = _super.prototype.getOptions.call(this);\n if (this.lazyOptions) {\n options.variables = __assign(__assign({}, options.variables), this.lazyOptions.variables);\n options.context = __assign(__assign({}, options.context), this.lazyOptions.context);\n }\n if (this.runLazy) {\n delete options.skip;\n }\n return options;\n };\n QueryData.prototype.ssrInitiated = function () {\n return this.context && this.context.renderPromises;\n };\n QueryData.prototype.getExecuteSsrResult = function () {\n var _a = this.getOptions(), ssr = _a.ssr, skip = _a.skip;\n var ssrDisabled = ssr === false;\n var fetchDisabled = this.refreshClient().client.disableNetworkFetches;\n var ssrLoading = __assign({ loading: true, networkStatus: NetworkStatus.loading, called: true, data: undefined, stale: false, client: this.client }, this.observableQueryFields());\n if (ssrDisabled && (this.ssrInitiated() || fetchDisabled)) {\n this.previous.result = ssrLoading;\n return ssrLoading;\n }\n if (this.ssrInitiated()) {\n var result = this.getExecuteResult() || ssrLoading;\n if (result.loading && !skip) {\n this.context.renderPromises.addQueryPromise(this, function () { return null; });\n }\n return result;\n }\n };\n QueryData.prototype.prepareObservableQueryOptions = function () {\n var options = this.getOptions();\n this.verifyDocumentType(options.query, DocumentType.Query);\n var displayName = options.displayName || 'Query';\n if (this.ssrInitiated() &&\n (options.fetchPolicy === 'network-only' ||\n options.fetchPolicy === 'cache-and-network')) {\n options.fetchPolicy = 'cache-first';\n }\n return __assign(__assign({}, options), { displayName: displayName, context: options.context });\n };\n QueryData.prototype.initializeObservableQuery = function () {\n if (this.ssrInitiated()) {\n this.currentObservable = this.context.renderPromises.getSSRObservable(this.getOptions());\n }\n if (!this.currentObservable) {\n var observableQueryOptions = this.prepareObservableQueryOptions();\n this.previous.observableQueryOptions = __assign(__assign({}, observableQueryOptions), { children: void 0 });\n this.currentObservable = this.refreshClient().client.watchQuery(__assign({}, observableQueryOptions));\n if (this.ssrInitiated()) {\n this.context.renderPromises.registerSSRObservable(this.currentObservable, observableQueryOptions);\n }\n }\n };\n QueryData.prototype.updateObservableQuery = function () {\n if (!this.currentObservable) {\n this.initializeObservableQuery();\n return;\n }\n var newObservableQueryOptions = __assign(__assign({}, this.prepareObservableQueryOptions()), { children: void 0 });\n if (this.getOptions().skip) {\n this.previous.observableQueryOptions = newObservableQueryOptions;\n return;\n }\n if (!equal(newObservableQueryOptions, this.previous.observableQueryOptions)) {\n this.previous.observableQueryOptions = newObservableQueryOptions;\n this.currentObservable\n .setOptions(newObservableQueryOptions)\n .catch(function () { });\n }\n };\n QueryData.prototype.startQuerySubscription = function (onNewData) {\n var _this = this;\n if (onNewData === void 0) { onNewData = this.onNewData; }\n if (this.currentSubscription || this.getOptions().skip)\n return;\n this.currentSubscription = this.currentObservable.subscribe({\n next: function (_a) {\n var loading = _a.loading, networkStatus = _a.networkStatus, data = _a.data;\n var previousResult = _this.previous.result;\n if (previousResult &&\n previousResult.loading === loading &&\n previousResult.networkStatus === networkStatus &&\n equal(previousResult.data, data)) {\n return;\n }\n onNewData();\n },\n error: function (error) {\n _this.resubscribeToQuery();\n if (!error.hasOwnProperty('graphQLErrors'))\n throw error;\n var previousResult = _this.previous.result;\n if ((previousResult && previousResult.loading) ||\n !equal(error, _this.previous.error)) {\n _this.previous.error = error;\n onNewData();\n }\n }\n });\n };\n QueryData.prototype.resubscribeToQuery = function () {\n this.removeQuerySubscription();\n var currentObservable = this.currentObservable;\n if (currentObservable) {\n var last = currentObservable[\"last\"];\n try {\n currentObservable.resetLastResults();\n this.startQuerySubscription();\n }\n finally {\n currentObservable[\"last\"] = last;\n }\n }\n };\n QueryData.prototype.getExecuteResult = function () {\n var result = this.observableQueryFields();\n var options = this.getOptions();\n if (options.skip) {\n result = __assign(__assign({}, result), { data: undefined, error: undefined, loading: false, networkStatus: NetworkStatus.ready, called: true });\n }\n else if (this.currentObservable) {\n var currentResult = this.currentObservable.getCurrentResult();\n var data = currentResult.data, loading = currentResult.loading, partial = currentResult.partial, networkStatus = currentResult.networkStatus, errors = currentResult.errors;\n var error = currentResult.error;\n if (errors && errors.length > 0) {\n error = new ApolloError({ graphQLErrors: errors });\n }\n result = __assign(__assign({}, result), { data: data, loading: loading, networkStatus: networkStatus, error: error, called: true });\n if (loading) {\n }\n else if (error) {\n Object.assign(result, {\n data: (this.currentObservable.getLastResult() || {})\n .data\n });\n }\n else {\n var fetchPolicy = this.currentObservable.options.fetchPolicy;\n var partialRefetch = options.partialRefetch;\n if (partialRefetch &&\n partial &&\n (!data || Object.keys(data).length === 0) &&\n fetchPolicy !== 'cache-only') {\n Object.assign(result, {\n loading: true,\n networkStatus: NetworkStatus.loading\n });\n result.refetch();\n return result;\n }\n }\n }\n result.client = this.client;\n this.setOptions(options, true);\n var previousResult = this.previous.result;\n this.previous.loading =\n previousResult && previousResult.loading || false;\n result.previousData = previousResult &&\n (previousResult.data || previousResult.previousData);\n this.previous.result = result;\n this.currentObservable && this.currentObservable.resetQueryStoreErrors();\n return result;\n };\n QueryData.prototype.handleErrorOrCompleted = function () {\n if (!this.currentObservable || !this.previous.result)\n return;\n var _a = this.previous.result, data = _a.data, loading = _a.loading, error = _a.error;\n if (!loading) {\n var _b = this.getOptions(), query = _b.query, variables = _b.variables, onCompleted = _b.onCompleted, onError = _b.onError, skip = _b.skip;\n if (this.previousOptions &&\n !this.previous.loading &&\n equal(this.previousOptions.query, query) &&\n equal(this.previousOptions.variables, variables)) {\n return;\n }\n if (onCompleted && !error && !skip) {\n onCompleted(data);\n }\n else if (onError && error) {\n onError(error);\n }\n }\n };\n QueryData.prototype.removeQuerySubscription = function () {\n if (this.currentSubscription) {\n this.currentSubscription.unsubscribe();\n delete this.currentSubscription;\n }\n };\n QueryData.prototype.removeObservable = function (andDelete) {\n if (this.currentObservable) {\n this.currentObservable[\"tearDownQuery\"]();\n if (andDelete) {\n delete this.currentObservable;\n }\n }\n };\n QueryData.prototype.observableQueryFields = function () {\n var _a;\n return {\n variables: (_a = this.currentObservable) === null || _a === void 0 ? void 0 : _a.variables,\n refetch: this.obsRefetch,\n fetchMore: this.obsFetchMore,\n updateQuery: this.obsUpdateQuery,\n startPolling: this.obsStartPolling,\n stopPolling: this.obsStopPolling,\n subscribeToMore: this.obsSubscribeToMore\n };\n };\n return QueryData;\n}(OperationData));\nexport { QueryData };\n//# sourceMappingURL=QueryData.js.map","import { __assign } from \"tslib\";\nimport \"../../../utilities/globals/index.js\";\nimport { useContext, useEffect, useReducer, useRef } from 'react';\nimport { QueryData } from \"../../data/index.js\";\nimport { useDeepMemo } from \"./useDeepMemo.js\";\nimport { getApolloContext } from \"../../context/index.js\";\nimport { useAfterFastRefresh } from \"./useAfterFastRefresh.js\";\nexport function useBaseQuery(query, options, lazy) {\n if (lazy === void 0) { lazy = false; }\n var context = useContext(getApolloContext());\n var _a = useReducer(function (x) { return x + 1; }, 0), tick = _a[0], forceUpdate = _a[1];\n var updatedOptions = options ? __assign(__assign({}, options), { query: query }) : { query: query };\n var queryDataRef = useRef();\n var queryData = queryDataRef.current || (queryDataRef.current = new QueryData({\n options: updatedOptions,\n context: context,\n onNewData: function () {\n if (!queryData.ssrInitiated()) {\n Promise.resolve().then(function () { return queryDataRef.current && queryDataRef.current.isMounted && forceUpdate(); });\n }\n else {\n forceUpdate();\n }\n }\n }));\n queryData.setOptions(updatedOptions);\n queryData.context = context;\n var memo = {\n options: __assign(__assign({}, updatedOptions), { onError: void 0, onCompleted: void 0 }),\n context: context,\n tick: tick\n };\n var result = useDeepMemo(function () { return (lazy ? queryData.executeLazy() : queryData.execute()); }, memo);\n var queryResult = lazy\n ? result[1]\n : result;\n if (__DEV__) {\n useAfterFastRefresh(forceUpdate);\n }\n useEffect(function () {\n return function () {\n queryData.cleanup();\n queryDataRef.current = void 0;\n };\n }, []);\n useEffect(function () { return queryData.afterExecute({ lazy: lazy }); }, [\n queryResult.loading,\n queryResult.networkStatus,\n queryResult.error,\n queryResult.data,\n queryData.currentObservable,\n ]);\n return result;\n}\n//# sourceMappingURL=useBaseQuery.js.map","import { useRef } from 'react';\nimport { equal } from '@wry/equality';\nexport function useDeepMemo(memoFn, key) {\n var ref = useRef();\n if (!ref.current || !equal(key, ref.current.key)) {\n ref.current = { key: key, value: memoFn() };\n }\n return ref.current.value;\n}\n//# sourceMappingURL=useDeepMemo.js.map","import { useBaseQuery } from \"./utils/useBaseQuery.js\";\nexport function useQuery(query, options) {\n return useBaseQuery(query, options, false);\n}\n//# sourceMappingURL=useQuery.js.map","import React, { PureComponent } from 'react';\n\nimport createIconSet from './createIconSet';\n\ntype FontStyle = {\n fontFamily: string;\n fontFile: any;\n glyphMap: any;\n fontStyle: any;\n};\n\ntype FontStyles = {\n [key: string]: FontStyle;\n};\n\nexport default function createMultiStyleIconSet(\n styles: FontStyles,\n optionsInput = {}\n): any {\n const styleNames = Object.keys(styles);\n\n if (styleNames.length === 0) {\n throw new Error('You need to add at least one style');\n }\n\n const options = {\n defaultStyle: styleNames[0],\n fallbackFamily: (_unused: any) => styleNames[0],\n glyphValidator: (_unused: any, __unused: any) => true,\n ...optionsInput,\n };\n\n const iconSets = styleNames.reduce((acc, name) => {\n const style = styles[name];\n\n acc[name] = createIconSet(\n style.glyphMap || {},\n style.fontFamily || '',\n style.fontFile || '',\n style.fontStyle || {}\n );\n\n return acc;\n }, {});\n\n function styleFromProps(props) {\n return Object.keys(props).reduce(\n (result, propName) =>\n styleNames.indexOf(propName) !== -1 && props[propName] === true\n ? propName\n : result,\n options.defaultStyle\n );\n }\n\n function getIconSetForProps(props) {\n const { name } = props;\n const style = styleFromProps(props);\n\n if (options.glyphValidator(name, style)) return iconSets[style];\n\n const family = options.fallbackFamily(name);\n\n if (styleNames.indexOf(family) === -1) {\n return options.defaultStyle;\n }\n\n return iconSets[family];\n }\n\n function selectIconClass(iconSet, iconClass) {\n return iconClass.length > 0 ? iconSet[iconClass] : iconSet;\n }\n\n function reduceProps(props) {\n return Object.keys(props).reduce((acc, prop) => {\n if (styleNames.indexOf(prop) === -1) {\n acc[prop] = props[prop];\n }\n\n return acc;\n }, {});\n }\n\n function getStyledIconSet(style, name = '') {\n if (styleNames.indexOf(style) === -1) {\n return iconSets[options.defaultStyle];\n }\n\n return !name\n ? iconSets[styleFromProps({ [style]: true })]\n : getIconSetForProps({ name, [style]: true });\n }\n\n function getFontFamily(style = options.defaultStyle) {\n return getStyledIconSet(style).getFontFamily();\n }\n\n function getRawGlyphMap(style = options.defaultStyle) {\n return getStyledIconSet(style).getRawGlyphMap();\n }\n\n function hasIcon(name, style = options.defaultStyle) {\n return options.glyphValidator(name, style);\n }\n\n function createStyledIconClass(selectClass = '') {\n class IconClass extends PureComponent {\n static defaultProps = styleNames.reduce((acc, name) => {\n acc[name] = false;\n return acc;\n }, {});\n\n static font = Object.values(styles).reduce((acc, style) => {\n acc[style.fontFamily] = style.fontFile;\n return acc;\n }, {});\n\n static Button: any;\n\n static StyledIconSet = getStyledIconSet;\n static getFontFamily = getFontFamily;\n static getRawGlyphMap = getRawGlyphMap;\n static hasIcon = hasIcon;\n\n render() {\n const selectedIconSet = getIconSetForProps(this.props);\n const SelectedIconClass = selectIconClass(selectedIconSet, selectClass);\n const props = reduceProps(this.props);\n\n return React.createElement(SelectedIconClass, props);\n }\n }\n\n return IconClass;\n }\n\n const Icon = createStyledIconClass();\n Icon.Button = createStyledIconClass('Button');\n return Icon;\n}\n","import { createFA5iconSet } from './createIconSetFromFontAwesome5';\n\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/FontAwesome5Free.json';\nimport metadata from './vendor/react-native-vector-icons/glyphmaps/FontAwesome5Free_meta.json';\nconst fontMap = {\n Regular: require('./vendor/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf'),\n Light: require('./vendor/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf'),\n Solid: require('./vendor/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf'),\n Brand: require('./vendor/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf'),\n};\n\nexport const FA5Style = {\n regular: 'regular',\n light: 'light',\n solid: 'solid',\n brand: 'brand',\n};\n\nconst iconSet = createFA5iconSet(glyphMap, metadata, fontMap, false);\n\nexport default iconSet;\n","import { Platform } from 'react-native';\nimport createMultiStyleIconSet from './createMultiStyleIconSet';\n\nexport const FA5Style = {\n regular: 'regular',\n light: 'light',\n solid: 'solid',\n brand: 'brand',\n};\n\nexport function createFA5iconSet(glyphMap, metadata = {}, fonts, pro = false) {\n const metadataKeys = Object.keys(metadata);\n const fontFamily = `FontAwesome5${pro ? 'Pro' : 'Free'}`;\n\n function fallbackFamily(glyph) {\n for (let i = 0; i < metadataKeys.length; i += 1) {\n const family = metadataKeys[i];\n if (metadata[family].indexOf(glyph) !== -1) {\n return family === 'brands' ? 'brand' : family;\n }\n }\n\n return 'regular';\n }\n\n function glyphValidator(glyph, style) {\n const family = style === 'brand' ? 'brands' : style;\n if (metadataKeys.indexOf(family) === -1) return false;\n return metadata[family].indexOf(glyph) !== -1;\n }\n\n function createFontAwesomeStyle(styleName, fontWeight, family = fontFamily) {\n let fontFile = fonts[styleName];\n\n return {\n fontFamily: `${family}-${styleName}`,\n fontFile,\n fontStyle: Platform.select({\n ios: {\n fontWeight,\n },\n default: {},\n }),\n glyphMap,\n };\n }\n\n const brandIcons = createFontAwesomeStyle('Brand', '400');\n const lightIcons = createFontAwesomeStyle('Light', '100');\n const regularIcons = createFontAwesomeStyle('Regular', '400');\n const solidIcons = createFontAwesomeStyle('Solid', '700');\n const Icon = createMultiStyleIconSet(\n {\n brand: brandIcons,\n light: lightIcons,\n regular: regularIcons,\n solid: solidIcons,\n },\n {\n defaultStyle: 'regular',\n fallbackFamily,\n glyphValidator,\n },\n );\n\n return Icon;\n}","import { __assign, __extends } from \"tslib\";\nimport { equal } from '@wry/equality';\nimport { DocumentType } from \"../parser/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { OperationData } from \"./OperationData.js\";\nimport { mergeOptions } from \"../../core/index.js\";\nvar MutationData = (function (_super) {\n __extends(MutationData, _super);\n function MutationData(_a) {\n var options = _a.options, context = _a.context, result = _a.result, setResult = _a.setResult;\n var _this = _super.call(this, options, context) || this;\n _this.runMutation = function (mutationFunctionOptions) {\n if (mutationFunctionOptions === void 0) { mutationFunctionOptions = {}; }\n _this.onMutationStart();\n var mutationId = _this.generateNewMutationId();\n return _this.mutate(mutationFunctionOptions)\n .then(function (response) {\n _this.onMutationCompleted(response, mutationId);\n return response;\n })\n .catch(function (error) {\n var onError = _this.getOptions().onError;\n _this.onMutationError(error, mutationId);\n if (onError) {\n onError(error);\n return {\n data: undefined,\n errors: error,\n };\n }\n else {\n throw error;\n }\n });\n };\n _this.verifyDocumentType(options.mutation, DocumentType.Mutation);\n _this.result = result;\n _this.setResult = setResult;\n _this.mostRecentMutationId = 0;\n return _this;\n }\n MutationData.prototype.execute = function (result) {\n this.isMounted = true;\n this.verifyDocumentType(this.getOptions().mutation, DocumentType.Mutation);\n return [\n this.runMutation,\n __assign(__assign({}, result), { client: this.refreshClient().client })\n ];\n };\n MutationData.prototype.afterExecute = function () {\n this.isMounted = true;\n return this.unmount.bind(this);\n };\n MutationData.prototype.cleanup = function () {\n };\n MutationData.prototype.mutate = function (options) {\n return this.refreshClient().client.mutate(mergeOptions(this.getOptions(), options));\n };\n MutationData.prototype.onMutationStart = function () {\n if (!this.result.loading && !this.getOptions().ignoreResults) {\n this.updateResult({\n loading: true,\n error: undefined,\n data: undefined,\n called: true\n });\n }\n };\n MutationData.prototype.onMutationCompleted = function (response, mutationId) {\n var _a = this.getOptions(), onCompleted = _a.onCompleted, ignoreResults = _a.ignoreResults;\n var data = response.data, errors = response.errors;\n var error = errors && errors.length > 0\n ? new ApolloError({ graphQLErrors: errors })\n : undefined;\n var callOncomplete = function () {\n return onCompleted ? onCompleted(data) : null;\n };\n if (this.isMostRecentMutation(mutationId) && !ignoreResults) {\n this.updateResult({\n called: true,\n loading: false,\n data: data,\n error: error\n });\n }\n callOncomplete();\n };\n MutationData.prototype.onMutationError = function (error, mutationId) {\n if (this.isMostRecentMutation(mutationId)) {\n this.updateResult({\n loading: false,\n error: error,\n data: undefined,\n called: true\n });\n }\n };\n MutationData.prototype.generateNewMutationId = function () {\n return ++this.mostRecentMutationId;\n };\n MutationData.prototype.isMostRecentMutation = function (mutationId) {\n return this.mostRecentMutationId === mutationId;\n };\n MutationData.prototype.updateResult = function (result) {\n if (this.isMounted &&\n (!this.previousResult || !equal(this.previousResult, result))) {\n this.setResult(result);\n this.previousResult = result;\n return result;\n }\n };\n return MutationData;\n}(OperationData));\nexport { MutationData };\n//# sourceMappingURL=MutationData.js.map","import { __assign } from \"tslib\";\nimport { useContext, useState, useRef, useEffect } from 'react';\nimport { MutationData } from \"../data/index.js\";\nimport { getApolloContext } from \"../context/index.js\";\nexport function useMutation(mutation, options) {\n var context = useContext(getApolloContext());\n var _a = useState({ called: false, loading: false }), result = _a[0], setResult = _a[1];\n var updatedOptions = options ? __assign(__assign({}, options), { mutation: mutation }) : { mutation: mutation };\n var mutationDataRef = useRef();\n function getMutationDataRef() {\n if (!mutationDataRef.current) {\n mutationDataRef.current = new MutationData({\n options: updatedOptions,\n context: context,\n result: result,\n setResult: setResult\n });\n }\n return mutationDataRef.current;\n }\n var mutationData = getMutationDataRef();\n mutationData.setOptions(updatedOptions);\n mutationData.context = context;\n useEffect(function () { return mutationData.afterExecute(); });\n return mutationData.execute(result);\n}\n//# sourceMappingURL=useMutation.js.map","import { PermissionStatus, Platform } from 'expo-modules-core';\n\nimport {\n NativeNotificationPermissionsRequest,\n NotificationPermissionsStatus,\n} from './NotificationPermissions.types';\nimport { NotificationPermissionsModule } from './NotificationPermissionsModule.types';\n\nfunction convertPermissionStatus(\n status?: NotificationPermission | 'prompt'\n): NotificationPermissionsStatus {\n switch (status) {\n case 'granted':\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: false,\n granted: true,\n };\n case 'denied':\n return {\n status: PermissionStatus.DENIED,\n expires: 'never',\n canAskAgain: false,\n granted: false,\n };\n default:\n return {\n status: PermissionStatus.UNDETERMINED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n }\n}\n\nasync function resolvePermissionAsync({\n shouldAsk,\n}: {\n shouldAsk: boolean;\n}): Promise {\n if (!Platform.isDOMAvailable) {\n return convertPermissionStatus('denied');\n }\n\n const { Notification = {} } = window as any;\n if (typeof Notification.requestPermission !== 'undefined') {\n let status = Notification.permission;\n if (shouldAsk) {\n status = await new Promise((resolve, reject) => {\n let resolved = false;\n function resolveOnce(status: string) {\n if (!resolved) {\n resolved = true;\n resolve(status);\n }\n }\n // Some browsers require a callback argument and some return a Promise\n Notification.requestPermission(resolveOnce)?.then(resolveOnce)?.catch(reject);\n });\n }\n return convertPermissionStatus(status);\n } else if (typeof navigator !== 'undefined' && navigator?.permissions?.query) {\n // TODO(Bacon): Support `push` in the future when it's stable.\n const query = await navigator.permissions.query({ name: 'notifications' });\n return convertPermissionStatus(query.state);\n }\n // Platforms like iOS Safari don't support Notifications so return denied.\n return convertPermissionStatus('denied');\n}\n\nexport default {\n addListener: () => {},\n removeListeners: () => {},\n async getPermissionsAsync(): Promise {\n return resolvePermissionAsync({ shouldAsk: false });\n },\n async requestPermissionsAsync(\n request: NativeNotificationPermissionsRequest\n ): Promise {\n return resolvePermissionAsync({ shouldAsk: true });\n },\n} as NotificationPermissionsModule;\n","import { createPermissionHook, Platform, UnavailabilityError } from 'expo-modules-core';\n\nimport {\n NotificationPermissionsRequest,\n NotificationPermissionsStatus,\n} from './NotificationPermissions.types';\nimport NotificationPermissionsModule from './NotificationPermissionsModule';\n\n/**\n * Calling this function checks current permissions settings related to notifications.\n * It lets you verify whether the app is currently allowed to display alerts, play sounds, etc.\n * There is no user-facing effect of calling this.\n * @return It returns a `Promise` resolving to an object represents permission settings ([`NotificationPermissionsStatus`](#notificationpermissionsstatus)).\n * On iOS, make sure you [properly interpret the permissions response](#interpreting-the-ios-permissions-response).\n * @example Check if the app is allowed to send any type of notifications (interrupting and non-interrupting–provisional on iOS).\n * ```ts\n * import * as Notifications from 'expo-notifications';\n *\n * export async function allowsNotificationsAsync() {\n * const settings = await Notifications.getPermissionsAsync();\n * return (\n * settings.granted || settings.ios?.status === Notifications.IosAuthorizationStatus.PROVISIONAL\n * );\n * }\n * ```\n * @header permissions\n */\nexport async function getPermissionsAsync() {\n if (!NotificationPermissionsModule.getPermissionsAsync) {\n throw new UnavailabilityError('Notifications', 'getPermissionsAsync');\n }\n\n return await NotificationPermissionsModule.getPermissionsAsync();\n}\n\n/**\n * Prompts the user for notification permissions according to request. **Request defaults to asking the user to allow displaying alerts,\n * setting badge count and playing sounds**.\n * @param permissions An object representing configuration for the request scope.\n * @return It returns a Promise resolving to an object represents permission settings ([`NotificationPermissionsStatus`](#notificationpermissionsstatus)).\n * On iOS, make sure you [properly interpret the permissions response](#interpreting-the-ios-permissions-response).\n * @example Prompts the user to allow the app to show alerts, play sounds, set badge count and let Siri read out messages through AirPods.\n * ```ts\n * import * as Notifications from 'expo-notifications';\n *\n * export function requestPermissionsAsync() {\n * return await Notifications.requestPermissionsAsync({\n * ios: {\n * allowAlert: true,\n * allowBadge: true,\n * allowSound: true,\n * allowAnnouncements: true,\n * },\n * });\n * }\n * ```\n * @header permissions\n */\nexport async function requestPermissionsAsync(permissions?: NotificationPermissionsRequest) {\n if (!NotificationPermissionsModule.requestPermissionsAsync) {\n throw new UnavailabilityError('Notifications', 'requestPermissionsAsync');\n }\n\n const requestedPermissions = permissions ?? {\n ios: {\n allowAlert: true,\n allowBadge: true,\n allowSound: true,\n },\n };\n const requestedPlatformPermissions = requestedPermissions[Platform.OS];\n return await NotificationPermissionsModule.requestPermissionsAsync(requestedPlatformPermissions);\n}\n\n// @needsAudit\n/**\n * Check or request permissions to send and receive push notifications.\n * This uses both `requestPermissionsAsync` and `getPermissionsAsync` to interact with the permissions.\n * @example\n * ```ts\n * const [permissionResponse, requestPermission] = Notifications.usePermissions();\n * ```\n * @header permission\n */\nexport const usePermissions = createPermissionHook<\n NotificationPermissionsStatus,\n NotificationPermissionsRequest\n>({\n requestMethod: requestPermissionsAsync,\n getMethod: getPermissionsAsync,\n});\n","import {\n RCTDeviceEventEmitter,\n CodedError,\n NativeModulesProxy,\n UnavailabilityError,\n} from 'expo-modules-core';\nimport { EventEmitter, EventSubscription } from 'fbemitter';\n\nimport ExpoUpdates from './ExpoUpdates';\nimport {\n LocalAssets,\n Manifest,\n UpdateCheckResult,\n UpdateEvent,\n UpdateFetchResult,\n UpdatesLogEntry,\n} from './Updates.types';\n\nexport * from './Updates.types';\n\n/**\n * The UUID that uniquely identifies the currently running update if `expo-updates` is enabled. The\n * UUID is represented in its canonical string form (`xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`) and\n * will always use lowercase letters. In development mode, or any other environment in which\n * `expo-updates` is disabled, this value is `null`.\n */\nexport const updateId: string | null =\n ExpoUpdates.updateId && typeof ExpoUpdates.updateId === 'string'\n ? ExpoUpdates.updateId.toLowerCase()\n : null;\n\n/**\n * The name of the release channel currently configured in this standalone or bare app when using\n * classic updates. When using Expo Updates, the value of this field is always `\"default\"`.\n */\nexport const releaseChannel: string = ExpoUpdates.releaseChannel ?? 'default';\n\n/**\n * The channel name of the current build, if configured for use with EAS Update. Null otherwise.\n */\nexport const channel: string | null = ExpoUpdates.channel ?? null;\n\n/**\n * The runtime version of the current build.\n */\nexport const runtimeVersion: string | null = ExpoUpdates.runtimeVersion ?? null;\n\n// @docsMissing\n/**\n * @hidden\n */\nexport const localAssets: LocalAssets = ExpoUpdates.localAssets ?? {};\n\n/**\n * `expo-updates` does its very best to always launch monotonically newer versions of your app so\n * you don't need to worry about backwards compatibility when you put out an update. In very rare\n * cases, it's possible that `expo-updates` may need to fall back to the update that's embedded in\n * the app binary, even after newer updates have been downloaded and run (an \"emergency launch\").\n * This boolean will be `true` if the app is launching under this fallback mechanism and `false`\n * otherwise. If you are concerned about backwards compatibility of future updates to your app, you\n * can use this constant to provide special behavior for this rare case.\n */\nexport const isEmergencyLaunch: boolean = ExpoUpdates.isEmergencyLaunch || false;\n\n/**\n * This will be true if the currently running update is the one embedded in the build,\n * and not one downloaded from the updates server.\n */\nexport const isEmbeddedLaunch: boolean = ExpoUpdates.isEmbeddedLaunch || false;\n\n// @docsMissing\n/**\n * @hidden\n */\nexport const isUsingEmbeddedAssets: boolean = ExpoUpdates.isUsingEmbeddedAssets || false;\n\n/**\n * If `expo-updates` is enabled, this is the\n * [manifest](/workflow/expo-go#manifest) object for the update that's currently\n * running.\n *\n * In development mode, or any other environment in which `expo-updates` is disabled, this object is\n * empty.\n */\nexport const manifest: Partial =\n (ExpoUpdates.manifestString ? JSON.parse(ExpoUpdates.manifestString) : ExpoUpdates.manifest) ??\n {};\n\n/**\n * If `expo-updates` is enabled, this is a `Date` object representing the creation time of the update that's currently running (whether it was embedded or downloaded at runtime).\n *\n * In development mode, or any other environment in which `expo-updates` is disabled, this value is\n * null.\n */\nexport const createdAt: Date | null = ExpoUpdates.commitTime\n ? new Date(ExpoUpdates.commitTime)\n : null;\n\nconst isUsingDeveloperTool = !!(manifest as any).developer?.tool;\nconst isUsingExpoDevelopmentClient = NativeModulesProxy.ExponentConstants?.appOwnership === 'expo';\nconst manualUpdatesInstructions = isUsingExpoDevelopmentClient\n ? 'To test manual updates, publish your project using `expo publish` and open the published ' +\n 'version in this development client.'\n : 'To test manual updates, make a release build with `npm run ios --configuration Release` or ' +\n '`npm run android --variant Release`.';\n\n/**\n * Instructs the app to reload using the most recently downloaded version. This is useful for\n * triggering a newly downloaded update to launch without the user needing to manually restart the\n * app.\n *\n * It is not recommended to place any meaningful logic after a call to `await\n * Updates.reloadAsync()`. This is because the promise is resolved after verifying that the app can\n * be reloaded, and immediately before posting an asynchronous task to the main thread to actually\n * reload the app. It is unsafe to make any assumptions about whether any more JS code will be\n * executed after the `Updates.reloadAsync` method call resolves, since that depends on the OS and\n * the state of the native module and main threads.\n *\n * This method cannot be used in development mode, and the returned promise will be rejected if you\n * try to do so.\n *\n * @return A promise that fulfills right before the reload instruction is sent to the JS runtime, or\n * rejects if it cannot find a reference to the JS runtime. If the promise is rejected in production\n * mode, it most likely means you have installed the module incorrectly. Double check you've\n * followed the installation instructions. In particular, on iOS ensure that you set the `bridge`\n * property on `EXUpdatesAppController` with a pointer to the `RCTBridge` you want to reload, and on\n * Android ensure you either call `UpdatesController.initialize` with the instance of\n * `ReactApplication` you want to reload, or call `UpdatesController.setReactNativeHost` with the\n * proper instance of `ReactNativeHost`.\n */\nexport async function reloadAsync(): Promise {\n if (!ExpoUpdates.reload) {\n throw new UnavailabilityError('Updates', 'reloadAsync');\n }\n if (!ExpoUpdates?.nativeDebug && (__DEV__ || isUsingExpoDevelopmentClient)) {\n throw new CodedError(\n 'ERR_UPDATES_DISABLED',\n `You cannot use the Updates module in development mode in a production app. ${manualUpdatesInstructions}`\n );\n }\n await ExpoUpdates.reload();\n}\n\n/**\n * Checks the server to see if a newly deployed update to your project is available. Does not\n * actually download the update. This method cannot be used in development mode, and the returned\n * promise will be rejected if you try to do so.\n *\n * Checking for an update uses a device's bandwidth and battery life like any network call.\n * Additionally, updates served by Expo may be rate limited. A good rule of thumb to check for\n * updates judiciously is to check when the user launches or foregrounds the app. Avoid polling for\n * updates in a frequent loop.\n *\n * @return A promise that fulfills with an [`UpdateCheckResult`](#updatecheckresult) object.\n *\n * The promise rejects if the app is in development mode, or if there is an unexpected error or\n * timeout communicating with the server.\n */\nexport async function checkForUpdateAsync(): Promise {\n if (!ExpoUpdates.checkForUpdateAsync) {\n throw new UnavailabilityError('Updates', 'checkForUpdateAsync');\n }\n if (!ExpoUpdates?.nativeDebug && (__DEV__ || isUsingDeveloperTool)) {\n throw new CodedError(\n 'ERR_UPDATES_DISABLED',\n `You cannot check for updates in development mode. ${manualUpdatesInstructions}`\n );\n }\n\n const result = await ExpoUpdates.checkForUpdateAsync();\n if (result.manifestString) {\n result.manifest = JSON.parse(result.manifestString);\n delete result.manifestString;\n }\n\n return result;\n}\n\n/**\n * Retrieves the most recent expo-updates log entries.\n *\n * @param maxAge Sets the max age of retrieved log entries in milliseconds. Default to 3600000 ms (1 hour).\n *\n * @return A promise that fulfills with an array of [`UpdatesLogEntry`](#updateslogentry) objects;\n *\n * The promise rejects if there is an unexpected error in retrieving the logs.\n */\nexport async function readLogEntriesAsync(maxAge: number = 3600000): Promise {\n if (!ExpoUpdates.readLogEntriesAsync) {\n throw new UnavailabilityError('Updates', 'readLogEntriesAsync');\n }\n return await ExpoUpdates.readLogEntriesAsync(maxAge);\n}\n\n/**\n * Clears existing expo-updates log entries.\n *\n * > For now, this operation does nothing on the client. Once log persistence has been\n * > implemented, this operation will actually remove existing logs.\n *\n * @return A promise that fulfills if the clear operation was successful.\n *\n * The promise rejects if there is an unexpected error in clearing the logs.\n *\n */\nexport async function clearLogEntriesAsync(): Promise {\n if (!ExpoUpdates.clearLogEntriesAsync) {\n throw new UnavailabilityError('Updates', 'clearLogEntriesAsync');\n }\n await ExpoUpdates.clearLogEntriesAsync();\n}\n\n/**\n * Downloads the most recently deployed update to your project from server to the device's local\n * storage. This method cannot be used in development mode, and the returned promise will be\n * rejected if you try to do so.\n *\n * @return A promise that fulfills with an [`UpdateFetchResult`](#updatefetchresult) object.\n *\n * The promise rejects if the app is in development mode, or if there is an unexpected error or\n * timeout communicating with the server.\n */\nexport async function fetchUpdateAsync(): Promise {\n if (!ExpoUpdates.fetchUpdateAsync) {\n throw new UnavailabilityError('Updates', 'fetchUpdateAsync');\n }\n if (!ExpoUpdates?.nativeDebug && (__DEV__ || isUsingDeveloperTool)) {\n throw new CodedError(\n 'ERR_UPDATES_DISABLED',\n `You cannot fetch updates in development mode. ${manualUpdatesInstructions}`\n );\n }\n\n const result = await ExpoUpdates.fetchUpdateAsync();\n if (result.manifestString) {\n result.manifest = JSON.parse(result.manifestString);\n delete result.manifestString;\n }\n\n return result;\n}\n\n/**\n * @hidden\n */\nexport function clearUpdateCacheExperimentalAsync(_sdkVersion?: string) {\n console.warn(\n \"This method is no longer necessary. `expo-updates` now automatically deletes your app's old bundle files!\"\n );\n}\n\nlet _emitter: EventEmitter | null;\n\nfunction _getEmitter(): EventEmitter {\n if (!_emitter) {\n _emitter = new EventEmitter();\n RCTDeviceEventEmitter.addListener('Expo.nativeUpdatesEvent', _emitEvent);\n }\n return _emitter;\n}\n\nfunction _emitEvent(params): void {\n let newParams = params;\n if (typeof params === 'string') {\n newParams = JSON.parse(params);\n }\n if (newParams.manifestString) {\n newParams.manifest = JSON.parse(newParams.manifestString);\n delete newParams.manifestString;\n }\n\n if (!_emitter) {\n throw new Error(`EventEmitter must be initialized to use from its listener`);\n }\n _emitter.emit('Expo.updatesEvent', newParams);\n}\n\n/**\n * Adds a callback to be invoked when updates-related events occur (such as upon the initial app\n * load) due to auto-update settings chosen at build-time. See also the\n * [`useUpdateEvents`](#useupdateeventslistener) React hook.\n *\n * @param listener A function that will be invoked with an [`UpdateEvent`](#updateevent) instance\n * and should not return any value.\n * @return An `EventSubscription` object on which you can call `remove()` to unsubscribe the\n * listener.\n */\nexport function addListener(listener: (event: UpdateEvent) => void): EventSubscription {\n const emitter = _getEmitter();\n return emitter.addListener('Expo.updatesEvent', listener);\n}\n","import { Platform } from 'expo-modules-core';\n\nexport default {\n get name(): string {\n return 'ExpoUpdates';\n },\n async reload(): Promise {\n if (!Platform.isDOMAvailable) return;\n window.location.reload(true);\n },\n};\n"],"sourceRoot":""}