@gnwebsoft/ui 4.0.2 → 4.0.4
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 +98 -74
- package/dist/{chunk-GLN5JSFF.cjs → chunk-2QTXS736.cjs} +344 -293
- package/dist/{chunk-DS524L7W.cjs → chunk-3RZ4JNO3.cjs} +5 -5
- package/dist/chunk-HKO2FXDM.js +2232 -0
- package/dist/{chunk-QLQ6OH25.cjs → chunk-IKHMJW5A.cjs} +52 -30
- package/dist/chunk-LUW7V5GI.cjs +1 -1
- package/dist/chunk-MVPLBJRK.cjs +1 -1
- package/dist/chunk-NMJ5V7FQ.js +2512 -0
- package/dist/chunk-XN3KVY4J.js +467 -0
- package/dist/chunk-XTPFOURJ.cjs +72 -0
- package/dist/chunk-Y3QTSDLJ.cjs +1 -1
- package/dist/core/api/ApiClient.d.ts +329 -0
- package/dist/core/api/ApiClient.d.ts.map +1 -0
- package/dist/core/api/CorrelationIdGenerator.d.ts +52 -0
- package/dist/core/api/CorrelationIdGenerator.d.ts.map +1 -0
- package/dist/core/api/Errors/ErrorNormalizer.d.ts +106 -0
- package/dist/core/api/Errors/ErrorNormalizer.d.ts.map +1 -0
- package/dist/core/api/Interceptors/InterceptorManager.d.ts +236 -0
- package/dist/core/api/Interceptors/InterceptorManager.d.ts.map +1 -0
- package/dist/core/api/Models/FilterModel.d.ts +22 -0
- package/dist/core/api/Models/FilterModel.d.ts.map +1 -0
- package/dist/core/api/Models/QueryParams.d.ts +13 -0
- package/dist/core/api/Models/QueryParams.d.ts.map +1 -0
- package/dist/core/api/Models/index.d.ts +3 -0
- package/dist/core/api/Models/index.d.ts.map +1 -0
- package/dist/core/api/RequestManager.d.ts +142 -0
- package/dist/core/api/RequestManager.d.ts.map +1 -0
- package/dist/core/api/Retry/RetryHandler.d.ts +100 -0
- package/dist/core/api/Retry/RetryHandler.d.ts.map +1 -0
- package/dist/core/api/Signals/SignalManager.d.ts +153 -0
- package/dist/core/api/Signals/SignalManager.d.ts.map +1 -0
- package/dist/core/api/Utils/ResponseParser.d.ts +105 -0
- package/dist/core/api/Utils/ResponseParser.d.ts.map +1 -0
- package/dist/core/api/Utils/UrlBuilder.d.ts +111 -0
- package/dist/core/api/Utils/UrlBuilder.d.ts.map +1 -0
- package/dist/core/api/createApiClient.d.ts +243 -0
- package/dist/core/api/createApiClient.d.ts.map +1 -0
- package/dist/core/api/index.d.ts +7 -0
- package/dist/core/api/index.d.ts.map +1 -0
- package/dist/core/api/types/ApiError.d.ts +17 -0
- package/dist/core/api/types/ApiError.d.ts.map +1 -0
- package/dist/core/api/types/ApiResponse.d.ts +76 -0
- package/dist/core/api/types/ApiResponse.d.ts.map +1 -0
- package/dist/core/api/types/CancelToken.d.ts +15 -0
- package/dist/core/api/types/CancelToken.d.ts.map +1 -0
- package/dist/core/api/types/ErrorInterceptor.d.ts +3 -0
- package/dist/core/api/types/ErrorInterceptor.d.ts.map +1 -0
- package/dist/core/api/types/ErrorResponseData.d.ts +68 -0
- package/dist/core/api/types/ErrorResponseData.d.ts.map +1 -0
- package/dist/core/api/types/RequestConfig.d.ts +21 -0
- package/dist/core/api/types/RequestConfig.d.ts.map +1 -0
- package/dist/core/api/types/RequestInterceptor.d.ts +3 -0
- package/dist/core/api/types/RequestInterceptor.d.ts.map +1 -0
- package/dist/core/api/types/ResponseInterceptor.d.ts +3 -0
- package/dist/core/api/types/ResponseInterceptor.d.ts.map +1 -0
- package/dist/core/api/types/ValidationErrors.d.ts +7 -0
- package/dist/core/api/types/ValidationErrors.d.ts.map +1 -0
- package/dist/core/api/types/index.d.ts +10 -0
- package/dist/core/api/types/index.d.ts.map +1 -0
- package/dist/core/api/useValidationErrors.d.ts +11 -0
- package/dist/core/api/useValidationErrors.d.ts.map +1 -0
- package/dist/core/components/AuthorizedView/AuthorizedView.d.ts +7 -0
- package/dist/core/components/AuthorizedView/AuthorizedView.d.ts.map +1 -0
- package/dist/core/components/AuthorizedView/index.d.ts +2 -0
- package/dist/core/components/AuthorizedView/index.d.ts.map +1 -0
- package/dist/core/components/CancelButton/CancelButton.d.ts +4 -0
- package/dist/core/components/CancelButton/CancelButton.d.ts.map +1 -0
- package/dist/core/components/CancelButton/index.d.ts +2 -0
- package/dist/core/components/CancelButton/index.d.ts.map +1 -0
- package/dist/core/components/ClearButton/ClearButton.d.ts +63 -0
- package/dist/core/components/ClearButton/ClearButton.d.ts.map +1 -0
- package/dist/core/components/ClearButton/index.d.ts +2 -0
- package/dist/core/components/ClearButton/index.d.ts.map +1 -0
- package/dist/core/components/Containers/SimpleContainer.d.ts +10 -0
- package/dist/core/components/Containers/SimpleContainer.d.ts.map +1 -0
- package/dist/core/components/Containers/index.d.ts +2 -0
- package/dist/core/components/Containers/index.d.ts.map +1 -0
- package/dist/core/components/FilterButton/FilterButton.d.ts +86 -0
- package/dist/core/components/FilterButton/FilterButton.d.ts.map +1 -0
- package/dist/core/components/FilterButton/index.d.ts +2 -0
- package/dist/core/components/FilterButton/index.d.ts.map +1 -0
- package/dist/core/components/FilterDisplay/FilterChip.d.ts +9 -0
- package/dist/core/components/FilterDisplay/FilterChip.d.ts.map +1 -0
- package/dist/core/components/FilterDisplay/FilterDisplay.d.ts +10 -0
- package/dist/core/components/FilterDisplay/FilterDisplay.d.ts.map +1 -0
- package/dist/core/components/FilterDisplay/index.d.ts +3 -0
- package/dist/core/components/FilterDisplay/index.d.ts.map +1 -0
- package/dist/core/components/FilterWrapper/FilterWrapper.d.ts +99 -0
- package/dist/core/components/FilterWrapper/FilterWrapper.d.ts.map +1 -0
- package/dist/core/components/FilterWrapper/index.d.ts +2 -0
- package/dist/core/components/FilterWrapper/index.d.ts.map +1 -0
- package/dist/core/components/Footer/Footer.d.ts +3 -0
- package/dist/core/components/Footer/Footer.d.ts.map +1 -0
- package/dist/core/components/Footer/index.d.ts +2 -0
- package/dist/core/components/Footer/index.d.ts.map +1 -0
- package/dist/core/components/LabelText/LabelText.d.ts +103 -0
- package/dist/core/components/LabelText/LabelText.d.ts.map +1 -0
- package/dist/core/components/LabelText/index.d.ts +2 -0
- package/dist/core/components/LabelText/index.d.ts.map +1 -0
- package/dist/core/components/RenderIf/RenderIf.d.ts +7 -0
- package/dist/core/components/RenderIf/RenderIf.d.ts.map +1 -0
- package/dist/core/components/RenderIf/index.d.ts +2 -0
- package/dist/core/components/RenderIf/index.d.ts.map +1 -0
- package/dist/core/components/SectionBox/SectionBox.d.ts +15 -0
- package/dist/core/components/SectionBox/SectionBox.d.ts.map +1 -0
- package/dist/core/components/SectionBox/index.d.ts +2 -0
- package/dist/core/components/SectionBox/index.d.ts.map +1 -0
- package/dist/core/components/SimpleTabs/SimpleTabs.d.ts +17 -0
- package/dist/core/components/SimpleTabs/SimpleTabs.d.ts.map +1 -0
- package/dist/core/components/SimpleTabs/index.d.ts +2 -0
- package/dist/core/components/SimpleTabs/index.d.ts.map +1 -0
- package/dist/core/components/SubmitButton/SubmitButton.d.ts +6 -0
- package/dist/core/components/SubmitButton/SubmitButton.d.ts.map +1 -0
- package/dist/core/components/SubmitButton/index.d.ts +2 -0
- package/dist/core/components/SubmitButton/index.d.ts.map +1 -0
- package/dist/core/components/WithRef/WithRef.d.ts +14 -0
- package/dist/core/components/WithRef/WithRef.d.ts.map +1 -0
- package/dist/core/components/WithRef/index.d.ts +2 -0
- package/dist/core/components/WithRef/index.d.ts.map +1 -0
- package/dist/core/components/index.d.ts +15 -0
- package/dist/core/components/index.d.ts.map +1 -0
- package/dist/core/config.d.ts +24 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/hooks/index.d.ts +3 -0
- package/dist/core/hooks/index.d.ts.map +1 -0
- package/dist/core/hooks/makeQuery.d.ts +12 -0
- package/dist/core/hooks/makeQuery.d.ts.map +1 -0
- package/dist/core/hooks/useApiClient.d.ts +3 -0
- package/dist/core/hooks/useApiClient.d.ts.map +1 -0
- package/dist/core/hooks/useFormErrorHandler.d.ts +35 -0
- package/dist/core/hooks/useFormErrorHandler.d.ts.map +1 -0
- package/dist/core/hooks/useListView.d.ts +20 -0
- package/dist/core/hooks/useListView.d.ts.map +1 -0
- package/dist/core/index.cjs +3 -3
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +1 -1
- package/dist/core/models.d.ts +5 -0
- package/dist/core/models.d.ts.map +1 -0
- package/dist/core/types/FilterLabel.d.ts +6 -0
- package/dist/core/types/FilterLabel.d.ts.map +1 -0
- package/dist/core/types/ListModels.d.ts +18 -0
- package/dist/core/types/ListModels.d.ts.map +1 -0
- package/dist/core/types/OptionsRequest.d.ts +4 -0
- package/dist/core/types/OptionsRequest.d.ts.map +1 -0
- package/dist/core/types/index.d.ts +4 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/utils/CacheUtility/index.d.ts +15 -0
- package/dist/core/utils/CacheUtility/index.d.ts.map +1 -0
- package/dist/core/utils/calculateFilterCount.d.ts +2 -0
- package/dist/core/utils/calculateFilterCount.d.ts.map +1 -0
- package/dist/core/utils/format-time.d.ts +79 -0
- package/dist/core/utils/format-time.d.ts.map +1 -0
- package/dist/core/utils/getEmptyObject.d.ts +7 -0
- package/dist/core/utils/getEmptyObject.d.ts.map +1 -0
- package/dist/core/utils/index.d.ts +7 -0
- package/dist/core/utils/index.d.ts.map +1 -0
- package/dist/core/utils/useStableRowCount.d.ts +9 -0
- package/dist/core/utils/useStableRowCount.d.ts.map +1 -0
- package/dist/core/utils/watch/core.d.ts +22 -0
- package/dist/core/utils/watch/core.d.ts.map +1 -0
- package/dist/core/utils/watch/index.d.ts +49 -0
- package/dist/core/utils/watch/index.d.ts.map +1 -0
- package/dist/core/utils/watch/utilities.d.ts +34 -0
- package/dist/core/utils/watch/utilities.d.ts.map +1 -0
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/useTransform/enhanced.d.ts +133 -0
- package/dist/hooks/useTransform/enhanced.d.ts.map +1 -0
- package/dist/hooks/useTransform/index.d.ts +93 -0
- package/dist/hooks/useTransform/index.d.ts.map +1 -0
- package/dist/index.cjs +6 -6
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -18
- package/dist/types/AsyncSelectPayload.d.ts +9 -0
- package/dist/types/AsyncSelectPayload.d.ts.map +1 -0
- package/dist/types/OperationResponse.d.ts +5 -0
- package/dist/types/OperationResponse.d.ts.map +1 -0
- package/dist/types/OptionItem.d.ts +75 -0
- package/dist/types/OptionItem.d.ts.map +1 -0
- package/dist/types/api.d.ts +127 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/events.d.ts +74 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/index.cjs +3 -3
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -1
- package/dist/types/utilities.d.ts +458 -0
- package/dist/types/utilities.d.ts.map +1 -0
- package/dist/utils/api.d.ts +14 -0
- package/dist/utils/api.d.ts.map +1 -0
- package/dist/utils/api2.d.ts +14 -0
- package/dist/utils/api2.d.ts.map +1 -0
- package/dist/utils/flattenObjectKeys.d.ts +63 -0
- package/dist/utils/flattenObjectKeys.d.ts.map +1 -0
- package/dist/utils/getTimezone.d.ts +4 -0
- package/dist/utils/getTimezone.d.ts.map +1 -0
- package/dist/utils/handleServerErrors.d.ts +70 -0
- package/dist/utils/handleServerErrors.d.ts.map +1 -0
- package/dist/utils/index.cjs +3 -3
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +1 -1
- package/dist/utils/propertyExists.d.ts +35 -0
- package/dist/utils/propertyExists.d.ts.map +1 -0
- package/dist/utils/readValueAsDate.d.ts +4 -0
- package/dist/utils/readValueAsDate.d.ts.map +1 -0
- package/dist/utils/removeLeadingTrailingSlashes.d.ts +2 -0
- package/dist/utils/removeLeadingTrailingSlashes.d.ts.map +1 -0
- package/dist/utils/schemaTools.d.ts +82 -0
- package/dist/utils/schemaTools.d.ts.map +1 -0
- package/dist/utils/typeGuards.d.ts +316 -0
- package/dist/utils/typeGuards.d.ts.map +1 -0
- package/dist/utils/watch/core.d.ts +22 -0
- package/dist/utils/watch/core.d.ts.map +1 -0
- package/dist/utils/watch/index.d.ts +49 -0
- package/dist/utils/watch/index.d.ts.map +1 -0
- package/dist/utils/watch/utilities.d.ts +34 -0
- package/dist/utils/watch/utilities.d.ts.map +1 -0
- package/dist/wrappers/AsyncMultiSelect/AsyncMultiSelect.d.ts +9 -0
- package/dist/wrappers/AsyncMultiSelect/AsyncMultiSelect.d.ts.map +1 -0
- package/dist/wrappers/AsyncMultiSelect/index.d.ts +3 -0
- package/dist/wrappers/AsyncMultiSelect/index.d.ts.map +1 -0
- package/dist/wrappers/AsyncMultiSelect/types.d.ts +19 -0
- package/dist/wrappers/AsyncMultiSelect/types.d.ts.map +1 -0
- package/dist/wrappers/AsyncMultiSelect2/AsyncMultiSelect2.d.ts +8 -0
- package/dist/wrappers/AsyncMultiSelect2/AsyncMultiSelect2.d.ts.map +1 -0
- package/dist/wrappers/AsyncMultiSelect2/index.d.ts +3 -0
- package/dist/wrappers/AsyncMultiSelect2/index.d.ts.map +1 -0
- package/dist/wrappers/AsyncMultiSelect2/types.d.ts +29 -0
- package/dist/wrappers/AsyncMultiSelect2/types.d.ts.map +1 -0
- package/dist/wrappers/AsyncSelect/index.d.ts +9 -0
- package/dist/wrappers/AsyncSelect/index.d.ts.map +1 -0
- package/dist/wrappers/AsyncSelect/types.d.ts +19 -0
- package/dist/wrappers/AsyncSelect/types.d.ts.map +1 -0
- package/dist/wrappers/Button.d.ts +49 -0
- package/dist/wrappers/Button.d.ts.map +1 -0
- package/dist/wrappers/CheckboxElement/CheckboxElement.d.ts +102 -0
- package/dist/wrappers/CheckboxElement/CheckboxElement.d.ts.map +1 -0
- package/dist/wrappers/CheckboxElement/index.d.ts +3 -0
- package/dist/wrappers/CheckboxElement/index.d.ts.map +1 -0
- package/dist/wrappers/CheckboxElement/types.d.ts +76 -0
- package/dist/wrappers/CheckboxElement/types.d.ts.map +1 -0
- package/dist/wrappers/CheckboxGroup/CheckboxGroup.d.ts +96 -0
- package/dist/wrappers/CheckboxGroup/CheckboxGroup.d.ts.map +1 -0
- package/dist/wrappers/CheckboxGroup/EnhancedCheckboxGroup.d.ts +49 -0
- package/dist/wrappers/CheckboxGroup/EnhancedCheckboxGroup.d.ts.map +1 -0
- package/dist/wrappers/CheckboxGroup/enhanced-types.d.ts +171 -0
- package/dist/wrappers/CheckboxGroup/enhanced-types.d.ts.map +1 -0
- package/dist/wrappers/CheckboxGroup/index.d.ts +3 -0
- package/dist/wrappers/CheckboxGroup/index.d.ts.map +1 -0
- package/dist/wrappers/CheckboxGroup/types.d.ts +106 -0
- package/dist/wrappers/CheckboxGroup/types.d.ts.map +1 -0
- package/dist/wrappers/DatePickerElement/DatePickerElement.d.ts +131 -0
- package/dist/wrappers/DatePickerElement/DatePickerElement.d.ts.map +1 -0
- package/dist/wrappers/DatePickerElement/DatePickerElementCore.d.ts +57 -0
- package/dist/wrappers/DatePickerElement/DatePickerElementCore.d.ts.map +1 -0
- package/dist/wrappers/DatePickerElement/hooks/index.d.ts +24 -0
- package/dist/wrappers/DatePickerElement/hooks/index.d.ts.map +1 -0
- package/dist/wrappers/DatePickerElement/hooks/useDatePickerStyles.d.ts +63 -0
- package/dist/wrappers/DatePickerElement/hooks/useDatePickerStyles.d.ts.map +1 -0
- package/dist/wrappers/DatePickerElement/hooks/useDatePickerValidation.d.ts +79 -0
- package/dist/wrappers/DatePickerElement/hooks/useDatePickerValidation.d.ts.map +1 -0
- package/dist/wrappers/DatePickerElement/hooks/useDatePickerValue.d.ts +73 -0
- package/dist/wrappers/DatePickerElement/hooks/useDatePickerValue.d.ts.map +1 -0
- package/dist/wrappers/DatePickerElement/index.d.ts +47 -0
- package/dist/wrappers/DatePickerElement/index.d.ts.map +1 -0
- package/dist/wrappers/DatePickerElement/types.d.ts +183 -0
- package/dist/wrappers/DatePickerElement/types.d.ts.map +1 -0
- package/dist/wrappers/DatePickerElement/utils.d.ts +89 -0
- package/dist/wrappers/DatePickerElement/utils.d.ts.map +1 -0
- package/dist/wrappers/DateTimePickerElement/index.d.ts +1 -0
- package/dist/wrappers/DateTimePickerElement/index.d.ts.map +1 -0
- package/dist/wrappers/DateTimePickerElement/types.d.ts +1 -0
- package/dist/wrappers/DateTimePickerElement/types.d.ts.map +1 -0
- package/dist/wrappers/Field/index.d.ts +42 -0
- package/dist/wrappers/Field/index.d.ts.map +1 -0
- package/dist/wrappers/NumberFieldElement/NumberFieldElement.d.ts +176 -0
- package/dist/wrappers/NumberFieldElement/NumberFieldElement.d.ts.map +1 -0
- package/dist/wrappers/NumberFieldElement/index.d.ts +3 -0
- package/dist/wrappers/NumberFieldElement/index.d.ts.map +1 -0
- package/dist/wrappers/OTPInputElement/HelperText.d.ts +8 -0
- package/dist/wrappers/OTPInputElement/HelperText.d.ts.map +1 -0
- package/dist/wrappers/OTPInputElement/OTPInputElement.d.ts +32 -0
- package/dist/wrappers/OTPInputElement/OTPInputElement.d.ts.map +1 -0
- package/dist/wrappers/OTPInputElement/index.d.ts +3 -0
- package/dist/wrappers/OTPInputElement/index.d.ts.map +1 -0
- package/dist/wrappers/PasswordElement/PasswordElement.d.ts +104 -0
- package/dist/wrappers/PasswordElement/PasswordElement.d.ts.map +1 -0
- package/dist/wrappers/PasswordElement/index.d.ts +2 -0
- package/dist/wrappers/PasswordElement/index.d.ts.map +1 -0
- package/dist/wrappers/RadioButtonGroup/RadioButtonGroup.d.ts +38 -0
- package/dist/wrappers/RadioButtonGroup/RadioButtonGroup.d.ts.map +1 -0
- package/dist/wrappers/RadioButtonGroup/index.d.ts +2 -0
- package/dist/wrappers/RadioButtonGroup/index.d.ts.map +1 -0
- package/dist/wrappers/SelectCascadeElement/SelectCascadeElement.d.ts +22 -0
- package/dist/wrappers/SelectCascadeElement/SelectCascadeElement.d.ts.map +1 -0
- package/dist/wrappers/SelectCascadeElement/index.d.ts +2 -0
- package/dist/wrappers/SelectCascadeElement/index.d.ts.map +1 -0
- package/dist/wrappers/SelectElement/SelectElement.d.ts +152 -0
- package/dist/wrappers/SelectElement/SelectElement.d.ts.map +1 -0
- package/dist/wrappers/SelectElement/index.d.ts +2 -0
- package/dist/wrappers/SelectElement/index.d.ts.map +1 -0
- package/dist/wrappers/SelectMultiElement/SelectMultiElement.d.ts +21 -0
- package/dist/wrappers/SelectMultiElement/SelectMultiElement.d.ts.map +1 -0
- package/dist/wrappers/SelectMultiElement/index.d.ts +2 -0
- package/dist/wrappers/SelectMultiElement/index.d.ts.map +1 -0
- package/dist/wrappers/TextFieldElement/TextFieldElement.d.ts +179 -0
- package/dist/wrappers/TextFieldElement/TextFieldElement.d.ts.map +1 -0
- package/dist/wrappers/TextFieldElement/index.d.ts +3 -0
- package/dist/wrappers/TextFieldElement/index.d.ts.map +1 -0
- package/dist/wrappers/TimePickerElement/TimePickerElement.d.ts +30 -0
- package/dist/wrappers/TimePickerElement/TimePickerElement.d.ts.map +1 -0
- package/dist/wrappers/TimePickerElement/index.d.ts +2 -0
- package/dist/wrappers/TimePickerElement/index.d.ts.map +1 -0
- package/dist/wrappers/index.cjs +3 -3
- package/dist/wrappers/index.d.ts +14 -0
- package/dist/wrappers/index.d.ts.map +1 -0
- package/dist/wrappers/index.js +1 -1
- package/dist/wrappers/types/common.d.ts +87 -0
- package/dist/wrappers/types/common.d.ts.map +1 -0
- package/dist/wrappers/types/index.d.ts +8 -0
- package/dist/wrappers/types/index.d.ts.map +1 -0
- package/package.json +4 -2
- package/dist/chunk-BXF3QEBN.js +0 -2181
- package/dist/chunk-GHW77WIM.cjs +0 -72
- package/dist/chunk-M526GQZS.js +0 -2490
- package/dist/chunk-PUQIPRL2.js +0 -467
- /package/dist/{chunk-MULSVYFT.js → chunk-6GKAC3KH.js} +0 -0
package/dist/chunk-Y3QTSDLJ.cjs
CHANGED
|
@@ -137,4 +137,4 @@ function useEnhancedTransform(options) {
|
|
|
137
137
|
|
|
138
138
|
|
|
139
139
|
exports.useTransform = useTransform; exports.transformFactories = transformFactories; exports.useEnhancedTransform = useEnhancedTransform;
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImQ6XFxQcm9qZWN0c1xcR05XZWJTb2Z0LlVJXFxwYWNrYWdlc1xcdWlcXGRpc3RcXGNodW5rLVkzUVRTRExKLmNqcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLFNBQVMsWUFBWSxDQUFDLE9BQU8sRUFBRTtBQUMvQixFQUFFLE1BQU0sTUFBTSxFQUFFLHVCQUFPLE9BQU8sbUJBQUMsU0FBUyw2QkFBRSxRQUFNLElBQUksV0FBVyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSztBQUN2SCxFQUFFLE1BQU0sU0FBUyxFQUFFLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHO0FBQzdDLElBQUksR0FBRyxDQUFDLHVCQUFPLE9BQU8scUJBQUMsU0FBUyw2QkFBRSxTQUFPLElBQUksVUFBVSxFQUFFO0FBQ3pELE1BQU0sT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEUsSUFBSSxFQUFFLEtBQUs7QUFDWCxNQUFNLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO0FBQ3BDLElBQUk7QUFDSixFQUFFLENBQUM7QUFDSCxFQUFFLE9BQU87QUFDVCxJQUFJLEtBQUs7QUFDVCxJQUFJO0FBQ0osRUFBRSxDQUFDO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsOEJBQTRDO0FBQzVDLElBQUksbUJBQW1CLEVBQUU7QUFDekIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQztBQUNqQixJQUFJLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHO0FBQ3RCLE1BQU0sR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQ2xDLE1BQU0sT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQzFCLElBQUksQ0FBQztBQUNMLElBQUksTUFBTSxF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STtBQUNKLElBQUksT0FBTyxVQUFVO0FBQ3JCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxrQkFBRSxTQUFTLDZCQUFFLE9BQUssa0JBQUUsZ0JBQWdCLDZCQUFFLE9BQUssRUFBRSxZQUFZLENBQUMsQ0FBQztBQUMzRSxFQUFFLE1BQU0saUJBQWlCLEVBQUUsZ0NBQVc7QUFDdEMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRztBQUM3QixNQUFNLE1BQU0sZ0JBQWdCLGtCQUFFLFNBQVMsNkJBQUUsU0FBTyxtQkFBRyxnQkFBZ0IsK0JBQUUsUUFBTTtBQUMzRSxNQUFNLEdBQUcsQ0FBQyxPQUFPLGdCQUFnQixJQUFJLFVBQVUsRUFBRTtBQUNqRCxRQUFRLElBQUk7QUFDWixVQUFVLE1BQU0sa0JBQWtCLEVBQUUsZUFBZSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUM7QUFDeEUsVUFBVSxhQUFhLENBQUMsaUJBQWlCLENBQUM7QUFDMUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUU7QUFDeEIsVUFBVSxHQUFHLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLGFBQWEsRUFBRTtBQUN4RSxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsdURBQXVELEVBQUUsS0FBSyxDQUFDO0FBQ3pGLFVBQVU7QUFDVixVQUFVLGFBQWE7QUFDdkIsWUFBWSxNQUFNLElBQUksS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFO0FBQ3ZDLFVBQVUsQ0FBQztBQUNYLFFBQVE7QUFDUixNQUFNLEVBQUUsS0FBSztBQUNiLFFBQVEsYUFBYTtBQUNyQixVQUFVLE1BQU0sSUFBSSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUU7QUFDckMsUUFBUSxDQUFDO0FBQ1QsTUFBTTtBQUNOLElBQUksQ0FBQztBQUNMLElBQUksQ0FBQyxhQUFhLGtCQUFFLFNBQVMsK0JBQUUsUUFBTSxrQkFBRSxnQkFBZ0IsK0JBQUUsUUFBTSxFQUFFLGNBQWM7QUFDL0UsRUFBRSxDQUFDO0FBQ0gsRUFBRSxPQUFPO0FBQ1QsSUFBSSxLQUFLLEVBQUUsZ0JBQWdCO0FBQzNCLElBQUksUUFBUSxFQUFFO0FBQ2QsRUFBRSxDQUFDO0FBQ0g7QUFDQTtBQUNBO0FBQ0U7QUFDQTtBQUNBO0FBQ0YsMElBQUMiLCJmaWxlIjoiRDpcXFByb2plY3RzXFxHTldlYlNvZnQuVUlcXHBhY2thZ2VzXFx1aVxcZGlzdFxcY2h1bmstWTNRVFNETEouY2pzIiwic291cmNlc0NvbnRlbnQiOltudWxsXX0=
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
import type { ListResponse, PostModel, ResponseData } from './Models';
|
|
2
|
+
import type { ApiError } from './types/ApiError';
|
|
3
|
+
import type { ErrorInterceptor } from './types/ErrorInterceptor';
|
|
4
|
+
import type { RequestConfig } from './types/RequestConfig';
|
|
5
|
+
import type { RequestInterceptor } from './types/RequestInterceptor';
|
|
6
|
+
import type { ResponseInterceptor } from './types/ResponseInterceptor';
|
|
7
|
+
import type { ApiResponse } from '@/types';
|
|
8
|
+
/**
|
|
9
|
+
* Enterprise-grade API client with advanced features for production applications.
|
|
10
|
+
*
|
|
11
|
+
* This client provides a robust, type-safe abstraction over the Fetch API with:
|
|
12
|
+
* - Comprehensive request/response/error interceptor system
|
|
13
|
+
* - Automatic retry logic with exponential backoff
|
|
14
|
+
* - Request correlation ID tracking for distributed tracing
|
|
15
|
+
* - Token-based authentication with automatic header injection
|
|
16
|
+
* - Request cancellation and timeout management
|
|
17
|
+
* - Type-safe error handling with structured error responses
|
|
18
|
+
* - React Query integration support
|
|
19
|
+
*
|
|
20
|
+
* Architecture Principles:
|
|
21
|
+
* - **Type Safety**: Full TypeScript inference with no `any` types
|
|
22
|
+
* - **Extensibility**: Interceptor pattern allows for flexible middleware
|
|
23
|
+
* - **Observability**: Built-in correlation IDs for request tracing
|
|
24
|
+
* - **Resilience**: Automatic retries, timeouts, and graceful error handling
|
|
25
|
+
* - **Performance**: Request deduplication and cancellation support
|
|
26
|
+
* - **Modularity**: Organized into focused, single-responsibility modules
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* Basic usage:
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const client = new ApiClient('https://api.example.com', 30000);
|
|
32
|
+
* client.setAuthToken('your-jwt-token');
|
|
33
|
+
*
|
|
34
|
+
* // Type-safe GET request
|
|
35
|
+
* const { apiData, error } = await client.get<User>('/users/123');
|
|
36
|
+
* if (error) {
|
|
37
|
+
* console.error('Failed to fetch user:', error);
|
|
38
|
+
* } else {
|
|
39
|
+
* console.log('User data:', data);
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* With React Query:
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const queryClient = new QueryClient();
|
|
47
|
+
* const apiClient = new ApiClient(process.env.API_BASE_URL);
|
|
48
|
+
*
|
|
49
|
+
* // Add logging interceptor
|
|
50
|
+
* apiClient.addResponseInterceptor(async (response) => {
|
|
51
|
+
* console.log('Response received:', response);
|
|
52
|
+
* return response;
|
|
53
|
+
* });
|
|
54
|
+
*
|
|
55
|
+
* // Use in queries
|
|
56
|
+
* const { apiData } = useQuery({
|
|
57
|
+
* queryKey: ['users', userId],
|
|
58
|
+
* queryFn: () => apiClient.get<User>(`/users/${userId}`)
|
|
59
|
+
* });
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* Advanced error handling:
|
|
64
|
+
* ```typescript
|
|
65
|
+
* // Option 1: Errors thrown (default)
|
|
66
|
+
* try {
|
|
67
|
+
* const { apiData } = await client.get<User>('/users/123');
|
|
68
|
+
* console.log(data);
|
|
69
|
+
* } catch (error) {
|
|
70
|
+
* if (error.status === 404) {
|
|
71
|
+
* console.log('User not found');
|
|
72
|
+
* }
|
|
73
|
+
* }
|
|
74
|
+
*
|
|
75
|
+
* // Option 2: Errors returned in response
|
|
76
|
+
* const { apiData, error } = await client.get<User>('/users/123', {
|
|
77
|
+
* throwErrors: false
|
|
78
|
+
* });
|
|
79
|
+
* if (error) {
|
|
80
|
+
* console.error('Request failed:', error);
|
|
81
|
+
* }
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* @public
|
|
85
|
+
*/
|
|
86
|
+
export declare class ApiClient {
|
|
87
|
+
private readonly baseURL;
|
|
88
|
+
private readonly defaultTimeout;
|
|
89
|
+
private readonly interceptorManager;
|
|
90
|
+
private readonly signalManager;
|
|
91
|
+
private readonly errorNormalizer;
|
|
92
|
+
private readonly responseParser;
|
|
93
|
+
private readonly urlBuilder;
|
|
94
|
+
private readonly retryHandler;
|
|
95
|
+
private readonly requestManager;
|
|
96
|
+
private authToken;
|
|
97
|
+
private correlationIdPrefix;
|
|
98
|
+
private includeCorrelationId;
|
|
99
|
+
/**
|
|
100
|
+
* Creates a new API client instance
|
|
101
|
+
* @param baseURL - Base URL for all API requests (default: empty string for relative URLs)
|
|
102
|
+
* @param defaultTimeout - Default request timeout in milliseconds (default: 30000)
|
|
103
|
+
*/
|
|
104
|
+
constructor(baseURL?: string, defaultTimeout?: number);
|
|
105
|
+
/**
|
|
106
|
+
* Sets the prefix for auto-generated correlation IDs
|
|
107
|
+
* @param prefix - The prefix to use for correlation IDs (e.g., 'api', 'web', 'mobile')
|
|
108
|
+
*/
|
|
109
|
+
setCorrelationIdPrefix(prefix: string): void;
|
|
110
|
+
/**
|
|
111
|
+
* Enables or disables automatic correlation ID generation
|
|
112
|
+
* @param include - Whether to include correlation IDs in requests
|
|
113
|
+
*/
|
|
114
|
+
setIncludeCorrelationId(include: boolean): void;
|
|
115
|
+
/**
|
|
116
|
+
* Registers a request interceptor to modify requests before they're sent
|
|
117
|
+
* @param interceptor - Function to intercept and potentially modify request config
|
|
118
|
+
* @returns Function to unregister this interceptor
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* const unregister = client.addRequestInterceptor(async (config) => {
|
|
123
|
+
* config.headers = config.headers || new Headers();
|
|
124
|
+
* config.headers.set('X-Client-Version', '1.0.0');
|
|
125
|
+
* return config;
|
|
126
|
+
* });
|
|
127
|
+
*
|
|
128
|
+
* // Later, to remove the interceptor:
|
|
129
|
+
* unregister();
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
addRequestInterceptor(interceptor: RequestInterceptor): () => void;
|
|
133
|
+
/**
|
|
134
|
+
* Registers a response interceptor to modify responses before they're returned
|
|
135
|
+
* @param interceptor - Function to intercept and potentially modify responses
|
|
136
|
+
* @returns Function to unregister this interceptor
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```typescript
|
|
140
|
+
* client.addResponseInterceptor(async (response) => {
|
|
141
|
+
* // Transform data format
|
|
142
|
+
* if (response.apiData) {
|
|
143
|
+
* response.apiData = camelCaseKeys(response.apiData);
|
|
144
|
+
* }
|
|
145
|
+
* return response;
|
|
146
|
+
* });
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
addResponseInterceptor(interceptor: ResponseInterceptor): () => void;
|
|
150
|
+
/**
|
|
151
|
+
* Registers an error interceptor to handle or transform errors
|
|
152
|
+
* @param interceptor - Function to intercept and potentially modify errors
|
|
153
|
+
* @returns Function to unregister this interceptor
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* client.addErrorInterceptor(async (error) => {
|
|
158
|
+
* // Log errors to monitoring service
|
|
159
|
+
* if (error.status >= 500) {
|
|
160
|
+
* await monitoringService.logError(error);
|
|
161
|
+
* }
|
|
162
|
+
* return error; // Re-throw the error
|
|
163
|
+
* });
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
addErrorInterceptor(interceptor: ErrorInterceptor): () => void;
|
|
167
|
+
/**
|
|
168
|
+
* Sets the authentication token for subsequent requests
|
|
169
|
+
* @param token - JWT token or null to clear authentication
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```typescript
|
|
173
|
+
* // Set token after login
|
|
174
|
+
* client.setAuthToken(loginResponse.accessToken);
|
|
175
|
+
*
|
|
176
|
+
* // Clear token on logout
|
|
177
|
+
* client.setAuthToken(null);
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
setAuthToken(token: string | null): void;
|
|
181
|
+
/**
|
|
182
|
+
* Retrieves the current authentication token
|
|
183
|
+
* @returns The current auth token or null if not set
|
|
184
|
+
*/
|
|
185
|
+
getAuthToken(): string | null;
|
|
186
|
+
/**
|
|
187
|
+
* Cancels a specific request by its key
|
|
188
|
+
* @param key - The unique key identifying the request to cancel
|
|
189
|
+
*/
|
|
190
|
+
cancelRequest(key: string): void;
|
|
191
|
+
/**
|
|
192
|
+
* Cancels all pending requests
|
|
193
|
+
* Useful for cleanup on navigation or component unmount
|
|
194
|
+
*/
|
|
195
|
+
cancelAllRequests(): void;
|
|
196
|
+
/**
|
|
197
|
+
* Core request method that handles all HTTP operations
|
|
198
|
+
* @template T - The expected response data type
|
|
199
|
+
* @param endpoint - API endpoint relative to baseURL
|
|
200
|
+
* @param config - Request configuration options
|
|
201
|
+
* @returns Promise resolving to ApiResponse with data or error
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```typescript
|
|
205
|
+
* const response = await client.request<User>('/users/123', {
|
|
206
|
+
* method: 'GET',
|
|
207
|
+
* timeout: 5000,
|
|
208
|
+
* throwErrors: false
|
|
209
|
+
* });
|
|
210
|
+
* ```
|
|
211
|
+
*/
|
|
212
|
+
request<T = ResponseData>(endpoint: string, config?: RequestConfig): Promise<ApiResponse<T, ApiError>>;
|
|
213
|
+
/**
|
|
214
|
+
* Performs a GET request
|
|
215
|
+
* @template T - The expected response data type
|
|
216
|
+
* @param endpoint - API endpoint
|
|
217
|
+
* @param config - Optional request configuration
|
|
218
|
+
* @returns Promise resolving to ApiResponse
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* ```typescript
|
|
222
|
+
* const { apiData, error } = await client.get<User[]>('/users', {
|
|
223
|
+
* params: { active: true },
|
|
224
|
+
* timeout: 5000
|
|
225
|
+
* });
|
|
226
|
+
* ```
|
|
227
|
+
*/
|
|
228
|
+
get<T = ResponseData>(endpoint: string, config?: RequestConfig): Promise<ApiResponse<T, ApiError>>;
|
|
229
|
+
/**
|
|
230
|
+
* Performs a POST request
|
|
231
|
+
* @template T - The expected response data type
|
|
232
|
+
* @template TData - The request body data type
|
|
233
|
+
* @param endpoint - API endpoint
|
|
234
|
+
* @param data - Request body data
|
|
235
|
+
* @param config - Optional request configuration
|
|
236
|
+
* @returns Promise resolving to ApiResponse
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ```typescript
|
|
240
|
+
* const { apiData, error } = await client.post<User, CreateUserDto>('/users', {
|
|
241
|
+
* name: 'John Doe',
|
|
242
|
+
* email: 'john@example.com'
|
|
243
|
+
* });
|
|
244
|
+
* ```
|
|
245
|
+
*/
|
|
246
|
+
post<T = ResponseData, TData extends BodyInit | Record<string, unknown> | null = Record<string, unknown>>(endpoint: string, data?: TData, config?: RequestConfig): Promise<ApiResponse<T, ApiError>>;
|
|
247
|
+
/**
|
|
248
|
+
* Performs a PUT request
|
|
249
|
+
* @template T - The expected response data type
|
|
250
|
+
* @template TData - The request body data type
|
|
251
|
+
* @param endpoint - API endpoint
|
|
252
|
+
* @param data - Request body data
|
|
253
|
+
* @param config - Optional request configuration
|
|
254
|
+
* @returns Promise resolving to ApiResponse
|
|
255
|
+
*
|
|
256
|
+
* @example
|
|
257
|
+
* ```typescript
|
|
258
|
+
* const { apiData, error } = await client.put<User, UpdateUserDto>(
|
|
259
|
+
* '/users/123',
|
|
260
|
+
* { name: 'Jane Doe' }
|
|
261
|
+
* );
|
|
262
|
+
* ```
|
|
263
|
+
*/
|
|
264
|
+
put<T = ResponseData, TData extends BodyInit | Record<string, unknown> | null = Record<string, unknown>>(endpoint: string, data?: TData, config?: RequestConfig): Promise<ApiResponse<T, ApiError>>;
|
|
265
|
+
/**
|
|
266
|
+
* Performs a PATCH request
|
|
267
|
+
* @template T - The expected response data type
|
|
268
|
+
* @template TData - The request body data type
|
|
269
|
+
* @param endpoint - API endpoint
|
|
270
|
+
* @param data - Request body data
|
|
271
|
+
* @param config - Optional request configuration
|
|
272
|
+
* @returns Promise resolving to ApiResponse
|
|
273
|
+
*
|
|
274
|
+
* @example
|
|
275
|
+
* ```typescript
|
|
276
|
+
* const { apiData, error } = await client.patch<User>(
|
|
277
|
+
* '/users/123',
|
|
278
|
+
* { status: 'active' }
|
|
279
|
+
* );
|
|
280
|
+
* ```
|
|
281
|
+
*/
|
|
282
|
+
patch<T = ResponseData, TData extends BodyInit | Record<string, unknown> | null = Record<string, unknown>>(endpoint: string, data?: TData, config?: RequestConfig): Promise<ApiResponse<T, ApiError>>;
|
|
283
|
+
/**
|
|
284
|
+
* Performs a DELETE request
|
|
285
|
+
* @template T - The expected response data type
|
|
286
|
+
* @param endpoint - API endpoint
|
|
287
|
+
* @param config - Optional request configuration
|
|
288
|
+
* @returns Promise resolving to ApiResponse
|
|
289
|
+
*
|
|
290
|
+
* @example
|
|
291
|
+
* ```typescript
|
|
292
|
+
* const { error } = await client.delete('/users/123');
|
|
293
|
+
* if (!error) {
|
|
294
|
+
* console.log('User deleted successfully');
|
|
295
|
+
* }
|
|
296
|
+
* ```
|
|
297
|
+
*/
|
|
298
|
+
delete<T = ResponseData>(endpoint: string, config?: RequestConfig): Promise<ApiResponse<T, ApiError>>;
|
|
299
|
+
/**
|
|
300
|
+
* Performs a filtered list request with pagination and sorting
|
|
301
|
+
* @template TListModel - The type of individual list items
|
|
302
|
+
* @template TFilter - The filter criteria type
|
|
303
|
+
* @param url - API endpoint
|
|
304
|
+
* @param data - Pagination and filter data
|
|
305
|
+
* @param config - Optional request configuration
|
|
306
|
+
* @returns Promise resolving to paginated list response
|
|
307
|
+
*
|
|
308
|
+
* @example
|
|
309
|
+
* ```typescript
|
|
310
|
+
* const { apiData, error } = await client.filter<User, UserFilter>(
|
|
311
|
+
* '/users/filter',
|
|
312
|
+
* {
|
|
313
|
+
* pageOffset: 0,
|
|
314
|
+
* pageSize: 20,
|
|
315
|
+
* sortField: 'createdAt',
|
|
316
|
+
* sortOrder: 'desc',
|
|
317
|
+
* filterModel: { status: 'active' }
|
|
318
|
+
* }
|
|
319
|
+
* );
|
|
320
|
+
*
|
|
321
|
+
* if (apiData) {
|
|
322
|
+
* console.log(`Found ${apiData.Total} users`);
|
|
323
|
+
* console.log('Users:', apiData.Data);
|
|
324
|
+
* }
|
|
325
|
+
* ```
|
|
326
|
+
*/
|
|
327
|
+
filter<TListModel, TFilter = Record<string, unknown>>(url: string, data: PostModel<TFilter>, config?: RequestConfig): Promise<ApiResponse<ListResponse<TListModel>, ApiError>>;
|
|
328
|
+
}
|
|
329
|
+
//# sourceMappingURL=ApiClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiClient.d.ts","sourceRoot":"","sources":["../../../src/core/api/ApiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Utilities for generating correlation IDs for distributed request tracing.
|
|
3
|
+
*
|
|
4
|
+
* Correlation IDs are unique identifiers attached to each API request to enable
|
|
5
|
+
* tracking and debugging across distributed systems, microservices, and log aggregation.
|
|
6
|
+
*
|
|
7
|
+
* @module CorrelationIdGenerator
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Generates a unique correlation ID for API request tracking and distributed tracing.
|
|
11
|
+
*
|
|
12
|
+
* Correlation IDs help track requests across multiple services and systems. They are
|
|
13
|
+
* automatically attached to outgoing requests via HTTP headers (`X-Correlation-Id` and
|
|
14
|
+
* `X-Request-Id`) and can be used to:
|
|
15
|
+
* - Correlate logs across distributed systems
|
|
16
|
+
* - Track request flows in microservices architectures
|
|
17
|
+
* - Debug issues by tracing a specific request's journey
|
|
18
|
+
* - Monitor performance across service boundaries
|
|
19
|
+
*
|
|
20
|
+
* The generated ID follows the format: `{prefix}-{uuid}` or just `{uuid}` if no prefix is provided.
|
|
21
|
+
*
|
|
22
|
+
* @param prefix - Optional prefix to namespace correlation IDs by context (e.g., 'api', 'web', 'mobile')
|
|
23
|
+
* @returns A correlation ID string, optionally prefixed
|
|
24
|
+
* @public
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* Basic usage:
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const id = generateCorrelationId();
|
|
30
|
+
* // => "a1b2c3d4-e5f6-4789-a012-b3c4d5e6f7a8"
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* With prefix for context identification:
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const webId = generateCorrelationId('web');
|
|
37
|
+
* // => "web-a1b2c3d4-e5f6-4789-a012-b3c4d5e6f7a8"
|
|
38
|
+
*
|
|
39
|
+
* const apiId = generateCorrelationId('api');
|
|
40
|
+
* // => "api-f1e2d3c4-b5a6-4987-a012-b3c4d5e6f7a8"
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* Configuring in ApiClient:
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const client = new ApiClient('https://api.example.com');
|
|
47
|
+
* client.setCorrelationIdPrefix('mobile');
|
|
48
|
+
* // All requests will have correlation IDs like "mobile-{uuid}"
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function generateCorrelationId(prefix?: string): string;
|
|
52
|
+
//# sourceMappingURL=CorrelationIdGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CorrelationIdGenerator.d.ts","sourceRoot":"","sources":["../../../src/core/api/CorrelationIdGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA+BH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAI7D"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import type { ApiError, ApiErrorType } from '../types/ApiError';
|
|
2
|
+
import type { RequestConfig } from '../types/RequestConfig';
|
|
3
|
+
/**
|
|
4
|
+
* Normalizes various error types into a consistent, structured ApiError format.
|
|
5
|
+
*
|
|
6
|
+
* This internal class handles the complex task of converting any type of error
|
|
7
|
+
* (network errors, HTTP errors, abort errors, timeouts, etc.) into a standardized
|
|
8
|
+
* {@link ApiError} structure with proper categorization and metadata.
|
|
9
|
+
*
|
|
10
|
+
* Key Features:
|
|
11
|
+
* - **Error Categorization**: Classifies errors by type (validation, client, server, network, etc.)
|
|
12
|
+
* - **HTTP Status Mapping**: Converts status codes to human-readable titles
|
|
13
|
+
* - **Correlation ID Tracking**: Preserves or injects correlation IDs for tracing
|
|
14
|
+
* - **Abort Detection**: Identifies and properly handles request cancellations
|
|
15
|
+
* - **Consistent Structure**: Ensures all errors conform to the ApiError interface
|
|
16
|
+
*
|
|
17
|
+
* @internal This class is not exported from the public API
|
|
18
|
+
*/
|
|
19
|
+
export declare class ErrorNormalizer {
|
|
20
|
+
/**
|
|
21
|
+
* Maps an HTTP status code to a standardized error type category.
|
|
22
|
+
*
|
|
23
|
+
* This categorization helps consumers handle different error classes appropriately:
|
|
24
|
+
* - `validation_error` (400): Client sent invalid data
|
|
25
|
+
* - `client_error` (401-499): Client-side issues (auth, permissions, not found, etc.)
|
|
26
|
+
* - `server_error` (500-599): Server-side failures
|
|
27
|
+
* - `unknown_error`: Unrecognized status codes
|
|
28
|
+
*
|
|
29
|
+
* @param status - HTTP status code from the response
|
|
30
|
+
* @returns The error type category as a string
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* normalizer.getErrorType(400); // => 'validation_error'
|
|
35
|
+
* normalizer.getErrorType(404); // => 'client_error'
|
|
36
|
+
* normalizer.getErrorType(500); // => 'server_error'
|
|
37
|
+
* normalizer.getErrorType(0); // => 'unknown_error'
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
getErrorType(status: number): ApiErrorType;
|
|
41
|
+
/**
|
|
42
|
+
* Maps an HTTP status code to a human-readable error title.
|
|
43
|
+
*
|
|
44
|
+
* Provides user-friendly error messages for common HTTP status codes.
|
|
45
|
+
* Falls back to a generic "HTTP Error {status}" format for unmapped codes.
|
|
46
|
+
*
|
|
47
|
+
* @param status - HTTP status code from the response
|
|
48
|
+
* @returns A human-readable error title
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* normalizer.getErrorTitle(404); // => 'Not Found'
|
|
53
|
+
* normalizer.getErrorTitle(500); // => 'Internal Server Error'
|
|
54
|
+
* normalizer.getErrorTitle(999); // => 'HTTP Error 999'
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
getErrorTitle(status: number): string;
|
|
58
|
+
/**
|
|
59
|
+
* Normalizes any error into a consistent, structured ApiError format.
|
|
60
|
+
*
|
|
61
|
+
* This method handles various error scenarios and ensures they all conform to
|
|
62
|
+
* the {@link ApiError} interface with appropriate categorization and metadata:
|
|
63
|
+
*
|
|
64
|
+
* - **Existing ApiErrors**: Enhances with missing fields (traceId, config)
|
|
65
|
+
* - **AbortErrors**: Marks as `request_cancelled` with isAborted flag
|
|
66
|
+
* - **Timeout Errors**: Categorizes as `timeout_error` with 408 status
|
|
67
|
+
* - **Network Errors**: Categorizes as `network_error` with 0 status
|
|
68
|
+
* - **Unknown Errors**: Fallback category for unexpected error types
|
|
69
|
+
*
|
|
70
|
+
* All normalized errors include:
|
|
71
|
+
* - `type`: Error category for programmatic handling
|
|
72
|
+
* - `title`: Human-readable error title
|
|
73
|
+
* - `status`: HTTP status code (or 0 for non-HTTP errors)
|
|
74
|
+
* - `traceId`: Correlation ID for distributed tracing
|
|
75
|
+
* - `isAborted`: Boolean flag indicating if request was cancelled
|
|
76
|
+
* - `config`: Original request configuration for debugging
|
|
77
|
+
*
|
|
78
|
+
* @param error - The error to normalize (can be any type)
|
|
79
|
+
* @param config - The request configuration that led to this error
|
|
80
|
+
* @param correlationId - Optional correlation ID for tracing
|
|
81
|
+
* @returns A fully structured ApiError instance
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* Normalizing a fetch AbortError:
|
|
85
|
+
* ```typescript
|
|
86
|
+
* try {
|
|
87
|
+
* await fetch(url, { signal });
|
|
88
|
+
* } catch (error) {
|
|
89
|
+
* const apiError = normalizer.normalizeError(error, config, 'req-123');
|
|
90
|
+
* // apiError.type === 'request_cancelled'
|
|
91
|
+
* // apiError.isAborted === true
|
|
92
|
+
* }
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* Normalizing a timeout:
|
|
97
|
+
* ```typescript
|
|
98
|
+
* const timeoutError = new Error('Request timeout after 30000ms');
|
|
99
|
+
* const apiError = normalizer.normalizeError(timeoutError, config);
|
|
100
|
+
* // apiError.type === 'timeout_error'
|
|
101
|
+
* // apiError.status === 408
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
normalizeError(error: unknown, config: RequestConfig, correlationId?: string): ApiError;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=ErrorNormalizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorNormalizer.d.ts","sourceRoot":"","sources":["../../../../src/core/api/Errors/ErrorNormalizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAe;IAC1B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAU1C;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAoBrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACH,cAAc,CACZ,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,MAAM,GACrB,QAAQ;CAwFZ"}
|