intelicoreact 1.3.39 → 1.3.40
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 +144 -51
- package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +7 -1
- package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +47 -9
- 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/FileLoaderLocal/FileLoaderLocal.js +26 -6
- package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +35 -19
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +38 -9
- package/dist/Atomic/FormElements/Input/Input.js +57 -24
- 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 +27 -6
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +42 -7
- 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 +44 -14
- 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 +72 -14
- package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +124 -40
- 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/TagsDropdown/TagsDropdown.js +146 -54
- 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 +12 -1
- 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 +15 -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 +16 -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 +30 -5
- package/dist/Atomic/UI/Modal/Modal.js +29 -6
- package/dist/Atomic/UI/Modal/ModalHOC.js +10 -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 +90 -65
- package/dist/Atomic/UI/ModalBackup/ModalHOC.js +21 -12
- package/dist/Atomic/UI/ModalBackup/partials/ModalFooter.js +11 -6
- package/dist/Atomic/UI/ModalBackup/partials/ModalTitle.js +19 -15
- 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 +14 -3
- package/dist/Atomic/UI/TagList/TagList.js +35 -19
- package/dist/Atomic/UI/UserBox/UserBox.js +13 -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 +19 -7
- package/dist/Classes/RESTAPI/partials/ApiUtils.js +35 -28
- package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +44 -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 +36 -13
- 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 +12 -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/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 +127 -49
- 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
|
@@ -1,14 +1,19 @@
|
|
|
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 _ApiUtils = _interopRequireDefault(require("./ApiUtils"));
|
|
11
|
+
|
|
9
12
|
var _utils = require("./_utils");
|
|
13
|
+
|
|
10
14
|
//? Префикс createRequest_ добавляется к крейтерам с целью разгрузить пространство имен
|
|
11
15
|
const PREFIX_OF_CLASS_UTILS = "createRequest_";
|
|
16
|
+
|
|
12
17
|
class ApiRequestCreators extends _ApiUtils.default {
|
|
13
18
|
constructor(settings) {
|
|
14
19
|
super(settings);
|
|
@@ -17,22 +22,24 @@ class ApiRequestCreators extends _ApiUtils.default {
|
|
|
17
22
|
} = settings || {};
|
|
18
23
|
if ((0, _utils.getIsOnlyAnObject)(requestsCreators)) _utils.addCustomMethods.call(this, requestsCreators, PREFIX_OF_CLASS_UTILS);
|
|
19
24
|
}
|
|
25
|
+
|
|
20
26
|
async createRequest_toJson(props, variant) {
|
|
21
|
-
return this.splitProperties({
|
|
22
|
-
...props,
|
|
27
|
+
return this.splitProperties({ ...props,
|
|
23
28
|
isGetBody: true,
|
|
24
29
|
callback: async res => {
|
|
25
30
|
var _props$callback, _props$callback2;
|
|
31
|
+
|
|
26
32
|
const output = await this.getResponseBody(res);
|
|
27
33
|
return await ((_props$callback = (_props$callback2 = props.callback) === null || _props$callback2 === void 0 ? void 0 : _props$callback2.call(props, output)) !== null && _props$callback !== void 0 ? _props$callback : output);
|
|
28
34
|
}
|
|
29
35
|
}, variant);
|
|
30
36
|
}
|
|
37
|
+
|
|
31
38
|
async createRequest_toJsonAdvanced(props, variant) {
|
|
32
|
-
return this.splitProperties({
|
|
33
|
-
...props,
|
|
39
|
+
return this.splitProperties({ ...props,
|
|
34
40
|
callback: async res => {
|
|
35
41
|
var _props$callback3, _props$callback4;
|
|
42
|
+
|
|
36
43
|
const output = {
|
|
37
44
|
response: res,
|
|
38
45
|
result: await this.getResponseBody(await (0, _utils.getResponseClone)(res))
|
|
@@ -41,9 +48,9 @@ class ApiRequestCreators extends _ApiUtils.default {
|
|
|
41
48
|
}
|
|
42
49
|
}, variant);
|
|
43
50
|
}
|
|
51
|
+
|
|
44
52
|
async createRequest_testBadResponse(props, variant) {
|
|
45
|
-
return this.splitProperties({
|
|
46
|
-
...props,
|
|
53
|
+
return this.splitProperties({ ...props,
|
|
47
54
|
callback: async () => Promise.resolve(new Response(JSON.stringify({
|
|
48
55
|
errors: [{
|
|
49
56
|
message: "test bad Response"
|
|
@@ -58,12 +65,17 @@ class ApiRequestCreators extends _ApiUtils.default {
|
|
|
58
65
|
})()
|
|
59
66
|
})).then(res => {
|
|
60
67
|
var _props$callback5, _props$callback6;
|
|
68
|
+
|
|
61
69
|
return (_props$callback5 = (_props$callback6 = props.callback) === null || _props$callback6 === void 0 ? void 0 : _props$callback6.call(props, res)) !== null && _props$callback5 !== void 0 ? _props$callback5 : res;
|
|
62
70
|
})
|
|
63
71
|
}, variant);
|
|
64
72
|
}
|
|
73
|
+
|
|
65
74
|
async createRequest_default(props, variant) {
|
|
66
75
|
return this.splitProperties(props, variant);
|
|
67
76
|
}
|
|
77
|
+
|
|
68
78
|
}
|
|
69
|
-
|
|
79
|
+
|
|
80
|
+
var _default = ApiRequestCreators;
|
|
81
|
+
exports.default = _default;
|
|
@@ -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,26 +80,25 @@ 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) {
|
|
93
97
|
var _response$headers$get;
|
|
98
|
+
|
|
94
99
|
if (!(response instanceof Response)) return response;
|
|
95
|
-
const executor = (_response$headers$get = response.headers.get("content-type")) !== null && _response$headers$get !== void 0 && _response$headers$get.includes("json") ? response.json : response.text;
|
|
100
|
+
const executor = (_response$headers$get = response.headers.get("content-type")) !== null && _response$headers$get !== void 0 && _response$headers$get.includes("json") ? response.json : response.text; // обработка случаев краша метода json при отсутствии тела ответа
|
|
96
101
|
|
|
97
|
-
// обработка случаев краша метода json при отсутствии тела ответа
|
|
98
102
|
try {
|
|
99
103
|
return executor.call(response);
|
|
100
104
|
} catch {
|
|
@@ -103,20 +107,20 @@ class ApiUtils extends _Utils.default {
|
|
|
103
107
|
console.log("Failed to extract the body");
|
|
104
108
|
return null;
|
|
105
109
|
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
//! Обработчик структуры для ошибки (не рендер месседжа, а имеено формирование ошибки),
|
|
110
|
+
} //! Обработчик структуры для ошибки (не рендер месседжа, а имеено формирование ошибки),
|
|
109
111
|
//? Планируется, что метод будет перегружаться на экземпляре,
|
|
110
112
|
//? т.к. на разных проектах могут быть разные структуры тела ответа для ошибки
|
|
111
113
|
//? Метод не планировался как асинхронный,
|
|
112
114
|
//? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
|
|
113
115
|
//? res - уже тело ответа
|
|
116
|
+
|
|
117
|
+
|
|
114
118
|
async getErrorMessage(res) {
|
|
115
119
|
return res;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
//? Планируется, что метод будет использоваться неизменно, однако технически его можно перегрузить на экземпляре
|
|
120
|
+
} //? Планируется, что метод будет использоваться неизменно, однако технически его можно перегрузить на экземпляре
|
|
119
121
|
//? Метод планировался как асинхронный
|
|
122
|
+
|
|
123
|
+
|
|
120
124
|
async checkResponseCode(res, settings) {
|
|
121
125
|
//! При получении экземпляра, если sendMessage не является ф-ей,
|
|
122
126
|
//! то это воспринимается как отключение шага информирования об ошибке запроса как такового
|
|
@@ -128,29 +132,32 @@ class ApiUtils extends _Utils.default {
|
|
|
128
132
|
const message = res.ok ? successMess || this.DEFAULT_SUCCESS_MESSAGE : errorMess || this.getErrorMessage(await this.getResponseBody(await (0, _utils.getResponseClone)(res)));
|
|
129
133
|
this.sendMessage(message, settings, await (0, _utils.getResponseClone)(res));
|
|
130
134
|
return res;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
//? Суть метода:
|
|
135
|
+
} //? Суть метода:
|
|
134
136
|
//? передать из вне структуры, которые будут использоваться для КАЖДОГО запроса сделанного экземпляром RESTAPI
|
|
135
137
|
//! Данные затрут прочие настройки КРОМЕ данных по логике авторизации
|
|
136
138
|
//? Планируется, что метод будет перегружаться на экземпляре
|
|
137
139
|
//? Метод не планировался как асинхронный,
|
|
138
140
|
//? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
|
|
141
|
+
|
|
142
|
+
|
|
139
143
|
async addAsCommon() {
|
|
140
144
|
//! Планируемая структура { headers, queryParameters, options }, где
|
|
141
145
|
//! - headers и options - объекты,
|
|
142
146
|
//! - queryParameters - строка, массив или объект
|
|
143
147
|
return {};
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
//! Обработчик квери-параметров для общего процессинга,
|
|
148
|
+
} //! Обработчик квери-параметров для общего процессинга,
|
|
147
149
|
//! Например для кодирования decodeURIComponent или/и приведения в формат массива
|
|
148
150
|
//? Планируется, что метод будет перегружаться на экземпляре,
|
|
149
151
|
//? т.к. на разных проектах могут быть разные договоренности по форматам
|
|
150
152
|
//? Метод не планировался как асинхронный,
|
|
151
153
|
//? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
|
|
154
|
+
|
|
155
|
+
|
|
152
156
|
async processQueryParams(queryParams) {
|
|
153
157
|
return queryParams;
|
|
154
158
|
}
|
|
159
|
+
|
|
155
160
|
}
|
|
156
|
-
|
|
161
|
+
|
|
162
|
+
var _default = ApiUtils;
|
|
163
|
+
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,12 +221,16 @@ class CredentialsProcessing {
|
|
|
202
221
|
return new Promise(resolve => {
|
|
203
222
|
setTimeout(async () => {
|
|
204
223
|
var _CONTEXT$callbackAfte;
|
|
224
|
+
|
|
205
225
|
const newCredentials = await CONTEXT.getCredentials();
|
|
206
|
-
if (!(newCredentials !== null && newCredentials !== void 0 && newCredentials.token)) await (CONTEXT === null || CONTEXT === void 0
|
|
226
|
+
if (!(newCredentials !== null && newCredentials !== void 0 && newCredentials.token)) await (CONTEXT === null || CONTEXT === void 0 ? void 0 : (_CONTEXT$callbackAfte = CONTEXT.callbackAfterRejectRefresh) === null || _CONTEXT$callbackAfte === void 0 ? void 0 : _CONTEXT$callbackAfte.call(CONTEXT));
|
|
207
227
|
resolve(newCredentials);
|
|
208
228
|
}, 0);
|
|
209
229
|
});
|
|
210
230
|
});
|
|
211
231
|
}
|
|
232
|
+
|
|
212
233
|
}
|
|
213
|
-
|
|
234
|
+
|
|
235
|
+
var _default = CredentialsProcessing;
|
|
236
|
+
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;
|