bx-rest 0.4.17 → 0.5.1

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 (455) hide show
  1. package/README.md +15 -26
  2. package/consts/part-name-methods.d.ts +98 -98
  3. package/consts/time.d.ts +3 -3
  4. package/esm2022/bx-rest.mjs +4 -4
  5. package/esm2022/consts/part-name-methods.mjs +99 -99
  6. package/esm2022/consts/time.mjs +3 -3
  7. package/esm2022/functions/mapResult.mjs +10 -10
  8. package/esm2022/map/app.mjs +18 -18
  9. package/esm2022/map/base.mjs +13 -13
  10. package/esm2022/map/calendar/event.mjs +54 -54
  11. package/esm2022/map/calendar.mjs +17 -17
  12. package/esm2022/map/department.mjs +34 -34
  13. package/esm2022/map/disk/attachedObject.mjs +26 -26
  14. package/esm2022/map/disk/base.mjs +77 -77
  15. package/esm2022/map/disk/file.mjs +19 -19
  16. package/esm2022/map/disk/folder.mjs +16 -16
  17. package/esm2022/map/disk/storage.mjs +19 -19
  18. package/esm2022/map/lists/element.mjs +23 -23
  19. package/esm2022/map/lists/field.mjs +15 -15
  20. package/esm2022/map/lists.mjs +74 -75
  21. package/esm2022/map/log/blogpost.mjs +82 -82
  22. package/esm2022/map/log.mjs +17 -17
  23. package/esm2022/map/rest.mjs +16 -16
  24. package/esm2022/map/server.mjs +16 -16
  25. package/esm2022/map/sonet_group.mjs +33 -33
  26. package/esm2022/map/task/commentitem.mjs +54 -54
  27. package/esm2022/map/task/elapseditem.mjs +33 -34
  28. package/esm2022/map/task/item/userfield.mjs +37 -37
  29. package/esm2022/map/task/planner.mjs +16 -16
  30. package/esm2022/map/task/stages.mjs +20 -20
  31. package/esm2022/map/task.mjs +21 -21
  32. package/esm2022/map/tasks/task/result.mjs +25 -25
  33. package/esm2022/map/tasks/task.mjs +145 -146
  34. package/esm2022/map/tasks.mjs +17 -17
  35. package/esm2022/map/timeman.mjs +37 -37
  36. package/esm2022/map/user.mjs +95 -99
  37. package/esm2022/map.mjs +33 -33
  38. package/esm2022/provide.mjs +14 -0
  39. package/esm2022/public-api.mjs +17 -13
  40. package/esm2022/request/app.mjs +24 -24
  41. package/esm2022/request/bizproc/activity.mjs +12 -12
  42. package/esm2022/request/bizproc/event.mjs +12 -12
  43. package/esm2022/request/bizproc/robot.mjs +12 -12
  44. package/esm2022/request/bizproc/task.mjs +12 -12
  45. package/esm2022/request/bizproc/workflow/instance.mjs +12 -12
  46. package/esm2022/request/bizproc/workflow/template.mjs +13 -13
  47. package/esm2022/request/bizproc/workflow.mjs +28 -26
  48. package/esm2022/request/bizproc.mjs +25 -25
  49. package/esm2022/request/calendar/event.mjs +22 -22
  50. package/esm2022/request/calendar.mjs +17 -17
  51. package/esm2022/request/department.mjs +36 -36
  52. package/esm2022/request/disk/attachedObject.mjs +22 -22
  53. package/esm2022/request/disk/file.mjs +25 -25
  54. package/esm2022/request/disk/folder.mjs +114 -114
  55. package/esm2022/request/disk/storage.mjs +45 -45
  56. package/esm2022/request/disk.mjs +21 -21
  57. package/esm2022/request/im/chat.mjs +22 -22
  58. package/esm2022/request/im.mjs +17 -17
  59. package/esm2022/request/lists/element.mjs +25 -25
  60. package/esm2022/request/lists/field.mjs +22 -22
  61. package/esm2022/request/lists.mjs +29 -26
  62. package/esm2022/request/log/blogcomment.mjs +12 -12
  63. package/esm2022/request/log/blogpost.mjs +25 -25
  64. package/esm2022/request/log.mjs +19 -19
  65. package/esm2022/request/server.mjs +22 -22
  66. package/esm2022/request/sonet_group.mjs +32 -32
  67. package/esm2022/request/task/commentitem.mjs +42 -42
  68. package/esm2022/request/task/elapseditem.mjs +44 -44
  69. package/esm2022/request/task/item/userfield.mjs +22 -22
  70. package/esm2022/request/task/item.mjs +17 -17
  71. package/esm2022/request/task/planner.mjs +21 -21
  72. package/esm2022/request/task.mjs +23 -23
  73. package/esm2022/request/tasks/task/result.mjs +28 -28
  74. package/esm2022/request/tasks/task.mjs +110 -110
  75. package/esm2022/request/tasks.mjs +17 -17
  76. package/esm2022/request/timeman.mjs +22 -22
  77. package/esm2022/request/user/userfield.mjs +22 -22
  78. package/esm2022/request/user.mjs +42 -42
  79. package/esm2022/request-navvy/app.mjs +27 -27
  80. package/esm2022/request-navvy/bizproc/workflow.mjs +25 -22
  81. package/esm2022/request-navvy/bizproc.mjs +62 -61
  82. package/esm2022/request-navvy/calendar/event.mjs +24 -24
  83. package/esm2022/request-navvy/calendar.mjs +52 -52
  84. package/esm2022/request-navvy/department.mjs +34 -34
  85. package/esm2022/request-navvy/disk/attachedObject.mjs +24 -24
  86. package/esm2022/request-navvy/disk/file.mjs +27 -27
  87. package/esm2022/request-navvy/disk/folder.mjs +116 -116
  88. package/esm2022/request-navvy/disk/interlayer/storage.mjs +60 -60
  89. package/esm2022/request-navvy/disk/operation.mjs +84 -84
  90. package/esm2022/request-navvy/disk/storage.mjs +51 -51
  91. package/esm2022/request-navvy/disk.mjs +23 -23
  92. package/esm2022/request-navvy/im/chat.mjs +22 -22
  93. package/esm2022/request-navvy/im.mjs +17 -17
  94. package/esm2022/request-navvy/lists/element.mjs +27 -27
  95. package/esm2022/request-navvy/lists/field.mjs +24 -24
  96. package/esm2022/request-navvy/lists.mjs +28 -28
  97. package/esm2022/request-navvy/log/blogcomment.mjs +18 -18
  98. package/esm2022/request-navvy/log/blogpost.mjs +29 -38
  99. package/esm2022/request-navvy/log.mjs +19 -19
  100. package/esm2022/request-navvy/server.mjs +24 -24
  101. package/esm2022/request-navvy/sonet_group.mjs +24 -24
  102. package/esm2022/request-navvy/task/commentitem.mjs +52 -52
  103. package/esm2022/request-navvy/task/delegate/elapseditem.mjs +37 -37
  104. package/esm2022/request-navvy/task/elapseditem.mjs +211 -211
  105. package/esm2022/request-navvy/task/item/userfield.mjs +24 -24
  106. package/esm2022/request-navvy/task/item.mjs +17 -17
  107. package/esm2022/request-navvy/task/operation/elapseditem.mjs +172 -159
  108. package/esm2022/request-navvy/task/planner.mjs +24 -24
  109. package/esm2022/request-navvy/task.mjs +23 -23
  110. package/esm2022/request-navvy/tasks/task/result.mjs +30 -30
  111. package/esm2022/request-navvy/tasks/task.mjs +128 -128
  112. package/esm2022/request-navvy/tasks.mjs +17 -17
  113. package/esm2022/request-navvy/timeman.mjs +24 -24
  114. package/esm2022/request-navvy/user/userfield.mjs +22 -22
  115. package/esm2022/request-navvy/user.mjs +161 -161
  116. package/esm2022/rest/base.mjs +51 -0
  117. package/esm2022/rest/map.mjs +17 -0
  118. package/esm2022/rest/navvy.mjs +62 -0
  119. package/esm2022/services/Navvy/NavvyAlternativePaginationNavigation.mjs +57 -57
  120. package/esm2022/services/Navvy/NavvyPagNav.mjs +40 -45
  121. package/esm2022/services/Navvy/NavvyPagNavTasks.mjs +40 -40
  122. package/esm2022/services/Navvy/NavvyPagNavWithUselessKey.mjs +58 -58
  123. package/esm2022/services/Navvy/NavvySimple.mjs +15 -15
  124. package/esm2022/services/Navvy/NavvySupport.mjs +16 -17
  125. package/esm2022/services/Navvy/extends/NavvyPagNavBase.mjs +30 -30
  126. package/esm2022/services/base.mjs +121 -173
  127. package/esm2022/services/http/HttpBX.mjs +121 -121
  128. package/esm2022/services/http/HttpData.mjs +116 -118
  129. package/esm2022/services/http/base/base.mjs +14 -27
  130. package/esm2022/services/http/http.mjs +61 -61
  131. package/esm2022/services/http/httpNavvy.mjs +24 -0
  132. package/esm2022/services/http/sessionKey.mjs +125 -216
  133. package/esm2022/services/navvy.mjs +29 -29
  134. package/esm2022/services/vanilla/localStorage.mjs +35 -35
  135. package/esm2022/services/vanilla/sessionStorage.mjs +23 -23
  136. package/esm2022/services/vanilla//321/201ookies.mjs +43 -43
  137. package/esm2022/settings.mjs +14 -15
  138. package/esm2022/typification/auth/save.mjs +2 -2
  139. package/esm2022/typification/base/all-key-free.mjs +1 -1
  140. package/esm2022/typification/base/answers.mjs +438 -0
  141. package/esm2022/typification/base/methods.mjs +664 -656
  142. package/esm2022/typification/base/modyfy.mjs +2 -2
  143. package/esm2022/typification/base/params.mjs +525 -0
  144. package/esm2022/typification/base/upper-case-keys.mjs +1 -1
  145. package/esm2022/typification/base/workpiece/methods-list.mjs +2 -2
  146. package/esm2022/typification/base/workpiece/methods.mjs +2 -2
  147. package/esm2022/typification/rest/app/info.mjs +1 -1
  148. package/esm2022/typification/rest/base/ApiPaginationBX.mjs +1 -1
  149. package/esm2022/typification/rest/base/OrderOptions.mjs +1 -1
  150. package/esm2022/typification/rest/base/YesNo.mjs +1 -1
  151. package/esm2022/typification/rest/base/answer.mjs +1 -1
  152. package/esm2022/typification/rest/base/filterGenerator.mjs +1 -1
  153. package/esm2022/typification/rest/base/sort.mjs +1 -1
  154. package/esm2022/typification/rest/batch/batchRequestParam.mjs +1 -1
  155. package/esm2022/typification/rest/batch.mjs +1 -1
  156. package/esm2022/typification/rest/bizproc/workflow/start.mjs +1 -1
  157. package/esm2022/typification/rest/calendar/base/type.mjs +1 -1
  158. package/esm2022/typification/rest/calendar/get/answer.mjs +1 -1
  159. package/esm2022/typification/rest/calendar/get/param.mjs +1 -1
  160. package/esm2022/typification/rest/department/add.mjs +1 -1
  161. package/esm2022/typification/rest/department/del.mjs +1 -1
  162. package/esm2022/typification/rest/department/department.mjs +1 -1
  163. package/esm2022/typification/rest/department/get.mjs +1 -1
  164. package/esm2022/typification/rest/department/update.mjs +1 -1
  165. package/esm2022/typification/rest/disk/AttachedObject.mjs +1 -1
  166. package/esm2022/typification/rest/disk/file.mjs +1 -1
  167. package/esm2022/typification/rest/disk/folder/addSubFolder.mjs +1 -1
  168. package/esm2022/typification/rest/disk/folder/copyTo.mjs +1 -1
  169. package/esm2022/typification/rest/disk/folder/getFields.mjs +1 -1
  170. package/esm2022/typification/rest/disk/folder/moveTo.mjs +1 -1
  171. package/esm2022/typification/rest/disk/folder/rename.mjs +1 -1
  172. package/esm2022/typification/rest/disk/folder/uploadFile.mjs +1 -1
  173. package/esm2022/typification/rest/disk/folder.mjs +1 -1
  174. package/esm2022/typification/rest/disk/map.mjs +1 -1
  175. package/esm2022/typification/rest/disk/storage/getchildren.mjs +1 -1
  176. package/esm2022/typification/rest/disk/storage/uploadfile.mjs +1 -1
  177. package/esm2022/typification/rest/im/chat/add.mjs +1 -1
  178. package/esm2022/typification/rest/lists/element/add.mjs +1 -1
  179. package/esm2022/typification/rest/lists/element/get.mjs +1 -1
  180. package/esm2022/typification/rest/lists/field/get.mjs +1 -1
  181. package/esm2022/typification/rest/lists/get.mjs +2 -2
  182. package/esm2022/typification/rest/log/blogpost/add.mjs +2 -2
  183. package/esm2022/typification/rest/log/blogpost/essence.mjs +1 -1
  184. package/esm2022/typification/rest/log/blogpost/get.mjs +2 -2
  185. package/esm2022/typification/rest/profile.mjs +1 -1
  186. package/esm2022/typification/rest/settings.mjs +1 -1
  187. package/esm2022/typification/rest/sonet_group/base.mjs +1 -1
  188. package/esm2022/typification/rest/sonet_group/get.mjs +2 -2
  189. package/esm2022/typification/rest/support/param.mjs +1 -1
  190. package/esm2022/typification/rest/task/access/getaccess.mjs +1 -1
  191. package/esm2022/typification/rest/task/commentitem/add.mjs +1 -1
  192. package/esm2022/typification/rest/task/commentitem/commentitem.mjs +1 -1
  193. package/esm2022/typification/rest/task/commentitem/delete.mjs +1 -1
  194. package/esm2022/typification/rest/task/commentitem/get.mjs +1 -1
  195. package/esm2022/typification/rest/task/commentitem/getlist.mjs +1 -1
  196. package/esm2022/typification/rest/task/commentitem/update.mjs +1 -1
  197. package/esm2022/typification/rest/task/elapseditem/add.mjs +1 -1
  198. package/esm2022/typification/rest/task/elapseditem/del.mjs +1 -1
  199. package/esm2022/typification/rest/task/elapseditem/get.mjs +1 -1
  200. package/esm2022/typification/rest/task/elapseditem/isActionAllowedParam.mjs +1 -1
  201. package/esm2022/typification/rest/task/elapseditem/item.mjs +1 -1
  202. package/esm2022/typification/rest/task/elapseditem/update.mjs +1 -1
  203. package/esm2022/typification/rest/task/item/userfield/getlist.mjs +2 -2
  204. package/esm2022/typification/rest/task/stages/stage.mjs +1 -1
  205. package/esm2022/typification/rest/tasks/base/fieldsName.mjs +2 -2
  206. package/esm2022/typification/rest/tasks/base/filterGenerator.mjs +1 -1
  207. package/esm2022/typification/rest/tasks/base/people.mjs +1 -1
  208. package/esm2022/typification/rest/tasks/result/list.mjs +1 -1
  209. package/esm2022/typification/rest/tasks/task/add.mjs +1 -1
  210. package/esm2022/typification/rest/tasks/task/approve.mjs +1 -1
  211. package/esm2022/typification/rest/tasks/task/base.mjs +1 -1
  212. package/esm2022/typification/rest/tasks/task/complete.mjs +1 -1
  213. package/esm2022/typification/rest/tasks/task/defer.mjs +1 -1
  214. package/esm2022/typification/rest/tasks/task/get.mjs +2 -2
  215. package/esm2022/typification/rest/tasks/task/getFields.mjs +1 -1
  216. package/esm2022/typification/rest/tasks/task/list.mjs +2 -2
  217. package/esm2022/typification/rest/tasks/task/result/result.mjs +1 -1
  218. package/esm2022/typification/rest/tasks/task/update.mjs +1 -1
  219. package/esm2022/typification/rest/tasks/task.mjs +1 -1
  220. package/esm2022/typification/rest/timeman/status.mjs +1 -1
  221. package/esm2022/typification/rest/user/get.mjs +2 -2
  222. package/esm2022/typification/rest/user/search.mjs +1 -1
  223. package/esm2022/typification/rest/user/user.mjs +1 -1
  224. package/esm2022/typification/rest/user/userfield/list.mjs +1 -1
  225. package/esm2022/typification/settings.mjs +2 -2
  226. package/fesm2022/bx-rest.mjs +5274 -5399
  227. package/fesm2022/bx-rest.mjs.map +1 -1
  228. package/functions/mapResult.d.ts +5 -5
  229. package/index.d.ts +5 -5
  230. package/map/app.d.ts +8 -8
  231. package/map/base.d.ts +6 -6
  232. package/map/calendar/event.d.ts +9 -9
  233. package/map/calendar.d.ts +7 -8
  234. package/map/department.d.ts +7 -7
  235. package/map/disk/attachedObject.d.ts +9 -9
  236. package/map/disk/base.d.ts +13 -13
  237. package/map/disk/file.d.ts +9 -9
  238. package/map/disk/folder.d.ts +9 -9
  239. package/map/disk/storage.d.ts +10 -10
  240. package/map/lists/element.d.ts +8 -8
  241. package/map/lists/field.d.ts +9 -9
  242. package/map/lists.d.ts +13 -15
  243. package/map/log/blogpost.d.ts +10 -10
  244. package/map/log.d.ts +7 -8
  245. package/map/rest.d.ts +8 -8
  246. package/map/server.d.ts +7 -7
  247. package/map/sonet_group.d.ts +9 -9
  248. package/map/task/commentitem.d.ts +10 -10
  249. package/map/task/elapseditem.d.ts +10 -10
  250. package/map/task/item/userfield.d.ts +8 -8
  251. package/map/task/planner.d.ts +7 -7
  252. package/map/task/stages.d.ts +8 -8
  253. package/map/task.d.ts +11 -12
  254. package/map/tasks/task/result.d.ts +10 -10
  255. package/map/tasks/task.d.ts +22 -24
  256. package/map/tasks.d.ts +7 -8
  257. package/map/timeman.d.ts +7 -7
  258. package/map/user.d.ts +14 -16
  259. package/map.d.ts +23 -24
  260. package/package.json +5 -5
  261. package/provide.d.ts +3 -0
  262. package/public-api.d.ts +16 -12
  263. package/request/app.d.ts +11 -13
  264. package/request/bizproc/activity.d.ts +5 -5
  265. package/request/bizproc/event.d.ts +5 -5
  266. package/request/bizproc/robot.d.ts +5 -5
  267. package/request/bizproc/task.d.ts +5 -5
  268. package/request/bizproc/workflow/instance.d.ts +5 -5
  269. package/request/bizproc/workflow/template.d.ts +5 -5
  270. package/request/bizproc/workflow.d.ts +16 -15
  271. package/request/bizproc.d.ts +15 -16
  272. package/request/calendar/event.d.ts +10 -12
  273. package/request/calendar.d.ts +7 -8
  274. package/request/department.d.ts +21 -23
  275. package/request/disk/attachedObject.d.ts +9 -11
  276. package/request/disk/file.d.ts +10 -12
  277. package/request/disk/folder.d.ts +86 -88
  278. package/request/disk/storage.d.ts +30 -32
  279. package/request/disk.d.ts +11 -12
  280. package/request/im/chat.d.ts +9 -11
  281. package/request/im.d.ts +7 -8
  282. package/request/lists/element.d.ts +11 -13
  283. package/request/lists/field.d.ts +9 -11
  284. package/request/lists.d.ts +13 -15
  285. package/request/log/blogcomment.d.ts +5 -5
  286. package/request/log/blogpost.d.ts +11 -13
  287. package/request/log.d.ts +9 -10
  288. package/request/server.d.ts +8 -10
  289. package/request/sonet_group.d.ts +9 -11
  290. package/request/task/commentitem.d.ts +26 -28
  291. package/request/task/elapseditem.d.ts +28 -30
  292. package/request/task/item/userfield.d.ts +9 -11
  293. package/request/task/item.d.ts +7 -8
  294. package/request/task/planner.d.ts +7 -9
  295. package/request/task.d.ts +13 -14
  296. package/request/tasks/task/result.d.ts +12 -14
  297. package/request/tasks/task.d.ts +30 -32
  298. package/request/tasks.d.ts +7 -8
  299. package/request/timeman.d.ts +9 -11
  300. package/request/user/userfield.d.ts +9 -11
  301. package/request/user.d.ts +19 -21
  302. package/request-navvy/app.d.ts +14 -16
  303. package/request-navvy/bizproc/workflow.d.ts +13 -11
  304. package/request-navvy/bizproc.d.ts +24 -25
  305. package/request-navvy/calendar/event.d.ts +12 -13
  306. package/request-navvy/calendar.d.ts +7 -8
  307. package/request-navvy/department.d.ts +18 -19
  308. package/request-navvy/disk/attachedObject.d.ts +12 -13
  309. package/request-navvy/disk/file.d.ts +13 -14
  310. package/request-navvy/disk/folder.d.ts +88 -89
  311. package/request-navvy/disk/interlayer/storage.d.ts +19 -21
  312. package/request-navvy/disk/operation.d.ts +21 -23
  313. package/request-navvy/disk/storage.d.ts +21 -22
  314. package/request-navvy/disk.d.ts +13 -14
  315. package/request-navvy/im/chat.d.ts +10 -11
  316. package/request-navvy/im.d.ts +7 -8
  317. package/request-navvy/lists/element.d.ts +14 -15
  318. package/request-navvy/lists/field.d.ts +12 -13
  319. package/request-navvy/lists.d.ts +17 -18
  320. package/request-navvy/log/blogcomment.d.ts +8 -8
  321. package/request-navvy/log/blogpost.d.ts +15 -22
  322. package/request-navvy/log.d.ts +9 -10
  323. package/request-navvy/server.d.ts +11 -13
  324. package/request-navvy/sonet_group.d.ts +12 -13
  325. package/request-navvy/task/commentitem.d.ts +20 -22
  326. package/request-navvy/task/delegate/elapseditem.d.ts +12 -13
  327. package/request-navvy/task/elapseditem.d.ts +39 -41
  328. package/request-navvy/task/item/userfield.d.ts +12 -14
  329. package/request-navvy/task/item.d.ts +7 -8
  330. package/request-navvy/task/operation/elapseditem.d.ts +35 -27
  331. package/request-navvy/task/planner.d.ts +11 -12
  332. package/request-navvy/task.d.ts +13 -14
  333. package/request-navvy/tasks/task/result.d.ts +15 -16
  334. package/request-navvy/tasks/task.d.ts +30 -31
  335. package/request-navvy/tasks.d.ts +7 -8
  336. package/request-navvy/timeman.d.ts +13 -14
  337. package/request-navvy/user/userfield.d.ts +9 -10
  338. package/request-navvy/user.d.ts +27 -28
  339. package/rest/base.d.ts +38 -0
  340. package/rest/map.d.ts +7 -0
  341. package/rest/navvy.d.ts +43 -0
  342. package/services/Navvy/NavvyAlternativePaginationNavigation.d.ts +14 -14
  343. package/services/Navvy/NavvyPagNav.d.ts +8 -8
  344. package/services/Navvy/NavvyPagNavTasks.d.ts +10 -10
  345. package/services/Navvy/NavvyPagNavWithUselessKey.d.ts +8 -8
  346. package/services/Navvy/NavvySimple.d.ts +10 -10
  347. package/services/Navvy/NavvySupport.d.ts +12 -12
  348. package/services/Navvy/extends/NavvyPagNavBase.d.ts +16 -16
  349. package/services/base.d.ts +22 -34
  350. package/services/http/HttpBX.d.ts +37 -38
  351. package/services/http/HttpData.d.ts +11 -11
  352. package/services/http/base/base.d.ts +10 -15
  353. package/services/http/http.d.ts +14 -15
  354. package/services/http/httpNavvy.d.ts +13 -0
  355. package/services/http/sessionKey.d.ts +23 -27
  356. package/services/navvy.d.ts +27 -27
  357. package/services/vanilla/localStorage.d.ts +10 -10
  358. package/services/vanilla/sessionStorage.d.ts +7 -7
  359. package/services/vanilla//321/201ookies.d.ts +9 -9
  360. package/settings.d.ts +4 -12
  361. package/typification/auth/save.d.ts +14 -14
  362. package/typification/base/all-key-free.d.ts +3 -3
  363. package/typification/base/answers.d.ts +12 -0
  364. package/typification/base/methods.d.ts +2 -2
  365. package/typification/base/modyfy.d.ts +9 -9
  366. package/typification/base/params.d.ts +17 -0
  367. package/typification/base/upper-case-keys.d.ts +6 -6
  368. package/typification/base/workpiece/methods-list.d.ts +219 -209
  369. package/typification/base/workpiece/methods.d.ts +19 -19
  370. package/typification/rest/app/info.d.ts +17 -17
  371. package/typification/rest/base/ApiPaginationBX.d.ts +11 -11
  372. package/typification/rest/base/OrderOptions.d.ts +1 -1
  373. package/typification/rest/base/YesNo.d.ts +1 -1
  374. package/typification/rest/base/answer.d.ts +19 -19
  375. package/typification/rest/base/filterGenerator.d.ts +5 -5
  376. package/typification/rest/base/sort.d.ts +1 -1
  377. package/typification/rest/batch/batchRequestParam.d.ts +15 -15
  378. package/typification/rest/batch.d.ts +40 -40
  379. package/typification/rest/bizproc/workflow/start.d.ts +5 -5
  380. package/typification/rest/calendar/base/type.d.ts +1 -1
  381. package/typification/rest/calendar/get/answer.d.ts +126 -126
  382. package/typification/rest/calendar/get/param.d.ts +8 -8
  383. package/typification/rest/department/add.d.ts +6 -6
  384. package/typification/rest/department/del.d.ts +3 -3
  385. package/typification/rest/department/department.d.ts +14 -14
  386. package/typification/rest/department/get.d.ts +10 -10
  387. package/typification/rest/department/update.d.ts +7 -7
  388. package/typification/rest/disk/AttachedObject.d.ts +26 -26
  389. package/typification/rest/disk/file.d.ts +20 -20
  390. package/typification/rest/disk/folder/addSubFolder.d.ts +6 -6
  391. package/typification/rest/disk/folder/copyTo.d.ts +4 -4
  392. package/typification/rest/disk/folder/getFields.d.ts +9 -9
  393. package/typification/rest/disk/folder/moveTo.d.ts +4 -4
  394. package/typification/rest/disk/folder/rename.d.ts +4 -4
  395. package/typification/rest/disk/folder/uploadFile.d.ts +13 -13
  396. package/typification/rest/disk/folder.d.ts +62 -62
  397. package/typification/rest/disk/map.d.ts +6 -6
  398. package/typification/rest/disk/storage/getchildren.d.ts +4 -4
  399. package/typification/rest/disk/storage/uploadfile.d.ts +9 -9
  400. package/typification/rest/im/chat/add.d.ts +12 -12
  401. package/typification/rest/lists/element/add.d.ts +9 -9
  402. package/typification/rest/lists/element/get.d.ts +37 -37
  403. package/typification/rest/lists/field/get.d.ts +37 -37
  404. package/typification/rest/lists/get.d.ts +95 -95
  405. package/typification/rest/log/blogpost/add.d.ts +12 -12
  406. package/typification/rest/log/blogpost/essence.d.ts +51 -51
  407. package/typification/rest/log/blogpost/get.d.ts +71 -71
  408. package/typification/rest/profile.d.ts +16 -16
  409. package/typification/rest/settings.d.ts +6 -6
  410. package/typification/rest/sonet_group/base.d.ts +8 -8
  411. package/typification/rest/sonet_group/get.d.ts +35 -35
  412. package/typification/rest/support/param.d.ts +5 -5
  413. package/typification/rest/task/access/getaccess.d.ts +40 -40
  414. package/typification/rest/task/commentitem/add.d.ts +18 -18
  415. package/typification/rest/task/commentitem/commentitem.d.ts +36 -36
  416. package/typification/rest/task/commentitem/delete.d.ts +4 -4
  417. package/typification/rest/task/commentitem/get.d.ts +4 -4
  418. package/typification/rest/task/commentitem/getlist.d.ts +20 -20
  419. package/typification/rest/task/commentitem/update.d.ts +4 -4
  420. package/typification/rest/task/elapseditem/add.d.ts +10 -10
  421. package/typification/rest/task/elapseditem/del.d.ts +4 -4
  422. package/typification/rest/task/elapseditem/get.d.ts +23 -23
  423. package/typification/rest/task/elapseditem/isActionAllowedParam.d.ts +5 -5
  424. package/typification/rest/task/elapseditem/item.d.ts +25 -25
  425. package/typification/rest/task/elapseditem/update.d.ts +10 -10
  426. package/typification/rest/task/item/userfield/getlist.d.ts +91 -91
  427. package/typification/rest/task/stages/stage.d.ts +19 -19
  428. package/typification/rest/tasks/base/fieldsName.d.ts +19 -19
  429. package/typification/rest/tasks/base/filterGenerator.d.ts +6 -6
  430. package/typification/rest/tasks/base/people.d.ts +12 -12
  431. package/typification/rest/tasks/result/list.d.ts +4 -4
  432. package/typification/rest/tasks/task/add.d.ts +254 -254
  433. package/typification/rest/tasks/task/approve.d.ts +144 -144
  434. package/typification/rest/tasks/task/base.d.ts +3 -3
  435. package/typification/rest/tasks/task/complete.d.ts +6 -6
  436. package/typification/rest/tasks/task/defer.d.ts +6 -6
  437. package/typification/rest/tasks/task/get.d.ts +52 -52
  438. package/typification/rest/tasks/task/getFields.d.ts +19 -19
  439. package/typification/rest/tasks/task/list.d.ts +119 -119
  440. package/typification/rest/tasks/task/result/result.d.ts +23 -23
  441. package/typification/rest/tasks/task/update.d.ts +47 -47
  442. package/typification/rest/tasks/task.d.ts +121 -121
  443. package/typification/rest/timeman/status.d.ts +28 -28
  444. package/typification/rest/user/get.d.ts +74 -74
  445. package/typification/rest/user/search.d.ts +66 -66
  446. package/typification/rest/user/user.d.ts +62 -62
  447. package/typification/rest/user/userfield/list.d.ts +56 -56
  448. package/typification/settings.d.ts +11 -10
  449. package/esm2022/index.mjs +0 -13
  450. package/esm2022/rest.mjs +0 -123
  451. package/esm2022/typification/rest/api-lib.mjs +0 -21
  452. package/esm2022/typification/rest/lib.mjs +0 -2
  453. package/rest.d.ts +0 -89
  454. package/typification/rest/api-lib.d.ts +0 -9
  455. package/typification/rest/lib.d.ts +0 -18
