@bitrix24/b24jssdk 1.3.0 → 2.0.0

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 (440) hide show
  1. package/README-AI.md +3 -2
  2. package/README.md +2 -0
  3. package/dist/cjs/_virtual/_commonjsHelpers.cjs +19 -0
  4. package/dist/cjs/_virtual/_commonjsHelpers.cjs.map +1 -0
  5. package/dist/cjs/_virtual/protobuf.cjs +20 -0
  6. package/dist/cjs/_virtual/protobuf.cjs.map +1 -0
  7. package/dist/cjs/_virtual/protobuf2.cjs +14 -0
  8. package/dist/cjs/_virtual/protobuf2.cjs.map +1 -0
  9. package/dist/cjs/core/abstract-b24.cjs +357 -0
  10. package/dist/cjs/core/abstract-b24.cjs.map +1 -0
  11. package/dist/cjs/core/actions/abstract-action.cjs +26 -0
  12. package/dist/cjs/core/actions/abstract-action.cjs.map +1 -0
  13. package/dist/cjs/core/actions/abstract-batch.cjs +97 -0
  14. package/dist/cjs/core/actions/abstract-batch.cjs.map +1 -0
  15. package/dist/cjs/core/actions/manager.cjs +55 -0
  16. package/dist/cjs/core/actions/manager.cjs.map +1 -0
  17. package/dist/cjs/core/actions/v2/batch-by-chunk.cjs +95 -0
  18. package/dist/cjs/core/actions/v2/batch-by-chunk.cjs.map +1 -0
  19. package/dist/cjs/core/actions/v2/batch.cjs +128 -0
  20. package/dist/cjs/core/actions/v2/batch.cjs.map +1 -0
  21. package/dist/cjs/core/actions/v2/call-list.cjs +144 -0
  22. package/dist/cjs/core/actions/v2/call-list.cjs.map +1 -0
  23. package/dist/cjs/core/actions/v2/call.cjs +56 -0
  24. package/dist/cjs/core/actions/v2/call.cjs.map +1 -0
  25. package/dist/cjs/core/actions/v2/fetch-list.cjs +145 -0
  26. package/dist/cjs/core/actions/v2/fetch-list.cjs.map +1 -0
  27. package/dist/cjs/core/actions/v2/manager-v2.cjs +76 -0
  28. package/dist/cjs/core/actions/v2/manager-v2.cjs.map +1 -0
  29. package/dist/cjs/core/actions/v3/_keyset-paginate.cjs +69 -0
  30. package/dist/cjs/core/actions/v3/_keyset-paginate.cjs.map +1 -0
  31. package/dist/cjs/core/actions/v3/aggregate.cjs +96 -0
  32. package/dist/cjs/core/actions/v3/aggregate.cjs.map +1 -0
  33. package/dist/cjs/core/actions/v3/batch-by-chunk.cjs +93 -0
  34. package/dist/cjs/core/actions/v3/batch-by-chunk.cjs.map +1 -0
  35. package/dist/cjs/core/actions/v3/batch.cjs +122 -0
  36. package/dist/cjs/core/actions/v3/batch.cjs.map +1 -0
  37. package/dist/cjs/core/actions/v3/call-list.cjs +126 -0
  38. package/dist/cjs/core/actions/v3/call-list.cjs.map +1 -0
  39. package/dist/cjs/core/actions/v3/call-tail.cjs +118 -0
  40. package/dist/cjs/core/actions/v3/call-tail.cjs.map +1 -0
  41. package/dist/cjs/core/actions/v3/call.cjs +51 -0
  42. package/dist/cjs/core/actions/v3/call.cjs.map +1 -0
  43. package/dist/cjs/core/actions/v3/fetch-list.cjs +122 -0
  44. package/dist/cjs/core/actions/v3/fetch-list.cjs.map +1 -0
  45. package/dist/cjs/core/actions/v3/fetch-tail.cjs +112 -0
  46. package/dist/cjs/core/actions/v3/fetch-tail.cjs.map +1 -0
  47. package/dist/cjs/core/actions/v3/manager-v3.cjs +100 -0
  48. package/dist/cjs/core/actions/v3/manager-v3.cjs.map +1 -0
  49. package/dist/cjs/core/http/abstract-http.cjs +641 -0
  50. package/dist/cjs/core/http/abstract-http.cjs.map +1 -0
  51. package/dist/cjs/core/http/ajax-error.cjs +113 -0
  52. package/dist/cjs/core/http/ajax-error.cjs.map +1 -0
  53. package/dist/cjs/core/http/ajax-result.cjs +219 -0
  54. package/dist/cjs/core/http/ajax-result.cjs.map +1 -0
  55. package/dist/cjs/core/http/limiters/adaptive-delayer.cjs +137 -0
  56. package/dist/cjs/core/http/limiters/adaptive-delayer.cjs.map +1 -0
  57. package/dist/cjs/core/http/limiters/manager.cjs +373 -0
  58. package/dist/cjs/core/http/limiters/manager.cjs.map +1 -0
  59. package/dist/cjs/core/http/limiters/operating-limiter.cjs +173 -0
  60. package/dist/cjs/core/http/limiters/operating-limiter.cjs.map +1 -0
  61. package/dist/cjs/core/http/limiters/params-factory.cjs +124 -0
  62. package/dist/cjs/core/http/limiters/params-factory.cjs.map +1 -0
  63. package/dist/cjs/core/http/limiters/rate-limiter.cjs +404 -0
  64. package/dist/cjs/core/http/limiters/rate-limiter.cjs.map +1 -0
  65. package/dist/cjs/core/http/redact.cjs +85 -0
  66. package/dist/cjs/core/http/redact.cjs.map +1 -0
  67. package/dist/cjs/core/http/v2.cjs +85 -0
  68. package/dist/cjs/core/http/v2.cjs.map +1 -0
  69. package/dist/cjs/core/http/v3.cjs +82 -0
  70. package/dist/cjs/core/http/v3.cjs.map +1 -0
  71. package/dist/cjs/core/interaction/batch/abstract-interaction-batch.cjs +71 -0
  72. package/dist/cjs/core/interaction/batch/abstract-interaction-batch.cjs.map +1 -0
  73. package/dist/cjs/core/interaction/batch/parse-row.cjs +69 -0
  74. package/dist/cjs/core/interaction/batch/parse-row.cjs.map +1 -0
  75. package/dist/cjs/core/interaction/batch/processing/interface-strategy.cjs +87 -0
  76. package/dist/cjs/core/interaction/batch/processing/interface-strategy.cjs.map +1 -0
  77. package/dist/cjs/core/interaction/batch/processing/v2/abstract-processing.cjs +138 -0
  78. package/dist/cjs/core/interaction/batch/processing/v2/abstract-processing.cjs.map +1 -0
  79. package/dist/cjs/core/interaction/batch/processing/v2/as-array.cjs +34 -0
  80. package/dist/cjs/core/interaction/batch/processing/v2/as-array.cjs.map +1 -0
  81. package/dist/cjs/core/interaction/batch/processing/v2/as-object.cjs +34 -0
  82. package/dist/cjs/core/interaction/batch/processing/v2/as-object.cjs.map +1 -0
  83. package/dist/cjs/core/interaction/batch/processing/v3/abstract-processing.cjs +115 -0
  84. package/dist/cjs/core/interaction/batch/processing/v3/abstract-processing.cjs.map +1 -0
  85. package/dist/cjs/core/interaction/batch/processing/v3/as-array.cjs +34 -0
  86. package/dist/cjs/core/interaction/batch/processing/v3/as-array.cjs.map +1 -0
  87. package/dist/cjs/core/interaction/batch/processing/v3/as-object.cjs +34 -0
  88. package/dist/cjs/core/interaction/batch/processing/v3/as-object.cjs.map +1 -0
  89. package/dist/cjs/core/interaction/batch/v2.cjs +47 -0
  90. package/dist/cjs/core/interaction/batch/v2.cjs.map +1 -0
  91. package/dist/cjs/core/interaction/batch/v3.cjs +45 -0
  92. package/dist/cjs/core/interaction/batch/v3.cjs.map +1 -0
  93. package/dist/cjs/core/language/list.cjs +59 -0
  94. package/dist/cjs/core/language/list.cjs.map +1 -0
  95. package/dist/cjs/core/request-id-generator.cjs +44 -0
  96. package/dist/cjs/core/request-id-generator.cjs.map +1 -0
  97. package/dist/cjs/core/result.cjs +137 -0
  98. package/dist/cjs/core/result.cjs.map +1 -0
  99. package/dist/cjs/core/sdk-error.cjs +85 -0
  100. package/dist/cjs/core/sdk-error.cjs.map +1 -0
  101. package/dist/cjs/core/tools/abstract-tool.cjs +26 -0
  102. package/dist/cjs/core/tools/abstract-tool.cjs.map +1 -0
  103. package/dist/cjs/core/tools/healthcheck.cjs +50 -0
  104. package/dist/cjs/core/tools/healthcheck.cjs.map +1 -0
  105. package/dist/cjs/core/tools/manager.cjs +52 -0
  106. package/dist/cjs/core/tools/manager.cjs.map +1 -0
  107. package/dist/cjs/core/tools/ping.cjs +58 -0
  108. package/dist/cjs/core/tools/ping.cjs.map +1 -0
  109. package/dist/cjs/core/version-manager.cjs +57 -0
  110. package/dist/cjs/core/version-manager.cjs.map +1 -0
  111. package/dist/cjs/frame/auth.cjs +100 -0
  112. package/dist/cjs/frame/auth.cjs.map +1 -0
  113. package/dist/cjs/frame/b24.cjs +178 -0
  114. package/dist/cjs/frame/b24.cjs.map +1 -0
  115. package/dist/cjs/frame/dialog.cjs +120 -0
  116. package/dist/cjs/frame/dialog.cjs.map +1 -0
  117. package/dist/cjs/frame/frame.cjs +103 -0
  118. package/dist/cjs/frame/frame.cjs.map +1 -0
  119. package/dist/cjs/frame/message/commands.cjs +39 -0
  120. package/dist/cjs/frame/message/commands.cjs.map +1 -0
  121. package/dist/cjs/frame/message/controller.cjs +191 -0
  122. package/dist/cjs/frame/message/controller.cjs.map +1 -0
  123. package/dist/cjs/frame/options.cjs +108 -0
  124. package/dist/cjs/frame/options.cjs.map +1 -0
  125. package/dist/cjs/frame/parent.cjs +259 -0
  126. package/dist/cjs/frame/parent.cjs.map +1 -0
  127. package/dist/cjs/frame/placement.cjs +156 -0
  128. package/dist/cjs/frame/placement.cjs.map +1 -0
  129. package/dist/cjs/frame/slider.cjs +162 -0
  130. package/dist/cjs/frame/slider.cjs.map +1 -0
  131. package/dist/cjs/helper/abstract-helper.cjs +55 -0
  132. package/dist/cjs/helper/abstract-helper.cjs.map +1 -0
  133. package/dist/cjs/helper/app-manager.cjs +39 -0
  134. package/dist/cjs/helper/app-manager.cjs.map +1 -0
  135. package/dist/cjs/helper/currency-manager.cjs +215 -0
  136. package/dist/cjs/helper/currency-manager.cjs.map +1 -0
  137. package/dist/cjs/helper/helper-manager.cjs +397 -0
  138. package/dist/cjs/helper/helper-manager.cjs.map +1 -0
  139. package/dist/cjs/helper/license-manager.cjs +52 -0
  140. package/dist/cjs/helper/license-manager.cjs.map +1 -0
  141. package/dist/cjs/helper/options-manager.cjs +205 -0
  142. package/dist/cjs/helper/options-manager.cjs.map +1 -0
  143. package/dist/cjs/helper/payment-manager.cjs +35 -0
  144. package/dist/cjs/helper/payment-manager.cjs.map +1 -0
  145. package/dist/cjs/helper/profile-manager.cjs +35 -0
  146. package/dist/cjs/helper/profile-manager.cjs.map +1 -0
  147. package/dist/cjs/helper/use-b24-helper.cjs +85 -0
  148. package/dist/cjs/helper/use-b24-helper.cjs.map +1 -0
  149. package/dist/cjs/hook/auth.cjs +79 -0
  150. package/dist/cjs/hook/auth.cjs.map +1 -0
  151. package/dist/cjs/hook/b24.cjs +117 -0
  152. package/dist/cjs/hook/b24.cjs.map +1 -0
  153. package/dist/cjs/index.cjs +176 -0
  154. package/dist/cjs/index.cjs.map +1 -0
  155. package/dist/cjs/index.d.cts +6415 -0
  156. package/dist/cjs/index.d.mts +6415 -0
  157. package/dist/cjs/index.d.ts +6415 -0
  158. package/dist/cjs/loader-b24frame.cjs +103 -0
  159. package/dist/cjs/loader-b24frame.cjs.map +1 -0
  160. package/dist/cjs/logger/abstract-logger.cjs +71 -0
  161. package/dist/cjs/logger/abstract-logger.cjs.map +1 -0
  162. package/dist/cjs/logger/browser.cjs +165 -0
  163. package/dist/cjs/logger/browser.cjs.map +1 -0
  164. package/dist/cjs/logger/formatter/abstract-formatter.cjs +36 -0
  165. package/dist/cjs/logger/formatter/abstract-formatter.cjs.map +1 -0
  166. package/dist/cjs/logger/formatter/json-formatter.cjs +36 -0
  167. package/dist/cjs/logger/formatter/json-formatter.cjs.map +1 -0
  168. package/dist/cjs/logger/formatter/line-formatter.cjs +43 -0
  169. package/dist/cjs/logger/formatter/line-formatter.cjs.map +1 -0
  170. package/dist/cjs/logger/formatter/telegram-formatter.cjs +105 -0
  171. package/dist/cjs/logger/formatter/telegram-formatter.cjs.map +1 -0
  172. package/dist/cjs/logger/handler/abstract-handler.cjs +41 -0
  173. package/dist/cjs/logger/handler/abstract-handler.cjs.map +1 -0
  174. package/dist/cjs/logger/handler/consola-adapter.cjs +64 -0
  175. package/dist/cjs/logger/handler/consola-adapter.cjs.map +1 -0
  176. package/dist/cjs/logger/handler/console-handler.cjs +100 -0
  177. package/dist/cjs/logger/handler/console-handler.cjs.map +1 -0
  178. package/dist/cjs/logger/handler/console-v2-handler.cjs +53 -0
  179. package/dist/cjs/logger/handler/console-v2-handler.cjs.map +1 -0
  180. package/dist/cjs/logger/handler/memory-handler.cjs +50 -0
  181. package/dist/cjs/logger/handler/memory-handler.cjs.map +1 -0
  182. package/dist/cjs/logger/handler/stream-handler.cjs +75 -0
  183. package/dist/cjs/logger/handler/stream-handler.cjs.map +1 -0
  184. package/dist/cjs/logger/handler/telegram-handler.cjs +159 -0
  185. package/dist/cjs/logger/handler/telegram-handler.cjs.map +1 -0
  186. package/dist/cjs/logger/handler/winston-adapter.cjs +59 -0
  187. package/dist/cjs/logger/handler/winston-adapter.cjs.map +1 -0
  188. package/dist/cjs/logger/logger-factory.cjs +69 -0
  189. package/dist/cjs/logger/logger-factory.cjs.map +1 -0
  190. package/dist/cjs/logger/logger.cjs +78 -0
  191. package/dist/cjs/logger/logger.cjs.map +1 -0
  192. package/dist/cjs/logger/null-logger.cjs +34 -0
  193. package/dist/cjs/logger/null-logger.cjs.map +1 -0
  194. package/dist/cjs/logger/processor/memory-usage-processor.cjs +22 -0
  195. package/dist/cjs/logger/processor/memory-usage-processor.cjs.map +1 -0
  196. package/dist/cjs/logger/processor/pid-processor.cjs +22 -0
  197. package/dist/cjs/logger/processor/pid-processor.cjs.map +1 -0
  198. package/dist/cjs/oauth/auth.cjs +214 -0
  199. package/dist/cjs/oauth/auth.cjs.map +1 -0
  200. package/dist/cjs/oauth/b24.cjs +119 -0
  201. package/dist/cjs/oauth/b24.cjs.map +1 -0
  202. package/dist/cjs/oauth/refresh-token-error.cjs +22 -0
  203. package/dist/cjs/oauth/refresh-token-error.cjs.map +1 -0
  204. package/dist/cjs/pullClient/abstract-connector.cjs +80 -0
  205. package/dist/cjs/pullClient/abstract-connector.cjs.map +1 -0
  206. package/dist/cjs/pullClient/channel-manager.cjs +91 -0
  207. package/dist/cjs/pullClient/channel-manager.cjs.map +1 -0
  208. package/dist/cjs/pullClient/client.cjs +2177 -0
  209. package/dist/cjs/pullClient/client.cjs.map +1 -0
  210. package/dist/cjs/pullClient/errors.cjs +34 -0
  211. package/dist/cjs/pullClient/errors.cjs.map +1 -0
  212. package/dist/cjs/pullClient/json-rpc.cjs +213 -0
  213. package/dist/cjs/pullClient/json-rpc.cjs.map +1 -0
  214. package/dist/cjs/pullClient/long-polling-connector.cjs +159 -0
  215. package/dist/cjs/pullClient/long-polling-connector.cjs.map +1 -0
  216. package/dist/cjs/pullClient/protobuf/index.cjs +22 -0
  217. package/dist/cjs/pullClient/protobuf/index.cjs.map +1 -0
  218. package/dist/cjs/pullClient/protobuf/model.cjs +1060 -0
  219. package/dist/cjs/pullClient/protobuf/model.cjs.map +1 -0
  220. package/dist/cjs/pullClient/protobuf/protobuf.cjs +4655 -0
  221. package/dist/cjs/pullClient/protobuf/protobuf.cjs.map +1 -0
  222. package/dist/cjs/pullClient/shared-config.cjs +135 -0
  223. package/dist/cjs/pullClient/shared-config.cjs.map +1 -0
  224. package/dist/cjs/pullClient/storage-manager.cjs +74 -0
  225. package/dist/cjs/pullClient/storage-manager.cjs.map +1 -0
  226. package/dist/cjs/pullClient/web-socket-connector.cjs +131 -0
  227. package/dist/cjs/pullClient/web-socket-connector.cjs.map +1 -0
  228. package/dist/cjs/tools/batch-ref-v3.cjs +54 -0
  229. package/dist/cjs/tools/batch-ref-v3.cjs.map +1 -0
  230. package/dist/cjs/tools/browser.cjs +156 -0
  231. package/dist/cjs/tools/browser.cjs.map +1 -0
  232. package/dist/cjs/tools/environment.cjs +32 -0
  233. package/dist/cjs/tools/environment.cjs.map +1 -0
  234. package/dist/cjs/tools/filter-v3.cjs +139 -0
  235. package/dist/cjs/tools/filter-v3.cjs.map +1 -0
  236. package/dist/cjs/tools/formatters/iban.cjs +307 -0
  237. package/dist/cjs/tools/formatters/iban.cjs.map +1 -0
  238. package/dist/cjs/tools/formatters/numbers.cjs +68 -0
  239. package/dist/cjs/tools/formatters/numbers.cjs.map +1 -0
  240. package/dist/cjs/tools/index.cjs +42 -0
  241. package/dist/cjs/tools/index.cjs.map +1 -0
  242. package/dist/cjs/tools/scroll-size.cjs +29 -0
  243. package/dist/cjs/tools/scroll-size.cjs.map +1 -0
  244. package/dist/cjs/tools/text.cjs +210 -0
  245. package/dist/cjs/tools/text.cjs.map +1 -0
  246. package/dist/cjs/tools/type.cjs +339 -0
  247. package/dist/cjs/tools/type.cjs.map +1 -0
  248. package/dist/cjs/tools/use-formatters.cjs +462 -0
  249. package/dist/cjs/tools/use-formatters.cjs.map +1 -0
  250. package/dist/cjs/tools/uuidv7.cjs +58 -0
  251. package/dist/cjs/tools/uuidv7.cjs.map +1 -0
  252. package/dist/cjs/types/b24-helper.cjs +62 -0
  253. package/dist/cjs/types/b24-helper.cjs.map +1 -0
  254. package/dist/cjs/types/b24.cjs +18 -0
  255. package/dist/cjs/types/b24.cjs.map +1 -0
  256. package/dist/cjs/types/bizproc/index.cjs +195 -0
  257. package/dist/cjs/types/bizproc/index.cjs.map +1 -0
  258. package/dist/cjs/types/catalog/index.cjs +39 -0
  259. package/dist/cjs/types/catalog/index.cjs.map +1 -0
  260. package/dist/cjs/types/common.cjs +33 -0
  261. package/dist/cjs/types/common.cjs.map +1 -0
  262. package/dist/cjs/types/crm/entity-type.cjs +62 -0
  263. package/dist/cjs/types/crm/entity-type.cjs.map +1 -0
  264. package/dist/cjs/types/crm/productrow.cjs +19 -0
  265. package/dist/cjs/types/crm/productrow.cjs.map +1 -0
  266. package/dist/cjs/types/logger.cjs +24 -0
  267. package/dist/cjs/types/logger.cjs.map +1 -0
  268. package/dist/cjs/types/pull.cjs +94 -0
  269. package/dist/cjs/types/pull.cjs.map +1 -0
  270. package/dist/esm/_virtual/_commonjsHelpers.mjs +1 -1
  271. package/dist/esm/_virtual/protobuf.mjs +1 -1
  272. package/dist/esm/_virtual/protobuf2.mjs +1 -1
  273. package/dist/esm/core/abstract-b24.mjs +1 -1
  274. package/dist/esm/core/actions/abstract-action.mjs +1 -1
  275. package/dist/esm/core/actions/abstract-batch.mjs +1 -1
  276. package/dist/esm/core/actions/manager.mjs +1 -1
  277. package/dist/esm/core/actions/v2/batch-by-chunk.mjs +1 -1
  278. package/dist/esm/core/actions/v2/batch.mjs +1 -1
  279. package/dist/esm/core/actions/v2/call-list.mjs +1 -1
  280. package/dist/esm/core/actions/v2/call.mjs +1 -15
  281. package/dist/esm/core/actions/v2/call.mjs.map +1 -1
  282. package/dist/esm/core/actions/v2/fetch-list.mjs +1 -1
  283. package/dist/esm/core/actions/v2/manager-v2.mjs +1 -1
  284. package/dist/esm/core/actions/v3/_keyset-paginate.mjs +66 -0
  285. package/dist/esm/core/actions/v3/_keyset-paginate.mjs.map +1 -0
  286. package/dist/esm/core/actions/v3/aggregate.mjs +94 -0
  287. package/dist/esm/core/actions/v3/aggregate.mjs.map +1 -0
  288. package/dist/esm/core/actions/v3/batch-by-chunk.mjs +1 -1
  289. package/dist/esm/core/actions/v3/batch.mjs +1 -10
  290. package/dist/esm/core/actions/v3/batch.mjs.map +1 -1
  291. package/dist/esm/core/actions/v3/call-list.mjs +30 -44
  292. package/dist/esm/core/actions/v3/call-list.mjs.map +1 -1
  293. package/dist/esm/core/actions/v3/call-tail.mjs +116 -0
  294. package/dist/esm/core/actions/v3/call-tail.mjs.map +1 -0
  295. package/dist/esm/core/actions/v3/call.mjs +1 -10
  296. package/dist/esm/core/actions/v3/call.mjs.map +1 -1
  297. package/dist/esm/core/actions/v3/fetch-list.mjs +24 -41
  298. package/dist/esm/core/actions/v3/fetch-list.mjs.map +1 -1
  299. package/dist/esm/core/actions/v3/fetch-tail.mjs +110 -0
  300. package/dist/esm/core/actions/v3/fetch-tail.mjs.map +1 -0
  301. package/dist/esm/core/actions/v3/manager-v3.mjs +25 -1
  302. package/dist/esm/core/actions/v3/manager-v3.mjs.map +1 -1
  303. package/dist/esm/core/http/abstract-http.mjs +68 -17
  304. package/dist/esm/core/http/abstract-http.mjs.map +1 -1
  305. package/dist/esm/core/http/ajax-error.mjs +1 -1
  306. package/dist/esm/core/http/ajax-result.mjs +9 -8
  307. package/dist/esm/core/http/ajax-result.mjs.map +1 -1
  308. package/dist/esm/core/http/limiters/adaptive-delayer.mjs +1 -1
  309. package/dist/esm/core/http/limiters/manager.mjs +1 -1
  310. package/dist/esm/core/http/limiters/operating-limiter.mjs +1 -1
  311. package/dist/esm/core/http/limiters/params-factory.mjs +1 -1
  312. package/dist/esm/core/http/limiters/rate-limiter.mjs +1 -1
  313. package/dist/esm/core/http/redact.mjs +41 -13
  314. package/dist/esm/core/http/redact.mjs.map +1 -1
  315. package/dist/esm/core/http/v2.mjs +1 -18
  316. package/dist/esm/core/http/v2.mjs.map +1 -1
  317. package/dist/esm/core/http/v3.mjs +1 -15
  318. package/dist/esm/core/http/v3.mjs.map +1 -1
  319. package/dist/esm/core/interaction/batch/abstract-interaction-batch.mjs +1 -1
  320. package/dist/esm/core/interaction/batch/parse-row.mjs +1 -1
  321. package/dist/esm/core/interaction/batch/processing/interface-strategy.mjs +44 -1
  322. package/dist/esm/core/interaction/batch/processing/interface-strategy.mjs.map +1 -1
  323. package/dist/esm/core/interaction/batch/processing/v2/abstract-processing.mjs +7 -6
  324. package/dist/esm/core/interaction/batch/processing/v2/abstract-processing.mjs.map +1 -1
  325. package/dist/esm/core/interaction/batch/processing/v2/as-array.mjs +3 -3
  326. package/dist/esm/core/interaction/batch/processing/v2/as-array.mjs.map +1 -1
  327. package/dist/esm/core/interaction/batch/processing/v2/as-object.mjs +1 -1
  328. package/dist/esm/core/interaction/batch/processing/v3/abstract-processing.mjs +7 -19
  329. package/dist/esm/core/interaction/batch/processing/v3/abstract-processing.mjs.map +1 -1
  330. package/dist/esm/core/interaction/batch/processing/v3/as-array.mjs +3 -3
  331. package/dist/esm/core/interaction/batch/processing/v3/as-array.mjs.map +1 -1
  332. package/dist/esm/core/interaction/batch/processing/v3/as-object.mjs +1 -1
  333. package/dist/esm/core/interaction/batch/v2.mjs +1 -1
  334. package/dist/esm/core/interaction/batch/v3.mjs +1 -1
  335. package/dist/esm/core/language/list.mjs +1 -1
  336. package/dist/esm/core/request-id-generator.mjs +1 -1
  337. package/dist/esm/core/result.mjs +11 -4
  338. package/dist/esm/core/result.mjs.map +1 -1
  339. package/dist/esm/core/sdk-error.mjs +1 -1
  340. package/dist/esm/core/tools/abstract-tool.mjs +1 -1
  341. package/dist/esm/core/tools/healthcheck.mjs +1 -1
  342. package/dist/esm/core/tools/manager.mjs +1 -1
  343. package/dist/esm/core/tools/ping.mjs +1 -1
  344. package/dist/esm/core/version-manager.mjs +19 -157
  345. package/dist/esm/core/version-manager.mjs.map +1 -1
  346. package/dist/esm/frame/auth.mjs +1 -1
  347. package/dist/esm/frame/b24.mjs +8 -2
  348. package/dist/esm/frame/b24.mjs.map +1 -1
  349. package/dist/esm/frame/dialog.mjs +1 -1
  350. package/dist/esm/frame/frame.mjs +1 -1
  351. package/dist/esm/frame/message/commands.mjs +1 -1
  352. package/dist/esm/frame/message/controller.mjs +17 -6
  353. package/dist/esm/frame/message/controller.mjs.map +1 -1
  354. package/dist/esm/frame/options.mjs +1 -1
  355. package/dist/esm/frame/parent.mjs +1 -1
  356. package/dist/esm/frame/placement.mjs +1 -1
  357. package/dist/esm/frame/slider.mjs +1 -1
  358. package/dist/esm/helper/abstract-helper.mjs +1 -1
  359. package/dist/esm/helper/app-manager.mjs +1 -1
  360. package/dist/esm/helper/currency-manager.mjs +1 -1
  361. package/dist/esm/helper/helper-manager.mjs +1 -1
  362. package/dist/esm/helper/license-manager.mjs +1 -1
  363. package/dist/esm/helper/options-manager.mjs +1 -1
  364. package/dist/esm/helper/payment-manager.mjs +1 -1
  365. package/dist/esm/helper/profile-manager.mjs +1 -1
  366. package/dist/esm/helper/use-b24-helper.mjs +1 -1
  367. package/dist/esm/hook/auth.mjs +1 -1
  368. package/dist/esm/hook/b24.mjs +3 -3
  369. package/dist/esm/hook/b24.mjs.map +1 -1
  370. package/dist/esm/index.d.mts +412 -39
  371. package/dist/esm/index.d.ts +412 -39
  372. package/dist/esm/index.mjs +3 -1
  373. package/dist/esm/index.mjs.map +1 -1
  374. package/dist/esm/loader-b24frame.mjs +1 -1
  375. package/dist/esm/logger/abstract-logger.mjs +1 -1
  376. package/dist/esm/logger/browser.mjs +1 -1
  377. package/dist/esm/logger/formatter/abstract-formatter.mjs +1 -1
  378. package/dist/esm/logger/formatter/json-formatter.mjs +1 -1
  379. package/dist/esm/logger/formatter/line-formatter.mjs +1 -1
  380. package/dist/esm/logger/formatter/telegram-formatter.mjs +1 -1
  381. package/dist/esm/logger/handler/abstract-handler.mjs +1 -1
  382. package/dist/esm/logger/handler/consola-adapter.mjs +1 -1
  383. package/dist/esm/logger/handler/console-handler.mjs +1 -1
  384. package/dist/esm/logger/handler/console-v2-handler.mjs +1 -1
  385. package/dist/esm/logger/handler/memory-handler.mjs +1 -1
  386. package/dist/esm/logger/handler/stream-handler.mjs +1 -1
  387. package/dist/esm/logger/handler/telegram-handler.mjs +1 -1
  388. package/dist/esm/logger/handler/winston-adapter.mjs +1 -1
  389. package/dist/esm/logger/logger-factory.mjs +1 -1
  390. package/dist/esm/logger/logger.mjs +1 -1
  391. package/dist/esm/logger/null-logger.mjs +1 -1
  392. package/dist/esm/logger/processor/memory-usage-processor.mjs +1 -1
  393. package/dist/esm/logger/processor/pid-processor.mjs +1 -1
  394. package/dist/esm/oauth/auth.mjs +13 -16
  395. package/dist/esm/oauth/auth.mjs.map +1 -1
  396. package/dist/esm/oauth/b24.mjs +1 -1
  397. package/dist/esm/oauth/refresh-token-error.mjs +1 -1
  398. package/dist/esm/pullClient/abstract-connector.mjs +1 -1
  399. package/dist/esm/pullClient/channel-manager.mjs +1 -1
  400. package/dist/esm/pullClient/client.mjs +141 -30
  401. package/dist/esm/pullClient/client.mjs.map +1 -1
  402. package/dist/esm/pullClient/errors.mjs +1 -1
  403. package/dist/esm/pullClient/json-rpc.mjs +5 -4
  404. package/dist/esm/pullClient/json-rpc.mjs.map +1 -1
  405. package/dist/esm/pullClient/long-polling-connector.mjs +1 -1
  406. package/dist/esm/pullClient/protobuf/index.mjs +1 -1
  407. package/dist/esm/pullClient/protobuf/model.mjs +1 -1
  408. package/dist/esm/pullClient/protobuf/protobuf.mjs +1 -1
  409. package/dist/esm/pullClient/shared-config.mjs +1 -1
  410. package/dist/esm/pullClient/storage-manager.mjs +1 -1
  411. package/dist/esm/pullClient/web-socket-connector.mjs +1 -1
  412. package/dist/esm/tools/batch-ref-v3.mjs +52 -0
  413. package/dist/esm/tools/batch-ref-v3.mjs.map +1 -0
  414. package/dist/esm/tools/browser.mjs +1 -1
  415. package/dist/esm/tools/environment.mjs +1 -1
  416. package/dist/esm/tools/filter-v3.mjs +137 -0
  417. package/dist/esm/tools/filter-v3.mjs.map +1 -0
  418. package/dist/esm/tools/formatters/iban.mjs +1 -1
  419. package/dist/esm/tools/formatters/numbers.mjs +1 -1
  420. package/dist/esm/tools/index.mjs +1 -1
  421. package/dist/esm/tools/scroll-size.mjs +1 -1
  422. package/dist/esm/tools/text.mjs +1 -1
  423. package/dist/esm/tools/type.mjs +1 -1
  424. package/dist/esm/tools/use-formatters.mjs +1 -1
  425. package/dist/esm/tools/uuidv7.mjs +1 -1
  426. package/dist/esm/types/b24-helper.mjs +1 -1
  427. package/dist/esm/types/b24.mjs +1 -1
  428. package/dist/esm/types/bizproc/index.mjs +1 -1
  429. package/dist/esm/types/catalog/index.mjs +1 -1
  430. package/dist/esm/types/common.mjs +1 -1
  431. package/dist/esm/types/crm/entity-type.mjs +1 -1
  432. package/dist/esm/types/crm/productrow.mjs +1 -1
  433. package/dist/esm/types/logger.mjs +1 -1
  434. package/dist/esm/types/pull.mjs +1 -1
  435. package/dist/umd/index.js +1258 -719
  436. package/dist/umd/index.js.map +1 -1
  437. package/dist/umd/index.min.js +26 -26
  438. package/dist/umd/index.min.js.map +1 -1
  439. package/dist/umd/package.json +3 -0
  440. package/package.json +12 -4
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 2.0.0
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ 'use strict';
10
+
11
+ const logger = require('../../types/logger.cjs');
12
+ const abstractHandler = require('./abstract-handler.cjs');
13
+
14
+ var __defProp = Object.defineProperty;
15
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
16
+ class WinstonAdapter extends abstractHandler.AbstractHandler {
17
+ static {
18
+ __name(this, "WinstonAdapter");
19
+ }
20
+ winstonLogger;
21
+ constructor(level = logger.LogLevel.DEBUG, options) {
22
+ const opts = {
23
+ bubble: true,
24
+ ...options
25
+ };
26
+ super(level, opts.bubble);
27
+ this.winstonLogger = opts.winstonLogger;
28
+ }
29
+ setFormatter(_formatter) {
30
+ }
31
+ getFormatter() {
32
+ return null;
33
+ }
34
+ async handle(record) {
35
+ const levelMap = {
36
+ DEBUG: "debug",
37
+ INFO: "info",
38
+ NOTICE: "notice",
39
+ WARNING: "warn",
40
+ ERROR: "error",
41
+ CRITICAL: "error",
42
+ ALERT: "error",
43
+ EMERGENCY: "error"
44
+ };
45
+ const winstonLevel = levelMap[record.levelName] || levelMap.INFO;
46
+ this.winstonLogger.log({
47
+ level: winstonLevel,
48
+ channel: record.channel,
49
+ message: record.message,
50
+ context: record.context,
51
+ extra: record.extra,
52
+ timestamp: record.timestamp
53
+ });
54
+ return true;
55
+ }
56
+ }
57
+
58
+ exports.WinstonAdapter = WinstonAdapter;
59
+ //# sourceMappingURL=winston-adapter.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"winston-adapter.cjs","sources":["../../../../src/logger/handler/winston-adapter.ts"],"sourcesContent":["import type { Handler, HandlerOptions, LogRecord, Formatter, LogLevelName } from '../../types/logger'\nimport { LogLevel } from '../../types/logger'\nimport { AbstractHandler } from './abstract-handler'\n\nexport interface WinstonAdapterOptions extends HandlerOptions {\n winstonLogger: any\n}\n\n/**\n * Adapter for Winston\n *\n * @memo Winston has its own formatter\n * @link https://github.com/winstonjs/winston\n */\nexport class WinstonAdapter extends AbstractHandler implements Handler {\n private winstonLogger: any\n\n constructor(\n level: LogLevel = LogLevel.DEBUG,\n options: WinstonAdapterOptions\n ) {\n const opts = {\n bubble: true,\n ...options\n }\n\n super(level, opts.bubble)\n this.winstonLogger = opts.winstonLogger\n }\n\n public override setFormatter(_formatter: Formatter): void {\n // Consola has its own formatter\n }\n\n public override getFormatter(): Formatter | null {\n return null\n }\n\n public override async handle(record: LogRecord): Promise<boolean> {\n const levelMap: Record<LogLevelName, string> = {\n DEBUG: 'debug',\n INFO: 'info',\n NOTICE: 'notice',\n WARNING: 'warn',\n ERROR: 'error',\n CRITICAL: 'error',\n ALERT: 'error',\n EMERGENCY: 'error'\n }\n\n const winstonLevel = levelMap[record.levelName] || levelMap.INFO\n\n this.winstonLogger.log({\n level: winstonLevel,\n channel: record.channel,\n message: record.message,\n context: record.context,\n extra: record.extra,\n timestamp: record.timestamp\n })\n\n return true\n }\n}\n"],"names":["AbstractHandler","LogLevel"],"mappings":";;;;;;;;;;;;;;;AAcO,MAAM,uBAAuBA,+BAAA,CAAmC;AAAA,EAdvE;AAcuE,IAAA,MAAA,CAAA,IAAA,EAAA,gBAAA,CAAA;AAAA;AAAA,EAC7D,aAAA;AAAA,EAER,WAAA,CACE,KAAA,GAAkBC,eAAA,CAAS,KAAA,EAC3B,OAAA,EACA;AACA,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,MAAA,EAAQ,IAAA;AAAA,MACR,GAAG;AAAA,KACL;AAEA,IAAA,KAAA,CAAM,KAAA,EAAO,KAAK,MAAM,CAAA;AACxB,IAAA,IAAA,CAAK,gBAAgB,IAAA,CAAK,aAAA;AAAA,EAC5B;AAAA,EAEgB,aAAa,UAAA,EAA6B;AAAA,EAE1D;AAAA,EAEgB,YAAA,GAAiC;AAC/C,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAsB,OAAO,MAAA,EAAqC;AAChE,IAAA,MAAM,QAAA,GAAyC;AAAA,MAC7C,KAAA,EAAO,OAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,MAAA;AAAA,MACT,KAAA,EAAO,OAAA;AAAA,MACP,QAAA,EAAU,OAAA;AAAA,MACV,KAAA,EAAO,OAAA;AAAA,MACP,SAAA,EAAW;AAAA,KACb;AAEA,IAAA,MAAM,YAAA,GAAe,QAAA,CAAS,MAAA,CAAO,SAAS,KAAK,QAAA,CAAS,IAAA;AAE5D,IAAA,IAAA,CAAK,cAAc,GAAA,CAAI;AAAA,MACrB,KAAA,EAAO,YAAA;AAAA,MACP,SAAS,MAAA,CAAO,OAAA;AAAA,MAChB,SAAS,MAAA,CAAO,OAAA;AAAA,MAChB,SAAS,MAAA,CAAO,OAAA;AAAA,MAChB,OAAO,MAAA,CAAO,KAAA;AAAA,MACd,WAAW,MAAA,CAAO;AAAA,KACnB,CAAA;AAED,IAAA,OAAO,IAAA;AAAA,EACT;AACF;;;;"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 2.0.0
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ 'use strict';
10
+
11
+ const logger = require('../types/logger.cjs');
12
+ const logger$1 = require('./logger.cjs');
13
+ const nullLogger = require('./null-logger.cjs');
14
+ const consoleV2Handler = require('./handler/console-v2-handler.cjs');
15
+
16
+ var __defProp = Object.defineProperty;
17
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
18
+ class LoggerFactory {
19
+ static {
20
+ __name(this, "LoggerFactory");
21
+ }
22
+ static createNullLogger() {
23
+ return nullLogger.NullLogger.create();
24
+ }
25
+ static createForBrowser(channel, isDevMode = false) {
26
+ if (isDevMode) {
27
+ return LoggerFactory.createForBrowserDevelopment(channel);
28
+ }
29
+ return LoggerFactory.createForBrowserProduction(channel);
30
+ }
31
+ static createForBrowserDevelopment(channel, level = logger.LogLevel.DEBUG) {
32
+ const logger = new logger$1.Logger(channel);
33
+ const handler = new consoleV2Handler.ConsoleV2Handler(level);
34
+ logger.pushHandler(handler);
35
+ return logger;
36
+ }
37
+ static createForBrowserProduction(channel, level = logger.LogLevel.ERROR) {
38
+ const logger = new logger$1.Logger(channel);
39
+ const handler = new consoleV2Handler.ConsoleV2Handler(level);
40
+ logger.pushHandler(handler);
41
+ return logger;
42
+ }
43
+ static async forcedLog(logger, action, message, context) {
44
+ if (typeof globalThis !== "undefined" && "vitest" in globalThis) {
45
+ return;
46
+ }
47
+ if (logger instanceof nullLogger.NullLogger) {
48
+ switch (action) {
49
+ case "debug":
50
+ console.log(message, context);
51
+ return;
52
+ case "info":
53
+ case "notice":
54
+ console.info(message, context);
55
+ return;
56
+ case "warning":
57
+ console.warn(message, context);
58
+ return;
59
+ default:
60
+ console.error(message, context);
61
+ return;
62
+ }
63
+ }
64
+ return logger[action](message, context);
65
+ }
66
+ }
67
+
68
+ exports.LoggerFactory = LoggerFactory;
69
+ //# sourceMappingURL=logger-factory.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-factory.cjs","sources":["../../../src/logger/logger-factory.ts"],"sourcesContent":["import type { LoggerInterface } from '../types/logger'\nimport { LogLevel } from '../types/logger'\nimport { Logger } from './logger'\nimport { NullLogger } from './null-logger'\nimport { ConsoleV2Handler } from './handler'\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class LoggerFactory {\n static createNullLogger(): LoggerInterface {\n return NullLogger.create()\n }\n\n static createForBrowser(channel: string, isDevMode: boolean = false): LoggerInterface {\n if (isDevMode) {\n return LoggerFactory.createForBrowserDevelopment(channel)\n }\n\n return LoggerFactory.createForBrowserProduction(channel)\n }\n\n static createForBrowserDevelopment(channel: string, level: LogLevel = LogLevel.DEBUG): LoggerInterface {\n const logger = new Logger(channel)\n const handler = new ConsoleV2Handler(level)\n logger.pushHandler(handler)\n return logger\n }\n\n static createForBrowserProduction(channel: string, level: LogLevel = LogLevel.ERROR): LoggerInterface {\n const logger = new Logger(channel)\n const handler = new ConsoleV2Handler(level)\n logger.pushHandler(handler)\n return logger\n }\n\n static async forcedLog(\n logger: LoggerInterface,\n action: 'debug' | 'info' | 'notice' | 'warning' | 'error' | 'critical' | 'alert' | 'emergency',\n message: string,\n context: Record<string, any>\n ): Promise<void> {\n if (typeof globalThis !== 'undefined' && 'vitest' in globalThis) {\n return\n }\n\n if (logger instanceof NullLogger) {\n switch (action) {\n case 'debug':\n console.log(message, context)\n return\n case 'info':\n case 'notice':\n console.info(message, context)\n return\n case 'warning':\n console.warn(message, context)\n return\n default:\n console.error(message, context)\n return\n }\n }\n\n return logger[action](message, context)\n }\n}\n"],"names":["NullLogger","LogLevel","Logger","ConsoleV2Handler"],"mappings":";;;;;;;;;;;;;;;;;AAOO,MAAM,aAAA,CAAc;AAAA,EAP3B;AAO2B,IAAA,MAAA,CAAA,IAAA,EAAA,eAAA,CAAA;AAAA;AAAA,EACzB,OAAO,gBAAA,GAAoC;AACzC,IAAA,OAAOA,sBAAW,MAAA,EAAO;AAAA,EAC3B;AAAA,EAEA,OAAO,gBAAA,CAAiB,OAAA,EAAiB,SAAA,GAAqB,KAAA,EAAwB;AACpF,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,OAAO,aAAA,CAAc,4BAA4B,OAAO,CAAA;AAAA,IAC1D;AAEA,IAAA,OAAO,aAAA,CAAc,2BAA2B,OAAO,CAAA;AAAA,EACzD;AAAA,EAEA,OAAO,2BAAA,CAA4B,OAAA,EAAiB,KAAA,GAAkBC,gBAAS,KAAA,EAAwB;AACrG,IAAA,MAAM,MAAA,GAAS,IAAIC,eAAA,CAAO,OAAO,CAAA;AACjC,IAAA,MAAM,OAAA,GAAU,IAAIC,iCAAA,CAAiB,KAAK,CAAA;AAC1C,IAAA,MAAA,CAAO,YAAY,OAAO,CAAA;AAC1B,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,OAAO,0BAAA,CAA2B,OAAA,EAAiB,KAAA,GAAkBF,gBAAS,KAAA,EAAwB;AACpG,IAAA,MAAM,MAAA,GAAS,IAAIC,eAAA,CAAO,OAAO,CAAA;AACjC,IAAA,MAAM,OAAA,GAAU,IAAIC,iCAAA,CAAiB,KAAK,CAAA;AAC1C,IAAA,MAAA,CAAO,YAAY,OAAO,CAAA;AAC1B,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,aAAa,SAAA,CACX,MAAA,EACA,MAAA,EACA,SACA,OAAA,EACe;AACf,IAAA,IAAI,OAAO,UAAA,KAAe,WAAA,IAAe,QAAA,IAAY,UAAA,EAAY;AAC/D,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,kBAAkBH,qBAAA,EAAY;AAChC,MAAA,QAAQ,MAAA;AAAQ,QACd,KAAK,OAAA;AACH,UAAA,OAAA,CAAQ,GAAA,CAAI,SAAS,OAAO,CAAA;AAC5B,UAAA;AAAA,QACF,KAAK,MAAA;AAAA,QACL,KAAK,QAAA;AACH,UAAA,OAAA,CAAQ,IAAA,CAAK,SAAS,OAAO,CAAA;AAC7B,UAAA;AAAA,QACF,KAAK,SAAA;AACH,UAAA,OAAA,CAAQ,IAAA,CAAK,SAAS,OAAO,CAAA;AAC7B,UAAA;AAAA,QACF;AACE,UAAA,OAAA,CAAQ,KAAA,CAAM,SAAS,OAAO,CAAA;AAC9B,UAAA;AAAA;AACJ,IACF;AAEA,IAAA,OAAO,MAAA,CAAO,MAAM,CAAA,CAAE,OAAA,EAAS,OAAO,CAAA;AAAA,EACxC;AACF;;;;"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 2.0.0
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ 'use strict';
10
+
11
+ const logger = require('../types/logger.cjs');
12
+ const abstractLogger = require('./abstract-logger.cjs');
13
+
14
+ var __defProp = Object.defineProperty;
15
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
16
+ class Logger extends abstractLogger.AbstractLogger {
17
+ static {
18
+ __name(this, "Logger");
19
+ }
20
+ channel;
21
+ handlers = [];
22
+ processors = [];
23
+ constructor(channel) {
24
+ super();
25
+ this.channel = channel;
26
+ }
27
+ // region static methods for creation ////
28
+ static create(channel) {
29
+ return new Logger(channel);
30
+ }
31
+ // endregion ////
32
+ // region config ////
33
+ pushHandler(handler) {
34
+ this.handlers.push(handler);
35
+ return this;
36
+ }
37
+ popHandler() {
38
+ return this.handlers.pop() || null;
39
+ }
40
+ setHandlers(handlers) {
41
+ this.handlers = handlers;
42
+ return this;
43
+ }
44
+ pushProcessor(processor) {
45
+ this.processors.push(processor);
46
+ return this;
47
+ }
48
+ // endregion ////
49
+ /**
50
+ * @inheritDoc
51
+ */
52
+ async log(level, message, context) {
53
+ const record = {
54
+ channel: this.channel,
55
+ level,
56
+ levelName: logger.LogLevel[level],
57
+ message,
58
+ context: context ?? {},
59
+ extra: {},
60
+ timestamp: /* @__PURE__ */ new Date()
61
+ };
62
+ let processedRecord = record;
63
+ for (const processor of this.processors) {
64
+ processedRecord = processor(processedRecord);
65
+ }
66
+ for (const handler of this.handlers) {
67
+ if (handler.isHandling(level)) {
68
+ const handled = await handler.handle(processedRecord);
69
+ if (handled && !handler.shouldBubble()) {
70
+ break;
71
+ }
72
+ }
73
+ }
74
+ }
75
+ }
76
+
77
+ exports.Logger = Logger;
78
+ //# sourceMappingURL=logger.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.cjs","sources":["../../../src/logger/logger.ts"],"sourcesContent":["import type { Handler, Processor, LogRecord, LogLevelName, LoggerInterface } from '../types/logger'\nimport { LogLevel } from '../types/logger'\nimport { AbstractLogger } from './abstract-logger'\n\n/**\n * A logger created according to the principles of `Monolog`\n *\n * @link https://github.com/Seldaek/monolog\n */\nexport class Logger extends AbstractLogger implements LoggerInterface {\n private readonly channel: string\n private handlers: Handler[] = []\n private processors: Processor[] = []\n\n constructor(channel: string) {\n super()\n this.channel = channel\n }\n\n // region static methods for creation ////\n static create(channel: string): Logger {\n return new Logger(channel)\n }\n // endregion ////\n\n // region config ////\n public pushHandler(handler: Handler): this {\n this.handlers.push(handler)\n return this\n }\n\n public popHandler(): Handler | null {\n return this.handlers.pop() || null\n }\n\n public setHandlers(handlers: Handler[]): this {\n this.handlers = handlers\n return this\n }\n\n public pushProcessor(processor: Processor): this {\n this.processors.push(processor)\n return this\n }\n // endregion ////\n\n /**\n * @inheritDoc\n */\n public async log(level: LogLevel, message: string, context?: Record<string, any>): Promise<void> {\n const record: LogRecord = {\n channel: this.channel,\n level,\n levelName: LogLevel[level] as LogLevelName,\n message,\n context: context ?? {},\n extra: {},\n timestamp: new Date()\n }\n\n // Using processors\n let processedRecord = record\n for (const processor of this.processors) {\n processedRecord = processor(processedRecord)\n }\n\n // Pass the record to the handlers\n for (const handler of this.handlers) {\n if (handler.isHandling(level)) {\n // The handler returns a boolean indicating whether it was processed successfully.\n const handled = await handler.handle(processedRecord)\n\n // If the handler has processed the record and should NOT proceed further (bubble: false)\n // break the chain of handlers\n if (handled && !handler.shouldBubble()) {\n break\n }\n }\n }\n }\n}\n"],"names":["AbstractLogger","LogLevel"],"mappings":";;;;;;;;;;;;;;;AASO,MAAM,eAAeA,6BAAA,CAA0C;AAAA,EATtE;AASsE,IAAA,MAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AAAA;AAAA,EACnD,OAAA;AAAA,EACT,WAAsB,EAAC;AAAA,EACvB,aAA0B,EAAC;AAAA,EAEnC,YAAY,OAAA,EAAiB;AAC3B,IAAA,KAAA,EAAM;AACN,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AAAA,EACjB;AAAA;AAAA,EAGA,OAAO,OAAO,OAAA,EAAyB;AACrC,IAAA,OAAO,IAAI,OAAO,OAAO,CAAA;AAAA,EAC3B;AAAA;AAAA;AAAA,EAIO,YAAY,OAAA,EAAwB;AACzC,IAAA,IAAA,CAAK,QAAA,CAAS,KAAK,OAAO,CAAA;AAC1B,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEO,UAAA,GAA6B;AAClC,IAAA,OAAO,IAAA,CAAK,QAAA,CAAS,GAAA,EAAI,IAAK,IAAA;AAAA,EAChC;AAAA,EAEO,YAAY,QAAA,EAA2B;AAC5C,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEO,cAAc,SAAA,EAA4B;AAC/C,IAAA,IAAA,CAAK,UAAA,CAAW,KAAK,SAAS,CAAA;AAC9B,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAa,GAAA,CAAI,KAAA,EAAiB,OAAA,EAAiB,OAAA,EAA8C;AAC/F,IAAA,MAAM,MAAA,GAAoB;AAAA,MACxB,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,KAAA;AAAA,MACA,SAAA,EAAWC,gBAAS,KAAK,CAAA;AAAA,MACzB,OAAA;AAAA,MACA,OAAA,EAAS,WAAW,EAAC;AAAA,MACrB,OAAO,EAAC;AAAA,MACR,SAAA,sBAAe,IAAA;AAAK,KACtB;AAGA,IAAA,IAAI,eAAA,GAAkB,MAAA;AACtB,IAAA,KAAA,MAAW,SAAA,IAAa,KAAK,UAAA,EAAY;AACvC,MAAA,eAAA,GAAkB,UAAU,eAAe,CAAA;AAAA,IAC7C;AAGA,IAAA,KAAA,MAAW,OAAA,IAAW,KAAK,QAAA,EAAU;AACnC,MAAA,IAAI,OAAA,CAAQ,UAAA,CAAW,KAAK,CAAA,EAAG;AAE7B,QAAA,MAAM,OAAA,GAAU,MAAM,OAAA,CAAQ,MAAA,CAAO,eAAe,CAAA;AAIpD,QAAA,IAAI,OAAA,IAAW,CAAC,OAAA,CAAQ,YAAA,EAAa,EAAG;AACtC,UAAA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;;"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 2.0.0
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ 'use strict';
10
+
11
+ const abstractLogger = require('./abstract-logger.cjs');
12
+
13
+ var __defProp = Object.defineProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
15
+ class NullLogger extends abstractLogger.AbstractLogger {
16
+ static {
17
+ __name(this, "NullLogger");
18
+ }
19
+ // region static methods for creation ////
20
+ static create() {
21
+ return new NullLogger();
22
+ }
23
+ // endregion ////
24
+ // region logging methods ////
25
+ /**
26
+ * @inheritDoc
27
+ */
28
+ async log(_level, _message, _context) {
29
+ }
30
+ // endregion ////
31
+ }
32
+
33
+ exports.NullLogger = NullLogger;
34
+ //# sourceMappingURL=null-logger.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-logger.cjs","sources":["../../../src/logger/null-logger.ts"],"sourcesContent":["import type { LoggerInterface, LogLevel } from '../types/logger'\nimport { AbstractLogger } from './abstract-logger'\n\n/**\n * This Logger can be used to avoid conditional log calls.\n *\n * Logging should always be optional, and if no logger is provided to your\n * library creating a NullLogger instance to have something to throw logs at\n * is a good way to avoid littering your code with `if (this.logger) { }`\n * blocks.\n */\nexport class NullLogger extends AbstractLogger implements LoggerInterface {\n // region static methods for creation ////\n static create(): NullLogger {\n return new NullLogger()\n }\n // endregion ////\n\n // region logging methods ////\n /**\n * @inheritDoc\n */\n public async log(_level: LogLevel, _message: string, _context?: Record<string, any>): Promise<void> {\n // noop\n }\n // endregion ////\n}\n"],"names":["AbstractLogger"],"mappings":";;;;;;;;;;;;;;AAWO,MAAM,mBAAmBA,6BAAA,CAA0C;AAAA,EAX1E;AAW0E,IAAA,MAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AAAA;AAAA;AAAA,EAExE,OAAO,MAAA,GAAqB;AAC1B,IAAA,OAAO,IAAI,UAAA,EAAW;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAa,GAAA,CAAI,MAAA,EAAkB,QAAA,EAAkB,QAAA,EAA+C;AAAA,EAEpG;AAAA;AAEF;;;;"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 2.0.0
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ 'use strict';
10
+
11
+ var __defProp = Object.defineProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ const memoryUsageProcessor = /* @__PURE__ */ __name((record) => {
14
+ record.extra["memoryUsage"] = "?";
15
+ if (typeof process !== "undefined" && process.memoryUsage) {
16
+ record.extra["memoryUsage"] = Math.round(process.memoryUsage().heapUsed / 1024 / 1024) + "MB";
17
+ }
18
+ return record;
19
+ }, "memoryUsageProcessor");
20
+
21
+ exports.memoryUsageProcessor = memoryUsageProcessor;
22
+ //# sourceMappingURL=memory-usage-processor.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-usage-processor.cjs","sources":["../../../../src/logger/processor/memory-usage-processor.ts"],"sourcesContent":["import type { Processor, LogRecord } from '../../types/logger'\n\nexport const memoryUsageProcessor: Processor = (record: LogRecord) => {\n record.extra['memoryUsage'] = '?'\n\n if (typeof process !== 'undefined' && process.memoryUsage) {\n record.extra['memoryUsage'] = Math.round(process.memoryUsage().heapUsed / 1024 / 1024) + 'MB'\n }\n\n return record\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAEO,MAAM,oBAAA,2BAAmC,MAAA,KAAsB;AACpE,EAAA,MAAA,CAAO,KAAA,CAAM,aAAa,CAAA,GAAI,GAAA;AAE9B,EAAA,IAAI,OAAO,OAAA,KAAY,WAAA,IAAe,OAAA,CAAQ,WAAA,EAAa;AACzD,IAAA,MAAA,CAAO,KAAA,CAAM,aAAa,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,WAAA,EAAY,CAAE,QAAA,GAAW,IAAA,GAAO,IAAI,CAAA,GAAI,IAAA;AAAA,EAC3F;AAEA,EAAA,OAAO,MAAA;AACT,CAAA,EAR+C,sBAAA;;;;"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 2.0.0
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ 'use strict';
10
+
11
+ var __defProp = Object.defineProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ const pidProcessor = /* @__PURE__ */ __name((record) => {
14
+ record.extra["pid"] = "?";
15
+ if (typeof process !== "undefined" && process.pid) {
16
+ record.extra["pid"] = process.pid;
17
+ }
18
+ return record;
19
+ }, "pidProcessor");
20
+
21
+ exports.pidProcessor = pidProcessor;
22
+ //# sourceMappingURL=pid-processor.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pid-processor.cjs","sources":["../../../../src/logger/processor/pid-processor.ts"],"sourcesContent":["import type { Processor, LogRecord } from '../../types/logger'\n\nexport const pidProcessor: Processor = (record: LogRecord) => {\n record.extra['pid'] = '?'\n\n if (typeof process !== 'undefined' && process.pid) {\n record.extra['pid'] = process.pid\n }\n\n return record\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAEO,MAAM,YAAA,2BAA2B,MAAA,KAAsB;AAC5D,EAAA,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA,GAAI,GAAA;AAEtB,EAAA,IAAI,OAAO,OAAA,KAAY,WAAA,IAAe,OAAA,CAAQ,GAAA,EAAK;AACjD,IAAA,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA,GAAI,OAAA,CAAQ,GAAA;AAAA,EAChC;AAEA,EAAA,OAAO,MAAA;AACT,CAAA,EARuC,cAAA;;;;"}
@@ -0,0 +1,214 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 2.0.0
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ 'use strict';
10
+
11
+ const axios = require('axios');
12
+ const refreshTokenError = require('./refresh-token-error.cjs');
13
+ const type = require('../tools/type.cjs');
14
+ const b24Helper = require('../types/b24-helper.cjs');
15
+ const b24 = require('../types/b24.cjs');
16
+
17
+ function _interopDefault (e) { return e && e.__esModule ? e.default : e; }
18
+
19
+ const axios__default = /*#__PURE__*/_interopDefault(axios);
20
+
21
+ var __defProp = Object.defineProperty;
22
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
23
+ class AuthOAuthManager {
24
+ static {
25
+ __name(this, "AuthOAuthManager");
26
+ }
27
+ #clientAxios;
28
+ #callbackRefreshAuth = null;
29
+ #customRefreshAuth = null;
30
+ #authOptions;
31
+ #oAuthSecret;
32
+ #authExpires = 0;
33
+ #authExpiresIn = 0;
34
+ #domain;
35
+ #b24TargetRest;
36
+ #b24Target;
37
+ #b24TargetRestWithPath;
38
+ #oAuthTarget;
39
+ // from serverEndpoint, e.g. 'https://oauth.bitrix24.tech'
40
+ #isAdmin = null;
41
+ constructor(b24OAuthParams, oAuthSecret) {
42
+ this.#authOptions = Object.assign({}, b24OAuthParams);
43
+ this.#oAuthSecret = Object.freeze(Object.assign({}, oAuthSecret));
44
+ this.#domain = this.#authOptions.domain.replaceAll("https://", "").replaceAll("http://", "").replace(/:(80|443)$/, "");
45
+ this.#b24TargetRest = this.#authOptions.clientEndpoint;
46
+ this.#b24Target = this.#b24TargetRest.replace("/rest/", "");
47
+ this.#oAuthTarget = this.#authOptions.serverEndpoint.replace("/rest/", "");
48
+ this.#authExpires = this.#authOptions.expires * 1e3;
49
+ this.#authExpiresIn = this.#authOptions.expiresIn;
50
+ this.#clientAxios = axios__default.create({
51
+ baseURL: this.#oAuthTarget
52
+ });
53
+ this.#b24TargetRestWithPath = /* @__PURE__ */ new Map();
54
+ this.#b24TargetRestWithPath.set(b24.ApiVersion.v2, `${this.#b24TargetRest}`);
55
+ this.#b24TargetRestWithPath.set(b24.ApiVersion.v3, `${this.#b24TargetRest}/api`);
56
+ }
57
+ /**
58
+ * Returns authorization data
59
+ * @see Http.#prepareParams
60
+ */
61
+ getAuthData() {
62
+ return this.#authExpires > Date.now() ? {
63
+ access_token: this.#authOptions.accessToken,
64
+ refresh_token: this.#authOptions.refreshToken,
65
+ expires: this.#authExpires / 1e3,
66
+ expires_in: this.#authExpiresIn,
67
+ domain: this.#domain,
68
+ member_id: this.#authOptions.memberId
69
+ } : false;
70
+ }
71
+ // region RefreshAuth ////
72
+ /**
73
+ * Updates authorization data
74
+ */
75
+ async refreshAuth() {
76
+ try {
77
+ let payload = void 0;
78
+ if (this.#customRefreshAuth) {
79
+ payload = await this.#customRefreshAuth();
80
+ } else {
81
+ const body = new URLSearchParams({
82
+ grant_type: "refresh_token",
83
+ client_id: this.#oAuthSecret.clientId,
84
+ client_secret: this.#oAuthSecret.clientSecret,
85
+ refresh_token: this.#authOptions.refreshToken
86
+ });
87
+ const response = await this.#clientAxios.post(
88
+ "/oauth/token/",
89
+ body,
90
+ { headers: { "Content-Type": "application/x-www-form-urlencoded" } }
91
+ );
92
+ if (response.data.error) {
93
+ throw new Error(`Token update error: ${response.data.error}`);
94
+ }
95
+ if (response.status !== 200) {
96
+ throw new Error(`Token update error status code: ${response.status}`);
97
+ }
98
+ payload = response.data;
99
+ }
100
+ if (!payload) {
101
+ throw new Error("Unable to obtain authorization update data");
102
+ }
103
+ this.#authOptions.accessToken = payload.access_token;
104
+ this.#authOptions.refreshToken = payload.refresh_token;
105
+ this.#authOptions.expires = Number.parseInt(payload.expires || "0");
106
+ this.#authOptions.expiresIn = Number.parseInt(payload.expires_in || "3600");
107
+ this.#authOptions.clientEndpoint = payload.client_endpoint;
108
+ this.#authOptions.serverEndpoint = payload.server_endpoint;
109
+ this.#authOptions.scope = payload.scope;
110
+ this.#authOptions.status = Object.values(b24Helper.EnumAppStatus).find((value) => value === payload.status) || b24Helper.EnumAppStatus.Free;
111
+ this.#authExpires = this.#authOptions.expires * 1e3;
112
+ const authData = this.getAuthData();
113
+ if (this.#callbackRefreshAuth) {
114
+ await this.#callbackRefreshAuth({ authData, b24OAuthParams: this.#authOptions });
115
+ }
116
+ return authData;
117
+ } catch (error) {
118
+ if (error instanceof axios.AxiosError) {
119
+ const answerError = {
120
+ code: error?.code || 0,
121
+ description: error?.message || ""
122
+ };
123
+ if (error.response && error.response.data && !type.Type.isUndefined(error.response.data.error)) {
124
+ const responseData = error.response.data;
125
+ if (responseData.error && typeof responseData.error === "object" && "code" in responseData.error) {
126
+ answerError.code = responseData.error.code;
127
+ answerError.description = responseData.error.message;
128
+ if (responseData.error.validation) {
129
+ responseData.error.validation.forEach((row) => {
130
+ answerError.description += `${row?.message || JSON.stringify(row)}`;
131
+ });
132
+ }
133
+ } else if (responseData.error && typeof responseData.error === "string") {
134
+ answerError.code = responseData.error;
135
+ answerError.description = responseData?.error_description ?? answerError.description;
136
+ }
137
+ }
138
+ throw new refreshTokenError.RefreshTokenError({
139
+ code: String(answerError.code),
140
+ description: answerError.description,
141
+ status: error.response?.status || 0
142
+ });
143
+ } else if (error instanceof Error) {
144
+ throw error;
145
+ }
146
+ throw new Error(
147
+ `Strange error: ${error instanceof Error ? error.message : error}`,
148
+ { cause: error instanceof Error ? error : void 0 }
149
+ );
150
+ }
151
+ }
152
+ setCallbackRefreshAuth(cb) {
153
+ this.#callbackRefreshAuth = cb;
154
+ }
155
+ removeCallbackRefreshAuth() {
156
+ this.#callbackRefreshAuth = null;
157
+ }
158
+ setCustomRefreshAuth(cb) {
159
+ this.#customRefreshAuth = cb;
160
+ }
161
+ removeCustomRefreshAuth() {
162
+ this.#customRefreshAuth = null;
163
+ }
164
+ // endregion ////
165
+ getUniq(prefix) {
166
+ return [prefix, this.#authOptions.memberId || ""].join("_");
167
+ }
168
+ /**
169
+ * @inheritDoc
170
+ */
171
+ getTargetOrigin() {
172
+ return `${this.#b24Target}`;
173
+ }
174
+ /**
175
+ * @inheritDoc
176
+ */
177
+ getTargetOriginWithPath() {
178
+ return this.#b24TargetRestWithPath;
179
+ }
180
+ /**
181
+ * Determines whether the current user has administrator rights
182
+ */
183
+ get isAdmin() {
184
+ if (null === this.#isAdmin) {
185
+ throw new Error("isAdmin not init. You need call B24OAuth::initIsAdmin().");
186
+ }
187
+ return this.#isAdmin;
188
+ }
189
+ async initIsAdmin(http, requestId) {
190
+ this.#isAdmin = false;
191
+ if (http.apiVersion === b24.ApiVersion.v3) {
192
+ const response2 = await http.call("profile", {}, requestId);
193
+ if (!response2.isSuccess) {
194
+ throw new Error(response2.getErrorMessages().join(";"));
195
+ }
196
+ const data2 = response2.getData().result;
197
+ if (data2.profile?.admin) {
198
+ this.#isAdmin = true;
199
+ }
200
+ return;
201
+ }
202
+ const response = await http.call("profile", {}, requestId);
203
+ if (!response.isSuccess) {
204
+ throw new Error(response.getErrorMessages().join(";"));
205
+ }
206
+ const data = response.getData().result;
207
+ if (data?.ADMIN) {
208
+ this.#isAdmin = true;
209
+ }
210
+ }
211
+ }
212
+
213
+ exports.AuthOAuthManager = AuthOAuthManager;
214
+ //# sourceMappingURL=auth.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.cjs","sources":["../../../src/oauth/auth.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport type { AuthActions, AuthData, B24OAuthParams, B24OAuthSecret, CallbackRefreshAuth, CustomRefreshAuth, HandlerRefreshAuth, TypeDescriptionError, TypeDescriptionErrorV3 } from '../types/auth'\nimport type { TypeHttp } from '../types/http'\nimport axios, { AxiosError } from 'axios'\nimport { RefreshTokenError } from './refresh-token-error'\nimport { Type } from '../tools/type'\nimport { EnumAppStatus } from '../types/b24-helper'\nimport { ApiVersion } from '../types/b24'\n\n/**\n * OAuth Authorization Manager\n *\n * @link https://apidocs.bitrix24.com/settings/oauth/index.html\n * @link https://bitrix24.github.io/b24jssdk/docs/oauth/\n */\nexport class AuthOAuthManager implements AuthActions {\n #clientAxios: AxiosInstance\n #callbackRefreshAuth: null | CallbackRefreshAuth = null\n #customRefreshAuth: null | CustomRefreshAuth = null\n #authOptions: B24OAuthParams\n readonly #oAuthSecret: B24OAuthSecret\n #authExpires: number = 0\n #authExpiresIn: number = 0\n readonly #domain: string\n readonly #b24TargetRest: string\n readonly #b24Target: string\n readonly #b24TargetRestWithPath: Map<ApiVersion, string>\n readonly #oAuthTarget: string // from serverEndpoint, e.g. 'https://oauth.bitrix24.tech'\n\n #isAdmin: null | boolean = null\n\n constructor(\n b24OAuthParams: B24OAuthParams,\n oAuthSecret: B24OAuthSecret\n ) {\n this.#authOptions = Object.assign({}, b24OAuthParams) as B24OAuthParams\n this.#oAuthSecret = Object.freeze(Object.assign({}, oAuthSecret)) as B24OAuthSecret\n\n this.#domain = this.#authOptions.domain\n .replaceAll('https://', '')\n .replaceAll('http://', '')\n .replace(/:(80|443)$/, '')\n\n this.#b24TargetRest = this.#authOptions.clientEndpoint\n this.#b24Target = this.#b24TargetRest.replace('/rest/', '')\n this.#oAuthTarget = this.#authOptions.serverEndpoint.replace('/rest/', '')\n this.#authExpires = this.#authOptions.expires * 1_000\n this.#authExpiresIn = this.#authOptions.expiresIn\n\n // No default Content-Type: the only request on this client (token refresh)\n // sets its own `application/x-www-form-urlencoded` header per call (#149).\n this.#clientAxios = axios.create({\n baseURL: this.#oAuthTarget\n })\n\n this.#b24TargetRestWithPath = new Map()\n this.#b24TargetRestWithPath.set(ApiVersion.v2, `${this.#b24TargetRest}`)\n this.#b24TargetRestWithPath.set(ApiVersion.v3, `${this.#b24TargetRest}/api`)\n }\n\n /**\n * Returns authorization data\n * @see Http.#prepareParams\n */\n public getAuthData(): false | AuthData {\n return this.#authExpires > Date.now()\n ? ({\n access_token: this.#authOptions.accessToken,\n refresh_token: this.#authOptions.refreshToken,\n expires: this.#authExpires / 1_000,\n expires_in: this.#authExpiresIn,\n domain: this.#domain,\n member_id: this.#authOptions.memberId\n } as AuthData)\n : false\n }\n\n // region RefreshAuth ////\n /**\n * Updates authorization data\n */\n public async refreshAuth(): Promise<AuthData> {\n try {\n let payload: undefined | HandlerRefreshAuth = undefined\n\n if (this.#customRefreshAuth) {\n payload = await this.#customRefreshAuth()\n } else {\n /**\n * Send the refresh request as an `application/x-www-form-urlencoded`\n * POST body rather than as GET query params, so `client_secret` and\n * `refresh_token` never appear in the request URL — where they would leak\n * via proxy / CDN / server access logs (which routinely record full URLs\n * with their query strings). The auth server (the portal's\n * `serverEndpoint`) accepts the params from the body — the Bitrix docs\n * document only the GET-with-query form, so this was verified empirically\n * against the current host `oauth.bitrix24.tech`. (#149)\n */\n const body = new URLSearchParams({\n grant_type: 'refresh_token',\n client_id: this.#oAuthSecret.clientId,\n client_secret: this.#oAuthSecret.clientSecret,\n refresh_token: this.#authOptions.refreshToken\n })\n\n const response = await this.#clientAxios.post(\n '/oauth/token/',\n body,\n { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }\n )\n\n if (response.data.error) {\n throw new Error(`Token update error: ${response.data.error}`)\n }\n if (response.status !== 200) {\n throw new Error(`Token update error status code: ${response.status}`)\n }\n\n /**\n * @memo domain = e.g. 'oauth.bitrix24.tech'\n */\n payload = response.data\n }\n\n if (!payload) {\n throw new Error('Unable to obtain authorization update data')\n }\n\n this.#authOptions.accessToken = payload.access_token\n this.#authOptions.refreshToken = payload.refresh_token\n this.#authOptions.expires = Number.parseInt(payload.expires || '0')\n this.#authOptions.expiresIn = Number.parseInt(payload.expires_in || '3600')\n this.#authOptions.clientEndpoint = payload.client_endpoint\n this.#authOptions.serverEndpoint = payload.server_endpoint\n this.#authOptions.scope = payload.scope\n this.#authOptions.status = Object.values(EnumAppStatus).find(value => value === payload.status) || EnumAppStatus.Free\n\n this.#authExpires = this.#authOptions.expires * 1_000\n\n const authData = this.getAuthData() as AuthData\n\n if (this.#callbackRefreshAuth) {\n await this.#callbackRefreshAuth({ authData, b24OAuthParams: this.#authOptions })\n }\n\n return authData\n } catch (error) {\n if (error instanceof AxiosError) {\n const answerError = {\n code: error?.code || 0,\n description: error?.message || ''\n }\n\n if (\n error.response\n && error.response.data\n && !Type.isUndefined(error.response.data.error)\n ) {\n const responseData = error.response.data as TypeDescriptionError | TypeDescriptionErrorV3\n\n if (\n responseData.error\n && typeof responseData.error === 'object'\n && 'code' in responseData.error\n ) {\n answerError.code = responseData.error.code\n answerError.description = responseData.error.message\n if (responseData.error.validation) {\n responseData.error.validation.forEach((row) => {\n answerError.description += `${row?.message || JSON.stringify(row)}`\n })\n }\n } else if (responseData.error && typeof responseData.error === 'string') {\n answerError.code = responseData.error\n answerError.description = (responseData as TypeDescriptionError)?.error_description ?? answerError.description\n }\n }\n\n throw new RefreshTokenError({\n code: String(answerError.code),\n description: answerError.description,\n status: error.response?.status || 0\n })\n } else if (error instanceof Error) {\n throw error\n }\n\n throw new Error(\n `Strange error: ${error instanceof Error ? error.message : error}`,\n { cause: error instanceof Error ? error : undefined }\n )\n }\n }\n\n public setCallbackRefreshAuth(cb: CallbackRefreshAuth): void {\n this.#callbackRefreshAuth = cb\n }\n\n public removeCallbackRefreshAuth(): void {\n this.#callbackRefreshAuth = null\n }\n\n public setCustomRefreshAuth(cb: CustomRefreshAuth): void {\n this.#customRefreshAuth = cb\n }\n\n public removeCustomRefreshAuth(): void {\n this.#customRefreshAuth = null\n }\n // endregion ////\n\n public getUniq(prefix: string): string {\n return [prefix, this.#authOptions.memberId || ''].join('_')\n }\n\n /**\n * @inheritDoc\n */\n public getTargetOrigin(): string {\n return `${this.#b24Target}`\n }\n\n /**\n * @inheritDoc\n */\n public getTargetOriginWithPath(): Map<ApiVersion, string> {\n return this.#b24TargetRestWithPath\n }\n\n /**\n * Determines whether the current user has administrator rights\n */\n get isAdmin(): boolean {\n if (null === this.#isAdmin) {\n throw new Error('isAdmin not init. You need call B24OAuth::initIsAdmin().')\n }\n\n return this.#isAdmin\n }\n\n public async initIsAdmin(http: TypeHttp, requestId?: string): Promise<void> {\n // set def value\n this.#isAdmin = false\n\n // region ver3 ////\n /**\n * This is just a template. When API.v3 arrives, we'll replace it.\n * @todo fix then the new API will be available\n */\n if (http.apiVersion === ApiVersion.v3) {\n const response = await http.call('profile', {}, requestId)\n if (!response.isSuccess) {\n throw new Error(response.getErrorMessages().join(';'))\n }\n\n const data: { profile: { id: number, admin: boolean } } = response.getData()!.result as any\n\n if (data.profile?.admin) {\n this.#isAdmin = true\n }\n\n return\n }\n // endregion ////\n\n // region ver2 ////\n const response = await http.call('profile', {}, requestId)\n if (!response.isSuccess) {\n throw new Error(response.getErrorMessages().join(';'))\n }\n\n const data: { ID: number, ADMIN: boolean } = response.getData()!.result as any\n\n if (data?.ADMIN) {\n this.#isAdmin = true\n }\n // endregion ////\n }\n}\n"],"names":["axios","ApiVersion","EnumAppStatus","AxiosError","Type","RefreshTokenError","response","data"],"mappings":"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"}