intelicoreact 1.6.25 → 1.6.26

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.
Files changed (277) hide show
  1. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +1 -98
  2. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +1 -48
  3. package/dist/Atomic/FormElements/Calendar/Calendar.js +1 -249
  4. package/dist/Atomic/FormElements/Calendar/Calendar.props.js +1 -4
  5. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +1 -65
  6. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +1 -52
  7. package/dist/Atomic/FormElements/Datepicker/Datepicker.js +1 -424
  8. package/dist/Atomic/FormElements/Datepicker/Datepicker.props.js +1 -4
  9. package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.js +1 -173
  10. package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.props.js +1 -4
  11. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +1 -735
  12. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +1 -20
  13. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +1 -529
  14. package/dist/Atomic/FormElements/FileLoader/FileLoader.js +1 -94
  15. package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +1 -105
  16. package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +1 -67
  17. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +1 -247
  18. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +1 -160
  19. package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +1 -193
  20. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +1 -135
  21. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +1 -116
  22. package/dist/Atomic/FormElements/Input/Input.js +1 -467
  23. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +1 -161
  24. package/dist/Atomic/FormElements/InputColor/InputColor.js +1 -64
  25. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +1 -200
  26. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +1 -354
  27. package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +1 -71
  28. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.d.ts +2 -0
  29. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +1 -693
  30. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js.map +1 -0
  31. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +1 -254
  32. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +1 -32
  33. package/dist/Atomic/FormElements/InputDateRange/dependencies.js +1 -200
  34. package/dist/Atomic/FormElements/InputLink/InputLink.js +1 -99
  35. package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +1 -37
  36. package/dist/Atomic/FormElements/InputMask/InputMask.js +1 -1214
  37. package/dist/Atomic/FormElements/InputMask/config.js +1 -15
  38. package/dist/Atomic/FormElements/InputMask/functions.js +1 -58
  39. package/dist/Atomic/FormElements/InputMask2/InputMask2.js +1 -674
  40. package/dist/Atomic/FormElements/InputMask2/config.js +1 -15
  41. package/dist/Atomic/FormElements/InputMask2/functions.js +1 -58
  42. package/dist/Atomic/FormElements/InputMask3/InputMask3.js +1 -766
  43. package/dist/Atomic/FormElements/InputMask3/config.js +1 -15
  44. package/dist/Atomic/FormElements/InputMask3/functions.js +1 -58
  45. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +1 -114
  46. package/dist/Atomic/FormElements/InputsRow/InputsRow.js +1 -140
  47. package/dist/Atomic/FormElements/Label/Label.js +1 -87
  48. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +1 -506
  49. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +1 -45
  50. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +1 -331
  51. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +1 -66
  52. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +1 -80
  53. package/dist/Atomic/FormElements/RadioInput/RadioInput.js +1 -57
  54. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +1 -54
  55. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +1 -183
  56. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +1 -222
  57. package/dist/Atomic/FormElements/RangeList/RangeList.js +1 -175
  58. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +1 -43
  59. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +1 -443
  60. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +1 -858
  61. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +1 -39
  62. package/dist/Atomic/FormElements/Switcher/Switcher.js +1 -59
  63. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +1 -50
  64. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +1 -44
  65. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +1 -100
  66. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +1 -52
  67. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +1 -64
  68. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +1 -170
  69. package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +1 -202
  70. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +1 -67
  71. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +1 -115
  72. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +1 -1110
  73. package/dist/Atomic/FormElements/Text/Text.js +1 -125
  74. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +1 -49
  75. package/dist/Atomic/FormElements/Textarea/Textarea.js +1 -80
  76. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +1 -176
  77. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +1 -62
  78. package/dist/Atomic/FormElements/TimeRange/TimeRange.js +1 -119
  79. package/dist/Atomic/FormElements/UserContacts/UserContacts.js +1 -188
  80. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +1 -83
  81. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +1 -82
  82. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +1 -101
  83. package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +1 -29
  84. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +1 -113
  85. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +1 -30
  86. package/dist/Atomic/Layout/Header/Header.js +1 -85
  87. package/dist/Atomic/Layout/Spinner/Spinner.js +1 -44
  88. package/dist/Atomic/UI/Accordion/Accordion.js +1 -108
  89. package/dist/Atomic/UI/Accordion/AccordionItem.js +1 -176
  90. package/dist/Atomic/UI/AccordionTable/AccordionTable.js +1 -238
  91. package/dist/Atomic/UI/AccordionText/AccordionText.js +1 -69
  92. package/dist/Atomic/UI/AdvancedTag/AdvTag.js +1 -207
  93. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +1 -56
  94. package/dist/Atomic/UI/Alert/Alert.js +1 -72
  95. package/dist/Atomic/UI/Arrow/Arrow.js +1 -132
  96. package/dist/Atomic/UI/Box/Box.js +1 -52
  97. package/dist/Atomic/UI/Button/Button.js +1 -47
  98. package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +1 -72
  99. package/dist/Atomic/UI/Chart/Chart.js +1 -172
  100. package/dist/Atomic/UI/Chart/partial/Chart.constants.js +1 -95
  101. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +1 -80
  102. package/dist/Atomic/UI/Chart/partial/datasetSetters.js +1 -188
  103. package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +1 -335
  104. package/dist/Atomic/UI/Chart/partial/optionsSetters.js +1 -43
  105. package/dist/Atomic/UI/Chart/partial/utils.js +1 -60
  106. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +1 -109
  107. package/dist/Atomic/UI/DateTime/DateTime.js +1 -57
  108. package/dist/Atomic/UI/DebugContainer/DebugContainer.js +1 -44
  109. package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +1 -15
  110. package/dist/Atomic/UI/DoubleString/DoubleString.d.ts +19 -0
  111. package/dist/Atomic/UI/DoubleString/DoubleString.js +1 -102
  112. package/dist/Atomic/UI/DoubleString/DoubleString.js.map +1 -0
  113. package/dist/Atomic/UI/DoubleString/DoubleString.scss +8 -1
  114. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +1 -70
  115. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +1 -221
  116. package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +1 -106
  117. package/dist/Atomic/UI/Hint/Hint.js +1 -256
  118. package/dist/Atomic/UI/Hint/partials/_utils.js +1 -64
  119. package/dist/Atomic/UI/Modal/Modal.js +1 -179
  120. package/dist/Atomic/UI/Modal/ModalHOC.js +1 -97
  121. package/dist/Atomic/UI/Modal/partials/ModalFooter.js +1 -71
  122. package/dist/Atomic/UI/Modal/partials/ModalTitle.js +1 -110
  123. package/dist/Atomic/UI/Modal/partials/useMobileModal.js +1 -192
  124. package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.js +1 -75
  125. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +1 -80
  126. package/dist/Atomic/UI/NavLine/NavLine.js +1 -317
  127. package/dist/Atomic/UI/PageTitle/PageTitle.js +1 -77
  128. package/dist/Atomic/UI/PieChart/PieChart.js +1 -42
  129. package/dist/Atomic/UI/Price/Price.js +1 -31
  130. package/dist/Atomic/UI/PriceRange/PriceRange.js +1 -44
  131. package/dist/Atomic/UI/ProgressLine/ProgressLine.js +1 -98
  132. package/dist/Atomic/UI/Status/Status.js +1 -67
  133. package/dist/Atomic/UI/Table/Partials/TdCell.js +1 -87
  134. package/dist/Atomic/UI/Table/Partials/TdHeader.js +1 -38
  135. package/dist/Atomic/UI/Table/Partials/TdRow.js +1 -99
  136. package/dist/Atomic/UI/Table/Partials/TdTitle.js +1 -52
  137. package/dist/Atomic/UI/Table/Table.js +1 -63
  138. package/dist/Atomic/UI/Table/TdTypes/TdActions.js +1 -80
  139. package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +1 -28
  140. package/dist/Atomic/UI/Table/TdTypes/TdRange.js +1 -13
  141. package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +1 -53
  142. package/dist/Atomic/UI/Tag/Tag.js +1 -167
  143. package/dist/Atomic/UI/TagList/TagList.js +1 -251
  144. package/dist/Atomic/UI/UserBox/UserBox.js +1 -86
  145. package/dist/Atomic/UI/WizardStepper/constructor.js +1 -84
  146. package/dist/Atomic/UI/WizardStepper/index.js +1 -3
  147. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +1 -37
  148. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +1 -3
  149. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +1 -61
  150. package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +1 -3
  151. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +1 -39
  152. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +1 -3
  153. package/dist/Atomic/UI/WizardStepper/ui/icons.js +1 -49
  154. package/dist/Atomic/UI/WizardStepper/ui/index.js +1 -3
  155. package/dist/Classes/AbortableFetch.js +1 -454
  156. package/dist/Classes/AnimatedHandler.js +1 -47
  157. package/dist/Classes/RESTAPI/index.js +1 -228
  158. package/dist/Classes/RESTAPI/partials/AbortableFetch.js +1 -457
  159. package/dist/Classes/RESTAPI/partials/ApiBase.js +1 -48
  160. package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +1 -112
  161. package/dist/Classes/RESTAPI/partials/ApiUtils.js +1 -189
  162. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +1 -252
  163. package/dist/Classes/RESTAPI/partials/Utils.js +1 -92
  164. package/dist/Classes/RESTAPI/partials/_outerDependencies.js +1 -3
  165. package/dist/Classes/RESTAPI/partials/_utils.js +1 -197
  166. package/dist/Constants/index.constants.js +1 -78
  167. package/dist/Functions/Portal.js +1 -22
  168. package/dist/Functions/customEventListener.js +1 -96
  169. package/dist/Functions/dateTime.js +1 -149
  170. package/dist/Functions/fieldValueFormatters.js +1 -405
  171. package/dist/Functions/guards/assertions.js +1 -294
  172. package/dist/Functions/guards/safeValue.js +1 -75
  173. package/dist/Functions/guards/typeGuards.js +1 -373
  174. package/dist/Functions/hooks/useFormFieldsChangesManager.js +1 -95
  175. package/dist/Functions/locale/createTranslator.js +1 -32
  176. package/dist/Functions/operations.js +1 -130
  177. package/dist/Functions/presets/inputMaskPresets.js +1 -170
  178. package/dist/Functions/presets/inputPresets.js +1 -60
  179. package/dist/Functions/presets/mobileKeyboardTypesPresets.js +1 -45
  180. package/dist/Functions/schemas.js +1 -31
  181. package/dist/Functions/useBodyScrollLock.js +1 -17
  182. package/dist/Functions/useClickOutside.js +1 -15
  183. package/dist/Functions/useDebounce.js +1 -17
  184. package/dist/Functions/useFieldFocus.js +1 -84
  185. package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +1 -39
  186. package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +1 -159
  187. package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +1 -78
  188. package/dist/Functions/useFormTools/functions/General.js +1 -134
  189. package/dist/Functions/useFormTools/functions/RenderFields.js +1 -111
  190. package/dist/Functions/useFormTools/functions/usePrevious.js +1 -12
  191. package/dist/Functions/useFormTools/index.js +1 -778
  192. package/dist/Functions/useInputHighlightError.js +1 -67
  193. package/dist/Functions/useIsMobile/useIsMobile.js +1 -33
  194. package/dist/Functions/useKeyPress/useHandleKeyPress.js +1 -52
  195. package/dist/Functions/useKeyPress/useKeyPress.js +1 -52
  196. package/dist/Functions/useLocalStorage.js +1 -34
  197. package/dist/Functions/useLocationParams.js +1 -27
  198. package/dist/Functions/useMediaQuery.js +1 -17
  199. package/dist/Functions/useMetaInfo.js +1 -43
  200. package/dist/Functions/useMouseUpOutside.js +1 -16
  201. package/dist/Functions/useOnlineStatus.js +1 -29
  202. package/dist/Functions/usePasswordChecker.js +1 -110
  203. package/dist/Functions/usePrevious.js +1 -12
  204. package/dist/Functions/useResize.js +1 -31
  205. package/dist/Functions/useScrollTo.js +1 -17
  206. package/dist/Functions/useToggle.js +1 -17
  207. package/dist/Functions/utils.js +1 -522
  208. package/dist/Langs.js +1 -168
  209. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +1 -21
  210. package/dist/Molecular/CustomIcons/components/AlertCircle.js +1 -23
  211. package/dist/Molecular/CustomIcons/components/AppStore.js +1 -29
  212. package/dist/Molecular/CustomIcons/components/Arrow.js +1 -32
  213. package/dist/Molecular/CustomIcons/components/ArrowDown.js +1 -17
  214. package/dist/Molecular/CustomIcons/components/ArrowLeft.js +1 -22
  215. package/dist/Molecular/CustomIcons/components/ArrowRight.js +1 -22
  216. package/dist/Molecular/CustomIcons/components/ArrowUp.js +1 -17
  217. package/dist/Molecular/CustomIcons/components/Bell.js +1 -15
  218. package/dist/Molecular/CustomIcons/components/Button.js +1 -12
  219. package/dist/Molecular/CustomIcons/components/Campaigns.js +1 -16
  220. package/dist/Molecular/CustomIcons/components/Check.js +1 -14
  221. package/dist/Molecular/CustomIcons/components/Check2.js +1 -12
  222. package/dist/Molecular/CustomIcons/components/ChevronDown.js +1 -12
  223. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +1 -11
  224. package/dist/Molecular/CustomIcons/components/ChevronLeft.js +1 -11
  225. package/dist/Molecular/CustomIcons/components/ChevronRight.js +1 -11
  226. package/dist/Molecular/CustomIcons/components/ChevronUp.js +1 -11
  227. package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +1 -27
  228. package/dist/Molecular/CustomIcons/components/Close.js +1 -14
  229. package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +1 -17
  230. package/dist/Molecular/CustomIcons/components/Delete.js +1 -16
  231. package/dist/Molecular/CustomIcons/components/Edit.js +1 -15
  232. package/dist/Molecular/CustomIcons/components/Email.js +1 -31
  233. package/dist/Molecular/CustomIcons/components/FinturfLogo.js +1 -18
  234. package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +1 -35
  235. package/dist/Molecular/CustomIcons/components/Flows.js +1 -15
  236. package/dist/Molecular/CustomIcons/components/Gift.js +1 -25
  237. package/dist/Molecular/CustomIcons/components/GoogleAuth.js +1 -29
  238. package/dist/Molecular/CustomIcons/components/GooglePlay.js +1 -29
  239. package/dist/Molecular/CustomIcons/components/HelpCircle.js +1 -19
  240. package/dist/Molecular/CustomIcons/components/HelpCircle2.js +1 -20
  241. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +1 -19
  242. package/dist/Molecular/CustomIcons/components/Home.js +1 -16
  243. package/dist/Molecular/CustomIcons/components/Home2.js +1 -22
  244. package/dist/Molecular/CustomIcons/components/Key.js +1 -23
  245. package/dist/Molecular/CustomIcons/components/Landers.js +1 -20
  246. package/dist/Molecular/CustomIcons/components/Lock.js +1 -15
  247. package/dist/Molecular/CustomIcons/components/Mail.js +1 -26
  248. package/dist/Molecular/CustomIcons/components/Mastercard.js +1 -73
  249. package/dist/Molecular/CustomIcons/components/Minus.js +1 -25
  250. package/dist/Molecular/CustomIcons/components/Offers.js +1 -16
  251. package/dist/Molecular/CustomIcons/components/Pause.js +1 -28
  252. package/dist/Molecular/CustomIcons/components/PayPal.js +1 -41
  253. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +1 -28
  254. package/dist/Molecular/CustomIcons/components/Phone.js +1 -30
  255. package/dist/Molecular/CustomIcons/components/Play.js +1 -25
  256. package/dist/Molecular/CustomIcons/components/Plus.js +1 -25
  257. package/dist/Molecular/CustomIcons/components/Profile.js +1 -16
  258. package/dist/Molecular/CustomIcons/components/QRCode.js +1 -29
  259. package/dist/Molecular/CustomIcons/components/Rectangle.js +1 -12
  260. package/dist/Molecular/CustomIcons/components/Revert.js +1 -13
  261. package/dist/Molecular/CustomIcons/components/Star.js +1 -14
  262. package/dist/Molecular/CustomIcons/components/Star2.js +1 -16
  263. package/dist/Molecular/CustomIcons/components/TrafficSources.js +1 -14
  264. package/dist/Molecular/CustomIcons/components/Trash.js +1 -15
  265. package/dist/Molecular/CustomIcons/components/TrashRed.js +1 -15
  266. package/dist/Molecular/CustomIcons/components/Triggers.js +1 -15
  267. package/dist/Molecular/CustomIcons/components/User.js +1 -25
  268. package/dist/Molecular/CustomIcons/components/Visa.js +1 -31
  269. package/dist/Molecular/CustomIcons/components/X.js +1 -12
  270. package/dist/Molecular/CustomIcons/index.js +1 -61
  271. package/dist/Molecular/FormElement/FormElement.js +1 -54
  272. package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +1 -184
  273. package/dist/Molecular/FormWithDependOn/partials/_utils.js +1 -53
  274. package/dist/Molecular/InputAddress/InputAddress.js +1 -626
  275. package/dist/Molecular/InputPassword/InputPassword.js +1 -48
  276. package/dist/index.js +1 -104
  277. package/package.json +1 -1