@@ -1,121 +1,121 @@
1
- import { throwError, mergeMap, forkJoin } from 'rxjs';
2
- import { Injectable } from '@angular/core';
3
- import clone from 'just-clone';
4
- import { HttpServices } from './http';
5
- import { HttpHeaders } from '@angular/common/http';
6
- import flatten from 'just-flatten-it';
7
- import { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult';
8
- import * as i0 from "@angular/core";
9
- export class HttpBXServices extends HttpServices {
10
- /**
11
- * Это пиздец а не метод
12
- * TODO: Удалить данный метод после реализации его в разделе Navvy
13
- * @param param
14
- */
15
- branch(param) {
16
- let prepareParam = Object.entries(this.prepareBatch(param));
17
- const size = 50; // больше не отдаст
18
- let subarray = []; //массив в который будет выведен результат.
19
- for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {
20
- subarray[i] = prepareParam.slice((i * size), (i * size) + size);
21
- }
22
- return forkJoin(subarray.map(i => {
23
- return this.httpPost('batch.json', {
24
- halt: 0,
25
- cmd: Object.assign({}, ...i.map(x => {
26
- return { [x[0]]: x[1] };
27
- }))
28
- });
29
- }));
30
- }
31
- prepareBatch(param) {
32
- let res = Object.keys(param).reduce((obj, key) => {
33
- obj[key] = '';
34
- return obj;
35
- }, {});
36
- for (let key in param) {
37
- if (typeof key === 'string' || typeof key === 'number' && param[key].param) {
38
- res[key] = param[key].name + '?' + this.getHttpParamsGet(param[key].param).toString();
39
- }
40
- }
41
- return res;
42
- }
43
- mapBranchResult(res) {
44
- return Object.assign([], ...res.map(i => (instanceOfiBXRestAnswerSuccess(i) && instanceOfiBXRestAnswerSuccess(i.result)) ? i.result.result : undefined));
45
- }
46
- mapBranchResultWithoutKey(res) {
47
- return flatten(Object.assign([], ...res.map(i => (instanceOfiBXRestAnswerSuccess(i) && instanceOfiBXRestAnswerSuccess(i.result))
48
- ? i.result.result
49
- : undefined)));
50
- }
51
- /**
52
- * Основной метод для запросов
53
- *
54
- * @param name
55
- * @param params
56
- */
57
- post(name, params = {}) {
58
- return this.httpPost(this.getNameMethod(name), params);
59
- }
60
- /**
61
- * Второстепенный метод для запросов. По возможности лучше не использовать
62
- *
63
- * @param name
64
- * @param params
65
- */
66
- get(name, params = {}) {
67
- return this.httpGet(this.getNameMethod(name), params);
68
- }
69
- httpPost(url, params = {}) {
70
- let auth = this.session.getAuthParams();
71
- if (auth) {
72
- const paramsClone = clone(params);
73
- paramsClone[this.session.getKeyAuth()] = auth;
74
- return this.session.getBaseUrl().pipe(mergeMap(v => {
75
- if (v) {
76
- // это более быстрый способ запроса чем отправка Form Data
77
- return this.http.post(this.prepareBaseAddress(v) + url, JSON.stringify(paramsClone), { headers: new HttpHeaders().set('Content-Type', 'application/json') });
78
- }
79
- return throwError(() => 'get base url error');
80
- }));
81
- }
82
- else {
83
- return throwError(() => 'auth not get');
84
- }
85
- }
86
- httpGet(url, params = {}) {
87
- let auth = this.session.getAuthParams();
88
- if (auth) {
89
- if (params === null) {
90
- params = {};
91
- }
92
- const paramsClone = clone(params);
93
- paramsClone[this.session.getKeyAuth()] = auth;
94
- let options = {
95
- params: this.getHttpParamsGet(paramsClone)
96
- // params: JSON.stringify(paramsClone)
97
- };
98
- return this.session.getBaseUrl().pipe(mergeMap(v => {
99
- if (v) {
100
- return this.http.get(this.prepareBaseAddress(v) + url, options);
101
- }
102
- return throwError(() => 'get base url error');
103
- }));
104
- }
105
- else {
106
- return throwError(() => 'auth not get');
107
- }
108
- }
109
- getNameMethod(arr) {
110
- return arr.join('.');
111
- }
112
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: HttpBXServices, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
113
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: HttpBXServices, providedIn: 'root' }); }
114
- }
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: HttpBXServices, decorators: [{
116
- type: Injectable,
117
- args: [{
118
- providedIn: 'root'
119
- }]
120
- }] });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEJYLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvaHR0cC9IdHRwQlgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFRckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2xELE9BQU8sT0FBTyxNQUFNLGlCQUFpQixDQUFBO0FBQ3JDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDJCQUEyQixDQUFBOztBQUsxRSxNQUFNLE9BQU8sY0FBZSxTQUFRLFlBQVk7SUFFOUM7Ozs7T0FJRztJQUNILE1BQU0sQ0FBTyxLQUF5RDtRQUNwRSxJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFTLElBQUksQ0FBQyxZQUFZLENBQUksS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUN0RSxNQUFNLElBQUksR0FBRyxFQUFFLENBQUEsQ0FBQyxtQkFBbUI7UUFDbkMsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFBLENBQUMsMkNBQTJDO1FBQzdELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDOUQsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcs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LE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQTtZQUM3QyxJQUFJLE9BQU8sR0FBRztnQkFDWixNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztnQkFDMUMsc0NBQXNDO2FBQ3ZDLENBQUE7WUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUNuQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLEVBQUU7b0JBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO2lCQUNuRTtnQkFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1lBQy9DLENBQUMsQ0FBQyxDQUNILENBQUE7U0FDRjthQUFNO1lBQ0wsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUE7U0FDeEM7SUFFSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQWE7UUFDekIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3RCLENBQUM7K0dBNUlVLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciwgbWVyZ2VNYXAsIGZvcmtKb2luIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJ1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZXMgfSBmcm9tICcuL2h0dHAnXHJcbmltcG9ydCB7XHJcbiAgaUJhdGNoUmVxdWVzdEFuc3dlciwgaUJhdGNoUmVxdWVzdFBhcmFtLFxyXG4gIGlCYXRjaFJlcXVlc3RQYXJhbUFycixcclxuICBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwLFxyXG4gIGtleUJhdGNoLFxyXG59IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2JhdGNoL2JhdGNoUmVxdWVzdFBhcmFtJ1xyXG5pbXBvcnQgeyBpQlhSZXN0QW5zd2VyIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmFzZS9hbnN3ZXInXHJcbmltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2p1c3QtZmxhdHRlbi1pdCdcclxuaW1wb3J0IHsgaW5zdGFuY2VPZmlCWFJlc3RBbnN3ZXJTdWNjZXNzIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL21hcFJlc3VsdCdcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEh0dHBCWFNlcnZpY2VzIGV4dGVuZHMgSHR0cFNlcnZpY2VzIHtcclxuXHJcbiAgLyoqXHJcbiAgICog0K3RgtC+INC/0LjQt9C00LXRhiDQsCDQvdC1INC80LXRgtC+0LRcclxuICAgKiBUT0RPOiDQo9C00LDQu9C40YLRjCDQtNCw0L3QvdGL0Lkg0LzQtdGC0L7QtCDQv9C+0YHQu9C1INGA0LXQsNC70LjQt9Cw0YbQuNC4INC10LPQviDQsiDRgNCw0LfQtNC10LvQtSBOYXZ2eVxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGJyYW5jaDxULCBBPihwYXJhbTogaUJhdGNoUmVxdWVzdFBhcmFtQXJyPFQ+IHwgaUJhdGNoUmVxdWVzdFBhcmFtPFQ+W10pOiBPYnNlcnZhYmxlPGlCYXRjaFJlcXVlc3RBbnN3ZXI8QT5bXSB8IHVuZGVmaW5lZD4ge1xyXG4gICAgbGV0IHByZXBhcmVQYXJhbSA9IE9iamVjdC5lbnRyaWVzPHN0cmluZz4odGhpcy5wcmVwYXJlQmF0Y2g8VD4ocGFyYW0pKVxyXG4gICAgY29uc3Qgc2l6ZSA9IDUwIC8vINCx0L7Qu9GM0YjQtSDQvdC1INC+0YLQtNCw0YHRglxyXG4gICAgbGV0IHN1YmFycmF5ID0gW10gLy/QvNCw0YHRgdC40LIg0LIg0LrQvtGC0L7RgNGL0Lkg0LHRg9C00LXRgiDQstGL0LLQtdC00LXQvSDRgNC10LfRg9C70YzRgtCw0YIuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE1hdGguY2VpbChwcmVwYXJlUGFyYW0ubGVuZ3RoIC8gc2l6ZSk7IGkrKykge1xyXG4gICAgICBzdWJhcnJheVtpXSA9IHByZXBhcmVQYXJhbS5zbGljZSgoaSAqIHNpemUpLCAoaSAqIHNpemUpICsgc2l6ZSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ya0pvaW4oXHJcbiAgICAgIHN1YmFycmF5Lm1hcChpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwUG9zdCgnYmF0Y2guanNvbicsIHtcclxuICAgICAgICAgIGhhbHQ6IDAsXHJcbiAgICAgICAgICBjbWQ6IE9iamVjdC5hc3NpZ24oe30sIC4uLmkubWFwKHggPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1t4WzBdXTogeFsxXX1cclxuICAgICAgICAgIH0pKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pXHJcbiAgICApIGFzIE9ic2VydmFibGU8aUJhdGNoUmVxdWVzdEFuc3dlcjxBPltdPlxyXG4gIH1cclxuXHJcbiAgcHJlcGFyZUJhdGNoPFQ+KHBhcmFtOiBpQmF0Y2hSZXF1ZXN0UGFyYW1BcnI8VD4gfCBpQmF0Y2hSZXF1ZXN0UGFyYW08VD5bXSk6IGlCYXRjaFJlcXVlc3RQYXJhbUh0dHAge1xyXG4gICAgbGV0IHJlczogaUJhdGNoUmVxdWVzdFBhcmFtSHR0cCA9IE9iamVjdC5rZXlzKHBhcmFtKS5yZWR1Y2UoXHJcbiAgICAgIChvYmosIGtleSkgPT4ge1xyXG4gICAgICAgIG9ialtrZXldID0gJyc7XHJcbiAgICAgICAgcmV0dXJuIG9iajtcclxuICAgICAgfSxcclxuICAgICAge30gYXMgaUJhdGNoUmVxdWVzdFBhcmFtSHR0cFxyXG4gICAgKTtcclxuICAgIGZvciAobGV0IGtleSBpbiBwYXJhbSkge1xyXG4gICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGtleSA9PT0gJ251bWJlcicgJiYgcGFyYW1ba2V5XS5wYXJhbSkge1xyXG4gICAgICAgIHJlc1trZXldID0gcGFyYW1ba2V5XS5uYW1lICsgJz8nICsgdGhpcy5nZXRIdHRwUGFyYW1zR2V0KHBhcmFtW2tleV0ucGFyYW0pLnRvU3RyaW5nKClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc1xyXG4gIH1cclxuXHJcbiAgbWFwQnJhbmNoUmVzdWx0PFQ+KHJlczogaUJhdGNoUmVxdWVzdEFuc3dlcjxUPltdKSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihbXSwgLi4ucmVzLm1hcChpID0+XHJcbiAgICAgIChpbnN0YW5jZU9maUJYUmVzdEFuc3dlclN1Y2Nlc3MoaSkgJiYgaW5zdGFuY2VPZmlCWFJlc3RBbnN3ZXJTdWNjZXNzKGkucmVzdWx0KSkgPyBpLnJlc3VsdC5yZXN1bHQgOiB1bmRlZmluZWQpXHJcbiAgICApIGFzIHtcclxuICAgICAgW2tleToga2V5QmF0Y2hdOiBUXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtYXBCcmFuY2hSZXN1bHRXaXRob3V0S2V5PFQ+KHJlczogaUJhdGNoUmVxdWVzdEFuc3dlcjxUPltdKTogVFtdIHtcclxuICAgIHJldHVybiBmbGF0dGVuPFQ+KE9iamVjdC5hc3NpZ24oW10sIC4uLnJlcy5tYXAoaSA9PlxyXG4gICAgICAoaW5zdGFuY2VPZmlCWFJlc3RBbnN3ZXJTdWNjZXNzKGkpICYmIGluc3RhbmNlT2ZpQlhSZXN0QW5zd2VyU3VjY2VzcyhpLnJlc3VsdCkpXHJcbiAgICAgICAgPyBpLnJlc3VsdC5yZXN1bHRcclxuICAgICAgICA6IHVuZGVmaW5lZCkpXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQntGB0L3QvtCy0L3QvtC5INC80LXRgtC+0LQg0LTQu9GPINC30LDQv9GA0L7RgdC+0LJcclxuICAgKlxyXG4gICAqIEBwYXJhbSBuYW1lXHJcbiAgICogQHBhcmFtIHBhcmFtc1xyXG4gICAqL1xyXG4gIHBvc3Q8VD4obmFtZTogc3RyaW5nW10sXHJcbiAgICAgICAgICBwYXJhbXM6IGFueSA9IHt9XHJcbiAgKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwUG9zdDxpQlhSZXN0QW5zd2VyPFQ+Pih0aGlzLmdldE5hbWVNZXRob2QobmFtZSksIHBhcmFtcylcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCS0YLQvtGA0L7RgdGC0LXQv9C10L3QvdGL0Lkg0LzQtdGC0L7QtCDQtNC70Y8g0LfQsNC/0YDQvtGB0L7Qsi4g0J/QviDQstC+0LfQvNC+0LbQvdC+0YHRgtC4INC70YPRh9GI0LUg0L3QtSDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YxcclxuICAgKlxyXG4gICAqIEBwYXJhbSBuYW1lXHJcbiAgICogQHBhcmFtIHBhcmFtc1xyXG4gICAqL1xyXG4gIGdldDxUPihuYW1lOiBzdHJpbmdbXSxcclxuICAgICAgICAgcGFyYW1zOiBhbnkgPSB7fVxyXG4gICkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cEdldDxpQlhSZXN0QW5zd2VyPFQ+Pih0aGlzLmdldE5hbWVNZXRob2QobmFtZSksIHBhcmFtcylcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGh0dHBQb3N0PFQ+KHVybDogc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogYW55ID0ge30sXHJcbiAgKTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPiB7XHJcbiAgICBsZXQgYXV0aCA9IHRoaXMuc2Vzc2lvbi5nZXRBdXRoUGFyYW1zKClcclxuICAgIGlmIChhdXRoKSB7XHJcbiAgICAgIGNvbnN0IHBhcmFtc0Nsb25lID0gY2xvbmUocGFyYW1zKVxyXG4gICAgICBwYXJhbXNDbG9uZVt0aGlzLnNlc3Npb24uZ2V0S2V5QXV0aCgpXSA9IGF1dGhcclxuICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbi5nZXRCYXNlVXJsKCkucGlwZShcclxuICAgICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgICAgIC8vINGN0YLQviDQsdC+0LvQtdC1INCx0YvRgdGC0YDRi9C5INGB0L/QvtGB0L7QsSDQt9Cw0L/RgNC+0YHQsCDRh9C10Lwg0L7RgtC/0YDQsNCy0LrQsCBGb3JtIERhdGFcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQgfCB1bmRlZmluZWQ+KFxyXG4gICAgICAgICAgICAgIHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKHYpICsgdXJsLFxyXG4gICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHBhcmFtc0Nsb25lKSxcclxuICAgICAgICAgICAgICB7aGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnZ2V0IGJhc2UgdXJsIGVycm9yJylcclxuICAgICAgICB9KSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdhdXRoIG5vdCBnZXQnKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgaHR0cEdldDxUPihcclxuICAgIHVybDogc3RyaW5nLFxyXG4gICAgcGFyYW1zOiBhbnkgPSB7fVxyXG4gICk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xyXG4gICAgbGV0IGF1dGggPSB0aGlzLnNlc3Npb24uZ2V0QXV0aFBhcmFtcygpXHJcblxyXG4gICAgaWYgKGF1dGgpIHtcclxuICAgICAgaWYgKHBhcmFtcyA9PT0gbnVsbCkge1xyXG4gICAgICAgIHBhcmFtcyA9IHt9XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcGFyYW1zQ2xvbmUgPSBjbG9uZShwYXJhbXMpXHJcbiAgICAgIHBhcmFtc0Nsb25lW3RoaXMuc2Vzc2lvbi5nZXRLZXlBdXRoKCldID0gYXV0aFxyXG4gICAgICBsZXQgb3B0aW9ucyA9IHtcclxuICAgICAgICBwYXJhbXM6IHRoaXMuZ2V0SHR0cFBhcmFtc0dldChwYXJhbXNDbG9uZSlcclxuICAgICAgICAvLyBwYXJhbXM6IEpTT04uc3RyaW5naWZ5KHBhcmFtc0Nsb25lKVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEJhc2VVcmwoKS5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4odGhpcy5wcmVwYXJlQmFzZUFkZHJlc3ModikgKyB1cmwsIG9wdGlvbnMpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnZ2V0IGJhc2UgdXJsIGVycm9yJylcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnYXV0aCBub3QgZ2V0JylcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBnZXROYW1lTWV0aG9kKGFycjogc3RyaW5nW10pIHtcclxuICAgIHJldHVybiBhcnIuam9pbignLicpXHJcbiAgfVxyXG5cclxufVxyXG5cclxuIl19
1
+ import { throwError, mergeMap, forkJoin } from 'rxjs';
2
+ import { Injectable } from '@angular/core';
3
+ import clone from 'just-clone';
4
+ import { HttpServices } from './http';
5
+ import { HttpHeaders } from '@angular/common/http';
6
+ import flatten from 'just-flatten-it';
7
+ import { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult';
8
+ import * as i0 from "@angular/core";
9
+ export class HttpBXServices extends HttpServices {
10
+ /**
11
+ * Это пиздец а не метод
12
+ * TODO: Удалить данный метод после реализации его в разделе Navvy
13
+ * @param param
14
+ */
15
+ branch(param) {
16
+ let prepareParam = Object.entries(this.prepareBatch(param));
17
+ const size = 50; // больше не отдаст
18
+ let subarray = []; //массив в который будет выведен результат.
19
+ for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {
20
+ subarray[i] = prepareParam.slice((i * size), (i * size) + size);
21
+ }
22
+ return forkJoin(subarray.map(i => {
23
+ return this.httpPost('batch.json', {
24
+ halt: 0,
25
+ cmd: Object.assign({}, ...i.map(x => {
26
+ return { [x[0]]: x[1] };
27
+ }))
28
+ });
29
+ }));
30
+ }
31
+ prepareBatch(param) {
32
+ let res = Object.keys(param).reduce((obj, key) => {
33
+ obj[key] = '';
34
+ return obj;
35
+ }, {});
36
+ for (let key in param) {
37
+ if (typeof key === 'string' || typeof key === 'number' && param[key].param) {
38
+ res[key] = param[key].name + '?' + this.getHttpParamsGet(param[key].param).toString();
39
+ }
40
+ }
41
+ return res;
42
+ }
43
+ mapBranchResult(res) {
44
+ return Object.assign([], ...res.map(i => (instanceOfiBXRestAnswerSuccess(i) && instanceOfiBXRestAnswerSuccess(i.result)) ? i.result.result : undefined));
45
+ }
46
+ mapBranchResultWithoutKey(res) {
47
+ return flatten(Object.assign([], ...res.map(i => (instanceOfiBXRestAnswerSuccess(i) && instanceOfiBXRestAnswerSuccess(i.result))
48
+ ? i.result.result
49
+ : undefined)));
50
+ }
51
+ /**
52
+ * Основной метод для запросов
53
+ *
54
+ * @param name
55
+ * @param params
56
+ */
57
+ post(name, params = {}) {
58
+ return this.httpPost(this.getNameMethod(name), params);
59
+ }
60
+ /**
61
+ * Второстепенный метод для запросов. По возможности лучше не использовать
62
+ *
63
+ * @param name
64
+ * @param params
65
+ */
66
+ get(name, params = {}) {
67
+ return this.httpGet(this.getNameMethod(name), params);
68
+ }
69
+ httpPost(url, params = {}) {
70
+ let auth = this.session.getAuthParams();
71
+ if (auth) {
72
+ const paramsClone = clone(params);
73
+ paramsClone[this.session.getKeyAuth()] = auth;
74
+ return this.session.getBaseUrl().pipe(mergeMap(v => {
75
+ if (v) {
76
+ // это более быстрый способ запроса чем отправка Form Data
77
+ return this.http.post(this.prepareBaseAddress(v) + url, JSON.stringify(paramsClone), { headers: new HttpHeaders().set('Content-Type', 'application/json') });
78
+ }
79
+ return throwError(() => 'get base url error');
80
+ }));
81
+ }
82
+ else {
83
+ return throwError(() => 'auth not get (post)');
84
+ }
85
+ }
86
+ httpGet(url, params = {}) {
87
+ let auth = this.session.getAuthParams();
88
+ if (auth) {
89
+ if (params === null) {
90
+ params = {};
91
+ }
92
+ const paramsClone = clone(params);
93
+ paramsClone[this.session.getKeyAuth()] = auth;
94
+ let options = {
95
+ params: this.getHttpParamsGet(paramsClone)
96
+ // params: JSON.stringify(paramsClone)
97
+ };
98
+ return this.session.getBaseUrl().pipe(mergeMap(v => {
99
+ if (v) {
100
+ return this.http.get(this.prepareBaseAddress(v) + url, options);
101
+ }
102
+ return throwError(() => 'get base url error');
103
+ }));
104
+ }
105
+ else {
106
+ return throwError(() => 'auth not get (get)');
107
+ }
108
+ }
109
+ getNameMethod(arr) {
110
+ return arr.join('.');
111
+ }
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: HttpBXServices, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
113
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: HttpBXServices, providedIn: 'root' }); }
114
+ }
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: HttpBXServices, decorators: [{
116
+ type: Injectable,
117
+ args: [{
118
+ providedIn: 'root'
119
+ }]
120
+ }] });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEJYLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvaHR0cC9IdHRwQlgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFRckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2xELE9BQU8sT0FBTyxNQUFNLGlCQUFpQixDQUFBO0FBQ3JDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDJCQUEyQixDQUFBOztBQUsxRSxNQUFNLE9BQU8sY0FBZSxTQUFRLFlBQVk7SUFFOUM7Ozs7T0FJRztJQUNILE1BQU0sQ0FBTyxLQUF5RDtRQUNwRSxJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFTLElBQUksQ0FBQyxZQUFZLENBQUksS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUN0RSxNQUFNLElBQUksR0FBRyxFQUFFLENBQUEsQ0FBQyxtQkFBbUI7UUFDbkMsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFBLENBQUMsMkNBQTJDO1FBQzdELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMvRCxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMs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YixDQUFDO1lBQ0QsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2pDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFBO1lBQzdDLElBQUksT0FBTyxHQUFHO2dCQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO2dCQUMxQyxzQ0FBc0M7YUFDdkMsQ0FBQTtZQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQ25DLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtnQkFDcEUsQ0FBQztnQkFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1lBQy9DLENBQUMsQ0FBQyxDQUNILENBQUE7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFDL0MsQ0FBQztJQUVILENBQUM7SUFFRCxhQUFhLENBQUMsR0FBYTtRQUN6QixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdEIsQ0FBQzsrR0E1SVUsY0FBYzttSEFBZCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yLCBtZXJnZU1hcCwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnXHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlcyB9IGZyb20gJy4vaHR0cCdcclxuaW1wb3J0IHtcclxuICBpQmF0Y2hSZXF1ZXN0QW5zd2VyLCBpQmF0Y2hSZXF1ZXN0UGFyYW0sXHJcbiAgaUJhdGNoUmVxdWVzdFBhcmFtQXJyLFxyXG4gIGlCYXRjaFJlcXVlc3RQYXJhbUh0dHAsXHJcbiAga2V5QmF0Y2gsXHJcbn0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmF0Y2gvYmF0Y2hSZXF1ZXN0UGFyYW0nXHJcbmltcG9ydCB7IGlCWFJlc3RBbnN3ZXIgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9iYXNlL2Fuc3dlcidcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IGZsYXR0ZW4gZnJvbSAnanVzdC1mbGF0dGVuLWl0J1xyXG5pbXBvcnQgeyBpbnN0YW5jZU9maUJYUmVzdEFuc3dlclN1Y2Nlc3MgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvbWFwUmVzdWx0J1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSHR0cEJYU2VydmljZXMgZXh0ZW5kcyBIdHRwU2VydmljZXMge1xyXG5cclxuICAvKipcclxuICAgKiDQrdGC0L4g0L/QuNC30LTQtdGGINCwINC90LUg0LzQtdGC0L7QtFxyXG4gICAqIFRPRE86INCj0LTQsNC70LjRgtGMINC00LDQvdC90YvQuSDQvNC10YLQvtC0INC/0L7RgdC70LUg0YDQtdCw0LvQuNC30LDRhtC40Lgg0LXQs9C+INCyINGA0LDQt9C00LXQu9C1IE5hdnZ5XHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgYnJhbmNoPFQsIEE+KHBhcmFtOiBpQmF0Y2hSZXF1ZXN0UGFyYW1BcnI8VD4gfCBpQmF0Y2hSZXF1ZXN0UGFyYW08VD5bXSk6IE9ic2VydmFibGU8aUJhdGNoUmVxdWVzdEFuc3dlcjxBPltdIHwgdW5kZWZpbmVkPiB7XHJcbiAgICBsZXQgcHJlcGFyZVBhcmFtID0gT2JqZWN0LmVudHJpZXM8c3RyaW5nPih0aGlzLnByZXBhcmVCYXRjaDxUPihwYXJhbSkpXHJcbiAgICBjb25zdCBzaXplID0gNTAgLy8g0LHQvtC70YzRiNC1INC90LUg0L7RgtC00LDRgdGCXHJcbiAgICBsZXQgc3ViYXJyYXkgPSBbXSAvL9C80LDRgdGB0LjQsiDQsiDQutC+0YLQvtGA0YvQuSDQsdGD0LTQtdGCINCy0YvQstC10LTQtdC9INGA0LXQt9GD0LvRjNGC0LDRgi5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTWF0aC5jZWlsKHByZXBhcmVQYXJhbS5sZW5ndGggLyBzaXplKTsgaSsrKSB7XHJcbiAgICAgIHN1YmFycmF5W2ldID0gcHJlcGFyZVBhcmFtLnNsaWNlKChpICogc2l6ZSksIChpICogc2l6ZSkgKyBzaXplKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmb3JrSm9pbihcclxuICAgICAgc3ViYXJyYXkubWFwKGkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBQb3N0KCdiYXRjaC5qc29uJywge1xyXG4gICAgICAgICAgaGFsdDogMCxcclxuICAgICAgICAgIGNtZDogT2JqZWN0LmFzc2lnbih7fSwgLi4uaS5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7W3hbMF1dOiB4WzFdfVxyXG4gICAgICAgICAgfSkpXHJcbiAgICAgICAgfSlcclxuICAgICAgfSlcclxuICAgICkgYXMgT2JzZXJ2YWJsZTxpQmF0Y2hSZXF1ZXN0QW5zd2VyPEE+W10+XHJcbiAgfVxyXG5cclxuICBwcmVwYXJlQmF0Y2g8VD4ocGFyYW06IGlCYXRjaFJlcXVlc3RQYXJhbUFycjxUPiB8IGlCYXRjaFJlcXVlc3RQYXJhbTxUPltdKTogaUJhdGNoUmVxdWVzdFBhcmFtSHR0cCB7XHJcbiAgICBsZXQgcmVzOiBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwID0gT2JqZWN0LmtleXMocGFyYW0pLnJlZHVjZShcclxuICAgICAgKG9iaiwga2V5KSA9PiB7XHJcbiAgICAgICAgb2JqW2tleV0gPSAnJ1xyXG4gICAgICAgIHJldHVybiBvYmpcclxuICAgICAgfSxcclxuICAgICAge30gYXMgaUJhdGNoUmVxdWVzdFBhcmFtSHR0cFxyXG4gICAgKVxyXG4gICAgZm9yIChsZXQga2V5IGluIHBhcmFtKSB7XHJcbiAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyB8fCB0eXBlb2Yga2V5ID09PSAnbnVtYmVyJyAmJiBwYXJhbVtrZXldLnBhcmFtKSB7XHJcbiAgICAgICAgcmVzW2tleV0gPSBwYXJhbVtrZXldLm5hbWUgKyAnPycgKyB0aGlzLmdldEh0dHBQYXJhbXNHZXQocGFyYW1ba2V5XS5wYXJhbSkudG9TdHJpbmcoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzXHJcbiAgfVxyXG5cclxuICBtYXBCcmFuY2hSZXN1bHQ8VD4ocmVzOiBpQmF0Y2hSZXF1ZXN0QW5zd2VyPFQ+W10pIHtcclxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFtdLCAuLi5yZXMubWFwKGkgPT5cclxuICAgICAgKGluc3RhbmNlT2ZpQlhSZXN0QW5zd2VyU3VjY2VzcyhpKSAmJiBpbnN0YW5jZU9maUJYUmVzdEFuc3dlclN1Y2Nlc3MoaS5yZXN1bHQpKSA/IGkucmVzdWx0LnJlc3VsdCA6IHVuZGVmaW5lZClcclxuICAgICkgYXMge1xyXG4gICAgICBba2V5OiBrZXlCYXRjaF06IFRcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hcEJyYW5jaFJlc3VsdFdpdGhvdXRLZXk8VD4ocmVzOiBpQmF0Y2hSZXF1ZXN0QW5zd2VyPFQ+W10pOiBUW10ge1xyXG4gICAgcmV0dXJuIGZsYXR0ZW48VD4oT2JqZWN0LmFzc2lnbihbXSwgLi4ucmVzLm1hcChpID0+XHJcbiAgICAgIChpbnN0YW5jZU9maUJYUmVzdEFuc3dlclN1Y2Nlc3MoaSkgJiYgaW5zdGFuY2VPZmlCWFJlc3RBbnN3ZXJTdWNjZXNzKGkucmVzdWx0KSlcclxuICAgICAgICA/IGkucmVzdWx0LnJlc3VsdFxyXG4gICAgICAgIDogdW5kZWZpbmVkKSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCe0YHQvdC+0LLQvdC+0Lkg0LzQtdGC0L7QtCDQtNC70Y8g0LfQsNC/0YDQvtGB0L7QslxyXG4gICAqXHJcbiAgICogQHBhcmFtIG5hbWVcclxuICAgKiBAcGFyYW0gcGFyYW1zXHJcbiAgICovXHJcbiAgcG9zdDxUPihuYW1lOiBzdHJpbmdbXSxcclxuICAgICAgICAgIHBhcmFtczogYW55ID0ge31cclxuICApIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBQb3N0PGlCWFJlc3RBbnN3ZXI8VD4+KHRoaXMuZ2V0TmFtZU1ldGhvZChuYW1lKSwgcGFyYW1zKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLRgtC+0YDQvtGB0YLQtdC/0LXQvdC90YvQuSDQvNC10YLQvtC0INC00LvRjyDQt9Cw0L/RgNC+0YHQvtCyLiDQn9C+INCy0L7Qt9C80L7QttC90L7RgdGC0Lgg0LvRg9GH0YjQtSDQvdC1INC40YHQv9C+0LvRjNC30L7QstCw0YLRjFxyXG4gICAqXHJcbiAgICogQHBhcmFtIG5hbWVcclxuICAgKiBAcGFyYW0gcGFyYW1zXHJcbiAgICovXHJcbiAgZ2V0PFQ+KG5hbWU6IHN0cmluZ1tdLFxyXG4gICAgICAgICBwYXJhbXM6IGFueSA9IHt9XHJcbiAgKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwR2V0PGlCWFJlc3RBbnN3ZXI8VD4+KHRoaXMuZ2V0TmFtZU1ldGhvZChuYW1lKSwgcGFyYW1zKVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgaHR0cFBvc3Q8VD4odXJsOiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiBhbnkgPSB7fSxcclxuICApOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHtcclxuICAgIGxldCBhdXRoID0gdGhpcy5zZXNzaW9uLmdldEF1dGhQYXJhbXMoKVxyXG4gICAgaWYgKGF1dGgpIHtcclxuICAgICAgY29uc3QgcGFyYW1zQ2xvbmUgPSBjbG9uZShwYXJhbXMpXHJcbiAgICAgIHBhcmFtc0Nsb25lW3RoaXMuc2Vzc2lvbi5nZXRLZXlBdXRoKCldID0gYXV0aFxyXG4gICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEJhc2VVcmwoKS5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYpIHtcclxuICAgICAgICAgICAgLy8g0Y3RgtC+INCx0L7Qu9C10LUg0LHRi9GB0YLRgNGL0Lkg0YHQv9C+0YHQvtCxINC30LDQv9GA0L7RgdCwINGH0LXQvCDQvtGC0L/RgNCw0LLQutCwIEZvcm0gRGF0YVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VCB8IHVuZGVmaW5lZD4oXHJcbiAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlQmFzZUFkZHJlc3ModikgKyB1cmwsXHJcbiAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkocGFyYW1zQ2xvbmUpLFxyXG4gICAgICAgICAgICAgIHtoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyl9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdnZXQgYmFzZSB1cmwgZXJyb3InKVxyXG4gICAgICAgIH0pKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ2F1dGggbm90IGdldCAocG9zdCknKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgaHR0cEdldDxUPihcclxuICAgIHVybDogc3RyaW5nLFxyXG4gICAgcGFyYW1zOiBhbnkgPSB7fVxyXG4gICk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xyXG4gICAgbGV0IGF1dGggPSB0aGlzLnNlc3Npb24uZ2V0QXV0aFBhcmFtcygpXHJcblxyXG4gICAgaWYgKGF1dGgpIHtcclxuICAgICAgaWYgKHBhcmFtcyA9PT0gbnVsbCkge1xyXG4gICAgICAgIHBhcmFtcyA9IHt9XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcGFyYW1zQ2xvbmUgPSBjbG9uZShwYXJhbXMpXHJcbiAgICAgIHBhcmFtc0Nsb25lW3RoaXMuc2Vzc2lvbi5nZXRLZXlBdXRoKCldID0gYXV0aFxyXG4gICAgICBsZXQgb3B0aW9ucyA9IHtcclxuICAgICAgICBwYXJhbXM6IHRoaXMuZ2V0SHR0cFBhcmFtc0dldChwYXJhbXNDbG9uZSlcclxuICAgICAgICAvLyBwYXJhbXM6IEpTT04uc3RyaW5naWZ5KHBhcmFtc0Nsb25lKVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEJhc2VVcmwoKS5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4odGhpcy5wcmVwYXJlQmFzZUFkZHJlc3ModikgKyB1cmwsIG9wdGlvbnMpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnZ2V0IGJhc2UgdXJsIGVycm9yJylcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnYXV0aCBub3QgZ2V0IChnZXQpJylcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBnZXROYW1lTWV0aG9kKGFycjogc3RyaW5nW10pIHtcclxuICAgIHJldHVybiBhcnIuam9pbignLicpXHJcbiAgfVxyXG5cclxufVxyXG5cclxuIl19
@@ -1,118 +1,116 @@
1
- import { BaseServices } from '../base';
2
- import { HttpParams } from '@angular/common/http';
3
- export class HttpData extends BaseServices {
4
- constructor() {
5
- super(...arguments);
6
- this.defSettings = {
7
- timeZone: {
8
- calc: true,
9
- levelOut: false
10
- }
11
- };
12
- }
13
- getHttpParamsGet(// не так уж и сложно сделать сложенный HttpParams, да гугл?
14
- obj, sendHttpParams = new HttpParams(), thisArray = false, nesting = [],
15
- // settings = this.defSettings
16
- _ = this.defSettings) {
17
- for (const key in obj) {
18
- let setKey = '';
19
- if (nesting.length) {
20
- let first = nesting[0];
21
- setKey = (nesting.length > 1)
22
- ? first + '[' + nesting.slice(1).join('][') + '][' + key + ']'
23
- : first + '[' + key + ']';
24
- }
25
- else {
26
- setKey = key;
27
- }
28
- switch (typeof obj[key]) {
29
- case 'string':
30
- sendHttpParams = sendHttpParams.set(setKey, obj[key]);
31
- break;
32
- case 'symbol':
33
- case 'number':
34
- case 'bigint':
35
- case 'boolean':
36
- sendHttpParams = sendHttpParams.set(setKey, String(obj[key]));
37
- break;
38
- case 'object':
39
- nesting.push(key);
40
- sendHttpParams = this.getHttpParamsGet(obj[key], sendHttpParams, false, nesting);
41
- nesting.pop();
42
- break;
43
- case 'function':
44
- case 'undefined':
45
- default:
46
- console.error('Ты отправил что-то не то', obj[key], typeof obj[key], typeof obj);
47
- }
48
- }
49
- return sendHttpParams;
50
- }
51
- getHttpParamsPost(obj, sendHttpParams = new FormData(), thisArray = false, nesting = [], settings = this.defSettings) {
52
- if (obj instanceof Blob) {
53
- let first = nesting[0];
54
- let setKey = (nesting.length > 1)
55
- ? first + '[' + nesting.slice(1).join('][') + ']'
56
- : first;
57
- sendHttpParams.set(setKey, obj);
58
- return sendHttpParams;
59
- }
60
- else if (obj instanceof Date) {
61
- let first = nesting[0];
62
- let tzoffset = (settings.timeZone.calc) ? obj.getTimezoneOffset() * 60000 : 0; // вычисляем влияние часового пояса
63
- let levelOut = (settings.timeZone.levelOut) ? obj.getTimezoneOffset() * 60000 : 0; // вычисляем влияние часового пояса
64
- let setKey = (nesting.length > 1)
65
- ? first + '[' + nesting.slice(1).join('][') + ']'
66
- : first;
67
- sendHttpParams.set(setKey, (new Date(obj.valueOf() + tzoffset - levelOut)).toISOString());
68
- return sendHttpParams;
69
- }
70
- else {
71
- for (const key in obj) {
72
- let setKey = '';
73
- if (nesting.length) {
74
- let first = nesting[0];
75
- setKey = (nesting.length > 1)
76
- ? first + '[' + nesting.slice(1).join('][') + '][' + key + ']'
77
- : first + '[' + key + ']';
78
- }
79
- else {
80
- setKey = key;
81
- }
82
- switch (typeof obj[key]) {
83
- case 'string':
84
- sendHttpParams.set(setKey, obj[key]);
85
- break;
86
- case 'symbol':
87
- case 'number':
88
- case 'bigint':
89
- case 'boolean':
90
- sendHttpParams.set(setKey, String(obj[key]));
91
- break;
92
- case 'object':
93
- nesting.push(key);
94
- sendHttpParams = this.getHttpParamsPost(obj[key], sendHttpParams, false, nesting, settings);
95
- nesting.pop();
96
- break;
97
- case 'function':
98
- case 'undefined':
99
- default:
100
- console.error('Ты отправил что-то не то', obj[key], typeof obj[key], typeof obj);
101
- }
102
- }
103
- }
104
- return sendHttpParams;
105
- }
106
- sliceArrayIntoChunks(arr, chunkSize) {
107
- const res = [];
108
- for (let i = 0; i < arr.length; i += chunkSize) {
109
- const chunk = arr.slice(i, i + chunkSize);
110
- res.push(chunk);
111
- }
112
- return res;
113
- }
114
- removingMultipleSlashes(str) {
115
- return str.replace(/\/{2,}/g, '/');
116
- }
117
- }
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cERhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9zZXJ2aWNlcy9odHRwL0h0dHBEYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBR2pELE1BQU0sT0FBTyxRQUFTLFNBQVEsWUFBWTtJQUExQzs7UUFFSSxnQkFBVyxHQUF1QjtZQUM5QixRQUFRLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLElBQUk7Z0JBQ1YsUUFBUSxFQUFFLEtBQUs7YUFDbEI7U0FDSixDQUFBO0lBMEhMLENBQUM7SUF4SEcsZ0JBQWdCLENBQUUsNERBQTREO0lBQzFFLEdBQVEsRUFDUixpQkFBNkIsSUFBSSxVQUFVLEVBQUUsRUFDN0MsU0FBUyxHQUFHLEtBQUssRUFDakIsVUFBb0IsRUFBRTtJQUN0Qiw4QkFBOEI7SUFDOUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXO1FBRXBCLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ25CLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQTtZQUNmLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDaEIsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUN0QixNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztvQkFDekIsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHO29CQUM5RCxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFBO2FBQ2hDO2lC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RyxDQUFDLENBQUE7d0JBQ2pCLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQ25DLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFDUixjQUFjLEVBQ2QsS0FBSyxFQUNMLE9BQU8sRUFDUCxRQUFRLENBQ1gsQ0FBQTt3QkFDRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUE7d0JBQ2IsTUFBSztvQkFDVCxLQUFLLFVBQVUsQ0FBQztvQkFDaEIsS0FBSyxXQUFXLENBQUM7b0JBQ2pCO3dCQUNJLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUE7aUJBQ3ZGO2FBQ0o7U0FDSjtRQUNELE9BQU8sY0FBYyxDQUFBO0lBQ3pCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxHQUFVLEVBQUUsU0FBaUI7UUFDOUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRTtZQUM1QyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7WUFDMUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELHVCQUF1QixDQUFDLEdBQVc7UUFDL0IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlU2VydmljZXMgfSBmcm9tICcuLi9iYXNlJ1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IGlIdHRwUGFyYW1TZXR0aW5ncyB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3NldHRpbmdzJ1xyXG5cclxuZXhwb3J0IGNsYXNzIEh0dHBEYXRhIGV4dGVuZHMgQmFzZVNlcnZpY2VzIHtcclxuXHJcbiAgICBkZWZTZXR0aW5nczogaUh0dHBQYXJhbVNldHRpbmdzID0ge1xyXG4gICAgICAgIHRpbWVab25lOiB7XHJcbiAgICAgICAgICAgIGNhbGM6IHRydWUsXHJcbiAgICAgICAgICAgIGxldmVsT3V0OiBmYWxzZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRIdHRwUGFyYW1zR2V0KCAvLyDQvdC1INGC0LDQuiDRg9C2INC4INGB0LvQvtC20L3QviDRgdC00LXQu9Cw0YLRjCDRgdC70L7QttC10L3QvdGL0LkgSHR0cFBhcmFtcywg0LTQsCDQs9GD0LPQuz9cclxuICAgICAgICBvYmo6IGFueSxcclxuICAgICAgICBzZW5kSHR0cFBhcmFtczogSHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCksXHJcbiAgICAgICAgdGhpc0FycmF5ID0gZmFsc2UsXHJcbiAgICAgICAgbmVzdGluZzogc3RyaW5nW10gPSBbXSxcclxuICAgICAgICAvLyBzZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3NcclxuICAgICAgICBfID0gdGhpcy5kZWZTZXR0aW5nc1xyXG4gICAgKTogYW55IHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcclxuICAgICAgICAgICAgbGV0IHNldEtleSA9ICcnXHJcbiAgICAgICAgICAgIGlmIChuZXN0aW5nLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGZpcnN0ID0gbmVzdGluZ1swXVxyXG4gICAgICAgICAgICAgICAgc2V0S2V5ID0gKG5lc3RpbmcubGVuZ3RoID4gMSlcclxuICAgICAgICAgICAgICAgICAgICA/IGZpcnN0ICsgJ1snICsgbmVzdGluZy5zbGljZSgxKS5qb2luKCddWycpICsgJ11bJyArIGtleSArICddJ1xyXG4gICAgICAgICAgICAgICAgICAgIDogZmlyc3QgKyAnWycgKyBrZXkgKyAnXSdcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHNldEtleSA9IGtleVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIG9ialtrZXldKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgICAgICAgICAgICAgIHNlbmRIdHRwUGFyYW1zID0gc2VuZEh0dHBQYXJhbXMuc2V0KHNldEtleSwgb2JqW2tleV0pXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3N5bWJvbCc6XHJcbiAgICAgICAgICAgICAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAnYmlnaW50JzpcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHNlbmRIdHRwUGFyYW1zID0gc2VuZEh0dHBQYXJhbXMuc2V0KHNldEtleSwgU3RyaW5nKG9ialtrZXldKSlcclxuICAgICAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnb2JqZWN0JzpcclxuICAgICAgICAgICAgICAgICAgICBuZXN0aW5nLnB1c2goa2V5KVxyXG4gICAgICAgICAgICAgICAgICAgIHNlbmRIdHRwUGFyYW1zID0gdGhpcy5nZXRIdHRwUGFyYW1zR2V0KG9ialtrZXldLCBzZW5kSHR0cFBhcmFtcywgZmFsc2UsIG5lc3RpbmcpXHJcbiAgICAgICAgICAgICAgICAgICAgbmVzdGluZy5wb3AoKVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICAgICAgICBjYXNlICdmdW5jdGlvbic6XHJcbiAgICAgICAgICAgICAgICBjYXNlICd1bmRlZmluZWQnOlxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfQotGLINC+0YLQv9GA0LDQstC40Lsg0YfRgtC+LdGC0L4g0L3QtSDRgtC+Jywgb2JqW2tleV0sIHR5cGVvZiBvYmpba2V5XSwgdHlwZW9mIG9iailcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc2VuZEh0dHBQYXJhbXNcclxuICAgIH1cclxuXHJcbiAgICBnZXRIdHRwUGFyYW1zUG9zdChcclxuICAgICAgICBvYmo6IGFueSxcclxuICAgICAgICBzZW5kSHR0cFBhcmFtczogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSxcclxuICAgICAgICB0aGlzQXJyYXkgPSBmYWxzZSxcclxuICAgICAgICBuZXN0aW5nOiBzdHJpbmdbXSA9IFtdLFxyXG4gICAgICAgIHNldHRpbmdzID0gdGhpcy5kZWZTZXR0aW5nc1xyXG4gICAgKTogYW55IHtcclxuXHJcbiAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIEJsb2IpIHtcclxuICAgICAgICAgICAgbGV0IGZpcnN0ID0gbmVzdGluZ1swXVxyXG4gICAgICAgICAgICBsZXQgc2V0S2V5ID0gKG5lc3RpbmcubGVuZ3RoID4gMSlcclxuICAgICAgICAgICAgICAgID8gZmlyc3QgKyAnWycgKyBuZXN0aW5nLnNsaWNlKDEpLmpvaW4oJ11bJykgKyAnXSdcclxuICAgICAgICAgICAgICAgIDogZmlyc3RcclxuICAgICAgICAgICAgc2VuZEh0dHBQYXJhbXMuc2V0KHNldEtleSwgb2JqKVxyXG4gICAgICAgICAgICByZXR1cm4gc2VuZEh0dHBQYXJhbXNcclxuICAgICAgICB9IGVsc2UgaWYgKG9iaiBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgICAgbGV0IGZpcnN0ID0gbmVzdGluZ1swXVxyXG4gICAgICAgICAgICBsZXQgdHpvZmZzZXQgPSAoc2V0dGluZ3MudGltZVpvbmUuY2FsYykgPyAgb2JqLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCA6IDAgLy8g0LLRi9GH0LjRgdC70Y/QtdC8INCy0LvQuNGP0L3QuNC1INGH0LDRgdC+0LLQvtCz0L4g0L/QvtGP0YHQsFxyXG4gICAgICAgICAgICBsZXQgbGV2ZWxPdXQgPSAoc2V0dGluZ3MudGltZVpvbmUubGV2ZWxPdXQpID8gIG9iai5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDAgOiAwIC8vINCy0YvRh9C40YHQu9GP0LXQvCDQstC70LjRj9C90LjQtSDRh9Cw0YHQvtCy0L7Qs9C+INC/0L7Rj9GB0LBcclxuICAgICAgICAgICAgbGV0IHNldEtleSA9IChuZXN0aW5nLmxlbmd0aCA+IDEpXHJcbiAgICAgICAgICAgICAgICA/IGZpcnN0ICsgJ1snICsgbmVzdGluZy5zbGljZSgxKS5qb2luKCddWycpICsgJ10nXHJcbiAgICAgICAgICAgICAgICA6IGZpcnN0XHJcbiAgICAgICAgICAgIHNlbmRIdHRwUGFyYW1zLnNldChzZXRLZXksIChuZXcgRGF0ZShvYmoudmFsdWVPZigpICsgdHpvZmZzZXQgLSBsZXZlbE91dCkpLnRvSVNPU3RyaW5nKCkpXHJcbiAgICAgICAgICAgIHJldHVybiBzZW5kSHR0cFBhcmFtc1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xyXG4gICAgICAgICAgICAgICAgbGV0IHNldEtleSA9ICcnXHJcbiAgICAgICAgICAgICAgICBpZiAobmVzdGluZy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZmlyc3QgPSBuZXN0aW5nWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0S2V5ID0gKG5lc3RpbmcubGVuZ3RoID4gMSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBmaXJzdCArICdbJyArIG5lc3Rpbmcuc2xpY2UoMSkuam9pbignXVsnKSArICddWycgKyBrZXkgKyAnXSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBmaXJzdCArICdbJyArIGtleSArICddJ1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRLZXkgPSBrZXlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIG9ialtrZXldKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VuZEh0dHBQYXJhbXMuc2V0KHNldEtleSwgb2JqW2tleV0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3ltYm9sJzpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2JpZ2ludCc6XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRIdHRwUGFyYW1zLnNldChzZXRLZXksIFN0cmluZyhvYmpba2V5XSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb2JqZWN0JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmVzdGluZy5wdXNoKGtleSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VuZEh0dHBQYXJhbXMgPSB0aGlzLmdldEh0dHBQYXJhbXNQb3N0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqW2tleV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kSHR0cFBhcmFtcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVzdGluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmVzdGluZy5wb3AoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICd1bmRlZmluZWQnOlxyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ9Ci0Ysg0L7RgtC/0YDQsNCy0LjQuyDRh9GC0L4t0YLQviDQvdC1INGC0L4nLCBvYmpba2V5XSwgdHlwZW9mIG9ialtrZXldLCB0eXBlb2Ygb2JqKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBzZW5kSHR0cFBhcmFtc1xyXG4gICAgfVxyXG5cclxuICAgIHNsaWNlQXJyYXlJbnRvQ2h1bmtzKGFycjogYW55W10sIGNodW5rU2l6ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpICs9IGNodW5rU2l6ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBjaHVuayA9IGFyci5zbGljZShpLCBpICsgY2h1bmtTaXplKTtcclxuICAgICAgICAgICAgcmVzLnB1c2goY2h1bmspO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92aW5nTXVsdGlwbGVTbGFzaGVzKHN0cjogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9cXC97Mix9L2csICcvJylcclxuICAgIH1cclxufVxyXG4iXX0=
1
+ import { BaseServices } from '../base';
2
+ import { HttpParams } from '@angular/common/http';
3
+ export class HttpData extends BaseServices {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.defSettings = {
7
+ timeZone: {
8
+ calc: true,
9
+ levelOut: false
10
+ }
11
+ };
12
+ }
13
+ getHttpParamsGet(// не так уж и сложно сделать сложенный HttpParams, да гугл?
14
+ obj, sendHttpParams = new HttpParams(), thisArray = false, nesting = [], _ = this.defSettings) {
15
+ for (const key in obj) {
16
+ let setKey = '';
17
+ if (nesting.length) {
18
+ let first = nesting[0];
19
+ setKey = (nesting.length > 1)
20
+ ? first + '[' + nesting.slice(1).join('][') + '][' + key + ']'
21
+ : first + '[' + key + ']';
22
+ }
23
+ else {
24
+ setKey = key;
25
+ }
26
+ switch (typeof obj[key]) {
27
+ case 'string':
28
+ sendHttpParams = sendHttpParams.set(setKey, obj[key]);
29
+ break;
30
+ case 'symbol':
31
+ case 'number':
32
+ case 'bigint':
33
+ case 'boolean':
34
+ sendHttpParams = sendHttpParams.set(setKey, String(obj[key]));
35
+ break;
36
+ case 'object':
37
+ nesting.push(key);
38
+ sendHttpParams = this.getHttpParamsGet(obj[key], sendHttpParams, false, nesting);
39
+ nesting.pop();
40
+ break;
41
+ case 'function':
42
+ case 'undefined':
43
+ default:
44
+ console.error('Ты отправил что-то не то', obj[key], typeof obj[key], typeof obj);
45
+ }
46
+ }
47
+ return sendHttpParams;
48
+ }
49
+ getHttpParamsPost(obj, sendHttpParams = new FormData(), thisArray = false, nesting = [], settings = this.defSettings) {
50
+ if (obj instanceof Blob) {
51
+ let first = nesting[0];
52
+ let setKey = (nesting.length > 1)
53
+ ? first + '[' + nesting.slice(1).join('][') + ']'
54
+ : first;
55
+ sendHttpParams.set(setKey, obj);
56
+ return sendHttpParams;
57
+ }
58
+ else if (obj instanceof Date) {
59
+ let first = nesting[0];
60
+ let tzoffset = (settings.timeZone.calc) ? obj.getTimezoneOffset() * 60000 : 0; // вычисляем влияние часового пояса
61
+ let levelOut = (settings.timeZone.levelOut) ? obj.getTimezoneOffset() * 60000 : 0; // вычисляем влияние часового пояса
62
+ let setKey = (nesting.length > 1)
63
+ ? first + '[' + nesting.slice(1).join('][') + ']'
64
+ : first;
65
+ sendHttpParams.set(setKey, (new Date(obj.valueOf() + tzoffset - levelOut)).toISOString());
66
+ return sendHttpParams;
67
+ }
68
+ else {
69
+ for (const key in obj) {
70
+ let setKey = '';
71
+ if (nesting.length) {
72
+ let first = nesting[0];
73
+ setKey = (nesting.length > 1)
74
+ ? first + '[' + nesting.slice(1).join('][') + '][' + key + ']'
75
+ : first + '[' + key + ']';
76
+ }
77
+ else {
78
+ setKey = key;
79
+ }
80
+ switch (typeof obj[key]) {
81
+ case 'string':
82
+ sendHttpParams.set(setKey, obj[key]);
83
+ break;
84
+ case 'symbol':
85
+ case 'number':
86
+ case 'bigint':
87
+ case 'boolean':
88
+ sendHttpParams.set(setKey, String(obj[key]));
89
+ break;
90
+ case 'object':
91
+ nesting.push(key);
92
+ sendHttpParams = this.getHttpParamsPost(obj[key], sendHttpParams, false, nesting, settings);
93
+ nesting.pop();
94
+ break;
95
+ case 'function':
96
+ case 'undefined':
97
+ default:
98
+ console.error('Ты отправил что-то не то', obj[key], typeof obj[key], typeof obj);
99
+ }
100
+ }
101
+ }
102
+ return sendHttpParams;
103
+ }
104
+ sliceArrayIntoChunks(arr, chunkSize) {
105
+ const res = [];
106
+ for (let i = 0; i < arr.length; i += chunkSize) {
107
+ const chunk = arr.slice(i, i + chunkSize);
108
+ res.push(chunk);
109
+ }
110
+ return res;
111
+ }
112
+ removingMultipleSlashes(str) {
113
+ return str.replace(/\/{2,}/g, '/');
114
+ }
115
+ }
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cERhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9zZXJ2aWNlcy9odHRwL0h0dHBEYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBR2pELE1BQU0sT0FBTyxRQUFTLFNBQVEsWUFBWTtJQUExQzs7UUFFSSxnQkFBVyxHQUF1QjtZQUM5QixRQUFRLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLElBQUk7Z0JBQ1YsUUFBUSxFQUFFLEtBQUs7YUFDbEI7U0FDSixDQUFBO0lBeUhMLENBQUM7SUF2SEcsZ0JBQWdCLENBQUUsNERBQTREO0lBQzFFLEdBQVEsRUFDUixpQkFBNkIsSUFBSSxVQUFVLEVBQUUsRUFDN0MsU0FBUyxHQUFHLEtBQUssRUFDakIsVUFBb0IsRUFBRSxFQUN0QixDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVc7UUFFcEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNwQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUE7WUFDZixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUN0QixNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztvQkFDekIsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHO29CQUM5RCxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFBO1lBQ2pDLENBQUM7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aW1wb3J0IHsgQmFzZVNlcnZpY2VzIH0gZnJvbSAnLi4vYmFzZSdcclxuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBpSHR0cFBhcmFtU2V0dGluZ3MgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9zZXR0aW5ncydcclxuXHJcbmV4cG9ydCBjbGFzcyBIdHRwRGF0YSBleHRlbmRzIEJhc2VTZXJ2aWNlcyB7XHJcblxyXG4gICAgZGVmU2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5ncyA9IHtcclxuICAgICAgICB0aW1lWm9uZToge1xyXG4gICAgICAgICAgICBjYWxjOiB0cnVlLFxyXG4gICAgICAgICAgICBsZXZlbE91dDogZmFsc2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SHR0cFBhcmFtc0dldCggLy8g0L3QtSDRgtCw0Log0YPQtiDQuCDRgdC70L7QttC90L4g0YHQtNC10LvQsNGC0Ywg0YHQu9C+0LbQtdC90L3Ri9C5IEh0dHBQYXJhbXMsINC00LAg0LPRg9Cz0Ls/XHJcbiAgICAgICAgb2JqOiBhbnksXHJcbiAgICAgICAgc2VuZEh0dHBQYXJhbXM6IEh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLFxyXG4gICAgICAgIHRoaXNBcnJheSA9IGZhbHNlLFxyXG4gICAgICAgIG5lc3Rpbmc6IHN0cmluZ1tdID0gW10sXHJcbiAgICAgICAgXyA9IHRoaXMuZGVmU2V0dGluZ3NcclxuICAgICk6IGFueSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgIGxldCBzZXRLZXkgPSAnJ1xyXG4gICAgICAgICAgICBpZiAobmVzdGluZy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGxldCBmaXJzdCA9IG5lc3RpbmdbMF1cclxuICAgICAgICAgICAgICAgIHNldEtleSA9IChuZXN0aW5nLmxlbmd0aCA+IDEpXHJcbiAgICAgICAgICAgICAgICAgICAgPyBmaXJzdCArICdbJyArIG5lc3Rpbmcuc2xpY2UoMSkuam9pbignXVsnKSArICddWycgKyBrZXkgKyAnXSdcclxuICAgICAgICAgICAgICAgICAgICA6IGZpcnN0ICsgJ1snICsga2V5ICsgJ10nXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBzZXRLZXkgPSBrZXlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBvYmpba2V5XSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcclxuICAgICAgICAgICAgICAgICAgICBzZW5kSHR0cFBhcmFtcyA9IHNlbmRIdHRwUGFyYW1zLnNldChzZXRLZXksIG9ialtrZXldKVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICAgICAgICBjYXNlICdzeW1ib2wnOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2JpZ2ludCc6XHJcbiAgICAgICAgICAgICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICAgICAgICAgICAgICBzZW5kSHR0cFBhcmFtcyA9IHNlbmRIdHRwUGFyYW1zLnNldChzZXRLZXksIFN0cmluZyhvYmpba2V5XSkpXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ29iamVjdCc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmVzdGluZy5wdXNoKGtleSlcclxuICAgICAgICAgICAgICAgICAgICBzZW5kSHR0cFBhcmFtcyA9IHRoaXMuZ2V0SHR0cFBhcmFtc0dldChvYmpba2V5XSwgc2VuZEh0dHBQYXJhbXMsIGZhbHNlLCBuZXN0aW5nKVxyXG4gICAgICAgICAgICAgICAgICAgIG5lc3RpbmcucG9wKClcclxuICAgICAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAndW5kZWZpbmVkJzpcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign0KLRiyDQvtGC0L/RgNCw0LLQuNC7INGH0YLQvi3RgtC+INC90LUg0YLQvicsIG9ialtrZXldLCB0eXBlb2Ygb2JqW2tleV0sIHR5cGVvZiBvYmopXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHNlbmRIdHRwUGFyYW1zXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SHR0cFBhcmFtc1Bvc3QoXHJcbiAgICAgICAgb2JqOiBhbnksXHJcbiAgICAgICAgc2VuZEh0dHBQYXJhbXM6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCksXHJcbiAgICAgICAgdGhpc0FycmF5ID0gZmFsc2UsXHJcbiAgICAgICAgbmVzdGluZzogc3RyaW5nW10gPSBbXSxcclxuICAgICAgICBzZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3NcclxuICAgICk6IGFueSB7XHJcblxyXG4gICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBCbG9iKSB7XHJcbiAgICAgICAgICAgIGxldCBmaXJzdCA9IG5lc3RpbmdbMF1cclxuICAgICAgICAgICAgbGV0IHNldEtleSA9IChuZXN0aW5nLmxlbmd0aCA+IDEpXHJcbiAgICAgICAgICAgICAgICA/IGZpcnN0ICsgJ1snICsgbmVzdGluZy5zbGljZSgxKS5qb2luKCddWycpICsgJ10nXHJcbiAgICAgICAgICAgICAgICA6IGZpcnN0XHJcbiAgICAgICAgICAgIHNlbmRIdHRwUGFyYW1zLnNldChzZXRLZXksIG9iailcclxuICAgICAgICAgICAgcmV0dXJuIHNlbmRIdHRwUGFyYW1zXHJcbiAgICAgICAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICAgIGxldCBmaXJzdCA9IG5lc3RpbmdbMF1cclxuICAgICAgICAgICAgbGV0IHR6b2Zmc2V0ID0gKHNldHRpbmdzLnRpbWVab25lLmNhbGMpID8gIG9iai5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDAgOiAwIC8vINCy0YvRh9C40YHQu9GP0LXQvCDQstC70LjRj9C90LjQtSDRh9Cw0YHQvtCy0L7Qs9C+INC/0L7Rj9GB0LBcclxuICAgICAgICAgICAgbGV0IGxldmVsT3V0ID0gKHNldHRpbmdzLnRpbWVab25lLmxldmVsT3V0KSA/ICBvYmouZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwIDogMCAvLyDQstGL0YfQuNGB0LvRj9C10Lwg0LLQu9C40Y/QvdC40LUg0YfQsNGB0L7QstC+0LPQviDQv9C+0Y/RgdCwXHJcbiAgICAgICAgICAgIGxldCBzZXRLZXkgPSAobmVzdGluZy5sZW5ndGggPiAxKVxyXG4gICAgICAgICAgICAgICAgPyBmaXJzdCArICdbJyArIG5lc3Rpbmcuc2xpY2UoMSkuam9pbignXVsnKSArICddJ1xyXG4gICAgICAgICAgICAgICAgOiBmaXJzdFxyXG4gICAgICAgICAgICBzZW5kSHR0cFBhcmFtcy5zZXQoc2V0S2V5LCAobmV3IERhdGUob2JqLnZhbHVlT2YoKSArIHR6b2Zmc2V0IC0gbGV2ZWxPdXQpKS50b0lTT1N0cmluZygpKVxyXG4gICAgICAgICAgICByZXR1cm4gc2VuZEh0dHBQYXJhbXNcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcclxuICAgICAgICAgICAgICAgIGxldCBzZXRLZXkgPSAnJ1xyXG4gICAgICAgICAgICAgICAgaWYgKG5lc3RpbmcubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZpcnN0ID0gbmVzdGluZ1swXVxyXG4gICAgICAgICAgICAgICAgICAgIHNldEtleSA9IChuZXN0aW5nLmxlbmd0aCA+IDEpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZmlyc3QgKyAnWycgKyBuZXN0aW5nLnNsaWNlKDEpLmpvaW4oJ11bJykgKyAnXVsnICsga2V5ICsgJ10nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZmlyc3QgKyAnWycgKyBrZXkgKyAnXSdcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0S2V5ID0ga2V5XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBvYmpba2V5XSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRIdHRwUGFyYW1zLnNldChzZXRLZXksIG9ialtrZXldKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N5bWJvbCc6XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdiaWdpbnQnOlxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW5kSHR0cFBhcmFtcy5zZXQoc2V0S2V5LCBTdHJpbmcob2JqW2tleV0pKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ29iamVjdCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lc3RpbmcucHVzaChrZXkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRIdHRwUGFyYW1zID0gdGhpcy5nZXRIdHRwUGFyYW1zUG9zdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ialtrZXldLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VuZEh0dHBQYXJhbXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lc3RpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lc3RpbmcucG9wKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdmdW5jdGlvbic6XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndW5kZWZpbmVkJzpcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfQotGLINC+0YLQv9GA0LDQstC40Lsg0YfRgtC+LdGC0L4g0L3QtSDRgtC+Jywgb2JqW2tleV0sIHR5cGVvZiBvYmpba2V5XSwgdHlwZW9mIG9iailcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc2VuZEh0dHBQYXJhbXNcclxuICAgIH1cclxuXHJcbiAgICBzbGljZUFycmF5SW50b0NodW5rcyhhcnI6IGFueVtdLCBjaHVua1NpemU6IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IHJlcyA9IFtdXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpICs9IGNodW5rU2l6ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBjaHVuayA9IGFyci5zbGljZShpLCBpICsgY2h1bmtTaXplKVxyXG4gICAgICAgICAgICByZXMucHVzaChjaHVuaylcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92aW5nTXVsdGlwbGVTbGFzaGVzKHN0cjogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9cXC97Mix9L2csICcvJylcclxuICAgIH1cclxufVxyXG4iXX0=