taro-uno-ui 0.9.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/dist/app.config.d.ts +38 -0
- package/dist/app.d.ts +6 -0
- package/dist/components/basic/Button/Button.d.ts +6 -0
- package/dist/components/basic/Button/Button.styles.d.ts +2 -0
- package/dist/components/basic/Button/Button.types.d.ts +74 -0
- package/dist/components/basic/Button/index.d.ts +4 -0
- package/dist/components/basic/Divider/Divider.d.ts +6 -0
- package/dist/components/basic/Divider/Divider.styles.d.ts +87 -0
- package/dist/components/basic/Divider/Divider.types.d.ts +242 -0
- package/dist/components/basic/Divider/index.d.ts +6 -0
- package/dist/components/basic/Icon/Icon.d.ts +5 -0
- package/dist/components/basic/Icon/Icon.data.d.ts +29 -0
- package/dist/components/basic/Icon/Icon.styles.d.ts +61 -0
- package/dist/components/basic/Icon/Icon.types.d.ts +199 -0
- package/dist/components/basic/Icon/IconManager.d.ts +120 -0
- package/dist/components/basic/Icon/index.d.ts +6 -0
- package/dist/components/basic/Text/Text.d.ts +7 -0
- package/dist/components/basic/Text/Text.styles.d.ts +67 -0
- package/dist/components/basic/Text/Text.types.d.ts +274 -0
- package/dist/components/basic/Text/index.d.ts +5 -0
- package/dist/components/basic/Typography/Typography.d.ts +8 -0
- package/dist/components/basic/Typography/Typography.styles.d.ts +83 -0
- package/dist/components/basic/Typography/Typography.types.d.ts +245 -0
- package/dist/components/basic/Typography/index.d.ts +3 -0
- package/dist/components/basic/Video/Video.d.ts +7 -0
- package/dist/components/basic/Video/Video.styles.d.ts +212 -0
- package/dist/components/basic/Video/Video.types.d.ts +447 -0
- package/dist/components/basic/Video/index.d.ts +10 -0
- package/dist/components/basic/index.d.ts +217 -0
- package/dist/components/common/ErrorBoundary.d.ts +19 -0
- package/dist/components/common/LazyComponent.d.ts +78 -0
- package/dist/components/common/ResponsiveContainer.d.ts +23 -0
- package/dist/components/common/ResponsiveGrid.d.ts +44 -0
- package/dist/components/common/SecurityProvider.d.ts +15 -0
- package/dist/components/common/ThemeProvider.d.ts +17 -0
- package/dist/components/common/VirtualList.d.ts +89 -0
- package/dist/components/common/index.d.ts +17 -0
- package/dist/components/display/Avatar/Avatar.d.ts +3 -0
- package/dist/components/display/Avatar/Avatar.styles.d.ts +2 -0
- package/dist/components/display/Avatar/Avatar.types.d.ts +37 -0
- package/dist/components/display/Avatar/index.d.ts +3 -0
- package/dist/components/display/Badge/Badge.d.ts +3 -0
- package/dist/components/display/Badge/Badge.types.d.ts +27 -0
- package/dist/components/display/Badge/index.d.ts +2 -0
- package/dist/components/display/Calendar/Calendar.d.ts +5 -0
- package/dist/components/display/Calendar/Calendar.styles.d.ts +2 -0
- package/dist/components/display/Calendar/Calendar.types.d.ts +87 -0
- package/dist/components/display/Calendar/index.d.ts +3 -0
- package/dist/components/display/Card/Card.d.ts +3 -0
- package/dist/components/display/Card/Card.styles.d.ts +1 -0
- package/dist/components/display/Card/Card.types.d.ts +52 -0
- package/dist/components/display/Card/index.d.ts +3 -0
- package/dist/components/display/Carousel/Carousel.d.ts +5 -0
- package/dist/components/display/Carousel/Carousel.styles.d.ts +2 -0
- package/dist/components/display/Carousel/Carousel.types.d.ts +55 -0
- package/dist/components/display/Carousel/index.d.ts +3 -0
- package/dist/components/display/List/List.d.ts +4 -0
- package/dist/components/display/List/List.styles.d.ts +1 -0
- package/dist/components/display/List/List.types.d.ts +64 -0
- package/dist/components/display/List/index.d.ts +3 -0
- package/dist/components/display/Rate/Rate.d.ts +6 -0
- package/dist/components/display/Rate/Rate.styles.d.ts +100 -0
- package/dist/components/display/Rate/Rate.types.d.ts +105 -0
- package/dist/components/display/Rate/index.d.ts +17 -0
- package/dist/components/display/Table/Table.d.ts +7 -0
- package/dist/components/display/Table/Table.styles.d.ts +84 -0
- package/dist/components/display/Table/Table.types.d.ts +251 -0
- package/dist/components/display/Table/index.d.ts +4 -0
- package/dist/components/display/Tag/Tag.d.ts +5 -0
- package/dist/components/display/Tag/Tag.styles.d.ts +2 -0
- package/dist/components/display/Tag/Tag.types.d.ts +47 -0
- package/dist/components/display/Tag/index.d.ts +3 -0
- package/dist/components/display/Timeline/Timeline.d.ts +16 -0
- package/dist/components/display/Timeline/Timeline.styles.d.ts +2 -0
- package/dist/components/display/Timeline/Timeline.types.d.ts +53 -0
- package/dist/components/display/Timeline/index.d.ts +3 -0
- package/dist/components/display/index.d.ts +67 -0
- package/dist/components/feedback/Loading/Loading.d.ts +4 -0
- package/dist/components/feedback/Loading/Loading.styles.d.ts +2 -0
- package/dist/components/feedback/Loading/Loading.types.d.ts +29 -0
- package/dist/components/feedback/Loading/index.d.ts +4 -0
- package/dist/components/feedback/Message/Message.d.ts +4 -0
- package/dist/components/feedback/Message/Message.styles.d.ts +34 -0
- package/dist/components/feedback/Message/Message.types.d.ts +33 -0
- package/dist/components/feedback/Message/index.d.ts +4 -0
- package/dist/components/feedback/Modal/Modal.d.ts +8 -0
- package/dist/components/feedback/Modal/Modal.styles.d.ts +18 -0
- package/dist/components/feedback/Modal/Modal.types.d.ts +143 -0
- package/dist/components/feedback/Modal/index.d.ts +3 -0
- package/dist/components/feedback/Notification/Notification.d.ts +4 -0
- package/dist/components/feedback/Notification/Notification.styles.d.ts +88 -0
- package/dist/components/feedback/Notification/Notification.types.d.ts +279 -0
- package/dist/components/feedback/Notification/NotificationManager.d.ts +4 -0
- package/dist/components/feedback/Notification/index.d.ts +25 -0
- package/dist/components/feedback/Progress/Progress.d.ts +4 -0
- package/dist/components/feedback/Progress/Progress.styles.d.ts +261 -0
- package/dist/components/feedback/Progress/Progress.test.simple.d.ts +2 -0
- package/dist/components/feedback/Progress/Progress.types.d.ts +147 -0
- package/dist/components/feedback/Progress/index.d.ts +3 -0
- package/dist/components/feedback/Progress/utils/animation.d.ts +55 -0
- package/dist/components/feedback/Progress/utils/index.d.ts +2 -0
- package/dist/components/feedback/Progress/utils/progress-calculator.d.ts +75 -0
- package/dist/components/feedback/Result/Result.d.ts +7 -0
- package/dist/components/feedback/Result/Result.styles.d.ts +2 -0
- package/dist/components/feedback/Result/Result.types.d.ts +66 -0
- package/dist/components/feedback/Result/index.d.ts +3 -0
- package/dist/components/feedback/Toast/Toast.d.ts +7 -0
- package/dist/components/feedback/Toast/Toast.styles.d.ts +14 -0
- package/dist/components/feedback/Toast/Toast.types.d.ts +81 -0
- package/dist/components/feedback/Toast/index.d.ts +3 -0
- package/dist/components/feedback/Tooltip/Tooltip.d.ts +4 -0
- package/dist/components/feedback/Tooltip/Tooltip.examples.d.ts +6 -0
- package/dist/components/feedback/Tooltip/Tooltip.styles.d.ts +78 -0
- package/dist/components/feedback/Tooltip/Tooltip.types.d.ts +130 -0
- package/dist/components/feedback/Tooltip/index.d.ts +3 -0
- package/dist/components/feedback/index.d.ts +71 -0
- package/dist/components/form/Cascader/Cascader.d.ts +7 -0
- package/dist/components/form/Cascader/Cascader.styles.d.ts +107 -0
- package/dist/components/form/Cascader/Cascader.types.d.ts +418 -0
- package/dist/components/form/Cascader/hooks/index.d.ts +3 -0
- package/dist/components/form/Cascader/hooks/useCascaderFieldNames.d.ts +12 -0
- package/dist/components/form/Cascader/hooks/useCascaderOptions.d.ts +15 -0
- package/dist/components/form/Cascader/hooks/useCascaderState.d.ts +23 -0
- package/dist/components/form/Cascader/index.d.ts +6 -0
- package/dist/components/form/Cascader/utils/formatDisplayValue.d.ts +9 -0
- package/dist/components/form/Cascader/utils/index.d.ts +1 -0
- package/dist/components/form/Checkbox/Checkbox.d.ts +6 -0
- package/dist/components/form/Checkbox/Checkbox.styles.d.ts +111 -0
- package/dist/components/form/Checkbox/Checkbox.types.d.ts +473 -0
- package/dist/components/form/Checkbox/CheckboxGroup.d.ts +6 -0
- package/dist/components/form/Checkbox/index.d.ts +8 -0
- package/dist/components/form/DatePicker/DatePicker.d.ts +6 -0
- package/dist/components/form/DatePicker/DatePicker.styles.d.ts +99 -0
- package/dist/components/form/DatePicker/DatePicker.types.d.ts +236 -0
- package/dist/components/form/DatePicker/index.d.ts +3 -0
- package/dist/components/form/Form/Form.d.ts +8 -0
- package/dist/components/form/Form/Form.styles.d.ts +84 -0
- package/dist/components/form/Form/Form.types.d.ts +416 -0
- package/dist/components/form/Form/index.d.ts +9 -0
- package/dist/components/form/Form/useFormLogic.d.ts +22 -0
- package/dist/components/form/Input/Input.d.ts +6 -0
- package/dist/components/form/Input/Input.styles.d.ts +61 -0
- package/dist/components/form/Input/Input.types.d.ts +294 -0
- package/dist/components/form/Input/index.d.ts +8 -0
- package/dist/components/form/Input/useInputLogic.d.ts +35 -0
- package/dist/components/form/InputNumber/InputNumber.d.ts +6 -0
- package/dist/components/form/InputNumber/InputNumber.styles.d.ts +120 -0
- package/dist/components/form/InputNumber/InputNumber.types.d.ts +303 -0
- package/dist/components/form/InputNumber/components/InputNumberClearButton.d.ts +10 -0
- package/dist/components/form/InputNumber/components/InputNumberControls.d.ts +11 -0
- package/dist/components/form/InputNumber/components/index.d.ts +2 -0
- package/dist/components/form/InputNumber/hooks/index.d.ts +4 -0
- package/dist/components/form/InputNumber/hooks/useInputNumberState.d.ts +38 -0
- package/dist/components/form/InputNumber/hooks/useInputNumberValidation.d.ts +12 -0
- package/dist/components/form/InputNumber/index.d.ts +5 -0
- package/dist/components/form/Radio/Radio.d.ts +6 -0
- package/dist/components/form/Radio/Radio.styles.d.ts +80 -0
- package/dist/components/form/Radio/Radio.types.d.ts +415 -0
- package/dist/components/form/Radio/index.d.ts +8 -0
- package/dist/components/form/Select/Select.d.ts +6 -0
- package/dist/components/form/Select/Select.styles.d.ts +71 -0
- package/dist/components/form/Select/Select.types.d.ts +418 -0
- package/dist/components/form/Select/index.d.ts +8 -0
- package/dist/components/form/Slider/Slider.d.ts +7 -0
- package/dist/components/form/Slider/Slider.styles.d.ts +2 -0
- package/dist/components/form/Slider/Slider.types.d.ts +85 -0
- package/dist/components/form/Slider/index.d.ts +3 -0
- package/dist/components/form/Switch/Switch.d.ts +10 -0
- package/dist/components/form/Switch/Switch.styles.d.ts +154 -0
- package/dist/components/form/Switch/Switch.types.d.ts +351 -0
- package/dist/components/form/Switch/index.d.ts +7 -0
- package/dist/components/form/Textarea/Textarea.d.ts +6 -0
- package/dist/components/form/Textarea/Textarea.styles.d.ts +66 -0
- package/dist/components/form/Textarea/Textarea.types.d.ts +348 -0
- package/dist/components/form/Textarea/index.d.ts +7 -0
- package/dist/components/form/TimePicker/TimePicker.d.ts +6 -0
- package/dist/components/form/TimePicker/TimePicker.styles.d.ts +104 -0
- package/dist/components/form/TimePicker/TimePicker.types.d.ts +385 -0
- package/dist/components/form/TimePicker/index.d.ts +4 -0
- package/dist/components/form/Transfer/Transfer.d.ts +7 -0
- package/dist/components/form/Transfer/Transfer.styles.d.ts +106 -0
- package/dist/components/form/Transfer/Transfer.types.d.ts +384 -0
- package/dist/components/form/Transfer/components/TransferItem.d.ts +23 -0
- package/dist/components/form/Transfer/components/TransferList.d.ts +55 -0
- package/dist/components/form/Transfer/components/TransferOperations.d.ts +21 -0
- package/dist/components/form/Transfer/components/TransferPagination.d.ts +19 -0
- package/dist/components/form/Transfer/components/TransferSearch.d.ts +21 -0
- package/dist/components/form/Transfer/components/index.d.ts +6 -0
- package/dist/components/form/Transfer/hooks/index.d.ts +3 -0
- package/dist/components/form/Transfer/hooks/useTransferData.d.ts +41 -0
- package/dist/components/form/Transfer/hooks/useTransferState.d.ts +21 -0
- package/dist/components/form/Transfer/index.d.ts +9 -0
- package/dist/components/form/Upload/Upload.d.ts +7 -0
- package/dist/components/form/Upload/Upload.styles.d.ts +2 -0
- package/dist/components/form/Upload/Upload.types.d.ts +143 -0
- package/dist/components/form/Upload/index.d.ts +3 -0
- package/dist/components/form/index.d.ts +126 -0
- package/dist/components/index.d.ts +122 -0
- package/dist/components/layout/Affix/Affix.d.ts +4 -0
- package/dist/components/layout/Affix/Affix.styles.d.ts +1669 -0
- package/dist/components/layout/Affix/Affix.types.d.ts +25 -0
- package/dist/components/layout/Affix/index.d.ts +3 -0
- package/dist/components/layout/Col/Col.d.ts +6 -0
- package/dist/components/layout/Col/Col.styles.d.ts +52 -0
- package/dist/components/layout/Col/Col.types.d.ts +54 -0
- package/dist/components/layout/Col/index.d.ts +3 -0
- package/dist/components/layout/Container/Container.d.ts +6 -0
- package/dist/components/layout/Container/Container.styles.d.ts +41 -0
- package/dist/components/layout/Container/Container.types.d.ts +59 -0
- package/dist/components/layout/Container/index.d.ts +3 -0
- package/dist/components/layout/Grid/Grid.d.ts +6 -0
- package/dist/components/layout/Grid/Grid.styles.d.ts +60 -0
- package/dist/components/layout/Grid/Grid.types.d.ts +68 -0
- package/dist/components/layout/Grid/index.d.ts +3 -0
- package/dist/components/layout/Layout/Content.d.ts +4 -0
- package/dist/components/layout/Layout/Footer.d.ts +4 -0
- package/dist/components/layout/Layout/Header.d.ts +4 -0
- package/dist/components/layout/Layout/Layout.d.ts +4 -0
- package/dist/components/layout/Layout/Layout.styles.d.ts +3366 -0
- package/dist/components/layout/Layout/Layout.types.d.ts +48 -0
- package/dist/components/layout/Layout/Sider.d.ts +4 -0
- package/dist/components/layout/Layout/index.d.ts +8 -0
- package/dist/components/layout/Row/Row.d.ts +6 -0
- package/dist/components/layout/Row/Row.styles.d.ts +55 -0
- package/dist/components/layout/Row/Row.types.d.ts +51 -0
- package/dist/components/layout/Row/index.d.ts +3 -0
- package/dist/components/layout/Space/Space.d.ts +6 -0
- package/dist/components/layout/Space/Space.styles.d.ts +69 -0
- package/dist/components/layout/Space/Space.types.d.ts +84 -0
- package/dist/components/layout/Space/index.d.ts +3 -0
- package/dist/components/layout/index.d.ts +39 -0
- package/dist/components/navigation/Menu/Menu.constants.d.ts +59 -0
- package/dist/components/navigation/Menu/Menu.d.ts +10 -0
- package/dist/components/navigation/Menu/Menu.stories.d.ts +157 -0
- package/dist/components/navigation/Menu/Menu.styles.d.ts +143 -0
- package/dist/components/navigation/Menu/Menu.types.d.ts +210 -0
- package/dist/components/navigation/Menu/Menu.utils.d.ts +54 -0
- package/dist/components/navigation/Menu/MenuItem.d.ts +32 -0
- package/dist/components/navigation/Menu/SubMenu.d.ts +41 -0
- package/dist/components/navigation/Menu/index.d.ts +54 -0
- package/dist/components/navigation/NavBar/NavBar.d.ts +7 -0
- package/dist/components/navigation/NavBar/NavBar.styles.d.ts +114 -0
- package/dist/components/navigation/NavBar/NavBar.types.d.ts +50 -0
- package/dist/components/navigation/NavBar/index.d.ts +3 -0
- package/dist/components/navigation/Pagination/Pagination.d.ts +6 -0
- package/dist/components/navigation/Pagination/Pagination.styles.d.ts +55 -0
- package/dist/components/navigation/Pagination/Pagination.types.d.ts +77 -0
- package/dist/components/navigation/Pagination/index.d.ts +15 -0
- package/dist/components/navigation/Steps/Step.d.ts +4 -0
- package/dist/components/navigation/Steps/Steps.d.ts +4 -0
- package/dist/components/navigation/Steps/Steps.styles.d.ts +6716 -0
- package/dist/components/navigation/Steps/Steps.types.d.ts +41 -0
- package/dist/components/navigation/Steps/index.d.ts +3 -0
- package/dist/components/navigation/Tabs/Tabs.d.ts +6 -0
- package/dist/components/navigation/Tabs/Tabs.styles.d.ts +60 -0
- package/dist/components/navigation/Tabs/Tabs.types.d.ts +107 -0
- package/dist/components/navigation/Tabs/index.d.ts +3 -0
- package/dist/components/navigation/index.d.ts +35 -0
- package/dist/constants/index.d.ts +624 -0
- package/dist/hooks/index.d.ts +28 -0
- package/dist/hooks/types.d.ts +7 -0
- package/dist/hooks/useAsync.d.ts +17 -0
- package/dist/hooks/useClickOutside.d.ts +19 -0
- package/dist/hooks/useCounter.d.ts +36 -0
- package/dist/hooks/useDebounce.d.ts +31 -0
- package/dist/hooks/useDeepCompareEffect.d.ts +22 -0
- package/dist/hooks/useEventHandling.d.ts +81 -0
- package/dist/hooks/useEventListener.d.ts +19 -0
- package/dist/hooks/useLifecycle.d.ts +66 -0
- package/dist/hooks/useMediaQuery.d.ts +22 -0
- package/dist/hooks/useMutation.d.ts +47 -0
- package/dist/hooks/usePerformance.d.ts +73 -0
- package/dist/hooks/usePerformanceMonitor.d.ts +66 -0
- package/dist/hooks/usePlatform.d.ts +20 -0
- package/dist/hooks/usePrevious.d.ts +14 -0
- package/dist/hooks/useRequest.d.ts +32 -0
- package/dist/hooks/useStateManagement.d.ts +62 -0
- package/dist/hooks/useStorage.d.ts +27 -0
- package/dist/hooks/useStyle.d.ts +127 -0
- package/dist/hooks/useTheme.d.ts +58 -0
- package/dist/hooks/useToggle.d.ts +28 -0
- package/dist/hooks/useVirtualScroll.d.ts +42 -0
- package/dist/index.d.ts +271 -0
- package/dist/js/{index-DffLRSro.js → index-CDFsvu80.js} +15369 -10741
- package/dist/js/index-CDFsvu80.js.map +1 -0
- package/dist/js/index-DFdcksbe.js.map +1 -1
- package/dist/js/index-DXRIkWX1.js.map +1 -1
- package/dist/js/{index-6NJ3A1Dn.js → index-JffnTUrv.js} +15430 -10801
- package/dist/js/index-JffnTUrv.js.map +1 -0
- package/dist/platform/index.d.ts +172 -0
- package/dist/providers/AppProvider.d.ts +34 -0
- package/dist/providers/index.d.ts +1 -0
- package/dist/theme/ThemeProvider.d.ts +34 -0
- package/dist/theme/ThemeProvider.types.d.ts +21 -0
- package/dist/theme/animations.d.ts +96 -0
- package/dist/theme/defaults.d.ts +6 -0
- package/dist/theme/design-system.d.ts +400 -0
- package/dist/theme/design-tokens.d.ts +459 -0
- package/dist/theme/index.d.ts +187 -0
- package/dist/theme/responsive.d.ts +63 -0
- package/dist/theme/styles.d.ts +65 -0
- package/dist/theme/tokens/colors.d.ts +72 -0
- package/dist/theme/tokens/effects.d.ts +122 -0
- package/dist/theme/tokens/index.d.ts +94 -0
- package/dist/theme/tokens/spacing.d.ts +65 -0
- package/dist/theme/tokens/typography.d.ts +73 -0
- package/dist/theme/types.d.ts +153 -0
- package/dist/theme/useThemeUtils.d.ts +21 -0
- package/dist/theme/utils.d.ts +255 -0
- package/dist/theme/variables.d.ts +170 -0
- package/dist/types/accessibility.d.ts +46 -0
- package/dist/types/button.d.ts +285 -0
- package/dist/types/component-props.d.ts +109 -0
- package/dist/types/index.d.ts +343 -0
- package/dist/types/standardized-components.d.ts +263 -0
- package/dist/types/utils.d.ts +190 -0
- package/dist/utils/abort-controller.d.ts +19 -0
- package/dist/utils/cache.d.ts +28 -0
- package/dist/utils/createNamespace.d.ts +9 -0
- package/dist/utils/environment.d.ts +26 -0
- package/dist/utils/error-handler.d.ts +37 -0
- package/dist/utils/errorLogger.d.ts +72 -0
- package/dist/utils/formatUtils.d.ts +93 -0
- package/dist/utils/http/error-codes.d.ts +131 -0
- package/dist/utils/http/http-client.d.ts +53 -0
- package/dist/utils/http/request-cache.d.ts +65 -0
- package/dist/utils/http/request.d.ts +280 -0
- package/dist/utils/http/taro-adapter.d.ts +4 -0
- package/dist/utils/http/types.d.ts +351 -0
- package/dist/utils/http/web-adapter.d.ts +4 -0
- package/dist/utils/index.d.ts +46 -0
- package/dist/utils/inputValidator.d.ts +74 -0
- package/dist/utils/performance/performance.d.ts +167 -0
- package/dist/utils/responsiveUtils.d.ts +148 -0
- package/dist/utils/rtl-support.d.ts +78 -0
- package/dist/utils/security/api-security.d.ts +82 -0
- package/dist/utils/security/xss-protection.d.ts +20 -0
- package/dist/utils/securityHeaders.d.ts +74 -0
- package/dist/utils/typeHelpers.d.ts +1 -0
- package/dist/utils/types/dataProcessing.d.ts +111 -0
- package/dist/utils/types/typeHelpers.d.ts +50 -0
- package/dist/utils/xssProtection.d.ts +90 -0
- package/package.json +14 -10
- package/src/components/basic/Button/Button.tsx +53 -13
- package/src/components/basic/Button/Button.types.ts +45 -9
- package/src/components/basic/Divider/Divider.tsx +60 -29
- package/src/components/basic/Icon/Icon.data.ts +474 -0
- package/src/components/basic/Icon/Icon.test.tsx +2 -2
- package/src/components/basic/Icon/Icon.tsx +48 -35
- package/src/components/basic/Icon/IconManager.ts +229 -0
- package/src/components/basic/Text/Text.styles.ts +3 -3
- package/src/components/basic/Text/Text.types.ts +14 -4
- package/src/components/basic/Typography/Typography.styles.ts +10 -9
- package/src/components/basic/Typography/Typography.tsx +15 -13
- package/src/components/basic/Typography/Typography.types.ts +41 -41
- package/src/components/basic/Typography/index.tsx +1 -1
- package/src/components/basic/Video/Video.styles.ts +777 -0
- package/src/components/basic/Video/Video.test.tsx +490 -0
- package/src/components/basic/Video/Video.tsx +1468 -0
- package/src/components/basic/Video/Video.types.ts +500 -0
- package/src/components/basic/Video/index.tsx +26 -0
- package/src/components/basic/index.tsx +13 -15
- package/src/components/common/ErrorBoundary.tsx +1 -1
- package/src/components/common/LazyComponent.tsx +9 -8
- package/src/components/common/SecurityProvider.tsx +2 -14
- package/src/components/common/ThemeProvider.tsx +43 -56
- package/src/components/common/VirtualList.tsx +187 -205
- package/src/components/common/index.tsx +25 -0
- package/src/components/display/Avatar/Avatar.styles.ts +1 -1
- package/src/components/display/Avatar/Avatar.tsx +6 -19
- package/src/components/display/Avatar/Avatar.types.ts +1 -1
- package/src/components/display/Avatar/index.ts +1 -1
- package/src/components/display/Badge/Badge.tsx +3 -16
- package/src/components/display/Badge/Badge.types.ts +1 -1
- package/src/components/display/Badge/index.ts +1 -1
- package/src/components/display/Calendar/Calendar.styles.ts +36 -36
- package/src/components/display/Calendar/Calendar.test.tsx +27 -15
- package/src/components/display/Calendar/Calendar.tsx +56 -35
- package/src/components/display/Calendar/Calendar.types.ts +1 -1
- package/src/components/display/Calendar/index.ts +1 -1
- package/src/components/display/Card/Card.styles.ts +2 -2
- package/src/components/display/Card/Card.test.tsx +6 -4
- package/src/components/display/Card/Card.tsx +1 -1
- package/src/components/display/Card/Card.types.ts +4 -4
- package/src/components/display/Card/index.ts +1 -1
- package/src/components/display/Carousel/Carousel.styles.ts +31 -31
- package/src/components/display/Carousel/Carousel.tsx +34 -39
- package/src/components/display/Carousel/Carousel.types.ts +1 -1
- package/src/components/display/Carousel/index.ts +1 -1
- package/src/components/display/List/List.styles.ts +3 -3
- package/src/components/display/List/List.tsx +0 -1
- package/src/components/display/List/index.ts +1 -1
- package/src/components/display/Rate/Rate.styles.ts +5 -17
- package/src/components/display/Rate/Rate.tsx +6 -14
- package/src/components/display/Rate/Rate.types.ts +4 -3
- package/src/components/display/Rate/index.ts +3 -11
- package/src/components/display/Table/Table.test.tsx +2 -0
- package/src/components/display/Table/Table.tsx +3 -7
- package/src/components/display/Table/Table.types.ts +3 -2
- package/src/components/display/Tag/Tag.styles.ts +31 -31
- package/src/components/display/Tag/Tag.tsx +9 -26
- package/src/components/display/Tag/Tag.types.ts +1 -1
- package/src/components/display/Tag/index.ts +1 -1
- package/src/components/display/Timeline/Timeline.styles.ts +32 -32
- package/src/components/display/Timeline/Timeline.tsx +23 -42
- package/src/components/display/Timeline/Timeline.types.ts +1 -1
- package/src/components/display/Timeline/index.ts +1 -1
- package/src/components/display/index.tsx +33 -29
- package/src/components/feedback/Loading/Loading.tsx +6 -1
- package/src/components/feedback/Loading/index.ts +2 -5
- package/src/components/feedback/Message/Message.styles.ts +3 -3
- package/src/components/feedback/Message/index.ts +2 -5
- package/src/components/feedback/Modal/Modal.styles.ts +1 -1
- package/src/components/feedback/Modal/Modal.tsx +9 -31
- package/src/components/feedback/Modal/Modal.types.ts +12 -2
- package/src/components/feedback/Notification/Notification.styles.ts +49 -39
- package/src/components/feedback/Notification/Notification.test.tsx +1 -1
- package/src/components/feedback/Notification/Notification.tsx +97 -120
- package/src/components/feedback/Notification/Notification.types.ts +11 -8
- package/src/components/feedback/Notification/NotificationManager.tsx +135 -106
- package/src/components/feedback/Notification/index.ts +10 -3
- package/src/components/feedback/Notification/index.tsx +16 -26
- package/src/components/feedback/Progress/Progress.styles.ts +23 -14
- package/src/components/feedback/Progress/Progress.tsx +93 -113
- package/src/components/feedback/Progress/Progress.types.ts +1 -1
- package/src/components/feedback/Progress/index.ts +1 -1
- package/src/components/feedback/Progress/utils/animation.ts +12 -23
- package/src/components/feedback/Progress/utils/index.ts +2 -2
- package/src/components/feedback/Progress/utils/progress-calculator.ts +14 -32
- package/src/components/feedback/Result/Result.styles.ts +29 -29
- package/src/components/feedback/Result/Result.tsx +8 -20
- package/src/components/feedback/Result/Result.types.ts +7 -7
- package/src/components/feedback/Result/index.tsx +1 -1
- package/src/components/feedback/Toast/Toast.styles.ts +1 -1
- package/src/components/feedback/Toast/Toast.tsx +25 -13
- package/src/components/feedback/Tooltip/Tooltip.examples.tsx +21 -44
- package/src/components/feedback/Tooltip/Tooltip.styles.ts +16 -22
- package/src/components/feedback/Tooltip/Tooltip.test.tsx +1 -1
- package/src/components/feedback/Tooltip/Tooltip.tsx +65 -46
- package/src/components/feedback/Tooltip/Tooltip.types.ts +14 -20
- package/src/components/feedback/Tooltip/index.ts +1 -1
- package/src/components/feedback/Tooltip/index.tsx +12 -24
- package/src/components/feedback/index.tsx +54 -42
- package/src/components/form/Cascader/Cascader.styles.ts +2 -2
- package/src/components/form/Cascader/Cascader.tsx +84 -88
- package/src/components/form/Cascader/Cascader.types.ts +49 -50
- package/src/components/form/Cascader/hooks/useCascaderFieldNames.ts +11 -8
- package/src/components/form/Cascader/hooks/useCascaderOptions.ts +73 -55
- package/src/components/form/Cascader/hooks/useCascaderState.ts +31 -25
- package/src/components/form/Cascader/index.ts +1 -1
- package/src/components/form/Cascader/utils/formatDisplayValue.ts +4 -4
- package/src/components/form/Checkbox/Checkbox.styles.ts +83 -84
- package/src/components/form/Checkbox/Checkbox.tsx +2 -9
- package/src/components/form/Checkbox/CheckboxGroup.tsx +7 -7
- package/src/components/form/DatePicker/DatePicker.test.tsx +1 -1
- package/src/components/form/DatePicker/DatePicker.tsx +91 -75
- package/src/components/form/DatePicker/DatePicker.types.ts +4 -1
- package/src/components/form/Form/Form.tsx +66 -504
- package/src/components/form/Form/Form.types.ts +16 -1
- package/src/components/form/Form/useFormLogic.ts +497 -0
- package/src/components/form/Input/Input.styles.ts +8 -1
- package/src/components/form/Input/Input.tsx +55 -291
- package/src/components/form/Input/Input.types.ts +13 -1
- package/src/components/form/Input/useInputLogic.test.ts +82 -0
- package/src/components/form/Input/useInputLogic.ts +260 -0
- package/src/components/form/InputNumber/InputNumber.styles.ts +76 -25
- package/src/components/form/InputNumber/InputNumber.tsx +53 -21
- package/src/components/form/InputNumber/InputNumber.types.ts +21 -3
- package/src/components/form/InputNumber/components/InputNumberClearButton.tsx +3 -11
- package/src/components/form/InputNumber/components/InputNumberControls.tsx +3 -12
- package/src/components/form/InputNumber/hooks/index.ts +1 -1
- package/src/components/form/InputNumber/hooks/useInputNumberState.ts +7 -9
- package/src/components/form/InputNumber/hooks/useInputNumberValidation.ts +18 -17
- package/src/components/form/InputNumber/index.ts +7 -7
- package/src/components/form/Radio/Radio.styles.ts +1 -8
- package/src/components/form/Radio/Radio.tsx +3 -9
- package/src/components/form/Radio/Radio.types.ts +5 -1
- package/src/components/form/Select/Select.styles.ts +5 -1
- package/src/components/form/Select/Select.tsx +15 -15
- package/src/components/form/Select/Select.types.ts +2 -1
- package/src/components/form/Slider/Slider.styles.ts +13 -13
- package/src/components/form/Slider/Slider.tsx +19 -33
- package/src/components/form/Slider/Slider.types.ts +14 -12
- package/src/components/form/Slider/index.tsx +2 -9
- package/src/components/form/Switch/Switch.styles.ts +1 -7
- package/src/components/form/Switch/Switch.tsx +7 -13
- package/src/components/form/Textarea/Textarea.styles.ts +4 -4
- package/src/components/form/Textarea/Textarea.tsx +7 -1
- package/src/components/form/Textarea/Textarea.types.ts +4 -1
- package/src/components/form/TimePicker/TimePicker.styles.ts +8 -12
- package/src/components/form/TimePicker/TimePicker.tsx +122 -100
- package/src/components/form/TimePicker/TimePicker.types.ts +2 -2
- package/src/components/form/TimePicker/index.ts +1 -1
- package/src/components/form/Transfer/Transfer.styles.ts +3 -15
- package/src/components/form/Transfer/Transfer.tsx +146 -134
- package/src/components/form/Transfer/Transfer.types.ts +34 -26
- package/src/components/form/Transfer/components/TransferItem.tsx +55 -62
- package/src/components/form/Transfer/components/TransferList.tsx +212 -199
- package/src/components/form/Transfer/components/TransferOperations.tsx +52 -55
- package/src/components/form/Transfer/components/TransferPagination.tsx +115 -111
- package/src/components/form/Transfer/components/TransferSearch.tsx +52 -55
- package/src/components/form/Transfer/hooks/useTransferData.ts +91 -81
- package/src/components/form/Transfer/hooks/useTransferState.ts +22 -16
- package/src/components/form/Transfer/index.ts +2 -8
- package/src/components/form/Upload/Upload.styles.ts +21 -21
- package/src/components/form/Upload/Upload.tsx +189 -142
- package/src/components/form/Upload/Upload.types.ts +31 -31
- package/src/components/form/Upload/index.tsx +1 -1
- package/src/components/form/index.tsx +60 -29
- package/src/components/index.tsx +0 -1
- package/src/components/layout/Affix/Affix.styles.ts +16 -11
- package/src/components/layout/Affix/Affix.tsx +67 -75
- package/src/components/layout/Affix/Affix.types.ts +18 -18
- package/src/components/layout/Affix/index.tsx +1 -1
- package/src/components/layout/Col/Col.styles.ts +17 -17
- package/src/components/layout/Col/Col.test.tsx +7 -5
- package/src/components/layout/Col/Col.tsx +3 -21
- package/src/components/layout/Col/Col.types.ts +1 -1
- package/src/components/layout/Container/Container.styles.ts +3 -1
- package/src/components/layout/Container/Container.tsx +2 -11
- package/src/components/layout/Grid/Grid.tsx +3 -53
- package/src/components/layout/Layout/Content.tsx +24 -32
- package/src/components/layout/Layout/Footer.tsx +24 -32
- package/src/components/layout/Layout/Header.tsx +24 -32
- package/src/components/layout/Layout/Layout.styles.ts +17 -17
- package/src/components/layout/Layout/Layout.tsx +14 -25
- package/src/components/layout/Layout/Layout.types.ts +29 -29
- package/src/components/layout/Layout/Sider.tsx +44 -56
- package/src/components/layout/Layout/index.tsx +16 -2
- package/src/components/layout/Row/Row.tsx +15 -43
- package/src/components/layout/Space/Space.tsx +3 -11
- package/src/components/layout/Space/Space.types.ts +1 -1
- package/src/components/layout/index.tsx +29 -19
- package/src/components/navigation/Menu/Menu.constants.ts +69 -0
- package/src/components/navigation/Menu/Menu.stories.tsx +107 -0
- package/src/components/navigation/Menu/Menu.styles.ts +25 -37
- package/src/components/navigation/Menu/Menu.tsx +8 -11
- package/src/components/navigation/Menu/Menu.types.ts +2 -2
- package/src/components/navigation/Menu/Menu.utils.ts +17 -17
- package/src/components/navigation/Menu/MenuItem.tsx +9 -11
- package/src/components/navigation/Menu/SubMenu.tsx +8 -6
- package/src/components/navigation/Menu/index.tsx +4 -69
- package/src/components/navigation/NavBar/NavBar.styles.ts +1 -1
- package/src/components/navigation/NavBar/NavBar.tsx +7 -10
- package/src/components/navigation/NavBar/NavBar.types.ts +3 -3
- package/src/components/navigation/NavBar/index.tsx +1 -1
- package/src/components/navigation/Pagination/Pagination.test.tsx +2 -3
- package/src/components/navigation/Pagination/Pagination.tsx +3 -3
- package/src/components/navigation/Pagination/Pagination.types.ts +3 -2
- package/src/components/navigation/Pagination/index.ts +9 -3
- package/src/components/navigation/Steps/Step.tsx +24 -44
- package/src/components/navigation/Steps/Steps.styles.ts +28 -13
- package/src/components/navigation/Steps/Steps.test.tsx +2 -0
- package/src/components/navigation/Steps/Steps.tsx +88 -89
- package/src/components/navigation/Steps/Steps.types.ts +30 -30
- package/src/components/navigation/Steps/index.tsx +1 -1
- package/src/components/navigation/Tabs/Tabs.test.tsx +3 -2
- package/src/components/navigation/Tabs/Tabs.types.ts +4 -3
- package/src/components/navigation/index.tsx +21 -16
- package/src/constants/index.ts +1 -1
- package/src/hooks/index.ts +52 -102
- package/src/hooks/types.ts +4 -5
- package/src/hooks/useAsync.ts +46 -47
- package/src/hooks/useClickOutside.ts +52 -0
- package/src/hooks/useCounter.ts +87 -0
- package/src/hooks/useDebounce.ts +150 -0
- package/src/hooks/useDeepCompareEffect.ts +88 -0
- package/src/hooks/useEventListener.ts +77 -0
- package/src/hooks/useMediaQuery.ts +75 -0
- package/src/hooks/useMutation.ts +233 -0
- package/src/hooks/usePerformance.ts +1 -64
- package/src/hooks/usePlatform.ts +3 -1
- package/src/hooks/usePrevious.ts +25 -0
- package/src/hooks/useRequest.ts +12 -7
- package/src/hooks/useStateManagement.ts +1 -1
- package/src/hooks/useStorage.ts +169 -0
- package/src/hooks/useStyle.ts +8 -2
- package/src/hooks/useToggle.ts +54 -0
- package/src/index.ts +34 -9
- package/src/theme/ThemeProvider.tsx +3 -7
- package/src/theme/ThemeProvider.types.ts +1 -1
- package/src/theme/defaults.ts +1 -1
- package/src/theme/design-system.ts +2 -2
- package/src/theme/design-tokens.ts +85 -99
- package/src/theme/generated/dark-theme.scss +1 -1
- package/src/theme/generated/tokens.scss +82 -18
- package/src/theme/index.ts +8 -29
- package/src/theme/responsive.tsx +36 -34
- package/src/theme/styles.ts +1 -1
- package/src/theme/useThemeUtils.ts +43 -43
- package/src/theme/utils.ts +32 -32
- package/src/theme/variables.ts +70 -51
- package/src/types/accessibility.ts +36 -37
- package/src/types/button.ts +25 -27
- package/src/types/component-props.ts +6 -1
- package/src/types/glob.d.ts +4 -0
- package/src/types/index.ts +2 -2
- package/src/types/standardized-components.ts +9 -3
- package/src/types/utils.ts +13 -23
- package/src/utils/__tests__/responsiveUtils.test.ts +5 -4
- package/src/utils/abort-controller.ts +48 -0
- package/src/utils/cache.ts +2 -6
- package/src/utils/createNamespace.ts +4 -4
- package/src/utils/environment.ts +26 -6
- package/src/utils/error-handler.ts +2 -2
- package/src/utils/errorLogger.ts +16 -20
- package/src/utils/formatUtils.ts +38 -70
- package/src/utils/http/error-codes.ts +314 -0
- package/src/utils/http/http-client.test.ts +63 -0
- package/src/utils/{network → http}/http-client.ts +45 -35
- package/src/utils/http/request-cache.ts +127 -0
- package/src/utils/http/request.ts +954 -0
- package/src/utils/http/taro-adapter.test.ts +74 -0
- package/src/utils/http/taro-adapter.ts +24 -0
- package/src/utils/http/types.ts +414 -0
- package/src/utils/http/web-adapter.ts +33 -0
- package/src/utils/index.ts +5 -8
- package/src/utils/inputValidator.ts +17 -14
- package/src/utils/performance/performance.ts +60 -71
- package/src/utils/responsiveUtils.ts +7 -16
- package/src/utils/rtl-support.ts +29 -19
- package/src/utils/security/api-security.ts +47 -39
- package/src/utils/securityHeaders.ts +61 -67
- package/src/utils/typeHelpers.ts +10 -10
- package/src/utils/types/dataProcessing.ts +93 -92
- package/src/utils/types/typeHelpers.ts +31 -21
- package/src/utils/xssProtection.ts +96 -48
- package/dist/js/index-6NJ3A1Dn.js.map +0 -1
- package/dist/js/index-DffLRSro.js.map +0 -1
- package/src/components/form/Input/Input.enhanced.tsx +0 -732
- package/src/components/navigation/Menu/__tests__/Menu.test.tsx +0 -687
- package/src/components/navigation/Tree/Tree.styles.ts +0 -553
- package/src/components/navigation/Tree/Tree.test.basic.tsx +0 -7
- package/src/components/navigation/Tree/Tree.test.functional.tsx +0 -496
- package/src/components/navigation/Tree/Tree.test.import.check.tsx +0 -6
- package/src/components/navigation/Tree/Tree.test.import.tsx +0 -6
- package/src/components/navigation/Tree/Tree.test.minimal.tsx +0 -5
- package/src/components/navigation/Tree/Tree.test.simple.tsx +0 -30
- package/src/components/navigation/Tree/Tree.test.tsx +0 -908
- package/src/components/navigation/Tree/Tree.test.working.tsx +0 -673
- package/src/components/navigation/Tree/Tree.tsx +0 -600
- package/src/components/navigation/Tree/Tree.types.ts +0 -909
- package/src/components/navigation/Tree/Tree.utils.ts +0 -452
- package/src/components/navigation/Tree/index.ts +0 -33
- package/src/components/navigation/Tree/index.tsx +0 -23
- package/src/utils/network/http-client.test.ts +0 -18
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request Cache Manager
|
|
3
|
+
* Provides intelligent request caching and deduplication
|
|
4
|
+
*/
|
|
5
|
+
export interface CacheConfig {
|
|
6
|
+
/** Cache time to live in milliseconds */
|
|
7
|
+
ttl?: number;
|
|
8
|
+
/** Cache key generator function */
|
|
9
|
+
keyGenerator?: (url: string, params?: any) => string;
|
|
10
|
+
/** Whether to enable cache */
|
|
11
|
+
enabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface CachedResponse<T> {
|
|
14
|
+
data: T;
|
|
15
|
+
timestamp: number;
|
|
16
|
+
ttl: number;
|
|
17
|
+
}
|
|
18
|
+
export declare class RequestCache {
|
|
19
|
+
private cache;
|
|
20
|
+
private pendingRequests;
|
|
21
|
+
/**
|
|
22
|
+
* Generate cache key from request config
|
|
23
|
+
*/
|
|
24
|
+
generateKey(url: string, params?: any): string;
|
|
25
|
+
/**
|
|
26
|
+
* Get cached response if valid
|
|
27
|
+
*/
|
|
28
|
+
get<T>(key: string): T | null;
|
|
29
|
+
/**
|
|
30
|
+
* Set cache entry
|
|
31
|
+
*/
|
|
32
|
+
set<T>(key: string, data: T, ttl?: number): void;
|
|
33
|
+
/**
|
|
34
|
+
* Check if request is already in flight
|
|
35
|
+
*/
|
|
36
|
+
hasPendingRequest(key: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Get pending request promise
|
|
39
|
+
*/
|
|
40
|
+
getPendingRequest<T>(key: string): Promise<T> | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Set pending request
|
|
43
|
+
*/
|
|
44
|
+
setPendingRequest<T>(key: string, promise: Promise<T>): void;
|
|
45
|
+
/**
|
|
46
|
+
* Clear specific cache entry
|
|
47
|
+
*/
|
|
48
|
+
clear(key: string): void;
|
|
49
|
+
/**
|
|
50
|
+
* Clear all cache
|
|
51
|
+
*/
|
|
52
|
+
clearAll(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Clear expired entries
|
|
55
|
+
*/
|
|
56
|
+
clearExpired(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Get cache statistics
|
|
59
|
+
*/
|
|
60
|
+
getStats(): {
|
|
61
|
+
size: number;
|
|
62
|
+
pending: number;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export declare const globalRequestCache: RequestCache;
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Request Client
|
|
3
|
+
* Production-ready HTTP client with multi-platform support, caching, retry logic, and interceptors
|
|
4
|
+
*/
|
|
5
|
+
import { RequestCache } from './request-cache';
|
|
6
|
+
import type { RequestOptions, IRequestAdapter, RequestInterceptor, ResponseInterceptor, RetryConfig, InterceptorRegistration } from './types';
|
|
7
|
+
export interface RequestInstanceConfig {
|
|
8
|
+
/** Base URL for all requests */
|
|
9
|
+
baseURL?: string;
|
|
10
|
+
/** Default headers */
|
|
11
|
+
headers?: Record<string, string>;
|
|
12
|
+
/** Default timeout in milliseconds */
|
|
13
|
+
timeout?: number;
|
|
14
|
+
/** Custom adapter */
|
|
15
|
+
adapter?: IRequestAdapter;
|
|
16
|
+
/** Enable request caching */
|
|
17
|
+
enableCache?: boolean;
|
|
18
|
+
/** Default cache TTL */
|
|
19
|
+
cacheTTL?: number;
|
|
20
|
+
/** Default retry configuration */
|
|
21
|
+
retry?: RetryConfig;
|
|
22
|
+
/** Enable security features */
|
|
23
|
+
enableSecurity?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Unified Request Client
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const client = new RequestClient({
|
|
31
|
+
* baseURL: 'https://api.example.com',
|
|
32
|
+
* timeout: 10000,
|
|
33
|
+
* enableCache: true,
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* // GET request
|
|
37
|
+
* const data = await client.get<User>('/users/1');
|
|
38
|
+
*
|
|
39
|
+
* // POST request
|
|
40
|
+
* const created = await client.post<User>('/users', { name: 'John' });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare class Request {
|
|
44
|
+
private baseURL;
|
|
45
|
+
private defaultHeaders;
|
|
46
|
+
private defaultTimeout;
|
|
47
|
+
private adapter;
|
|
48
|
+
private cache;
|
|
49
|
+
private errorManager;
|
|
50
|
+
private security;
|
|
51
|
+
private requestInterceptors;
|
|
52
|
+
private responseInterceptors;
|
|
53
|
+
private static globalRequestInterceptors;
|
|
54
|
+
private static globalResponseInterceptors;
|
|
55
|
+
private defaultRetryConfig;
|
|
56
|
+
private enableSecurity;
|
|
57
|
+
private enableCache;
|
|
58
|
+
private cacheTTL;
|
|
59
|
+
constructor(config?: RequestInstanceConfig & {
|
|
60
|
+
_testing?: {
|
|
61
|
+
cache?: RequestCache;
|
|
62
|
+
errorManager?: any;
|
|
63
|
+
security?: any;
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
/**
|
|
67
|
+
* Detect appropriate adapter based on environment
|
|
68
|
+
*/
|
|
69
|
+
private detectAdapter;
|
|
70
|
+
/**
|
|
71
|
+
* Convert priority string to number
|
|
72
|
+
*/
|
|
73
|
+
private getPriorityValue;
|
|
74
|
+
/**
|
|
75
|
+
* Sort interceptors by priority
|
|
76
|
+
*/
|
|
77
|
+
private sortInterceptors;
|
|
78
|
+
/**
|
|
79
|
+
* Add request interceptor with enhanced features
|
|
80
|
+
*/
|
|
81
|
+
useRequestInterceptor(interceptor: RequestInterceptor): InterceptorRegistration;
|
|
82
|
+
/**
|
|
83
|
+
* Add response interceptor with enhanced features
|
|
84
|
+
*/
|
|
85
|
+
useResponseInterceptor(interceptor: ResponseInterceptor): InterceptorRegistration;
|
|
86
|
+
/**
|
|
87
|
+
* Add global request interceptor (shared across all instances)
|
|
88
|
+
*/
|
|
89
|
+
static useGlobalRequestInterceptor(interceptor: RequestInterceptor): InterceptorRegistration;
|
|
90
|
+
/**
|
|
91
|
+
* Add global response interceptor (shared across all instances)
|
|
92
|
+
*/
|
|
93
|
+
static useGlobalResponseInterceptor(interceptor: ResponseInterceptor): InterceptorRegistration;
|
|
94
|
+
/**
|
|
95
|
+
* Clear all interceptors or by group
|
|
96
|
+
*/
|
|
97
|
+
clearInterceptors(group?: string): void;
|
|
98
|
+
/**
|
|
99
|
+
* Clear all global interceptors or by group
|
|
100
|
+
*/
|
|
101
|
+
static clearGlobalInterceptors(group?: string): void;
|
|
102
|
+
/**
|
|
103
|
+
* Get all interceptors
|
|
104
|
+
*/
|
|
105
|
+
getInterceptors(): {
|
|
106
|
+
request: ({
|
|
107
|
+
id: string;
|
|
108
|
+
} & RequestInterceptor)[];
|
|
109
|
+
response: ({
|
|
110
|
+
id: string;
|
|
111
|
+
} & ResponseInterceptor)[];
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Get all global interceptors
|
|
115
|
+
*/
|
|
116
|
+
static getGlobalInterceptors(): {
|
|
117
|
+
request: ({
|
|
118
|
+
id: string;
|
|
119
|
+
} & RequestInterceptor)[];
|
|
120
|
+
response: ({
|
|
121
|
+
id: string;
|
|
122
|
+
} & ResponseInterceptor)[];
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Build full URL from base and relative URL
|
|
126
|
+
*/
|
|
127
|
+
private buildURL;
|
|
128
|
+
/**
|
|
129
|
+
* Append query parameters to URL
|
|
130
|
+
*/
|
|
131
|
+
private appendParams;
|
|
132
|
+
/**
|
|
133
|
+
* Calculate retry delay based on strategy
|
|
134
|
+
*/
|
|
135
|
+
private calculateRetryDelay;
|
|
136
|
+
/**
|
|
137
|
+
* Execute request with retry logic
|
|
138
|
+
*/
|
|
139
|
+
private executeWithRetry;
|
|
140
|
+
/**
|
|
141
|
+
* Build request config from options
|
|
142
|
+
*/
|
|
143
|
+
private buildRequestConfig;
|
|
144
|
+
/**
|
|
145
|
+
* Perform security checks and add security headers
|
|
146
|
+
*/
|
|
147
|
+
private performSecurityCheck;
|
|
148
|
+
/**
|
|
149
|
+
* Execute request interceptors with global + instance interceptors and priority support
|
|
150
|
+
*/
|
|
151
|
+
private executeRequestInterceptors;
|
|
152
|
+
/**
|
|
153
|
+
* Execute response interceptors with global + instance interceptors and priority support
|
|
154
|
+
*/
|
|
155
|
+
private executeResponseInterceptors;
|
|
156
|
+
/**
|
|
157
|
+
* Handle request error
|
|
158
|
+
*/
|
|
159
|
+
private handleRequestError;
|
|
160
|
+
/**
|
|
161
|
+
* Handle response status
|
|
162
|
+
*/
|
|
163
|
+
private handleResponseStatus;
|
|
164
|
+
/**
|
|
165
|
+
* Execute HTTP request
|
|
166
|
+
*/
|
|
167
|
+
request<T = any>(options: RequestOptions): Promise<T>;
|
|
168
|
+
/**
|
|
169
|
+
* GET request
|
|
170
|
+
*/
|
|
171
|
+
get<T = any>(url: string, options?: Omit<RequestOptions, 'url' | 'method' | 'data'>): Promise<T>;
|
|
172
|
+
/**
|
|
173
|
+
* POST request
|
|
174
|
+
*/
|
|
175
|
+
post<T = any>(url: string, data?: any, options?: Omit<RequestOptions, 'url' | 'method' | 'data'>): Promise<T>;
|
|
176
|
+
/**
|
|
177
|
+
* PUT request
|
|
178
|
+
*/
|
|
179
|
+
put<T = any>(url: string, data?: any, options?: Omit<RequestOptions, 'url' | 'method' | 'data'>): Promise<T>;
|
|
180
|
+
/**
|
|
181
|
+
* PATCH request
|
|
182
|
+
*/
|
|
183
|
+
patch<T = any>(url: string, data?: any, options?: Omit<RequestOptions, 'url' | 'method' | 'data'>): Promise<T>;
|
|
184
|
+
/**
|
|
185
|
+
* DELETE request
|
|
186
|
+
*/
|
|
187
|
+
delete<T = any>(url: string, options?: Omit<RequestOptions, 'url' | 'method' | 'data'>): Promise<T>;
|
|
188
|
+
/**
|
|
189
|
+
* Upload file
|
|
190
|
+
*/
|
|
191
|
+
upload<T = any>(options: RequestOptions & {
|
|
192
|
+
filePath: string | File;
|
|
193
|
+
name?: string;
|
|
194
|
+
formData?: Record<string, any>;
|
|
195
|
+
onProgress?: (progress: {
|
|
196
|
+
progress: number;
|
|
197
|
+
totalBytesSent: number;
|
|
198
|
+
totalBytesExpectedToSend: number;
|
|
199
|
+
}) => void;
|
|
200
|
+
}): Promise<T>;
|
|
201
|
+
/**
|
|
202
|
+
* Download file
|
|
203
|
+
*/
|
|
204
|
+
download<T = any>(options: RequestOptions & {
|
|
205
|
+
filePath?: string;
|
|
206
|
+
onProgress?: (progress: {
|
|
207
|
+
progress: number;
|
|
208
|
+
totalBytesWritten: number;
|
|
209
|
+
totalBytesExpectedToWrite: number;
|
|
210
|
+
}) => void;
|
|
211
|
+
}): Promise<T>;
|
|
212
|
+
/**
|
|
213
|
+
* Clear cache
|
|
214
|
+
*/
|
|
215
|
+
clearCache(url?: string, params?: any): void;
|
|
216
|
+
/**
|
|
217
|
+
* Get cache statistics
|
|
218
|
+
*/
|
|
219
|
+
getCacheStats(): {
|
|
220
|
+
size: number;
|
|
221
|
+
pending: number;
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* Execute request with common logic
|
|
225
|
+
*/
|
|
226
|
+
private executeRequestWithCommonLogic;
|
|
227
|
+
/**
|
|
228
|
+
* Set default headers
|
|
229
|
+
*/
|
|
230
|
+
setDefaultHeaders(headers: Record<string, string>): this;
|
|
231
|
+
/**
|
|
232
|
+
* Update default header
|
|
233
|
+
*/
|
|
234
|
+
updateDefaultHeader(key: string, value: string): this;
|
|
235
|
+
/**
|
|
236
|
+
* Remove default header
|
|
237
|
+
*/
|
|
238
|
+
removeDefaultHeader(key: string): this;
|
|
239
|
+
/**
|
|
240
|
+
* Set default timeout
|
|
241
|
+
*/
|
|
242
|
+
setDefaultTimeout(timeout: number): this;
|
|
243
|
+
/**
|
|
244
|
+
* Enable/disable security features
|
|
245
|
+
*/
|
|
246
|
+
setSecurityEnabled(enabled: boolean): this;
|
|
247
|
+
/**
|
|
248
|
+
* Enable/disable cache
|
|
249
|
+
*/
|
|
250
|
+
setCacheEnabled(enabled: boolean): this;
|
|
251
|
+
/**
|
|
252
|
+
* Set default cache TTL
|
|
253
|
+
*/
|
|
254
|
+
setDefaultCacheTTL(ttl: number): this;
|
|
255
|
+
/**
|
|
256
|
+
* Set authorization header with token
|
|
257
|
+
*/
|
|
258
|
+
setAuthToken(token: string, type?: string): this;
|
|
259
|
+
/**
|
|
260
|
+
* Clear authorization header
|
|
261
|
+
*/
|
|
262
|
+
clearAuthToken(): this;
|
|
263
|
+
/**
|
|
264
|
+
* Set base URL
|
|
265
|
+
*/
|
|
266
|
+
setBaseURL(baseURL: string): this;
|
|
267
|
+
/**
|
|
268
|
+
* Create a new client instance with merged config
|
|
269
|
+
*/
|
|
270
|
+
createInstance(config?: RequestInstanceConfig): Request;
|
|
271
|
+
/**
|
|
272
|
+
* Quick GET request with simplified API
|
|
273
|
+
*/
|
|
274
|
+
quickGet<T = any>(url: string, params?: Record<string, any>, headers?: Record<string, string>): Promise<T>;
|
|
275
|
+
/**
|
|
276
|
+
* Quick POST request with simplified API
|
|
277
|
+
*/
|
|
278
|
+
quickPost<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>;
|
|
279
|
+
}
|
|
280
|
+
export declare const request: Request;
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced Request Types
|
|
3
|
+
* Extended type definitions for the unified request client
|
|
4
|
+
*/
|
|
5
|
+
/** HTTP Methods */
|
|
6
|
+
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
|
|
7
|
+
/** Platform types */
|
|
8
|
+
export type Platform = 'web' | 'weapp' | 'alipay' | 'swan' | 'tt' | 'qq' | 'jd' | 'h5' | 'rn';
|
|
9
|
+
/** Request configuration */
|
|
10
|
+
export interface RequestConfig {
|
|
11
|
+
/** Request URL */
|
|
12
|
+
url: string;
|
|
13
|
+
/** HTTP method */
|
|
14
|
+
method?: HttpMethod;
|
|
15
|
+
/** Request headers */
|
|
16
|
+
headers?: Record<string, string>;
|
|
17
|
+
/** Request body data */
|
|
18
|
+
data?: any;
|
|
19
|
+
/** URL query parameters */
|
|
20
|
+
params?: Record<string, any>;
|
|
21
|
+
/** Request timeout in milliseconds */
|
|
22
|
+
timeout?: number;
|
|
23
|
+
/** Response type */
|
|
24
|
+
responseType?: 'json' | 'text' | 'arraybuffer' | 'blob';
|
|
25
|
+
/** Enable credentials (cookies) */
|
|
26
|
+
withCredentials?: boolean;
|
|
27
|
+
/** Custom request metadata */
|
|
28
|
+
meta?: Record<string, any>;
|
|
29
|
+
}
|
|
30
|
+
/** Response data structure */
|
|
31
|
+
export interface ResponseData<T = any> {
|
|
32
|
+
/** Response data */
|
|
33
|
+
data: T;
|
|
34
|
+
/** HTTP status code */
|
|
35
|
+
statusCode: number;
|
|
36
|
+
/** Response headers */
|
|
37
|
+
header: Record<string, string>;
|
|
38
|
+
/** Error message (if any) */
|
|
39
|
+
errMsg?: string;
|
|
40
|
+
/** Response cookies */
|
|
41
|
+
cookies?: string[];
|
|
42
|
+
}
|
|
43
|
+
/** Interceptor priority levels */
|
|
44
|
+
export type InterceptorPriority = 'low' | 'medium' | 'high' | number;
|
|
45
|
+
/** Request interceptor function with enhanced features */
|
|
46
|
+
export interface RequestInterceptor {
|
|
47
|
+
/** Called before request is sent */
|
|
48
|
+
onRequest?: (config: RequestConfig) => RequestConfig | Promise<RequestConfig>;
|
|
49
|
+
/** Called if request configuration fails */
|
|
50
|
+
onRequestError?: (error: Error) => Error | Promise<Error>;
|
|
51
|
+
/** Interceptor priority */
|
|
52
|
+
priority?: InterceptorPriority;
|
|
53
|
+
/** Interceptor group name */
|
|
54
|
+
group?: string;
|
|
55
|
+
}
|
|
56
|
+
/** Response interceptor function with enhanced features */
|
|
57
|
+
export interface ResponseInterceptor {
|
|
58
|
+
/** Called on successful response */
|
|
59
|
+
onResponse?: <T>(response: ResponseData<T>) => ResponseData<T> | Promise<ResponseData<T>>;
|
|
60
|
+
/** Called on response error */
|
|
61
|
+
onResponseError?: (error: Error) => Error | Promise<Error>;
|
|
62
|
+
/** Interceptor priority */
|
|
63
|
+
priority?: InterceptorPriority;
|
|
64
|
+
/** Interceptor group name */
|
|
65
|
+
group?: string;
|
|
66
|
+
}
|
|
67
|
+
/** Interceptor registration result */
|
|
68
|
+
export interface InterceptorRegistration {
|
|
69
|
+
/** ID of the registered interceptor */
|
|
70
|
+
id: string;
|
|
71
|
+
/** Function to remove the interceptor */
|
|
72
|
+
eject: () => void;
|
|
73
|
+
}
|
|
74
|
+
/** Global interceptors manager */
|
|
75
|
+
export interface GlobalInterceptorsManager {
|
|
76
|
+
/** Add a global request interceptor */
|
|
77
|
+
useRequestInterceptor: (interceptor: RequestInterceptor) => InterceptorRegistration;
|
|
78
|
+
/** Add a global response interceptor */
|
|
79
|
+
useResponseInterceptor: (interceptor: ResponseInterceptor) => InterceptorRegistration;
|
|
80
|
+
/** Remove all global interceptors */
|
|
81
|
+
clearAll: () => void;
|
|
82
|
+
/** Remove all interceptors by group */
|
|
83
|
+
clearByGroup: (group: string) => void;
|
|
84
|
+
/** Get all global request interceptors */
|
|
85
|
+
getRequestInterceptors: () => Array<{
|
|
86
|
+
id: string;
|
|
87
|
+
} & RequestInterceptor>;
|
|
88
|
+
/** Get all global response interceptors */
|
|
89
|
+
getResponseInterceptors: () => Array<{
|
|
90
|
+
id: string;
|
|
91
|
+
} & ResponseInterceptor>;
|
|
92
|
+
}
|
|
93
|
+
/** Retry configuration */
|
|
94
|
+
export interface RetryConfig {
|
|
95
|
+
/** Maximum number of retries */
|
|
96
|
+
retries?: number;
|
|
97
|
+
/** Delay between retries in milliseconds */
|
|
98
|
+
retryDelay?: number;
|
|
99
|
+
/** Function to determine if request should be retried */
|
|
100
|
+
shouldRetry?: (error: Error, attempt: number) => boolean;
|
|
101
|
+
/** Retry delay strategy */
|
|
102
|
+
retryDelayStrategy?: 'fixed' | 'exponential' | 'linear';
|
|
103
|
+
/** Maximum retry delay */
|
|
104
|
+
maxRetryDelay?: number;
|
|
105
|
+
}
|
|
106
|
+
/** Cache configuration */
|
|
107
|
+
export interface CacheConfig {
|
|
108
|
+
/** Enable caching */
|
|
109
|
+
enabled?: boolean;
|
|
110
|
+
/** Cache TTL in milliseconds */
|
|
111
|
+
ttl?: number;
|
|
112
|
+
/** Custom cache key generator */
|
|
113
|
+
keyGenerator?: (config: RequestConfig) => string;
|
|
114
|
+
/** Force refresh (bypass cache) */
|
|
115
|
+
forceRefresh?: boolean;
|
|
116
|
+
}
|
|
117
|
+
/** Loading state configuration */
|
|
118
|
+
export interface LoadingConfig {
|
|
119
|
+
/** Show global loading indicator */
|
|
120
|
+
showLoading?: boolean;
|
|
121
|
+
/** Custom loading text */
|
|
122
|
+
loadingText?: string;
|
|
123
|
+
/** Loading delay (ms) before showing indicator */
|
|
124
|
+
loadingDelay?: number;
|
|
125
|
+
}
|
|
126
|
+
/** Request options (extends config with additional features) */
|
|
127
|
+
export interface RequestOptions extends RequestConfig {
|
|
128
|
+
/** Base URL to prepend */
|
|
129
|
+
baseURL?: string;
|
|
130
|
+
/** Retry configuration */
|
|
131
|
+
retry?: RetryConfig;
|
|
132
|
+
/** Cache configuration */
|
|
133
|
+
cache?: CacheConfig;
|
|
134
|
+
/** Loading state configuration */
|
|
135
|
+
loading?: LoadingConfig;
|
|
136
|
+
/** Cancel token for request cancellation */
|
|
137
|
+
cancelToken?: AbortSignal;
|
|
138
|
+
/** Request hooks */
|
|
139
|
+
hooks?: {
|
|
140
|
+
/** Before request sent */
|
|
141
|
+
beforeRequest?: (config: RequestConfig) => void;
|
|
142
|
+
/** After response received */
|
|
143
|
+
afterResponse?: <T>(response: ResponseData<T>) => void;
|
|
144
|
+
/** On request error */
|
|
145
|
+
onError?: (error: Error) => void;
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/** Platform adapter interface */
|
|
149
|
+
export interface IRequestAdapter {
|
|
150
|
+
/** Execute HTTP request */
|
|
151
|
+
request<T = any>(config: RequestConfig): Promise<ResponseData<T>>;
|
|
152
|
+
/** Upload file */
|
|
153
|
+
upload?<T = any>(config: UploadConfig): Promise<ResponseData<T>>;
|
|
154
|
+
/** Download file */
|
|
155
|
+
download?<T = any>(config: DownloadConfig): Promise<ResponseData<T>>;
|
|
156
|
+
}
|
|
157
|
+
/** Upload configuration */
|
|
158
|
+
export interface UploadConfig extends Omit<RequestConfig, 'data'> {
|
|
159
|
+
/** File path or file object */
|
|
160
|
+
filePath: string | File;
|
|
161
|
+
/** Form field name for file */
|
|
162
|
+
name?: string;
|
|
163
|
+
/** Additional form data */
|
|
164
|
+
formData?: Record<string, any>;
|
|
165
|
+
/** Upload progress callback */
|
|
166
|
+
onProgress?: (progress: UploadProgress) => void;
|
|
167
|
+
}
|
|
168
|
+
/** Upload progress */
|
|
169
|
+
export interface UploadProgress {
|
|
170
|
+
/** Upload progress percentage (0-100) */
|
|
171
|
+
progress: number;
|
|
172
|
+
/** Total bytes to upload */
|
|
173
|
+
totalBytesSent: number;
|
|
174
|
+
/** Bytes sent so far */
|
|
175
|
+
totalBytesExpectedToSend: number;
|
|
176
|
+
}
|
|
177
|
+
/** Download configuration */
|
|
178
|
+
export interface DownloadConfig extends Omit<RequestConfig, 'data' | 'responseType'> {
|
|
179
|
+
/** Download destination path */
|
|
180
|
+
filePath?: string;
|
|
181
|
+
/** Download progress callback */
|
|
182
|
+
onProgress?: (progress: DownloadProgress) => void;
|
|
183
|
+
}
|
|
184
|
+
/** Download progress */
|
|
185
|
+
export interface DownloadProgress {
|
|
186
|
+
/** Download progress percentage (0-100) */
|
|
187
|
+
progress: number;
|
|
188
|
+
/** Total bytes downloaded */
|
|
189
|
+
totalBytesWritten: number;
|
|
190
|
+
/** Expected total bytes */
|
|
191
|
+
totalBytesExpectedToWrite: number;
|
|
192
|
+
}
|
|
193
|
+
/** HTTP client error */
|
|
194
|
+
export declare class HttpError extends Error {
|
|
195
|
+
statusCode?: number | undefined;
|
|
196
|
+
response?: ResponseData | undefined;
|
|
197
|
+
config?: RequestConfig | undefined;
|
|
198
|
+
requestId?: string;
|
|
199
|
+
timestamp: number;
|
|
200
|
+
retryAttempts?: number;
|
|
201
|
+
platform?: Platform;
|
|
202
|
+
constructor(message: string, statusCode?: number | undefined, response?: ResponseData | undefined, config?: RequestConfig | undefined, options?: {
|
|
203
|
+
retryAttempts?: number;
|
|
204
|
+
platform?: Platform;
|
|
205
|
+
requestId?: string;
|
|
206
|
+
});
|
|
207
|
+
toJSON(): {
|
|
208
|
+
name: string;
|
|
209
|
+
message: string;
|
|
210
|
+
statusCode: number | undefined;
|
|
211
|
+
requestId: string | undefined;
|
|
212
|
+
timestamp: number;
|
|
213
|
+
retryAttempts: number | undefined;
|
|
214
|
+
platform: Platform | undefined;
|
|
215
|
+
url: string | undefined;
|
|
216
|
+
method: HttpMethod | undefined;
|
|
217
|
+
response: ResponseData<any> | undefined;
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
/** Network error (no response received) */
|
|
221
|
+
export declare class NetworkError extends Error {
|
|
222
|
+
config?: RequestConfig | undefined;
|
|
223
|
+
requestId?: string;
|
|
224
|
+
timestamp: number;
|
|
225
|
+
retryAttempts?: number;
|
|
226
|
+
platform?: Platform;
|
|
227
|
+
constructor(message: string, config?: RequestConfig | undefined, options?: {
|
|
228
|
+
retryAttempts?: number;
|
|
229
|
+
platform?: Platform;
|
|
230
|
+
requestId?: string;
|
|
231
|
+
});
|
|
232
|
+
toJSON(): {
|
|
233
|
+
name: string;
|
|
234
|
+
message: string;
|
|
235
|
+
requestId: string | undefined;
|
|
236
|
+
timestamp: number;
|
|
237
|
+
retryAttempts: number | undefined;
|
|
238
|
+
platform: Platform | undefined;
|
|
239
|
+
url: string | undefined;
|
|
240
|
+
method: HttpMethod | undefined;
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/** Timeout error */
|
|
244
|
+
export declare class TimeoutError extends Error {
|
|
245
|
+
timeout?: number | undefined;
|
|
246
|
+
config?: RequestConfig | undefined;
|
|
247
|
+
requestId?: string;
|
|
248
|
+
timestamp: number;
|
|
249
|
+
retryAttempts?: number;
|
|
250
|
+
platform?: Platform;
|
|
251
|
+
constructor(message: string, timeout?: number | undefined, config?: RequestConfig | undefined, options?: {
|
|
252
|
+
retryAttempts?: number;
|
|
253
|
+
platform?: Platform;
|
|
254
|
+
requestId?: string;
|
|
255
|
+
});
|
|
256
|
+
toJSON(): {
|
|
257
|
+
name: string;
|
|
258
|
+
message: string;
|
|
259
|
+
timeout: number | undefined;
|
|
260
|
+
requestId: string | undefined;
|
|
261
|
+
timestamp: number;
|
|
262
|
+
retryAttempts: number | undefined;
|
|
263
|
+
platform: Platform | undefined;
|
|
264
|
+
url: string | undefined;
|
|
265
|
+
method: HttpMethod | undefined;
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
/** Cancel error */
|
|
269
|
+
export declare class CancelError extends Error {
|
|
270
|
+
config?: RequestConfig | undefined;
|
|
271
|
+
requestId?: string;
|
|
272
|
+
timestamp: number;
|
|
273
|
+
platform?: Platform;
|
|
274
|
+
constructor(message?: string, config?: RequestConfig | undefined, options?: {
|
|
275
|
+
platform?: Platform;
|
|
276
|
+
requestId?: string;
|
|
277
|
+
});
|
|
278
|
+
toJSON(): {
|
|
279
|
+
name: string;
|
|
280
|
+
message: string;
|
|
281
|
+
requestId: string | undefined;
|
|
282
|
+
timestamp: number;
|
|
283
|
+
platform: Platform | undefined;
|
|
284
|
+
url: string | undefined;
|
|
285
|
+
method: HttpMethod | undefined;
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
/** Request state (for hooks) */
|
|
289
|
+
export interface RequestState<T> {
|
|
290
|
+
/** Response data */
|
|
291
|
+
data: T | null;
|
|
292
|
+
/** Error object */
|
|
293
|
+
error: Error | null;
|
|
294
|
+
/** Loading state */
|
|
295
|
+
loading: boolean;
|
|
296
|
+
/** Request has been called at least once */
|
|
297
|
+
called: boolean;
|
|
298
|
+
}
|
|
299
|
+
/** Mutation state (for hooks) */
|
|
300
|
+
export interface MutationState<T, V = any> {
|
|
301
|
+
/** Response data */
|
|
302
|
+
data: T | null;
|
|
303
|
+
/** Error object */
|
|
304
|
+
error: Error | null;
|
|
305
|
+
/** Loading state */
|
|
306
|
+
loading: boolean;
|
|
307
|
+
/** Mutation variables */
|
|
308
|
+
variables: V | null;
|
|
309
|
+
}
|
|
310
|
+
/** Request hook options */
|
|
311
|
+
export interface UseRequestOptions<T> extends Omit<RequestOptions, 'url' | 'method' | 'data' | 'params'> {
|
|
312
|
+
/** Manual mode - don't execute on mount */
|
|
313
|
+
manual?: boolean;
|
|
314
|
+
/** Default data value */
|
|
315
|
+
initialData?: T;
|
|
316
|
+
/** Dependencies array for auto-refetch */
|
|
317
|
+
deps?: any[];
|
|
318
|
+
/** Debounce delay in milliseconds */
|
|
319
|
+
debounceDelay?: number;
|
|
320
|
+
/** Polling interval in milliseconds */
|
|
321
|
+
pollingInterval?: number;
|
|
322
|
+
/** Ready condition - only execute when true */
|
|
323
|
+
ready?: boolean;
|
|
324
|
+
/** Refresh dependencies - refetch when these change */
|
|
325
|
+
refreshDeps?: any[];
|
|
326
|
+
/** Format response data */
|
|
327
|
+
formatResult?: (data: any) => T;
|
|
328
|
+
/** Error handler */
|
|
329
|
+
onError?: (error: Error) => void;
|
|
330
|
+
/** Success handler */
|
|
331
|
+
onSuccess?: (data: T) => void;
|
|
332
|
+
/** Completion handler (success or error) */
|
|
333
|
+
onCompleted?: (data: T | null, error: Error | null) => void;
|
|
334
|
+
}
|
|
335
|
+
/** Mutation hook options */
|
|
336
|
+
export interface UseMutationOptions<T, V = any> extends Omit<RequestOptions, 'url' | 'method' | 'data' | 'params'> {
|
|
337
|
+
/** Optimistic update function */
|
|
338
|
+
optimisticData?: (variables: V) => T;
|
|
339
|
+
/** Rollback on error */
|
|
340
|
+
rollbackOnError?: boolean;
|
|
341
|
+
/** Error handler */
|
|
342
|
+
onError?: (error: Error, variables: V) => void;
|
|
343
|
+
/** Success handler */
|
|
344
|
+
onSuccess?: (data: T, variables: V) => void;
|
|
345
|
+
/** Before mutation */
|
|
346
|
+
onMutate?: (variables: V) => void | Promise<void>;
|
|
347
|
+
/** After mutation completes */
|
|
348
|
+
onCompleted?: (data: T | null, error: Error | null, variables: V) => void;
|
|
349
|
+
}
|
|
350
|
+
/** Query key type */
|
|
351
|
+
export type QueryKey = string | readonly unknown[];
|