intelicoreact 1.4.76 → 1.4.78
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/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +9 -1
- package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +10 -1
- package/dist/Atomic/FormElements/Calendar/Calendar.js +24 -4
- package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +10 -1
- package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +14 -2
- package/dist/Atomic/FormElements/Datepicker/Datepicker.js +54 -5
- package/dist/Atomic/FormElements/Datepicker/components/Calendar.js +21 -3
- package/dist/Atomic/FormElements/Dropdown/Dropdown.js +145 -52
- package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +7 -1
- package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +91 -25
- package/dist/Atomic/FormElements/FileLoader/FileLoader.js +15 -3
- package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +29 -15
- package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +15 -5
- package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +23 -4
- package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +26 -6
- package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +38 -19
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +38 -9
- package/dist/Atomic/FormElements/Input/Input.js +60 -25
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +31 -4
- package/dist/Atomic/FormElements/InputColor/InputColor.js +14 -4
- package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +29 -6
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +43 -8
- package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +21 -3
- package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +81 -58
- package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +41 -6
- package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +8 -1
- package/dist/Atomic/FormElements/InputDateRange/dependencies.js +46 -16
- package/dist/Atomic/FormElements/InputLink/InputLink.js +23 -6
- package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +4 -0
- package/dist/Atomic/FormElements/InputMask/InputMask.js +208 -77
- package/dist/Atomic/FormElements/InputMask/functions.js +28 -2
- package/dist/Atomic/FormElements/InputMask2/InputMask2.js +119 -43
- package/dist/Atomic/FormElements/InputMask2/functions.js +28 -2
- package/dist/Atomic/FormElements/InputMask3/InputMask3.js +137 -44
- package/dist/Atomic/FormElements/InputMask3/functions.js +28 -2
- package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +17 -3
- package/dist/Atomic/FormElements/InputsRow/InputsRow.js +24 -5
- package/dist/Atomic/FormElements/Label/Label.js +9 -1
- package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +73 -35
- package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +15 -3
- package/dist/Atomic/FormElements/NumericInput/NumericInput.js +44 -23
- package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +17 -7
- package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +14 -3
- package/dist/Atomic/FormElements/RadioInput/RadioInput.js +10 -1
- package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +14 -3
- package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +23 -3
- package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +34 -17
- package/dist/Atomic/FormElements/RangeList/RangeList.js +25 -6
- package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +11 -1
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +85 -14
- package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +132 -43
- package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +10 -1
- package/dist/Atomic/FormElements/Switcher/Switcher.js +10 -1
- package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +13 -1
- package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +10 -1
- package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +17 -2
- package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +17 -3
- package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +11 -1
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +29 -6
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +3 -2
- package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +12 -1
- package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +23 -6
- package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +223 -105
- package/dist/Atomic/FormElements/Text/Text.js +16 -10
- package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +9 -1
- package/dist/Atomic/FormElements/Textarea/Textarea.js +16 -5
- package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +35 -6
- package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +13 -4
- package/dist/Atomic/FormElements/TimeRange/TimeRange.js +21 -7
- package/dist/Atomic/FormElements/UserContacts/UserContacts.js +35 -8
- package/dist/Atomic/FormElements/UserContacts/partial/defaultIcons.js +91 -0
- package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +18 -5
- package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +10 -3
- package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +11 -3
- package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +2 -1
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +12 -5
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +3 -3
- package/dist/Atomic/Layout/Header/Header.js +15 -3
- package/dist/Atomic/Layout/MainMenu/MainMenu.js +20 -3
- package/dist/Atomic/Layout/Spinner/Spinner.js +8 -1
- package/dist/Atomic/UI/Accordion/Accordion.js +19 -3
- package/dist/Atomic/UI/Accordion/AccordionItem.js +23 -9
- package/dist/Atomic/UI/AccordionTable/AccordionTable.js +32 -7
- package/dist/Atomic/UI/AccordionText/AccordionText.js +17 -3
- package/dist/Atomic/UI/AdvancedTag/AdvTag.js +21 -4
- package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +15 -3
- package/dist/Atomic/UI/Alert/Alert.js +19 -3
- package/dist/Atomic/UI/Arrow/Arrow.js +16 -3
- package/dist/Atomic/UI/Box/Box.js +9 -3
- package/dist/Atomic/UI/Button/Button.js +11 -2
- package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +10 -1
- package/dist/Atomic/UI/Chart/Chart.js +29 -4
- package/dist/Atomic/UI/Chart/partial/Chart.constants.js +19 -11
- package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +12 -1
- package/dist/Atomic/UI/Chart/partial/datasetSetters.js +34 -11
- package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +56 -82
- package/dist/Atomic/UI/Chart/partial/optionsSetters.js +19 -15
- package/dist/Atomic/UI/Chart/partial/utils.js +20 -6
- package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +13 -3
- package/dist/Atomic/UI/DateTime/DateTime.js +14 -3
- package/dist/Atomic/UI/DebugContainer/DebugContainer.js +16 -4
- package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +11 -3
- package/dist/Atomic/UI/DoubleString/DoubleString.js +17 -5
- package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +10 -3
- package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +52 -17
- package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +29 -1
- package/dist/Atomic/UI/Hint/Hint.js +39 -13
- package/dist/Atomic/UI/Hint/partials/_utils.js +19 -4
- package/dist/Atomic/UI/Modal/Modal.js +28 -6
- package/dist/Atomic/UI/Modal/ModalHOC.js +9 -1
- package/dist/Atomic/UI/Modal/partials/ModalFooter.js +7 -1
- package/dist/Atomic/UI/Modal/partials/ModalTitle.js +8 -1
- package/dist/Atomic/UI/Modal/partials/useMobileModal.js +49 -32
- package/dist/Atomic/UI/ModalBackup/Modal.js +174 -0
- package/dist/Atomic/UI/ModalBackup/Modal.scss +333 -0
- package/dist/Atomic/UI/ModalBackup/ModalHOC.js +51 -0
- package/dist/Atomic/UI/ModalBackup/partials/ModalFooter.js +24 -0
- package/dist/Atomic/UI/ModalBackup/partials/ModalTitle.js +41 -0
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +21 -6
- package/dist/Atomic/UI/NavLine/NavLine.js +55 -26
- package/dist/Atomic/UI/NavLine/Tabs.js +3 -2
- package/dist/Atomic/UI/PageTitle/PageTitle.js +10 -2
- package/dist/Atomic/UI/PieChart/PieChart.js +10 -1
- package/dist/Atomic/UI/Price/Price.js +8 -3
- package/dist/Atomic/UI/PriceRange/PriceRange.js +7 -1
- package/dist/Atomic/UI/ProgressLine/ProgressLine.js +16 -1
- package/dist/Atomic/UI/Status/Status.js +8 -1
- package/dist/Atomic/UI/Table/Partials/TdCell.js +29 -5
- package/dist/Atomic/UI/Table/Partials/TdHeader.js +11 -1
- package/dist/Atomic/UI/Table/Partials/TdRow.js +17 -5
- package/dist/Atomic/UI/Table/Partials/TdTitle.js +14 -3
- package/dist/Atomic/UI/Table/Table.js +12 -1
- package/dist/Atomic/UI/Table/TdTypes/TdActions.js +18 -2
- package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +9 -1
- package/dist/Atomic/UI/Table/TdTypes/TdRange.js +4 -1
- package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +13 -1
- package/dist/Atomic/UI/Tag/Tag.js +26 -11
- package/dist/Atomic/UI/TagList/TagList.js +52 -21
- package/dist/Atomic/UI/TagList/TagList.scss +3 -2
- package/dist/Atomic/UI/UserBox/UserBox.js +13 -1
- package/dist/Atomic/UI/WizardStepper/constructor.js +11 -3
- package/dist/Atomic/UI/WizardStepper/index.js +5 -1
- package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +10 -0
- package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +4 -1
- package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +17 -2
- package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +5 -1
- package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +15 -1
- package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +5 -1
- package/dist/Atomic/UI/WizardStepper/ui/icons.js +9 -2
- package/dist/Atomic/UI/WizardStepper/ui/index.js +5 -1
- package/dist/Classes/AbortableFetch.js +93 -36
- package/dist/Classes/AnimatedHandler.js +7 -3
- package/dist/Classes/RESTAPI/index.js +43 -39
- package/dist/Classes/RESTAPI/partials/AbortableFetch.js +93 -35
- package/dist/Classes/RESTAPI/partials/ApiBase.js +9 -1
- package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +32 -24
- package/dist/Classes/RESTAPI/partials/ApiUtils.js +41 -34
- package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +46 -21
- package/dist/Classes/RESTAPI/partials/Utils.js +19 -6
- package/dist/Classes/RESTAPI/partials/_outerDependencies.js +6 -2
- package/dist/Classes/RESTAPI/partials/_utils.js +39 -16
- package/dist/Constants/index.constants.js +15 -8
- package/dist/Functions/Portal.js +16 -5
- package/dist/Functions/customEventListener.js +17 -4
- package/dist/Functions/fieldValueFormatters.js +83 -43
- package/dist/Functions/hooks/useFormFieldsChangesManager.js +26 -23
- package/dist/Functions/locale/createTranslator.js +9 -4
- package/dist/Functions/operations.js +22 -12
- package/dist/Functions/presets/inputMaskPresets.js +11 -9
- package/dist/Functions/presets/inputPresets.js +11 -8
- package/dist/Functions/presets/mobileKeyboardTypesPresets.js +9 -7
- package/dist/Functions/schemas.js +13 -6
- package/dist/Functions/useBodyScrollLock.js +6 -1
- package/dist/Functions/useClickOutside.js +4 -0
- package/dist/Functions/useDebounce.js +7 -2
- package/dist/Functions/useFieldFocus.js +18 -6
- package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +9 -0
- package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +23 -12
- package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +15 -6
- package/dist/Functions/useFormTools/functions/General.js +28 -18
- package/dist/Functions/useFormTools/functions/RenderFields.js +11 -2
- package/dist/Functions/useFormTools/functions/usePrevious.js +5 -1
- package/dist/Functions/useFormTools/index.js +144 -85
- package/dist/Functions/useInputHighlightError.js +12 -3
- package/dist/Functions/useIsMobile.js +13 -7
- package/dist/Functions/useKeyPress/useHandleKeyPress.js +7 -1
- package/dist/Functions/useKeyPress/useKeyPress.js +9 -1
- package/dist/Functions/useLocalStorage.js +9 -1
- package/dist/Functions/useLocationParams.js +5 -4
- package/dist/Functions/useMediaQuery.js +9 -3
- package/dist/Functions/useMetaInfo.js +10 -3
- package/dist/Functions/useMouseUpOutside.js +3 -0
- package/dist/Functions/useOnlineStatus.js +9 -1
- package/dist/Functions/usePasswordChecker.js +20 -4
- package/dist/Functions/usePrevious.js +5 -1
- package/dist/Functions/useResize.js +10 -2
- package/dist/Functions/useScrollTo.js +7 -2
- package/dist/Functions/useToggle.js +5 -1
- package/dist/Functions/utils.js +131 -56
- package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +9 -2
- package/dist/Molecular/CustomIcons/components/AlertCircle.js +9 -2
- package/dist/Molecular/CustomIcons/components/AppStore.js +9 -2
- package/dist/Molecular/CustomIcons/components/Arrow.js +9 -2
- package/dist/Molecular/CustomIcons/components/ArrowDown.js +9 -2
- package/dist/Molecular/CustomIcons/components/ArrowLeft.js +9 -2
- package/dist/Molecular/CustomIcons/components/ArrowRight.js +9 -2
- package/dist/Molecular/CustomIcons/components/ArrowUp.js +9 -2
- package/dist/Molecular/CustomIcons/components/Bell.js +9 -2
- package/dist/Molecular/CustomIcons/components/Button.js +9 -2
- package/dist/Molecular/CustomIcons/components/Campaigns.js +9 -2
- package/dist/Molecular/CustomIcons/components/Check.js +9 -2
- package/dist/Molecular/CustomIcons/components/Check2.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronDown.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronLeft.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronRight.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronUp.js +9 -2
- package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +9 -2
- package/dist/Molecular/CustomIcons/components/Close.js +9 -2
- package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +9 -2
- package/dist/Molecular/CustomIcons/components/Delete.js +9 -2
- package/dist/Molecular/CustomIcons/components/Edit.js +9 -2
- package/dist/Molecular/CustomIcons/components/Email.js +9 -2
- package/dist/Molecular/CustomIcons/components/FinturfLogo.js +9 -2
- package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +9 -2
- package/dist/Molecular/CustomIcons/components/Flows.js +9 -2
- package/dist/Molecular/CustomIcons/components/Gift.js +9 -2
- package/dist/Molecular/CustomIcons/components/GoogleAuth.js +9 -2
- package/dist/Molecular/CustomIcons/components/GooglePlay.js +9 -2
- package/dist/Molecular/CustomIcons/components/HelpCircle.js +9 -2
- package/dist/Molecular/CustomIcons/components/HelpCircle2.js +9 -2
- package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +9 -2
- package/dist/Molecular/CustomIcons/components/Home.js +9 -2
- package/dist/Molecular/CustomIcons/components/Home2.js +9 -2
- package/dist/Molecular/CustomIcons/components/Key.js +9 -2
- package/dist/Molecular/CustomIcons/components/Landers.js +9 -2
- package/dist/Molecular/CustomIcons/components/Lock.js +9 -2
- package/dist/Molecular/CustomIcons/components/Mail.js +9 -2
- package/dist/Molecular/CustomIcons/components/Mastercard.js +9 -2
- package/dist/Molecular/CustomIcons/components/Minus.js +9 -2
- package/dist/Molecular/CustomIcons/components/Offers.js +9 -2
- package/dist/Molecular/CustomIcons/components/Pause.js +9 -2
- package/dist/Molecular/CustomIcons/components/PayPal.js +9 -2
- package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +9 -2
- package/dist/Molecular/CustomIcons/components/Phone.js +9 -2
- package/dist/Molecular/CustomIcons/components/Play.js +9 -2
- package/dist/Molecular/CustomIcons/components/Plus.js +9 -2
- package/dist/Molecular/CustomIcons/components/Profile.js +9 -2
- package/dist/Molecular/CustomIcons/components/QRCode.js +9 -2
- package/dist/Molecular/CustomIcons/components/Rectangle.js +9 -2
- package/dist/Molecular/CustomIcons/components/Revert.js +9 -2
- package/dist/Molecular/CustomIcons/components/Star.js +9 -2
- package/dist/Molecular/CustomIcons/components/Star2.js +9 -2
- package/dist/Molecular/CustomIcons/components/TrafficSources.js +9 -2
- package/dist/Molecular/CustomIcons/components/Trash.js +9 -2
- package/dist/Molecular/CustomIcons/components/TrashRed.js +9 -2
- package/dist/Molecular/CustomIcons/components/Triggers.js +9 -2
- package/dist/Molecular/CustomIcons/components/User.js +9 -2
- package/dist/Molecular/CustomIcons/components/Visa.js +9 -2
- package/dist/Molecular/CustomIcons/components/X.js +9 -2
- package/dist/Molecular/CustomIcons/index.js +122 -0
- package/dist/Molecular/FormElement/FormElement.js +12 -1
- package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +31 -30
- package/dist/Molecular/FormWithDependOn/partials/_utils.js +12 -9
- package/dist/Molecular/InputAddress/InputAddress.js +114 -65
- package/dist/Molecular/InputPassword/InputPassword.js +19 -5
- package/dist/index.js +2 -0
- package/package.json +1 -1
- package/dist/Atomic/UI/Hint/partial/_utils.js +0 -52
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.default = void 0;
|
|
9
|
+
|
|
8
10
|
var _Utils = _interopRequireDefault(require("./Utils"));
|
|
11
|
+
|
|
9
12
|
var _utils = require("./_utils");
|
|
13
|
+
|
|
10
14
|
class ApiUtils extends _Utils.default {
|
|
11
15
|
constructor(settings) {
|
|
12
16
|
super();
|
|
@@ -14,11 +18,11 @@ class ApiUtils extends _Utils.default {
|
|
|
14
18
|
utils
|
|
15
19
|
} = settings || {};
|
|
16
20
|
if ((0, _utils.getIsOnlyAnObject)(utils)) _utils.addCustomMethods.call(this, utils);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
//? Планируется, что метод будет использоваться неизменно, однако технически его можно перегрузить на экземпляре
|
|
21
|
+
} //? Планируется, что метод будет использоваться неизменно, однако технически его можно перегрузить на экземпляре
|
|
20
22
|
//? Метод не планировался как асинхронный,
|
|
21
23
|
//? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
|
|
24
|
+
|
|
25
|
+
|
|
22
26
|
async splitProperties(apiParams, variant) {
|
|
23
27
|
const {
|
|
24
28
|
isResponseAsObject,
|
|
@@ -38,10 +42,10 @@ class ApiUtils extends _Utils.default {
|
|
|
38
42
|
errorMessages,
|
|
39
43
|
...restParams
|
|
40
44
|
} = apiParams || {};
|
|
45
|
+
|
|
41
46
|
switch (variant) {
|
|
42
47
|
case "doRequestMapping":
|
|
43
|
-
return {
|
|
44
|
-
...restParams,
|
|
48
|
+
return { ...restParams,
|
|
45
49
|
isGetBody,
|
|
46
50
|
isToastResult,
|
|
47
51
|
toastOptions,
|
|
@@ -56,6 +60,7 @@ class ApiUtils extends _Utils.default {
|
|
|
56
60
|
commonErrorMessage,
|
|
57
61
|
errorMessages
|
|
58
62
|
};
|
|
63
|
+
|
|
59
64
|
default:
|
|
60
65
|
return [restParams, {
|
|
61
66
|
isGetBody,
|
|
@@ -75,43 +80,42 @@ class ApiUtils extends _Utils.default {
|
|
|
75
80
|
errorMessages
|
|
76
81
|
}];
|
|
77
82
|
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
//! Обработчик пропы api из объекта описания запроса
|
|
83
|
+
} //! Обработчик пропы api из объекта описания запроса
|
|
81
84
|
//? Планируется, что метод будет перегружаться на экземпляре,
|
|
82
85
|
//? т.к. на разных проектах могут быть разные интерпретации пропы api
|
|
83
86
|
//? Метод не планировался как асинхронный,
|
|
84
87
|
//? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
|
|
85
|
-
async getRootPath( /* apiProp */
|
|
86
|
-
) {
|
|
87
|
-
return this.API_PATH;
|
|
88
|
-
}
|
|
89
88
|
|
|
90
|
-
|
|
89
|
+
|
|
90
|
+
async getRootPath() {
|
|
91
|
+
return this.API_PATH;
|
|
92
|
+
} //? Планируется, что метод будет использоваться неизменно, однако технически его можно перегрузить на экземпляре
|
|
91
93
|
//? Метод планировался как асинхронный
|
|
94
|
+
|
|
95
|
+
|
|
92
96
|
async getResponseBody(response, getBodyAs) {
|
|
93
97
|
//? Если response не экземпляр Response, то вернуть по факту
|
|
94
|
-
if (!(response instanceof Response)) return response;
|
|
95
|
-
|
|
96
|
-
//? В этом месте все методы должны быть, т.к. response точно экземпляр Response.
|
|
98
|
+
if (!(response instanceof Response)) return response; //? В этом месте все методы должны быть, т.к. response точно экземпляр Response.
|
|
97
99
|
//? А вот contentType-а походу может не быть. Наверное...
|
|
98
|
-
const contentType = response.headers.get("content-type");
|
|
99
|
-
if (!contentType) return "";
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
const contentType = response.headers.get("content-type");
|
|
102
|
+
if (!contentType) return ""; // ToDo - ошибка была в получении executor-а...
|
|
102
103
|
// ToDo - Все было через if. В случае, если не попадало ни в одну if-ку, то возвращался undefined по умолчанию,
|
|
103
104
|
// ToDo - а после этот undefined пытался запустить через call...
|
|
105
|
+
|
|
104
106
|
const executor = (() => {
|
|
105
107
|
if (typeof getBodyAs === 'string' && getBodyAs in response && typeof response[getBodyAs] === 'function') {
|
|
106
108
|
return response[getBodyAs];
|
|
107
109
|
}
|
|
110
|
+
|
|
108
111
|
if (typeof contentType === 'string' && contentType.includes('text/csv')) {
|
|
109
112
|
return response.blob;
|
|
110
113
|
}
|
|
114
|
+
|
|
111
115
|
return typeof contentType === 'string' && contentType.includes('json') ? response.json : response.text;
|
|
112
|
-
})();
|
|
116
|
+
})(); // обработка случаев краша метода json при отсутствии тела ответа
|
|
117
|
+
|
|
113
118
|
|
|
114
|
-
// обработка случаев краша метода json при отсутствии тела ответа
|
|
115
119
|
try {
|
|
116
120
|
return await executor.call(response);
|
|
117
121
|
} catch {
|
|
@@ -120,20 +124,20 @@ class ApiUtils extends _Utils.default {
|
|
|
120
124
|
console.log("Failed to extract the body");
|
|
121
125
|
return null;
|
|
122
126
|
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
//! Обработчик структуры для ошибки (не рендер месседжа, а имеено формирование ошибки),
|
|
127
|
+
} //! Обработчик структуры для ошибки (не рендер месседжа, а имеено формирование ошибки),
|
|
126
128
|
//? Планируется, что метод будет перегружаться на экземпляре,
|
|
127
129
|
//? т.к. на разных проектах могут быть разные структуры тела ответа для ошибки
|
|
128
130
|
//? Метод не планировался как асинхронный,
|
|
129
131
|
//? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
|
|
130
132
|
//? res - уже тело ответа
|
|
133
|
+
|
|
134
|
+
|
|
131
135
|
async getErrorMessage(res) {
|
|
132
136
|
return res;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
//? Планируется, что метод будет использоваться неизменно, однако технически его можно перегрузить на экземпляре
|
|
137
|
+
} //? Планируется, что метод будет использоваться неизменно, однако технически его можно перегрузить на экземпляре
|
|
136
138
|
//? Метод планировался как асинхронный
|
|
139
|
+
|
|
140
|
+
|
|
137
141
|
async checkResponseCode(res, settings) {
|
|
138
142
|
//! При получении экземпляра, если sendMessage не является ф-ей,
|
|
139
143
|
//! то это воспринимается как отключение шага информирования об ошибке запроса как такового
|
|
@@ -145,29 +149,32 @@ class ApiUtils extends _Utils.default {
|
|
|
145
149
|
const message = res.ok ? successMess || this.DEFAULT_SUCCESS_MESSAGE : errorMess || this.getErrorMessage(await this.getResponseBody(await (0, _utils.getResponseClone)(res)));
|
|
146
150
|
this.sendMessage(message, settings, await (0, _utils.getResponseClone)(res));
|
|
147
151
|
return res;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
//? Суть метода:
|
|
152
|
+
} //? Суть метода:
|
|
151
153
|
//? передать из вне структуры, которые будут использоваться для КАЖДОГО запроса сделанного экземпляром RESTAPI
|
|
152
154
|
//! Данные затрут прочие настройки КРОМЕ данных по логике авторизации
|
|
153
155
|
//? Планируется, что метод будет перегружаться на экземпляре
|
|
154
156
|
//? Метод не планировался как асинхронный,
|
|
155
157
|
//? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
|
|
158
|
+
|
|
159
|
+
|
|
156
160
|
async addAsCommon() {
|
|
157
161
|
//! Планируемая структура { headers, queryParameters, options }, где
|
|
158
162
|
//! - headers и options - объекты,
|
|
159
163
|
//! - queryParameters - строка, массив или объект
|
|
160
164
|
return {};
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
//! Обработчик квери-параметров для общего процессинга,
|
|
165
|
+
} //! Обработчик квери-параметров для общего процессинга,
|
|
164
166
|
//! Например для кодирования decodeURIComponent или/и приведения в формат массива
|
|
165
167
|
//? Планируется, что метод будет перегружаться на экземпляре,
|
|
166
168
|
//? т.к. на разных проектах могут быть разные договоренности по форматам
|
|
167
169
|
//? Метод не планировался как асинхронный,
|
|
168
170
|
//? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
|
|
171
|
+
|
|
172
|
+
|
|
169
173
|
async processQueryParams(queryParams) {
|
|
170
174
|
return queryParams;
|
|
171
175
|
}
|
|
176
|
+
|
|
172
177
|
}
|
|
173
|
-
|
|
178
|
+
|
|
179
|
+
var _default = ApiUtils;
|
|
180
|
+
exports.default = _default;
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.default = void 0;
|
|
9
|
+
|
|
8
10
|
var _outerDependencies = _interopRequireDefault(require("./_outerDependencies"));
|
|
11
|
+
|
|
9
12
|
var _utils = require("./_utils");
|
|
13
|
+
|
|
10
14
|
const {
|
|
11
15
|
jwt
|
|
12
16
|
} = _outerDependencies.default;
|
|
17
|
+
|
|
13
18
|
class CredentialsProcessing {
|
|
14
19
|
constructor(settings) {
|
|
15
20
|
const {
|
|
@@ -21,25 +26,20 @@ class CredentialsProcessing {
|
|
|
21
26
|
getCredentials,
|
|
22
27
|
getHeadersForAuthorize,
|
|
23
28
|
//? На вход получит токен, должна вернуть объект для коструктора Headers
|
|
24
|
-
|
|
25
29
|
//? Так же опционально можно передавать
|
|
26
30
|
importCredentials,
|
|
27
31
|
//? если он передается, то он будет применяться к выводу от вызова getCredentials
|
|
28
32
|
saveCredentials,
|
|
29
33
|
//? можно будет найти в объекте credentialsProcessing, чтобы использовать кастомными методами
|
|
30
|
-
|
|
31
34
|
//! Либо вызов getCredentials, либо цепочка вызовов importCredentials(getCredentials())
|
|
32
35
|
//! должна возвращать требуемую классом структуру
|
|
33
36
|
//! Класс требует структуры
|
|
34
37
|
//! - { token }, если флоу рефреш токена НЕ используется
|
|
35
38
|
//! - { token, refreshToken, expires }, если используется флоу рефреш токена
|
|
36
|
-
|
|
37
39
|
// *********
|
|
38
|
-
|
|
39
40
|
//? Подключает флоу рефреша токенов
|
|
40
41
|
isUseRefreshTokensPropcessing = false,
|
|
41
42
|
//! Для корректной работы флоу рефреша токенов передача метода saveCredentials становится ОБЯЗАТЕЛЬНОЙ
|
|
42
|
-
|
|
43
43
|
//? Так же для корректной работы флоу рефреша токенов нужно
|
|
44
44
|
//? - либо
|
|
45
45
|
refreshCredentials,
|
|
@@ -50,7 +50,6 @@ class CredentialsProcessing {
|
|
|
50
50
|
//! REFRESH_TOKEN_PATH передается ПОЛНОСТЬЮ (глобальная адресация)!
|
|
51
51
|
CODES_USING_THE_REFRESH_ATTEMPT,
|
|
52
52
|
//? указывает по каким кодам ответа триггериться рефреш, массив чисел
|
|
53
|
-
|
|
54
53
|
//? Опционально
|
|
55
54
|
REFRESH_TOKEN_FLAG = "refreshTokenFlag",
|
|
56
55
|
INTERVAL_FOR_CHECKING_TOKEN_UPDATE = 50,
|
|
@@ -58,89 +57,107 @@ class CredentialsProcessing {
|
|
|
58
57
|
callbackAfterRejectRefresh
|
|
59
58
|
} = credentialsProcessing || {};
|
|
60
59
|
if (typeof getCredentials !== "function") throw new Error("No getCredentials method [CredentialsProcessing]");
|
|
60
|
+
|
|
61
61
|
if (typeof getHeadersForAuthorize !== "function") {
|
|
62
62
|
throw new Error("No getHeadersForAuthorize method [CredentialsProcessing]");
|
|
63
63
|
}
|
|
64
|
+
|
|
64
65
|
if (importCredentials && typeof importCredentials !== "function") {
|
|
65
66
|
throw new Error("Bad importCredentials method [CredentialsProcessing]");
|
|
66
67
|
}
|
|
68
|
+
|
|
67
69
|
this.isUseRefreshTokensPropcessing = isUseRefreshTokensPropcessing;
|
|
68
70
|
this.DEFAULT_CREDENTIALS = {};
|
|
69
71
|
this.getCredentialsByOuter = getCredentials;
|
|
70
72
|
this.getHeadersForAuthorize = getHeadersForAuthorize;
|
|
71
|
-
this.importCredentials = importCredentials;
|
|
73
|
+
this.importCredentials = importCredentials; //? Если метод передан или если не передан, но включен флоу обновления токенов (тогда saveCredentials обязателен)
|
|
72
74
|
|
|
73
|
-
//? Если метод передан или если не передан, но включен флоу обновления токенов (тогда saveCredentials обязателен)
|
|
74
75
|
if (saveCredentials || isUseRefreshTokensPropcessing) {
|
|
75
76
|
if (typeof saveCredentials !== "function") throw new Error("No saveCredentials method [CredentialsProcessing]");else this.saveCredentials = saveCredentials;
|
|
76
77
|
}
|
|
78
|
+
|
|
77
79
|
if (isUseRefreshTokensPropcessing) {
|
|
78
80
|
if (typeof refreshCredentials === "function") this.refreshCredentialsByOuter = refreshCredentials;else {
|
|
79
81
|
if (typeof this.refreshCredentialsByOuter === "function" && typeof REFRESH_TOKEN_PATH !== "string") {
|
|
80
82
|
throw new Error("No REFRESH_TOKEN_PATH [CredentialsProcessing]");
|
|
81
83
|
}
|
|
84
|
+
|
|
82
85
|
this.REFRESH_TOKEN_PATH = REFRESH_TOKEN_PATH;
|
|
83
86
|
}
|
|
87
|
+
|
|
84
88
|
if (!Array.isArray(CODES_USING_THE_REFRESH_ATTEMPT)) {
|
|
85
89
|
throw new Error("No CODES_USING_THE_REFRESH_ATTEMPT [CredentialsProcessing]");
|
|
86
90
|
}
|
|
91
|
+
|
|
87
92
|
if (!CODES_USING_THE_REFRESH_ATTEMPT.every(i => typeof i === "number")) {
|
|
88
93
|
throw new Error("Invalid format of CODES_USING_THE_REFRESH_ATTEMPT elements [CredentialsProcessing]");
|
|
89
94
|
}
|
|
95
|
+
|
|
90
96
|
if (typeof REFRESH_TOKEN_FLAG !== "string") throw new Error("Bad REFRESH_TOKEN_FLAG [CredentialsProcessing]");
|
|
97
|
+
|
|
91
98
|
if (typeof INTERVAL_FOR_CHECKING_TOKEN_UPDATE !== "number") {
|
|
92
99
|
throw new Error("Bad INTERVAL_FOR_CHECKING_TOKEN_UPDATE [CredentialsProcessing]");
|
|
93
100
|
}
|
|
101
|
+
|
|
94
102
|
if (typeof INTERVAL_FOR_CHECKING_TOKEN_UPDATE !== "number") {
|
|
95
103
|
throw new Error("Bad INTERVAL_FOR_CHECKING_TOKEN_UPDATE [CredentialsProcessing]");
|
|
96
104
|
}
|
|
105
|
+
|
|
97
106
|
if (callbackAfterRejectRefresh && typeof callbackAfterRejectRefresh !== "function") {
|
|
98
107
|
throw new Error("Bad INTERVAL_FOR_CHECKING_TOKEN_UPDATE [CredentialsProcessing]");
|
|
99
108
|
}
|
|
109
|
+
|
|
100
110
|
this.CODES_USING_THE_REFRESH_ATTEMPT = CODES_USING_THE_REFRESH_ATTEMPT;
|
|
101
111
|
this.REFRESH_TOKEN_FLAG = REFRESH_TOKEN_FLAG;
|
|
102
112
|
this.INTERVAL_FOR_CHECKING_TOKEN_UPDATE = INTERVAL_FOR_CHECKING_TOKEN_UPDATE;
|
|
103
113
|
if (callbackAfterRejectRefresh) this.callbackAfterRejectRefresh = callbackAfterRejectRefresh;
|
|
104
114
|
}
|
|
105
115
|
}
|
|
116
|
+
|
|
106
117
|
getIsTokenStartRefresh() {
|
|
107
118
|
return localStorage.getItem(this.REFRESH_TOKEN_FLAG);
|
|
108
119
|
}
|
|
120
|
+
|
|
109
121
|
setIsTokenStartRefresh() {
|
|
110
122
|
localStorage.setItem(this.REFRESH_TOKEN_FLAG, true);
|
|
111
123
|
}
|
|
124
|
+
|
|
112
125
|
removeIsTokenStartRefresh() {
|
|
113
126
|
localStorage.removeItem(this.REFRESH_TOKEN_FLAG);
|
|
114
127
|
}
|
|
128
|
+
|
|
115
129
|
async getCredentials(isCatchCallbackProcess, callback) {
|
|
116
130
|
let credentials = await this.getCredentialsByOuter();
|
|
117
131
|
if (typeof this.importCredentials === "function") credentials = await this.importCredentials(credentials);
|
|
118
132
|
if (!(0, _utils.getIsOnlyAnObject)(credentials)) credentials = {};
|
|
119
133
|
const token = credentials.token || null;
|
|
134
|
+
|
|
120
135
|
if (token && !isCatchCallbackProcess) {
|
|
121
136
|
let decoded;
|
|
137
|
+
|
|
122
138
|
try {
|
|
123
139
|
decoded = jwt.decode(token);
|
|
124
140
|
} catch {
|
|
125
141
|
decoded = null;
|
|
126
142
|
}
|
|
143
|
+
|
|
127
144
|
const currentTime = Date.now() / 1000;
|
|
128
|
-
if (decoded !== null && Number(decoded.exp) < currentTime) credentials = {
|
|
129
|
-
...credentials,
|
|
145
|
+
if (decoded !== null && Number(decoded.exp) < currentTime) credentials = { ...credentials,
|
|
130
146
|
isNeedRefresh: true
|
|
131
147
|
};
|
|
132
148
|
}
|
|
133
|
-
|
|
134
|
-
|
|
149
|
+
|
|
150
|
+
if (callback) await callback({ ...credentials,
|
|
135
151
|
isCatchCallbackProcess
|
|
136
152
|
});
|
|
137
|
-
return {
|
|
138
|
-
...credentials,
|
|
153
|
+
return { ...credentials,
|
|
139
154
|
isCatchCallbackProcess
|
|
140
155
|
};
|
|
141
156
|
}
|
|
157
|
+
|
|
142
158
|
async refreshCredentials(currentCredentials, callback) {
|
|
143
159
|
const CONTEXT = this;
|
|
160
|
+
|
|
144
161
|
async function finalize(cred) {
|
|
145
162
|
if (callback) await callback(cred);
|
|
146
163
|
return Promise.resolve(cred).then(async res => {
|
|
@@ -148,10 +165,10 @@ class CredentialsProcessing {
|
|
|
148
165
|
return res;
|
|
149
166
|
});
|
|
150
167
|
}
|
|
151
|
-
if (!(currentCredentials !== null && currentCredentials !== void 0 && currentCredentials.token) || !(currentCredentials !== null && currentCredentials !== void 0 && currentCredentials.refreshToken)) return finalize(CONTEXT.DEFAULT_CREDENTIALS);
|
|
152
168
|
|
|
153
|
-
//! ВНИМАНИЕ! Данный механизм рефреша принят на проекте finturfreactfrontend (админка)
|
|
169
|
+
if (!(currentCredentials !== null && currentCredentials !== void 0 && currentCredentials.token) || !(currentCredentials !== null && currentCredentials !== void 0 && currentCredentials.refreshToken)) return finalize(CONTEXT.DEFAULT_CREDENTIALS); //! ВНИМАНИЕ! Данный механизм рефреша принят на проекте finturfreactfrontend (админка)
|
|
154
170
|
//! На кабинете он ТОЧНО НЕ ТАКОЙ
|
|
171
|
+
|
|
155
172
|
async function refreshCredentialsByDefault() {
|
|
156
173
|
const {
|
|
157
174
|
token,
|
|
@@ -172,14 +189,15 @@ class CredentialsProcessing {
|
|
|
172
189
|
body,
|
|
173
190
|
redirect: "follow"
|
|
174
191
|
});
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
//? Передавайте собственный refreshCredentials при получении экземляра RESTAPI, если не уверены,
|
|
192
|
+
} //? Передавайте собственный refreshCredentials при получении экземляра RESTAPI, если не уверены,
|
|
178
193
|
//? что механизм рефреша токенов ИМЕННО ТАКОЙ как в ф-и refreshCredentialsByDefault!
|
|
179
194
|
//! currentCredentials передаются в формате класса! ({ token, refreshToken, expires })
|
|
195
|
+
|
|
196
|
+
|
|
180
197
|
const newCredentials = typeof CONTEXT.refreshCredentialsByOuter === "function" ? await CONTEXT.refreshCredentialsByOuter(currentCredentials) : await refreshCredentialsByDefault();
|
|
181
198
|
return finalize(newCredentials);
|
|
182
199
|
}
|
|
200
|
+
|
|
183
201
|
async waitRefresh(isNeedRefresh) {
|
|
184
202
|
return new Promise(resolve => {
|
|
185
203
|
if (!this.getIsTokenStartRefresh()) {
|
|
@@ -195,6 +213,7 @@ class CredentialsProcessing {
|
|
|
195
213
|
}
|
|
196
214
|
});
|
|
197
215
|
}
|
|
216
|
+
|
|
198
217
|
async processCredentials(cred) {
|
|
199
218
|
if (!cred.isNeedRefresh && !cred.isCatchCallbackProcess) return cred;
|
|
200
219
|
const CONTEXT = this;
|
|
@@ -202,17 +221,23 @@ class CredentialsProcessing {
|
|
|
202
221
|
return new Promise(resolve => {
|
|
203
222
|
setTimeout(async () => {
|
|
204
223
|
const newCredentials = await CONTEXT.getCredentials();
|
|
224
|
+
|
|
205
225
|
if (!(newCredentials !== null && newCredentials !== void 0 && newCredentials.token)) {
|
|
206
226
|
newCredentials.isRefreshFailed = true;
|
|
207
227
|
setTimeout(() => {
|
|
208
228
|
var _CONTEXT$callbackAfte;
|
|
209
|
-
|
|
229
|
+
|
|
230
|
+
CONTEXT === null || CONTEXT === void 0 ? void 0 : (_CONTEXT$callbackAfte = CONTEXT.callbackAfterRejectRefresh) === null || _CONTEXT$callbackAfte === void 0 ? void 0 : _CONTEXT$callbackAfte.call(CONTEXT);
|
|
210
231
|
}, 0);
|
|
211
232
|
}
|
|
233
|
+
|
|
212
234
|
resolve(newCredentials);
|
|
213
235
|
}, 0);
|
|
214
236
|
});
|
|
215
237
|
});
|
|
216
238
|
}
|
|
239
|
+
|
|
217
240
|
}
|
|
218
|
-
|
|
241
|
+
|
|
242
|
+
var _default = CredentialsProcessing;
|
|
243
|
+
exports.default = _default;
|
|
@@ -4,13 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
|
|
7
8
|
var _utils = require("./_utils");
|
|
9
|
+
|
|
8
10
|
//? В этом кклассе собраны полезные добавочные утилиты, которые могут быть использованы другими классами,
|
|
9
11
|
//? но не имеют прямого отношения к реализации прямой ф-ти RESTAPI
|
|
10
12
|
//? Так же утилиты могут быть использованы как библиотечные
|
|
11
13
|
class Utils {
|
|
12
14
|
//! Могут содержаться НЕасинхронные методы!
|
|
13
|
-
|
|
14
15
|
//? Ф-я normalizeQueryParams является нормализатором сложных квери
|
|
15
16
|
//? Например: &key1=&&&===&&&key2====&&&&&&&&key3=....
|
|
16
17
|
//? Для корректной работы на вход нужно подавать НЕ кодированные значения
|
|
@@ -19,10 +20,12 @@ class Utils {
|
|
|
19
20
|
if (settings && !(0, _utils.getIsOnlyAnObject)(settings)) {
|
|
20
21
|
throw new Error("Bad settings [class Utils, normalizeQueryParams]");
|
|
21
22
|
}
|
|
23
|
+
|
|
22
24
|
const getInitialArr = input => {
|
|
23
25
|
const prepareParam = (key, value) => {
|
|
24
26
|
if (!value) return "".concat(key, "=");else if (typeof value === "string" || typeof value === "number") return "".concat(key, "=").concat(value);else if (Array.isArray(value)) return "".concat(key, "=").concat(value.join(""));else return "".concat(key, "=Bad-data-format");
|
|
25
27
|
};
|
|
28
|
+
|
|
26
29
|
if (Array.isArray(input)) {
|
|
27
30
|
return input.map(item => {
|
|
28
31
|
if (typeof item !== "string") return [];
|
|
@@ -38,6 +41,7 @@ class Utils {
|
|
|
38
41
|
});
|
|
39
42
|
} else if ((0, _utils.getIsOnlyAnObject)(input)) return Object.keys(input).map(key => prepareParam(key, input[key]));else if (typeof input === "string") return (input[0] === "?" ? input.slice(1) : input).split("&");else return [];
|
|
40
43
|
};
|
|
44
|
+
|
|
41
45
|
const {
|
|
42
46
|
isEncode = false,
|
|
43
47
|
outputAs = "array"
|
|
@@ -45,19 +49,23 @@ class Utils {
|
|
|
45
49
|
const initialStructure = getInitialArr(queryParams);
|
|
46
50
|
const normalizedStructure = initialStructure.reduce((acc, str, idx) => {
|
|
47
51
|
const lastIndex = acc.result.length - 1;
|
|
52
|
+
|
|
48
53
|
const processToJoin = function (val) {
|
|
49
54
|
let recoverableSymbol = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "&";
|
|
50
55
|
const encodedToJoin = "".concat(encodeURIComponent(recoverableSymbol)).concat(encodeURIComponent(val));
|
|
51
56
|
acc.result[lastIndex] = "".concat(acc.result[lastIndex]).concat(encodedToJoin);
|
|
52
57
|
acc.toJoin = null;
|
|
53
58
|
};
|
|
59
|
+
|
|
54
60
|
if (typeof acc.toJoin === "string") processToJoin(acc.toJoin);
|
|
55
61
|
const index = str.indexOf("=");
|
|
62
|
+
|
|
56
63
|
if (index !== -1 && index !== 0) {
|
|
57
64
|
const key = str.slice(0, index);
|
|
58
65
|
acc.result.push("".concat(key, "=").concat(encodeURIComponent(str.slice(index + 1))));
|
|
59
|
-
} else acc.toJoin = str;
|
|
60
|
-
|
|
66
|
+
} else acc.toJoin = str; //? Добивка для последней итерации
|
|
67
|
+
|
|
68
|
+
|
|
61
69
|
if (idx === initialStructure.length - 1 && typeof acc.toJoin === "string") processToJoin(acc.toJoin);
|
|
62
70
|
return acc;
|
|
63
71
|
}, {
|
|
@@ -68,20 +76,22 @@ class Utils {
|
|
|
68
76
|
const [key, value] = item.split("=");
|
|
69
77
|
return [key, !isEncode ? decodeURIComponent(value) : value];
|
|
70
78
|
});
|
|
79
|
+
|
|
71
80
|
switch (outputAs) {
|
|
72
81
|
case "string":
|
|
73
82
|
return outputStructure.length ? "?".concat(outputStructure.map(_ref3 => {
|
|
74
83
|
let [key, value] = _ref3;
|
|
75
84
|
return "".concat(key, "=").concat(value);
|
|
76
85
|
}).join("&")) : "";
|
|
86
|
+
|
|
77
87
|
case "object":
|
|
78
88
|
return outputStructure.reduce((acc, _ref4) => {
|
|
79
89
|
let [key, value] = _ref4;
|
|
80
|
-
return {
|
|
81
|
-
...acc,
|
|
90
|
+
return { ...acc,
|
|
82
91
|
[key]: value
|
|
83
92
|
};
|
|
84
93
|
}, {});
|
|
94
|
+
|
|
85
95
|
default:
|
|
86
96
|
return outputStructure.map(_ref5 => {
|
|
87
97
|
let [key, value] = _ref5;
|
|
@@ -89,5 +99,8 @@ class Utils {
|
|
|
89
99
|
});
|
|
90
100
|
}
|
|
91
101
|
}
|
|
102
|
+
|
|
92
103
|
}
|
|
93
|
-
|
|
104
|
+
|
|
105
|
+
var _default = Utils;
|
|
106
|
+
exports.default = _default;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.default = void 0;
|
|
9
|
+
|
|
8
10
|
var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken"));
|
|
9
|
-
|
|
11
|
+
|
|
12
|
+
var _default = {
|
|
10
13
|
jwt: _jsonwebtoken.default
|
|
11
|
-
};
|
|
14
|
+
};
|
|
15
|
+
exports.default = _default;
|