@@ -1,189 +1 @@
1
- import Utils from "./Utils";
2
- import {
3
- addCustomMethods,
4
- getIsOnlyAnObject,
5
- getResponseClone,
6
- } from "./_utils";
7
-
8
- class ApiUtils extends Utils {
9
- constructor(settings) {
10
- super();
11
- const { utils } = settings || {};
12
- if (getIsOnlyAnObject(utils)) addCustomMethods.call(this, utils);
13
- }
14
-
15
- //? Планируется, что метод будет использоваться неизменно, однако технически его можно перегрузить на экземпляре
16
- //? Метод не планировался как асинхронный,
17
- //? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
18
- async splitProperties(apiParams, variant) {
19
- const {
20
- isResponseAsObject,
21
- isGetBody,
22
- finalCallback,
23
-
24
- isToastResult,
25
- toastOptions,
26
- isNoToastSuccess,
27
- isNoToastError,
28
- isNoToast,
29
-
30
- successMess,
31
- commonSuccessMessage,
32
- successMessages,
33
- successMessageType,
34
-
35
- errorMess,
36
- commonErrorMessage,
37
- errorMessages,
38
-
39
- ...restParams
40
- } = apiParams || {};
41
-
42
- switch (variant) {
43
- case "doRequestMapping":
44
- return {
45
- ...restParams,
46
-
47
- isGetBody,
48
-
49
- isToastResult,
50
- toastOptions,
51
- isNoToastSuccess,
52
- isNoToastError,
53
- isNoToast,
54
-
55
- successMess,
56
- commonSuccessMessage,
57
- successMessages,
58
- successMessageType,
59
-
60
- errorMess,
61
- commonErrorMessage,
62
- errorMessages,
63
- };
64
- default:
65
- return [
66
- restParams,
67
- {
68
- isGetBody,
69
- isResponseAsObject,
70
- ...(finalCallback ? { callback: finalCallback } : {}),
71
-
72
- isToastResult,
73
- toastOptions,
74
- isNoToastSuccess,
75
- isNoToastError,
76
- isNoToast,
77
-
78
- commonSuccessMessage: successMess || commonSuccessMessage,
79
- successMessages,
80
- successMessageType,
81
-
82
- commonErrorMessage: errorMess || commonErrorMessage,
83
- errorMessages,
84
- },
85
- ];
86
- }
87
- }
88
-
89
- //! Обработчик пропы api из объекта описания запроса
90
- //? Планируется, что метод будет перегружаться на экземпляре,
91
- //? т.к. на разных проектах могут быть разные интерпретации пропы api
92
- //? Метод не планировался как асинхронный,
93
- //? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
94
- async getRootPath(/* apiProp */) {
95
- return this.API_PATH;
96
- }
97
-
98
- //? Планируется, что метод будет использоваться неизменно, однако технически его можно перегрузить на экземпляре
99
- //? Метод планировался как асинхронный
100
- async getResponseBody(response, getBodyAs) {
101
- //? Если response не экземпляр Response, то вернуть по факту
102
- if (!(response instanceof Response)) return response;
103
-
104
- //? В этом месте все методы должны быть, т.к. response точно экземпляр Response.
105
- //? А вот contentType-а походу может не быть. Наверное...
106
- const contentType = response.headers.get("content-type");
107
- if (!contentType) return "";
108
-
109
- // ToDo - ошибка была в получении executor-а...
110
- // ToDo - Все было через if. В случае, если не попадало ни в одну if-ку, то возвращался undefined по умолчанию,
111
- // ToDo - а после этот undefined пытался запустить через call...
112
- const executor = (() => {
113
- if (typeof getBodyAs === 'string' && getBodyAs in response && typeof response[getBodyAs] === 'function') {
114
- return response[getBodyAs];
115
- }
116
-
117
- if (typeof contentType === 'string' && contentType.includes('text/csv')) {
118
- return response.blob;
119
- }
120
-
121
- return typeof contentType === 'string' && contentType.includes('json') ? response.json : response.text;
122
- })();
123
-
124
- // обработка случаев краша метода json при отсутствии тела ответа
125
- try {
126
- return (await executor.call(response));
127
- } catch {
128
- //? думаю стоит знать места, где ожидалось тело, а бэк его не положил
129
- // eslint-disable-next-line no-console
130
- console.log("Failed to extract the body");
131
- return null;
132
- }
133
- }
134
-
135
- //! Обработчик структуры для ошибки (не рендер месседжа, а имеено формирование ошибки),
136
- //? Планируется, что метод будет перегружаться на экземпляре,
137
- //? т.к. на разных проектах могут быть разные структуры тела ответа для ошибки
138
- //? Метод не планировался как асинхронный,
139
- //? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
140
- //? res - уже тело ответа
141
- async getErrorMessage(res) {
142
- return res;
143
- }
144
-
145
- //? Планируется, что метод будет использоваться неизменно, однако технически его можно перегрузить на экземпляре
146
- //? Метод планировался как асинхронный
147
- async checkResponseCode(res, settings) {
148
- //! При получении экземпляра, если sendMessage не является ф-ей,
149
- //! то это воспринимается как отключение шага информирования об ошибке запроса как такового
150
- if (typeof this.sendMessage !== "function") return res;
151
-
152
- const { successMess, errorMess } = settings || {};
153
-
154
- const message = res.ok
155
- ? successMess || this.DEFAULT_SUCCESS_MESSAGE
156
- : errorMess ||
157
- this.getErrorMessage(
158
- await this.getResponseBody(await getResponseClone(res)),
159
- );
160
-
161
- this.sendMessage(message, settings, await getResponseClone(res));
162
- return res;
163
- }
164
-
165
- //? Суть метода:
166
- //? передать из вне структуры, которые будут использоваться для КАЖДОГО запроса сделанного экземпляром RESTAPI
167
- //! Данные затрут прочие настройки КРОМЕ данных по логике авторизации
168
- //? Планируется, что метод будет перегружаться на экземпляре
169
- //? Метод не планировался как асинхронный,
170
- //? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
171
- async addAsCommon() {
172
- //! Планируемая структура { headers, queryParameters, options }, где
173
- //! - headers и options - объекты,
174
- //! - queryParameters - строка, массив или объект
175
- return {};
176
- }
177
-
178
- //! Обработчик квери-параметров для общего процессинга,
179
- //! Например для кодирования decodeURIComponent или/и приведения в формат массива
180
- //? Планируется, что метод будет перегружаться на экземпляре,
181
- //? т.к. на разных проектах могут быть разные договоренности по форматам
182
- //? Метод не планировался как асинхронный,
183
- //? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
184
- async processQueryParams(queryParams) {
185
- return queryParams;
186
- }
187
- }
188
-
189
- export default ApiUtils;
1
+ function e(e,t,r,n,s,o,c){try{var u=e[o](c),a=u.value}catch(e){r(e);return}u.done?t(a):Promise.resolve(a).then(n,s)}function t(t){return function(){var r=this,n=arguments;return new Promise(function(s,o){var c=t.apply(r,n);function u(t){e(c,s,o,u,a,"next",t)}function a(t){e(c,s,o,u,a,"throw",t)}u(void 0)})}}function r(e){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function n(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function s(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function o(e,t){return(o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function c(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(c=function(){return!!e})()}function u(e,t){var r,n,s,o={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return c.next=u(0),c.throw=u(1),c.return=u(2),"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function u(u){return function(a){var i=[u,a];if(r)throw TypeError("Generator is already executing.");for(;c&&(c=0,i[0]&&(o=0)),o;)try{if(r=1,n&&(s=2&i[0]?n.return:i[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,i[1])).done)return s;switch(n=0,s&&(i=[2&i[0],s.value]),i[0]){case 0:case 1:s=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,n=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(s=(s=o.trys).length>0&&s[s.length-1])&&(6===i[0]||2===i[0])){o=0;continue}if(3===i[0]&&(!s||i[1]>s[0]&&i[1]<s[3])){o.label=i[1];break}if(6===i[0]&&o.label<s[1]){o.label=s[1],s=i;break}if(s&&o.label<s[2]){o.label=s[2],o.ops.push(i);break}s[2]&&o.ops.pop(),o.trys.pop();continue}i=t.call(e,o)}catch(e){i=[6,e],n=0}finally{r=s=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}}}import a from"./Utils";import{addCustomMethods as i,getIsOnlyAnObject as l,getResponseClone as f}from"./_utils";var p=/*#__PURE__*/function(e){var a;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function p(e){if(!(this instanceof p))throw TypeError("Cannot call a class as a function");t=r(t=p),s=function(e,t){var r;if(t&&("object"==((r=t)&&"undefined"!=typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,c()?Reflect.construct(t,[],r(this).constructor):t.apply(this,n));var t,n,s,o=(e||{}).utils;return l(o)&&i.call(s,o),s}return p.prototype=Object.create(e&&e.prototype,{constructor:{value:p,writable:!0,configurable:!0}}),e&&o(p,e),a=[{key:"splitProperties",value:function(e,r){return t(function(){var t,o,c,a,i,l,f,p,y,b,g,h,O,v,m,d,M;return u(this,function(u){return(o=(t=e||{}).isResponseAsObject,c=t.isGetBody,a=t.finalCallback,i=t.isToastResult,l=t.toastOptions,f=t.isNoToastSuccess,p=t.isNoToastError,y=t.isNoToast,b=t.successMess,g=t.commonSuccessMessage,h=t.successMessages,O=t.successMessageType,v=t.errorMess,m=t.commonErrorMessage,d=t.errorMessages,M=function(e,t){if(null==e)return{};var r,n,s=function(e,t){if(null==e)return{};var r,n,s={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}(t,["isResponseAsObject","isGetBody","finalCallback","isToastResult","toastOptions","isNoToastSuccess","isNoToastError","isNoToast","successMess","commonSuccessMessage","successMessages","successMessageType","errorMess","commonErrorMessage","errorMessages"]),"doRequestMapping"===r)?[2,s(n({},M),{isGetBody:c,isToastResult:i,toastOptions:l,isNoToastSuccess:f,isNoToastError:p,isNoToast:y,successMess:b,commonSuccessMessage:g,successMessages:h,successMessageType:O,errorMess:v,commonErrorMessage:m,errorMessages:d})]:[2,[M,s(n({isGetBody:c,isResponseAsObject:o},a?{callback:a}:{}),{isToastResult:i,toastOptions:l,isNoToastSuccess:f,isNoToastError:p,isNoToast:y,commonSuccessMessage:b||g,successMessages:h,successMessageType:O,commonErrorMessage:v||m,errorMessages:d})]]})})()}},{key:"getRootPath",value:function(){var e=this;return t(function(){return u(this,function(t){return[2,e.API_PATH]})})()}},{key:"getResponseBody",value:function(e,r){return t(function(){var t,n;return u(this,function(s){switch(s.label){case 0:var o;if(null!=(o=Response)&&"undefined"!=typeof Symbol&&o[Symbol.hasInstance]?!o[Symbol.hasInstance](e):!(e instanceof o))return[2,e];if(!(t=e.headers.get("content-type")))return[2,""];n="string"==typeof r&&r in e&&"function"==typeof e[r]?e[r]:"string"==typeof t&&t.includes("text/csv")?e.blob:"string"==typeof t&&t.includes("json")?e.json:e.text,s.label=1;case 1:return s.trys.push([1,3,,4]),[4,n.call(e)];case 2:return[2,s.sent()];case 3:return s.sent(),[2,null];case 4:return[2]}})})()}},{key:"getErrorMessage",value:function(e){return t(function(){return u(this,function(t){return[2,e]})})()}},{key:"checkResponseCode",value:function(e,r){var n=this;return t(function(){var t,s,o,c,a,i,l,p,y,b;return u(this,function(u){switch(u.label){case 0:if("function"!=typeof n.sendMessage)return[2,e];if(s=(t=r||{}).successMess,o=t.errorMess,!e.ok)return[3,1];return a=s||n.DEFAULT_SUCCESS_MESSAGE,[3,5];case 1:if(i=o)return[3,4];return l=n.getErrorMessage,p=n.getResponseBody,[4,f(e)];case 2:return[4,p.apply(n,[u.sent()])];case 3:i=l.apply(n,[u.sent()]),u.label=4;case 4:a=i,u.label=5;case 5:return c=a,y=n.sendMessage,b=[c,r],[4,f(e)];case 6:return y.apply(n,b.concat([u.sent()])),[2,e]}})})()}},{key:"addAsCommon",value:function(){return t(function(){return u(this,function(e){return[2,{}]})})()}},{key:"processQueryParams",value:function(e){return t(function(){return u(this,function(t){return[2,e]})})()}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(p.prototype,a),p}(a);export default p;
@@ -1,252 +1 @@
1
- import outerDependencies from "./_outerDependencies";
2
- import { getIsOnlyAnObject } from "./_utils";
3
-
4
- const { jwt } = outerDependencies;
5
-
6
- class CredentialsProcessing {
7
- constructor(settings) {
8
- const { credentialsProcessing } = settings;
9
- const {
10
- //? Для корректной работы установки токенов в запросы от API
11
- //? нужно передавать методы getCredentials и getHeadersForAuthorize
12
- getCredentials,
13
- getHeadersForAuthorize, //? На вход получит токен, должна вернуть объект для коструктора Headers
14
-
15
- //? Так же опционально можно передавать
16
- importCredentials, //? если он передается, то он будет применяться к выводу от вызова getCredentials
17
- saveCredentials, //? можно будет найти в объекте credentialsProcessing, чтобы использовать кастомными методами
18
-
19
- //! Либо вызов getCredentials, либо цепочка вызовов importCredentials(getCredentials())
20
- //! должна возвращать требуемую классом структуру
21
- //! Класс требует структуры
22
- //! - { token }, если флоу рефреш токена НЕ используется
23
- //! - { token, refreshToken, expires }, если используется флоу рефреш токена
24
-
25
- // *********
26
-
27
- //? Подключает флоу рефреша токенов
28
- isUseRefreshTokensPropcessing = false,
29
-
30
- //! Для корректной работы флоу рефреша токенов передача метода saveCredentials становится ОБЯЗАТЕЛЬНОЙ
31
-
32
- //? Так же для корректной работы флоу рефреша токенов нужно
33
- //? - либо
34
- refreshCredentials, //! метод должен возвращать такую же структуру как и метод getCredentials,
35
- //? на вход получит текущие креды, к выходу будет применен importCredentials, если этот метод передавался
36
- //? - либо
37
- REFRESH_TOKEN_PATH, //! REFRESH_TOKEN_PATH передается ПОЛНОСТЬЮ (глобальная адресация)!
38
- CODES_USING_THE_REFRESH_ATTEMPT, //? указывает по каким кодам ответа триггериться рефреш, массив чисел
39
-
40
- //? Опционально
41
- REFRESH_TOKEN_FLAG = "refreshTokenFlag",
42
- INTERVAL_FOR_CHECKING_TOKEN_UPDATE = 50, // ms
43
- callbackAfterRejectRefresh,
44
- } = credentialsProcessing || {};
45
-
46
- if (typeof getCredentials !== "function")
47
- throw new Error("No getCredentials method [CredentialsProcessing]");
48
- if (typeof getHeadersForAuthorize !== "function") {
49
- throw new Error(
50
- "No getHeadersForAuthorize method [CredentialsProcessing]",
51
- );
52
- }
53
- if (importCredentials && typeof importCredentials !== "function") {
54
- throw new Error("Bad importCredentials method [CredentialsProcessing]");
55
- }
56
-
57
- this.isUseRefreshTokensPropcessing = isUseRefreshTokensPropcessing;
58
- this.DEFAULT_CREDENTIALS = {};
59
- this.getCredentialsByOuter = getCredentials;
60
- this.getHeadersForAuthorize = getHeadersForAuthorize;
61
- this.importCredentials = importCredentials;
62
-
63
- //? Если метод передан или если не передан, но включен флоу обновления токенов (тогда saveCredentials обязателен)
64
- if (saveCredentials || isUseRefreshTokensPropcessing) {
65
- if (typeof saveCredentials !== "function")
66
- throw new Error("No saveCredentials method [CredentialsProcessing]");
67
- else this.saveCredentials = saveCredentials;
68
- }
69
-
70
- if (isUseRefreshTokensPropcessing) {
71
- if (typeof refreshCredentials === "function")
72
- this.refreshCredentialsByOuter = refreshCredentials;
73
- else {
74
- if (
75
- typeof this.refreshCredentialsByOuter === "function" &&
76
- typeof REFRESH_TOKEN_PATH !== "string"
77
- ) {
78
- throw new Error("No REFRESH_TOKEN_PATH [CredentialsProcessing]");
79
- }
80
- this.REFRESH_TOKEN_PATH = REFRESH_TOKEN_PATH;
81
- }
82
-
83
- if (!Array.isArray(CODES_USING_THE_REFRESH_ATTEMPT)) {
84
- throw new Error(
85
- "No CODES_USING_THE_REFRESH_ATTEMPT [CredentialsProcessing]",
86
- );
87
- }
88
- if (
89
- !CODES_USING_THE_REFRESH_ATTEMPT.every((i) => typeof i === "number")
90
- ) {
91
- throw new Error(
92
- "Invalid format of CODES_USING_THE_REFRESH_ATTEMPT elements [CredentialsProcessing]",
93
- );
94
- }
95
-
96
- if (typeof REFRESH_TOKEN_FLAG !== "string")
97
- throw new Error("Bad REFRESH_TOKEN_FLAG [CredentialsProcessing]");
98
- if (typeof INTERVAL_FOR_CHECKING_TOKEN_UPDATE !== "number") {
99
- throw new Error(
100
- "Bad INTERVAL_FOR_CHECKING_TOKEN_UPDATE [CredentialsProcessing]",
101
- );
102
- }
103
- if (typeof INTERVAL_FOR_CHECKING_TOKEN_UPDATE !== "number") {
104
- throw new Error(
105
- "Bad INTERVAL_FOR_CHECKING_TOKEN_UPDATE [CredentialsProcessing]",
106
- );
107
- }
108
- if (
109
- callbackAfterRejectRefresh &&
110
- typeof callbackAfterRejectRefresh !== "function"
111
- ) {
112
- throw new Error(
113
- "Bad INTERVAL_FOR_CHECKING_TOKEN_UPDATE [CredentialsProcessing]",
114
- );
115
- }
116
-
117
- this.CODES_USING_THE_REFRESH_ATTEMPT = CODES_USING_THE_REFRESH_ATTEMPT;
118
- this.REFRESH_TOKEN_FLAG = REFRESH_TOKEN_FLAG;
119
- this.INTERVAL_FOR_CHECKING_TOKEN_UPDATE =
120
- INTERVAL_FOR_CHECKING_TOKEN_UPDATE;
121
-
122
- if (callbackAfterRejectRefresh)
123
- this.callbackAfterRejectRefresh = callbackAfterRejectRefresh;
124
- }
125
- }
126
-
127
- getIsTokenStartRefresh() {
128
- return localStorage.getItem(this.REFRESH_TOKEN_FLAG);
129
- }
130
-
131
- setIsTokenStartRefresh() {
132
- localStorage.setItem(this.REFRESH_TOKEN_FLAG, true);
133
- }
134
-
135
- removeIsTokenStartRefresh() {
136
- localStorage.removeItem(this.REFRESH_TOKEN_FLAG);
137
- }
138
-
139
- async getCredentials(isCatchCallbackProcess, callback) {
140
- let credentials = await this.getCredentialsByOuter();
141
-
142
- if (typeof this.importCredentials === "function")
143
- credentials = await this.importCredentials(credentials);
144
- if (!getIsOnlyAnObject(credentials)) credentials = {};
145
-
146
- const token = credentials.token || null;
147
-
148
- if (token && !isCatchCallbackProcess) {
149
- let decoded;
150
- try {
151
- decoded = jwt.decode(token);
152
- } catch {
153
- decoded = null;
154
- }
155
- const currentTime = Date.now() / 1000;
156
- if (decoded !== null && Number(decoded.exp) < currentTime)
157
- credentials = { ...credentials, isNeedRefresh: true };
158
- }
159
-
160
- if (callback) await callback({ ...credentials, isCatchCallbackProcess });
161
- return { ...credentials, isCatchCallbackProcess };
162
- }
163
-
164
- async refreshCredentials(currentCredentials, callback) {
165
- const CONTEXT = this;
166
-
167
- async function finalize(cred) {
168
- if (callback) await callback(cred);
169
- return Promise.resolve(cred).then(async (res) => {
170
- CONTEXT.removeIsTokenStartRefresh();
171
- return res;
172
- });
173
- }
174
-
175
- if (!currentCredentials?.token || !currentCredentials?.refreshToken)
176
- return finalize(CONTEXT.DEFAULT_CREDENTIALS);
177
-
178
- //! ВНИМАНИЕ! Данный механизм рефреша принят на проекте finturfreactfrontend (админка)
179
- //! На кабинете он ТОЧНО НЕ ТАКОЙ
180
- async function refreshCredentialsByDefault() {
181
- const { token, refreshToken } = currentCredentials;
182
- const headers = new Headers();
183
- headers.append(...Object.entries(CONTEXT.getHeadersForAuthorize(token)));
184
-
185
- const body = new FormData();
186
- body.append("grant_type", "refresh_token");
187
- body.append("refresh_token", refreshToken);
188
- body.append("client_id", "oauth");
189
- body.append("client_secret", "secret");
190
- body.append("access_type", "offline");
191
-
192
- return fetch(`${CONTEXT.REFRESH_TOKEN_PATH}`, {
193
- mode: "cors",
194
- method: "POST",
195
- headers,
196
- body,
197
- redirect: "follow",
198
- });
199
- }
200
-
201
- //? Передавайте собственный refreshCredentials при получении экземляра RESTAPI, если не уверены,
202
- //? что механизм рефреша токенов ИМЕННО ТАКОЙ как в ф-и refreshCredentialsByDefault!
203
- //! currentCredentials передаются в формате класса! ({ token, refreshToken, expires })
204
- const newCredentials =
205
- typeof CONTEXT.refreshCredentialsByOuter === "function"
206
- ? await CONTEXT.refreshCredentialsByOuter(currentCredentials)
207
- : await refreshCredentialsByDefault();
208
-
209
- return finalize(newCredentials);
210
- }
211
-
212
- async waitRefresh(isNeedRefresh) {
213
- return new Promise((resolve) => {
214
- if (!this.getIsTokenStartRefresh()) {
215
- if (isNeedRefresh) this.setIsTokenStartRefresh();
216
- resolve();
217
- } else {
218
- const intervalId = setInterval(() => {
219
- if (!this.getIsTokenStartRefresh()) {
220
- clearInterval(intervalId);
221
- resolve();
222
- }
223
- }, this.INTERVAL_FOR_CHECKING_TOKEN_UPDATE);
224
- }
225
- });
226
- }
227
-
228
- async processCredentials(cred) {
229
- if (!cred.isNeedRefresh && !cred.isCatchCallbackProcess) return cred;
230
-
231
- const CONTEXT = this;
232
-
233
- return CONTEXT.refreshCredentials(cred, (response) =>
234
- CONTEXT.saveCredentials(response),
235
- ).then(() => {
236
- return new Promise((resolve) => {
237
- setTimeout(async () => {
238
- const newCredentials = await CONTEXT.getCredentials();
239
- if (!newCredentials?.token) {
240
- newCredentials.isRefreshFailed = true;
241
- setTimeout(() => {
242
- CONTEXT?.callbackAfterRejectRefresh?.();
243
- }, 0);
244
- }
245
- resolve(newCredentials);
246
- }, 0);
247
- });
248
- });
249
- }
250
- }
251
-
252
- export default CredentialsProcessing;
1
+ function e(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function r(e,r,t,n,o,i,s){try{var a=e[i](s),c=a.value}catch(e){t(e);return}a.done?r(c):Promise.resolve(c).then(n,o)}function t(e){return function(){var t=this,n=arguments;return new Promise(function(o,i){var s=e.apply(t,n);function a(e){r(s,o,i,a,c,"next",e)}function c(e){r(s,o,i,a,c,"throw",e)}a(void 0)})}}function n(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}function o(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):(function(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}function i(e,r){var t,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return s.next=a(0),s.throw=a(1),s.return=a(2),"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(a){return function(c){var u=[a,c];if(t)throw TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(i=0)),i;)try{if(t=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,n=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=r.call(e,i)}catch(e){u=[6,e],n=0}finally{t=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}import s from"./_outerDependencies";import{getIsOnlyAnObject as a}from"./_utils";var c=s.jwt,u=/*#__PURE__*/function(){var r;function s(e){if(!(this instanceof s))throw TypeError("Cannot call a class as a function");var r=e.credentialsProcessing||{},t=r.getCredentials,n=r.getHeadersForAuthorize,o=r.importCredentials,i=r.saveCredentials,a=r.isUseRefreshTokensPropcessing,c=void 0!==a&&a,u=r.refreshCredentials,l=r.REFRESH_TOKEN_PATH,f=r.CODES_USING_THE_REFRESH_ATTEMPT,h=r.REFRESH_TOKEN_FLAG,p=void 0===h?"refreshTokenFlag":h,d=r.INTERVAL_FOR_CHECKING_TOKEN_UPDATE,y=void 0===d?50:d,E=r.callbackAfterRejectRefresh;if("function"!=typeof t)throw Error("No getCredentials method [CredentialsProcessing]");if("function"!=typeof n)throw Error("No getHeadersForAuthorize method [CredentialsProcessing]");if(o&&"function"!=typeof o)throw Error("Bad importCredentials method [CredentialsProcessing]");if(this.isUseRefreshTokensPropcessing=c,this.DEFAULT_CREDENTIALS={},this.getCredentialsByOuter=t,this.getHeadersForAuthorize=n,this.importCredentials=o,i||c)if("function"!=typeof i)throw Error("No saveCredentials method [CredentialsProcessing]");else this.saveCredentials=i;if(c){if("function"==typeof u)this.refreshCredentialsByOuter=u;else{if("function"==typeof this.refreshCredentialsByOuter&&"string"!=typeof l)throw Error("No REFRESH_TOKEN_PATH [CredentialsProcessing]");this.REFRESH_TOKEN_PATH=l}if(!Array.isArray(f))throw Error("No CODES_USING_THE_REFRESH_ATTEMPT [CredentialsProcessing]");if(!f.every(function(e){return"number"==typeof e}))throw Error("Invalid format of CODES_USING_THE_REFRESH_ATTEMPT elements [CredentialsProcessing]");if("string"!=typeof p)throw Error("Bad REFRESH_TOKEN_FLAG [CredentialsProcessing]");if("number"!=typeof y||"number"!=typeof y||E&&"function"!=typeof E)throw Error("Bad INTERVAL_FOR_CHECKING_TOKEN_UPDATE [CredentialsProcessing]");this.CODES_USING_THE_REFRESH_ATTEMPT=f,this.REFRESH_TOKEN_FLAG=p,this.INTERVAL_FOR_CHECKING_TOKEN_UPDATE=y,E&&(this.callbackAfterRejectRefresh=E)}}return r=[{key:"getIsTokenStartRefresh",value:function(){return localStorage.getItem(this.REFRESH_TOKEN_FLAG)}},{key:"setIsTokenStartRefresh",value:function(){localStorage.setItem(this.REFRESH_TOKEN_FLAG,!0)}},{key:"removeIsTokenStartRefresh",value:function(){localStorage.removeItem(this.REFRESH_TOKEN_FLAG)}},{key:"getCredentials",value:function(e,r){var s=this;return t(function(){var t,u,l,f;return i(this,function(i){switch(i.label){case 0:return[4,s.getCredentialsByOuter()];case 1:if(t=i.sent(),"function"!=typeof s.importCredentials)return[3,3];return[4,s.importCredentials(t)];case 2:t=i.sent(),i.label=3;case 3:if(a(t)||(t={}),(u=t.token||null)&&!e){try{l=c.decode(u)}catch(e){l=null}f=Date.now()/1e3,null!==l&&Number(l.exp)<f&&(t=o(n({},t),{isNeedRefresh:!0}))}if(!r)return[3,5];return[4,r(o(n({},t),{isCatchCallbackProcess:e}))];case 4:i.sent(),i.label=5;case 5:return[2,o(n({},t),{isCatchCallbackProcess:e})]}})})()}},{key:"refreshCredentials",value:function(r,n){var o=this;return t(function(){var s,a;function c(e){return u.apply(this,arguments)}function u(){return(u=t(function(e){return i(this,function(r){switch(r.label){case 0:if(!n)return[3,2];return[4,n(e)];case 1:r.sent(),r.label=2;case 2:var o;return[2,Promise.resolve(e).then((o=t(function(e){return i(this,function(r){return s.removeIsTokenStartRefresh(),[2,e]})}),function(e){return o.apply(this,arguments)}))]}})})).apply(this,arguments)}function l(){return(l=t(function(){var t,n,o,a,c;return i(this,function(i){var u;return n=r.token,o=r.refreshToken,(t=a=new Headers).append.apply(t,function(r){if(Array.isArray(r))return e(r)}(u=Object.entries(s.getHeadersForAuthorize(n)))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(u)||function(r,t){if(r){if("string"==typeof r)return e(r,void 0);var n=Object.prototype.toString.call(r).slice(8,-1);if("Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(r,t)}}(u)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),(c=new FormData).append("grant_type","refresh_token"),c.append("refresh_token",o),c.append("client_id","oauth"),c.append("client_secret","secret"),c.append("access_type","offline"),[2,fetch("".concat(s.REFRESH_TOKEN_PATH),{mode:"cors",method:"POST",headers:a,body:c,redirect:"follow"})]})})).apply(this,arguments)}return i(this,function(e){switch(e.label){case 0:if(s=o,!(null==r?void 0:r.token)||!(null==r?void 0:r.refreshToken))return[2,c(s.DEFAULT_CREDENTIALS)];if("function"!=typeof s.refreshCredentialsByOuter)return[3,2];return[4,s.refreshCredentialsByOuter(r)];case 1:return a=e.sent(),[3,4];case 2:return[4,function(){return l.apply(this,arguments)}()];case 3:a=e.sent(),e.label=4;case 4:return[2,c(a)]}})})()}},{key:"waitRefresh",value:function(e){var r=this;return t(function(){return i(this,function(t){return[2,new Promise(function(t){if(r.getIsTokenStartRefresh())var n=setInterval(function(){r.getIsTokenStartRefresh()||(clearInterval(n),t())},r.INTERVAL_FOR_CHECKING_TOKEN_UPDATE);else e&&r.setIsTokenStartRefresh(),t()})]})})()}},{key:"processCredentials",value:function(e){var r=this;return t(function(){var n;return i(this,function(o){return e.isNeedRefresh||e.isCatchCallbackProcess?[2,(n=r).refreshCredentials(e,function(e){return n.saveCredentials(e)}).then(function(){return new Promise(function(e){setTimeout(/*#__PURE__*/t(function(){var r;return i(this,function(t){switch(t.label){case 0:return[4,n.getCredentials()];case 1:return(null==(r=t.sent())?void 0:r.token)||(r.isRefreshFailed=!0,setTimeout(function(){var e;null==n||null==(e=n.callbackAfterRejectRefresh)||e.call(n)},0)),e(r),[2]}})}),0)})})]:[2,e]})})()}}],function(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(s.prototype,r),s}();export default u;
@@ -1,92 +1 @@
1
- import { getIsOnlyAnObject } from "./_utils";
2
- //? В этом кклассе собраны полезные добавочные утилиты, которые могут быть использованы другими классами,
3
- //? но не имеют прямого отношения к реализации прямой ф-ти RESTAPI
4
- //? Так же утилиты могут быть использованы как библиотечные
5
- class Utils {
6
- //! Могут содержаться НЕасинхронные методы!
7
-
8
- //? Ф-я normalizeQueryParams является нормализатором сложных квери
9
- //? Например: &key1=&&&===&&&key2====&&&&&&&&key3=....
10
- //? Для корректной работы на вход нужно подавать НЕ кодированные значения
11
- //? По умолчанию выходные значения квери-параметров НЕ кодируются
12
- normalizeQueryParams(queryParams, settings) {
13
- if (settings && !getIsOnlyAnObject(settings)) {
14
- throw new Error("Bad settings [class Utils, normalizeQueryParams]");
15
- }
16
-
17
- const getInitialArr = (input) => {
18
- const prepareParam = (key, value) => {
19
- if (!value) return `${key}=`;
20
- else if (typeof value === "string" || typeof value === "number")
21
- return `${key}=${value}`;
22
- else if (Array.isArray(value)) return `${key}=${value.join("")}`;
23
- else return `${key}=Bad-data-format`;
24
- };
25
-
26
- if (Array.isArray(input)) {
27
- return input
28
- .map((item) => {
29
- if (typeof item !== "string") return [];
30
- const index = item.indexOf("=");
31
- if (index === -1) return [item];
32
- return [item.slice(0, index), item.slice(index + 1)];
33
- })
34
- .filter(([key]) => Boolean(key))
35
- .map(([key, value]) => prepareParam(key, value));
36
- } else if (getIsOnlyAnObject(input))
37
- return Object.keys(input).map((key) => prepareParam(key, input[key]));
38
- else if (typeof input === "string")
39
- return (input[0] === "?" ? input.slice(1) : input).split("&");
40
- else return [];
41
- };
42
-
43
- const { isEncode = false, outputAs = "array" } = settings || {};
44
- const initialStructure = getInitialArr(queryParams);
45
-
46
- const normalizedStructure = initialStructure.reduce(
47
- (acc, str, idx) => {
48
- const lastIndex = acc.result.length - 1;
49
- const processToJoin = (val, recoverableSymbol = "&") => {
50
- const encodedToJoin = `${encodeURIComponent(recoverableSymbol)}${encodeURIComponent(val)}`;
51
- acc.result[lastIndex] = `${acc.result[lastIndex]}${encodedToJoin}`;
52
- acc.toJoin = null;
53
- };
54
- if (typeof acc.toJoin === "string") processToJoin(acc.toJoin);
55
- const index = str.indexOf("=");
56
- if (index !== -1 && index !== 0) {
57
- const key = str.slice(0, index);
58
- acc.result.push(`${key}=${encodeURIComponent(str.slice(index + 1))}`);
59
- } else acc.toJoin = str;
60
- //? Добивка для последней итерации
61
- if (
62
- idx === initialStructure.length - 1 &&
63
- typeof acc.toJoin === "string"
64
- )
65
- processToJoin(acc.toJoin);
66
- return acc;
67
- },
68
- { result: [], toJoin: null },
69
- ).result;
70
-
71
- const outputStructure = normalizedStructure.map((item) => {
72
- const [key, value] = item.split("=");
73
- return [key, !isEncode ? decodeURIComponent(value) : value];
74
- });
75
-
76
- switch (outputAs) {
77
- case "string":
78
- return outputStructure.length
79
- ? `?${outputStructure.map(([key, value]) => `${key}=${value}`).join("&")}`
80
- : "";
81
- case "object":
82
- return outputStructure.reduce(
83
- (acc, [key, value]) => ({ ...acc, [key]: value }),
84
- {},
85
- );
86
- default:
87
- return outputStructure.map(([key, value]) => `${key}=${value}`);
88
- }
89
- }
90
- }
91
-
92
- export default Utils;
1
+ function t(t,r){(null==r||r>t.length)&&(r=t.length);for(var n=0,e=Array(r);n<r;n++)e[n]=t[n];return e}function r(t,r,n){return r in t?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n,t}function n(r,n){return function(t){if(Array.isArray(t))return t}(r)||function(t,r){var n,e,o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var c=[],a=!0,i=!1;try{for(o=o.call(t);!(a=(n=o.next()).done)&&(c.push(n.value),!r||c.length!==r);a=!0);}catch(t){i=!0,e=t}finally{try{a||null==o.return||o.return()}finally{if(i)throw e}}return c}}(r,n)||function(r,n){if(r){if("string"==typeof r)return t(r,n);var e=Object.prototype.toString.call(r).slice(8,-1);if("Object"===e&&r.constructor&&(e=r.constructor.name),"Map"===e||"Set"===e)return Array.from(e);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return t(r,n)}}(r,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}import{getIsOnlyAnObject as e}from"./_utils";var o=/*#__PURE__*/function(){var t;function o(){if(!(this instanceof o))throw TypeError("Cannot call a class as a function")}return t=[{key:"normalizeQueryParams",value:function(t,o){if(o&&!e(o))throw Error("Bad settings [class Utils, normalizeQueryParams]");var c,a,i=o||{},u=i.isEncode,l=void 0!==u&&u,f=i.outputAs,s=(c=t,a=function(t,r){return r?"string"==typeof r||"number"==typeof r?"".concat(t,"=").concat(r):Array.isArray(r)?"".concat(t,"=").concat(r.join("")):"".concat(t,"=Bad-data-format"):"".concat(t,"=")},Array.isArray(c)?c.map(function(t){if("string"!=typeof t)return[];var r=t.indexOf("=");return -1===r?[t]:[t.slice(0,r),t.slice(r+1)]}).filter(function(t){return!!n(t,1)[0]}).map(function(t){var r=n(t,2);return a(r[0],r[1])}):e(c)?Object.keys(c).map(function(t){return a(t,c[t])}):"string"==typeof c?("?"===c[0]?c.slice(1):c).split("&"):[]),p=s.reduce(function(t,r,n){var e=t.result.length-1,o=function(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"&",o="".concat(encodeURIComponent(n)).concat(encodeURIComponent(r));t.result[e]="".concat(t.result[e]).concat(o),t.toJoin=null};"string"==typeof t.toJoin&&o(t.toJoin);var c=r.indexOf("=");if(-1!==c&&0!==c){var a=r.slice(0,c);t.result.push("".concat(a,"=").concat(encodeURIComponent(r.slice(c+1))))}else t.toJoin=r;return n===s.length-1&&"string"==typeof t.toJoin&&o(t.toJoin),t},{result:[],toJoin:null}).result.map(function(t){var r=n(t.split("="),2),e=r[0],o=r[1];return[e,l?o:decodeURIComponent(o)]});switch(void 0===f?"array":f){case"string":return p.length?"?".concat(p.map(function(t){var r=n(t,2),e=r[0],o=r[1];return"".concat(e,"=").concat(o)}).join("&")):"";case"object":return p.reduce(function(t,e){var o,c,a=n(e,2),i=a[0],u=a[1];return o=function(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{},o=Object.keys(e);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(e).filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.forEach(function(n){r(t,n,e[n])})}return t}({},t),c=null!=(c=r({},i,u))?c:{},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(c)):(function(t,r){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(t);n.push.apply(n,e)}return n})(Object(c)).forEach(function(t){Object.defineProperty(o,t,Object.getOwnPropertyDescriptor(c,t))}),o},{});default:return p.map(function(t){var r=n(t,2),e=r[0],o=r[1];return"".concat(e,"=").concat(o)})}}}],function(t,r){for(var n=0;n<r.length;n++){var e=r[n];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(t,e.key,e)}}(o.prototype,t),o}();export default o;
@@ -1,3 +1 @@
1
- import jwt from "jsonwebtoken";
2
-
3
- export default { jwt };
1
+ import o from"jsonwebtoken";export default{jwt:o};