@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,205 @@
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 abstractHelper = require('./abstract-helper.cjs');
12
+ const b24Helper = require('../types/b24-helper.cjs');
13
+ const type = require('../tools/type.cjs');
14
+ const text = require('../tools/text.cjs');
15
+
16
+ var __defProp = Object.defineProperty;
17
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
18
+ class OptionsManager extends abstractHelper.AbstractHelper {
19
+ static {
20
+ __name(this, "OptionsManager");
21
+ }
22
+ _data;
23
+ _type;
24
+ // region static ////
25
+ static getSupportTypes() {
26
+ return [
27
+ b24Helper.TypeOption.NotSet,
28
+ b24Helper.TypeOption.JsonArray,
29
+ b24Helper.TypeOption.JsonObject,
30
+ b24Helper.TypeOption.FloatVal,
31
+ b24Helper.TypeOption.IntegerVal,
32
+ b24Helper.TypeOption.BoolYN,
33
+ b24Helper.TypeOption.StringVal
34
+ ];
35
+ }
36
+ static prepareArrayList(list) {
37
+ if (type.Type.isArray(list)) {
38
+ return list;
39
+ }
40
+ if (type.Type.isObject(list)) {
41
+ return Object.values(list);
42
+ }
43
+ return [];
44
+ }
45
+ // endregion ////
46
+ // region Init ////
47
+ constructor(b24, type) {
48
+ super(b24);
49
+ this._type = type;
50
+ this._data = /* @__PURE__ */ new Map();
51
+ }
52
+ get data() {
53
+ return this._data;
54
+ }
55
+ reset() {
56
+ this.data.clear();
57
+ }
58
+ /**
59
+ * @inheritDoc
60
+ */
61
+ async initData(data) {
62
+ this.reset();
63
+ if (type.Type.isObject(data)) {
64
+ for (const [key, value] of Object.entries(data)) {
65
+ this.data.set(key, value);
66
+ }
67
+ }
68
+ }
69
+ // endregion ////
70
+ // region Get ////
71
+ getJsonArray(key, defValue = []) {
72
+ if (!this.data.has(key)) {
73
+ return defValue;
74
+ }
75
+ let data = this.data.get(key);
76
+ try {
77
+ data = JSON.parse(data);
78
+ if (!type.Type.isArray(data) && !type.Type.isObject(data)) {
79
+ data = defValue;
80
+ }
81
+ } catch (error) {
82
+ this.getLogger().error("Failed JSON parse", { error });
83
+ data = defValue;
84
+ }
85
+ return OptionsManager.prepareArrayList(data);
86
+ }
87
+ getJsonObject(key, defValue = {}) {
88
+ if (!this.data.has(key)) {
89
+ return defValue;
90
+ }
91
+ let data = this.data.get(key);
92
+ try {
93
+ data = JSON.parse(data);
94
+ } catch (error) {
95
+ this.getLogger().error("Failed JSON parse", { error });
96
+ data = defValue;
97
+ }
98
+ if (!type.Type.isObject(data)) {
99
+ data = defValue;
100
+ }
101
+ return data;
102
+ }
103
+ getFloat(key, defValue = 0) {
104
+ if (!this.data.has(key)) {
105
+ return defValue;
106
+ }
107
+ return text.Text.toNumber(this.data.get(key));
108
+ }
109
+ getInteger(key, defValue = 0) {
110
+ if (!this.data.has(key)) {
111
+ return defValue;
112
+ }
113
+ return text.Text.toInteger(this.data.get(key));
114
+ }
115
+ getBoolYN(key, defValue = true) {
116
+ if (!this.data.has(key)) {
117
+ return defValue;
118
+ }
119
+ return text.Text.toBoolean(this.data.get(key));
120
+ }
121
+ getBoolNY(key, defValue = false) {
122
+ if (!this.data.has(key)) {
123
+ return defValue;
124
+ }
125
+ return text.Text.toBoolean(this.data.get(key));
126
+ }
127
+ getString(key, defValue = "") {
128
+ if (!this.data.has(key)) {
129
+ return defValue;
130
+ }
131
+ return this.data.get(key).toString();
132
+ }
133
+ getDate(key, defValue = null) {
134
+ if (!this.data.has(key)) {
135
+ return defValue;
136
+ }
137
+ try {
138
+ const result = text.Text.toDateTime(this.data.get(key).toString());
139
+ if (result.isValid) {
140
+ return result;
141
+ } else {
142
+ return defValue;
143
+ }
144
+ } catch {
145
+ return defValue;
146
+ }
147
+ }
148
+ // endregion ////
149
+ // region Tools ////
150
+ encode(value) {
151
+ return JSON.stringify(value);
152
+ }
153
+ decode(data, defaultValue) {
154
+ try {
155
+ if (data.length > 0) {
156
+ return JSON.parse(data);
157
+ }
158
+ return defaultValue;
159
+ } catch (error) {
160
+ this.getLogger().error("Failed JSON parse", { error });
161
+ }
162
+ return defaultValue;
163
+ }
164
+ // endregion ////
165
+ // region Save ////
166
+ getMethodSave() {
167
+ switch (this._type) {
168
+ case "app":
169
+ return "app.option.set";
170
+ case "user":
171
+ return "user.option.set";
172
+ }
173
+ }
174
+ async save(options, optionsPull, requestId) {
175
+ const calls = [];
176
+ calls.push({
177
+ method: this.getMethodSave(),
178
+ params: {
179
+ options
180
+ }
181
+ });
182
+ if (type.Type.isObject(optionsPull)) {
183
+ calls.push({
184
+ method: "pull.application.event.add",
185
+ params: {
186
+ COMMAND: optionsPull?.command,
187
+ PARAMS: optionsPull?.params,
188
+ MODULE_ID: optionsPull?.moduleId
189
+ }
190
+ });
191
+ }
192
+ return this._b24.actions.v2.batch.make({
193
+ calls,
194
+ options: {
195
+ isHaltOnError: true,
196
+ returnAjaxResult: false,
197
+ requestId
198
+ }
199
+ });
200
+ }
201
+ // endregion ////
202
+ }
203
+
204
+ exports.OptionsManager = OptionsManager;
205
+ //# sourceMappingURL=options-manager.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options-manager.cjs","sources":["../../../src/helper/options-manager.ts"],"sourcesContent":["import type { DateTime } from 'luxon'\nimport { AbstractHelper } from './abstract-helper'\nimport type { TypeB24 } from '../types/b24'\nimport type { Result } from '../core/result'\nimport { TypeOption } from '../types/b24-helper'\nimport { Type } from '../tools/type'\nimport { Text } from '../tools/text'\n\nexport class OptionsManager extends AbstractHelper {\n protected override _data: Map<string, any>\n protected _type: 'app' | 'user'\n\n // region static ////\n static getSupportTypes(): TypeOption[] {\n return [\n TypeOption.NotSet,\n TypeOption.JsonArray,\n TypeOption.JsonObject,\n TypeOption.FloatVal,\n TypeOption.IntegerVal,\n TypeOption.BoolYN,\n TypeOption.StringVal\n ]\n }\n\n static prepareArrayList(list: any): any[] {\n if (Type.isArray(list)) {\n return list\n }\n\n if (Type.isObject(list)) {\n return Object.values(list)\n }\n\n return []\n }\n\n // endregion ////\n\n // region Init ////\n constructor(b24: TypeB24, type: 'app' | 'user') {\n super(b24)\n this._type = type\n this._data = new Map()\n }\n\n get data(): Map<string, any> {\n return this._data\n }\n\n reset() {\n this.data.clear()\n }\n\n /**\n * @inheritDoc\n */\n override async initData(data: any): Promise<void> {\n this.reset()\n\n if (Type.isObject(data)) {\n for (const [key, value] of Object.entries(data)) {\n this.data.set(key, value)\n }\n }\n }\n\n // endregion ////\n\n // region Get ////\n getJsonArray(key: string, defValue: any[] = []): any[] {\n if (!this.data.has(key)) {\n return defValue\n }\n\n let data = this.data.get(key)\n\n try {\n data = JSON.parse(data)\n\n if (!Type.isArray(data) && !Type.isObject(data)) {\n data = defValue\n }\n } catch (error) {\n this.getLogger().error('Failed JSON parse', { error })\n data = defValue\n }\n\n return OptionsManager.prepareArrayList(data)\n }\n\n getJsonObject(key: string, defValue: object = {}): object {\n if (!this.data.has(key)) {\n return defValue\n }\n\n let data = this.data.get(key)\n\n try {\n data = JSON.parse(data)\n } catch (error) {\n this.getLogger().error('Failed JSON parse', { error })\n data = defValue\n }\n\n if (!Type.isObject(data)) {\n data = defValue\n }\n\n return data\n }\n\n getFloat(key: string, defValue: number = 0.0): number {\n if (!this.data.has(key)) {\n return defValue\n }\n\n return Text.toNumber(this.data.get(key))\n }\n\n getInteger(key: string, defValue: number = 0): number {\n if (!this.data.has(key)) {\n return defValue\n }\n\n return Text.toInteger(this.data.get(key))\n }\n\n getBoolYN(key: string, defValue: boolean = true): boolean {\n if (!this.data.has(key)) {\n return defValue\n }\n\n return Text.toBoolean(this.data.get(key))\n }\n\n getBoolNY(key: string, defValue: boolean = false): boolean {\n if (!this.data.has(key)) {\n return defValue\n }\n\n return Text.toBoolean(this.data.get(key))\n }\n\n getString(key: string, defValue: string = ''): string {\n if (!this.data.has(key)) {\n return defValue\n }\n\n return this.data.get(key).toString()\n }\n\n getDate(key: string, defValue: null | DateTime = null): null | DateTime {\n if (!this.data.has(key)) {\n return defValue\n }\n\n try {\n const result = Text.toDateTime(this.data.get(key).toString())\n if (result.isValid) {\n return result\n } else {\n return defValue\n }\n } catch {\n return defValue\n }\n }\n\n // endregion ////\n\n // region Tools ////\n encode(value: any): string {\n return JSON.stringify(value)\n }\n\n decode(data: string, defaultValue: any): any {\n try {\n if (data.length > 0) {\n return JSON.parse(data)\n }\n\n return defaultValue\n } catch (error) {\n this.getLogger().error('Failed JSON parse', { error })\n }\n\n return defaultValue\n }\n\n // endregion ////\n\n // region Save ////\n protected getMethodSave(): string {\n switch (this._type) {\n case 'app':\n return 'app.option.set'\n case 'user':\n return 'user.option.set'\n }\n }\n\n public async save(\n options: any,\n optionsPull?: {\n moduleId: string\n command: string\n params: any\n },\n requestId?: string\n ): Promise<Result> {\n const calls = []\n calls.push({\n method: this.getMethodSave(),\n params: {\n options\n }\n })\n\n if (Type.isObject(optionsPull)) {\n calls.push({\n method: 'pull.application.event.add',\n params: {\n COMMAND: optionsPull?.command,\n PARAMS: optionsPull?.params,\n MODULE_ID: optionsPull?.moduleId\n }\n })\n }\n\n return this._b24.actions.v2.batch.make({\n calls,\n options: {\n isHaltOnError: true,\n returnAjaxResult: false,\n requestId\n }\n })\n }\n\n // endregion ////\n}\n"],"names":["AbstractHelper","TypeOption","Type","Text"],"mappings":"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"}
@@ -0,0 +1,35 @@
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 abstractHelper = require('./abstract-helper.cjs');
12
+
13
+ var __defProp = Object.defineProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
15
+ class PaymentManager extends abstractHelper.AbstractHelper {
16
+ static {
17
+ __name(this, "PaymentManager");
18
+ }
19
+ _data = null;
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ async initData(data) {
24
+ this._data = data;
25
+ }
26
+ get data() {
27
+ if (null === this._data) {
28
+ throw new Error("PaymentManager.data not initialized");
29
+ }
30
+ return this._data;
31
+ }
32
+ }
33
+
34
+ exports.PaymentManager = PaymentManager;
35
+ //# sourceMappingURL=payment-manager.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-manager.cjs","sources":["../../../src/helper/payment-manager.ts"],"sourcesContent":["import { AbstractHelper } from './abstract-helper'\nimport type { TypePayment } from '../types/b24-helper'\n\nexport class PaymentManager extends AbstractHelper {\n protected override _data: null | TypePayment = null\n\n /**\n * @inheritDoc\n */\n override async initData(data: TypePayment): Promise<void> {\n this._data = data\n }\n\n get data(): TypePayment {\n if (null === this._data) {\n throw new Error('PaymentManager.data not initialized')\n }\n\n return this._data\n }\n}\n"],"names":["AbstractHelper"],"mappings":";;;;;;;;;;;;;;AAGO,MAAM,uBAAuBA,6BAAA,CAAe;AAAA,EAHnD;AAGmD,IAAA,MAAA,CAAA,IAAA,EAAA,gBAAA,CAAA;AAAA;AAAA,EAC9B,KAAA,GAA4B,IAAA;AAAA;AAAA;AAAA;AAAA,EAK/C,MAAe,SAAS,IAAA,EAAkC;AACxD,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA;AAAA,EACf;AAAA,EAEA,IAAI,IAAA,GAAoB;AACtB,IAAA,IAAI,IAAA,KAAS,KAAK,KAAA,EAAO;AACvB,MAAA,MAAM,IAAI,MAAM,qCAAqC,CAAA;AAAA,IACvD;AAEA,IAAA,OAAO,IAAA,CAAK,KAAA;AAAA,EACd;AACF;;;;"}
@@ -0,0 +1,35 @@
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 abstractHelper = require('./abstract-helper.cjs');
12
+
13
+ var __defProp = Object.defineProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
15
+ class ProfileManager extends abstractHelper.AbstractHelper {
16
+ static {
17
+ __name(this, "ProfileManager");
18
+ }
19
+ _data = null;
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ async initData(data) {
24
+ this._data = data;
25
+ }
26
+ get data() {
27
+ if (null === this._data) {
28
+ throw new Error("ProfileManager.data not initialized");
29
+ }
30
+ return this._data;
31
+ }
32
+ }
33
+
34
+ exports.ProfileManager = ProfileManager;
35
+ //# sourceMappingURL=profile-manager.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-manager.cjs","sources":["../../../src/helper/profile-manager.ts"],"sourcesContent":["import { AbstractHelper } from './abstract-helper'\nimport type { TypeUser } from '../types/b24-helper'\n\nexport class ProfileManager extends AbstractHelper {\n protected override _data: null | TypeUser = null\n\n /**\n * @inheritDoc\n */\n override async initData(data: TypeUser): Promise<void> {\n this._data = data\n }\n\n get data(): TypeUser {\n if (null === this._data) {\n throw new Error('ProfileManager.data not initialized')\n }\n\n return this._data\n }\n}\n"],"names":["AbstractHelper"],"mappings":";;;;;;;;;;;;;;AAGO,MAAM,uBAAuBA,6BAAA,CAAe;AAAA,EAHnD;AAGmD,IAAA,MAAA,CAAA,IAAA,EAAA,gBAAA,CAAA;AAAA;AAAA,EAC9B,KAAA,GAAyB,IAAA;AAAA;AAAA;AAAA;AAAA,EAK5C,MAAe,SAAS,IAAA,EAA+B;AACrD,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA;AAAA,EACf;AAAA,EAEA,IAAI,IAAA,GAAiB;AACnB,IAAA,IAAI,IAAA,KAAS,KAAK,KAAA,EAAO;AACvB,MAAA,MAAM,IAAI,MAAM,qCAAqC,CAAA;AAAA,IACvD;AAEA,IAAA,OAAO,IAAA,CAAK,KAAA;AAAA,EACd;AACF;;;;"}
@@ -0,0 +1,85 @@
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 helperManager = require('./helper-manager.cjs');
12
+ const b24Helper = require('../types/b24-helper.cjs');
13
+
14
+ var __defProp = Object.defineProperty;
15
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
16
+ const useB24Helper = /* @__PURE__ */ __name(() => {
17
+ let $isInitB24Helper = false;
18
+ let $isInitPullClient = false;
19
+ let $b24Helper = null;
20
+ const initB24Helper = /* @__PURE__ */ __name(async ($b24, dataTypes = [b24Helper.LoadDataType.App, b24Helper.LoadDataType.Profile], requestId = `helper-load-data`) => {
21
+ if (null === $b24Helper) {
22
+ $b24Helper = new helperManager.B24HelperManager($b24);
23
+ }
24
+ if ($isInitB24Helper) {
25
+ return $b24Helper;
26
+ }
27
+ await $b24Helper.loadData(dataTypes, requestId);
28
+ $isInitB24Helper = true;
29
+ return $b24Helper;
30
+ }, "initB24Helper");
31
+ const destroyB24Helper = /* @__PURE__ */ __name(() => {
32
+ $b24Helper?.destroy();
33
+ $b24Helper = null;
34
+ $isInitB24Helper = false;
35
+ $isInitPullClient = false;
36
+ }, "destroyB24Helper");
37
+ const isInitB24Helper = /* @__PURE__ */ __name(() => {
38
+ return $isInitB24Helper;
39
+ }, "isInitB24Helper");
40
+ const getB24Helper = /* @__PURE__ */ __name(() => {
41
+ if (null === $b24Helper) {
42
+ throw new Error(
43
+ "B24HelperManager is not initialized. You need to call initB24Helper first."
44
+ );
45
+ }
46
+ return $b24Helper;
47
+ }, "getB24Helper");
48
+ const usePullClient = /* @__PURE__ */ __name(() => {
49
+ if (null === $b24Helper) {
50
+ throw new Error(
51
+ "B24HelperManager is not initialized. You need to call initB24Helper first."
52
+ );
53
+ }
54
+ $b24Helper.usePullClient();
55
+ $isInitPullClient = true;
56
+ }, "usePullClient");
57
+ const useSubscribePullClient = /* @__PURE__ */ __name((callback, moduleId = "application") => {
58
+ if (!$isInitPullClient) {
59
+ throw new Error(
60
+ "PullClient is not initialized. You need to call usePullClient first."
61
+ );
62
+ }
63
+ $b24Helper?.subscribePullClient(callback, moduleId);
64
+ }, "useSubscribePullClient");
65
+ const startPullClient = /* @__PURE__ */ __name(() => {
66
+ if (!$isInitPullClient) {
67
+ throw new Error(
68
+ "PullClient is not initialized. You need to call usePullClient first."
69
+ );
70
+ }
71
+ $b24Helper?.startPullClient();
72
+ }, "startPullClient");
73
+ return {
74
+ initB24Helper,
75
+ isInitB24Helper,
76
+ destroyB24Helper,
77
+ getB24Helper,
78
+ usePullClient,
79
+ useSubscribePullClient,
80
+ startPullClient
81
+ };
82
+ }, "useB24Helper");
83
+
84
+ exports.useB24Helper = useB24Helper;
85
+ //# sourceMappingURL=use-b24-helper.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-b24-helper.cjs","sources":["../../../src/helper/use-b24-helper.ts"],"sourcesContent":["import { B24HelperManager } from './helper-manager'\nimport { LoadDataType } from '../types/b24-helper'\nimport type { TypeB24 } from '../types/b24'\nimport type { TypePullMessage } from '../types/pull'\n\nexport const useB24Helper = () => {\n let $isInitB24Helper = false\n let $isInitPullClient = false\n\n let $b24Helper: null | B24HelperManager = null\n\n const initB24Helper = async (\n $b24: TypeB24,\n dataTypes: LoadDataType[] = [LoadDataType.App, LoadDataType.Profile],\n requestId: string = `helper-load-data`\n ): Promise<B24HelperManager> => {\n if (null === $b24Helper) {\n $b24Helper = new B24HelperManager($b24)\n }\n\n if ($isInitB24Helper) {\n return $b24Helper\n }\n\n await $b24Helper.loadData(dataTypes, requestId)\n\n $isInitB24Helper = true\n return $b24Helper\n }\n\n const destroyB24Helper = () => {\n $b24Helper?.destroy()\n $b24Helper = null\n $isInitB24Helper = false\n $isInitPullClient = false\n }\n\n const isInitB24Helper = () => {\n return $isInitB24Helper\n }\n\n const getB24Helper = (): B24HelperManager => {\n if (null === $b24Helper) {\n throw new Error(\n 'B24HelperManager is not initialized. You need to call initB24Helper first.'\n )\n }\n\n return $b24Helper\n }\n\n const usePullClient = () => {\n if (null === $b24Helper) {\n throw new Error(\n 'B24HelperManager is not initialized. You need to call initB24Helper first.'\n )\n }\n\n $b24Helper.usePullClient()\n $isInitPullClient = true\n }\n\n const useSubscribePullClient = (\n callback: (message: TypePullMessage) => void,\n moduleId: string = 'application'\n ) => {\n if (!$isInitPullClient) {\n throw new Error(\n 'PullClient is not initialized. You need to call usePullClient first.'\n )\n }\n\n $b24Helper?.subscribePullClient(callback, moduleId)\n }\n\n const startPullClient = () => {\n if (!$isInitPullClient) {\n throw new Error(\n 'PullClient is not initialized. You need to call usePullClient first.'\n )\n }\n\n $b24Helper?.startPullClient()\n }\n\n return {\n initB24Helper,\n isInitB24Helper,\n destroyB24Helper,\n getB24Helper,\n usePullClient,\n useSubscribePullClient,\n startPullClient\n }\n}\n"],"names":["LoadDataType","B24HelperManager"],"mappings":";;;;;;;;;;;;;;;AAKO,MAAM,+BAAe,MAAA,CAAA,MAAM;AAChC,EAAA,IAAI,gBAAA,GAAmB,KAAA;AACvB,EAAA,IAAI,iBAAA,GAAoB,KAAA;AAExB,EAAA,IAAI,UAAA,GAAsC,IAAA;AAE1C,EAAA,MAAM,aAAA,mBAAgB,MAAA,CAAA,OACpB,IAAA,EACA,SAAA,GAA4B,CAACA,sBAAA,CAAa,GAAA,EAAKA,sBAAA,CAAa,OAAO,CAAA,EACnE,SAAA,GAAoB,CAAA,gBAAA,CAAA,KACU;AAC9B,IAAA,IAAI,SAAS,UAAA,EAAY;AACvB,MAAA,UAAA,GAAa,IAAIC,+BAAiB,IAAI,CAAA;AAAA,IACxC;AAEA,IAAA,IAAI,gBAAA,EAAkB;AACpB,MAAA,OAAO,UAAA;AAAA,IACT;AAEA,IAAA,MAAM,UAAA,CAAW,QAAA,CAAS,SAAA,EAAW,SAAS,CAAA;AAE9C,IAAA,gBAAA,GAAmB,IAAA;AACnB,IAAA,OAAO,UAAA;AAAA,EACT,CAAA,EAjBsB,eAAA,CAAA;AAmBtB,EAAA,MAAM,mCAAmB,MAAA,CAAA,MAAM;AAC7B,IAAA,UAAA,EAAY,OAAA,EAAQ;AACpB,IAAA,UAAA,GAAa,IAAA;AACb,IAAA,gBAAA,GAAmB,KAAA;AACnB,IAAA,iBAAA,GAAoB,KAAA;AAAA,EACtB,CAAA,EALyB,kBAAA,CAAA;AAOzB,EAAA,MAAM,kCAAkB,MAAA,CAAA,MAAM;AAC5B,IAAA,OAAO,gBAAA;AAAA,EACT,CAAA,EAFwB,iBAAA,CAAA;AAIxB,EAAA,MAAM,+BAAe,MAAA,CAAA,MAAwB;AAC3C,IAAA,IAAI,SAAS,UAAA,EAAY;AACvB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,OAAO,UAAA;AAAA,EACT,CAAA,EARqB,cAAA,CAAA;AAUrB,EAAA,MAAM,gCAAgB,MAAA,CAAA,MAAM;AAC1B,IAAA,IAAI,SAAS,UAAA,EAAY;AACvB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,UAAA,CAAW,aAAA,EAAc;AACzB,IAAA,iBAAA,GAAoB,IAAA;AAAA,EACtB,CAAA,EATsB,eAAA,CAAA;AAWtB,EAAA,MAAM,sBAAA,mBAAyB,MAAA,CAAA,CAC7B,QAAA,EACA,QAAA,GAAmB,aAAA,KAChB;AACH,IAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,UAAA,EAAY,mBAAA,CAAoB,UAAU,QAAQ,CAAA;AAAA,EACpD,CAAA,EAX+B,wBAAA,CAAA;AAa/B,EAAA,MAAM,kCAAkB,MAAA,CAAA,MAAM;AAC5B,IAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,UAAA,EAAY,eAAA,EAAgB;AAAA,EAC9B,CAAA,EARwB,iBAAA,CAAA;AAUxB,EAAA,OAAO;AAAA,IACL,aAAA;AAAA,IACA,eAAA;AAAA,IACA,gBAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA,sBAAA;AAAA,IACA;AAAA,GACF;AACF,CAAA,EAzF4B,cAAA;;;;"}
@@ -0,0 +1,79 @@
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 b24 = require('../types/b24.cjs');
12
+
13
+ var __defProp = Object.defineProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
15
+ class AuthHookManager {
16
+ static {
17
+ __name(this, "AuthHookManager");
18
+ }
19
+ #b24HookParams;
20
+ #domain;
21
+ #b24TargetRest;
22
+ #b24Target;
23
+ #b24TargetRestWithPath;
24
+ constructor(b24HookParams) {
25
+ this.#b24HookParams = Object.freeze(Object.assign({}, b24HookParams));
26
+ this.#domain = this.#b24HookParams.b24Url.replaceAll("https://", "").replaceAll("http://", "").replace(/:(80|443)$/, "");
27
+ this.#b24TargetRest = `https://${this.#domain}/rest`;
28
+ this.#b24Target = `https://${this.#domain}`;
29
+ this.#b24TargetRestWithPath = /* @__PURE__ */ new Map();
30
+ this.#b24TargetRestWithPath.set(b24.ApiVersion.v2, `${this.#b24TargetRest}/${this.#b24HookParams.userId}/${this.#b24HookParams.secret}`);
31
+ this.#b24TargetRestWithPath.set(b24.ApiVersion.v3, `${this.#b24TargetRest}/api/${this.#b24HookParams.userId}/${this.#b24HookParams.secret}`);
32
+ }
33
+ /**
34
+ * @see Http.#prepareParams
35
+ */
36
+ getAuthData() {
37
+ return {
38
+ access_token: this.#b24HookParams.secret,
39
+ refresh_token: "hook",
40
+ expires: 0,
41
+ expires_in: 0,
42
+ domain: this.#domain,
43
+ member_id: this.#domain
44
+ };
45
+ }
46
+ refreshAuth() {
47
+ return Promise.resolve(this.getAuthData());
48
+ }
49
+ getUniq(prefix) {
50
+ const authData = this.getAuthData();
51
+ if (authData === false) {
52
+ throw new Error("AuthData not init");
53
+ }
54
+ return [prefix, authData.member_id].join("_");
55
+ }
56
+ /**
57
+ * @inheritDoc
58
+ */
59
+ getTargetOrigin() {
60
+ return `${this.#b24Target}`;
61
+ }
62
+ /**
63
+ * Get the account address BX24 with path
64
+ * - ver2 `https://your_domain.bitrix24.com/rest/{id}/{webhook}`
65
+ * - ver3` https://your_domain.bitrix24.com/rest/api/{id}/{webhook}`
66
+ */
67
+ getTargetOriginWithPath() {
68
+ return this.#b24TargetRestWithPath;
69
+ }
70
+ /**
71
+ * We believe that hooks are created only by the admin
72
+ */
73
+ get isAdmin() {
74
+ return true;
75
+ }
76
+ }
77
+
78
+ exports.AuthHookManager = AuthHookManager;
79
+ //# sourceMappingURL=auth.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.cjs","sources":["../../../src/hook/auth.ts"],"sourcesContent":["import type { AuthActions, AuthData, B24HookParams } from '../types/auth'\nimport { ApiVersion } from '../types/b24'\n\n/**\n * Authorization Manager\n */\nexport class AuthHookManager implements AuthActions {\n #b24HookParams: B24HookParams\n readonly #domain: string\n readonly #b24TargetRest: string\n readonly #b24Target: string\n readonly #b24TargetRestWithPath: Map<ApiVersion, string>\n\n constructor(\n b24HookParams: B24HookParams\n ) {\n this.#b24HookParams = Object.freeze(Object.assign({}, b24HookParams))\n this.#domain = this.#b24HookParams.b24Url\n .replaceAll('https://', '')\n .replaceAll('http://', '')\n .replace(/:(80|443)$/, '')\n\n this.#b24TargetRest = `https://${this.#domain}/rest`\n this.#b24Target = `https://${this.#domain}`\n\n this.#b24TargetRestWithPath = new Map()\n this.#b24TargetRestWithPath.set(ApiVersion.v2, `${this.#b24TargetRest}/${this.#b24HookParams.userId}/${this.#b24HookParams.secret}`)\n this.#b24TargetRestWithPath.set(ApiVersion.v3, `${this.#b24TargetRest}/api/${this.#b24HookParams.userId}/${this.#b24HookParams.secret}`)\n }\n\n /**\n * @see Http.#prepareParams\n */\n public getAuthData(): false | AuthData {\n return {\n access_token: this.#b24HookParams.secret,\n refresh_token: 'hook',\n expires: 0,\n expires_in: 0,\n domain: this.#domain,\n member_id: this.#domain\n }\n }\n\n public refreshAuth(): Promise<AuthData> {\n return Promise.resolve(this.getAuthData() as AuthData)\n }\n\n public getUniq(prefix: string): string {\n const authData = this.getAuthData()\n if (authData === false) {\n throw new Error('AuthData not init')\n }\n return [prefix, authData.member_id].join('_')\n }\n\n /**\n * @inheritDoc\n */\n public getTargetOrigin(): string {\n return `${this.#b24Target}`\n }\n\n /**\n * Get the account address BX24 with path\n * - ver2 `https://your_domain.bitrix24.com/rest/{id}/{webhook}`\n * - ver3` https://your_domain.bitrix24.com/rest/api/{id}/{webhook}`\n */\n public getTargetOriginWithPath(): Map<ApiVersion, string> {\n return this.#b24TargetRestWithPath\n }\n\n /**\n * We believe that hooks are created only by the admin\n */\n get isAdmin(): boolean {\n return true\n }\n}\n"],"names":["ApiVersion"],"mappings":";;;;;;;;;;;;;;AAMO,MAAM,eAAA,CAAuC;AAAA,EANpD;AAMoD,IAAA,MAAA,CAAA,IAAA,EAAA,iBAAA,CAAA;AAAA;AAAA,EAClD,cAAA;AAAA,EACS,OAAA;AAAA,EACA,cAAA;AAAA,EACA,UAAA;AAAA,EACA,sBAAA;AAAA,EAET,YACE,aAAA,EACA;AACA,IAAA,IAAA,CAAK,cAAA,GAAiB,OAAO,MAAA,CAAO,MAAA,CAAO,OAAO,EAAC,EAAG,aAAa,CAAC,CAAA;AACpE,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,cAAA,CAAe,MAAA,CAChC,WAAW,UAAA,EAAY,EAAE,CAAA,CACzB,UAAA,CAAW,SAAA,EAAW,EAAE,CAAA,CACxB,OAAA,CAAQ,cAAc,EAAE,CAAA;AAE3B,IAAA,IAAA,CAAK,cAAA,GAAiB,CAAA,QAAA,EAAW,IAAA,CAAK,OAAO,CAAA,KAAA,CAAA;AAC7C,IAAA,IAAA,CAAK,UAAA,GAAa,CAAA,QAAA,EAAW,IAAA,CAAK,OAAO,CAAA,CAAA;AAEzC,IAAA,IAAA,CAAK,sBAAA,uBAA6B,GAAA,EAAI;AACtC,IAAA,IAAA,CAAK,sBAAA,CAAuB,GAAA,CAAIA,cAAA,CAAW,EAAA,EAAI,GAAG,IAAA,CAAK,cAAc,CAAA,CAAA,EAAI,IAAA,CAAK,eAAe,MAAM,CAAA,CAAA,EAAI,IAAA,CAAK,cAAA,CAAe,MAAM,CAAA,CAAE,CAAA;AACnI,IAAA,IAAA,CAAK,sBAAA,CAAuB,GAAA,CAAIA,cAAA,CAAW,EAAA,EAAI,GAAG,IAAA,CAAK,cAAc,CAAA,KAAA,EAAQ,IAAA,CAAK,eAAe,MAAM,CAAA,CAAA,EAAI,IAAA,CAAK,cAAA,CAAe,MAAM,CAAA,CAAE,CAAA;AAAA,EACzI;AAAA;AAAA;AAAA;AAAA,EAKO,WAAA,GAAgC;AACrC,IAAA,OAAO;AAAA,MACL,YAAA,EAAc,KAAK,cAAA,CAAe,MAAA;AAAA,MAClC,aAAA,EAAe,MAAA;AAAA,MACf,OAAA,EAAS,CAAA;AAAA,MACT,UAAA,EAAY,CAAA;AAAA,MACZ,QAAQ,IAAA,CAAK,OAAA;AAAA,MACb,WAAW,IAAA,CAAK;AAAA,KAClB;AAAA,EACF;AAAA,EAEO,WAAA,GAAiC;AACtC,IAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,IAAA,CAAK,WAAA,EAAyB,CAAA;AAAA,EACvD;AAAA,EAEO,QAAQ,MAAA,EAAwB;AACrC,IAAA,MAAM,QAAA,GAAW,KAAK,WAAA,EAAY;AAClC,IAAA,IAAI,aAAa,KAAA,EAAO;AACtB,MAAA,MAAM,IAAI,MAAM,mBAAmB,CAAA;AAAA,IACrC;AACA,IAAA,OAAO,CAAC,MAAA,EAAQ,QAAA,CAAS,SAAS,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA,EAKO,eAAA,GAA0B;AAC/B,IAAA,OAAO,CAAA,EAAG,KAAK,UAAU,CAAA,CAAA;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,uBAAA,GAAmD;AACxD,IAAA,OAAO,IAAA,CAAK,sBAAA;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,OAAA,GAAmB;AACrB,IAAA,OAAO,IAAA;AAAA,EACT;AACF;;;;"}
@@ -0,0 +1,117 @@
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 abstractB24 = require('../core/abstract-b24.cjs');
12
+ const v2 = require('../core/http/v2.cjs');
13
+ const v3 = require('../core/http/v3.cjs');
14
+ const auth = require('./auth.cjs');
15
+ const versionManager = require('../core/version-manager.cjs');
16
+
17
+ var __defProp = Object.defineProperty;
18
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
19
+ class B24Hook extends abstractB24.AbstractB24 {
20
+ static {
21
+ __name(this, "B24Hook");
22
+ }
23
+ #authHookManager;
24
+ // region Init ////
25
+ constructor(b24HookParams, options) {
26
+ super();
27
+ this.#authHookManager = new auth.AuthHookManager(
28
+ b24HookParams
29
+ );
30
+ const warningText = "The B24Hook object is intended exclusively for use on the server.\nA webhook contains a secret access key, which MUST NOT be used in client-side code (browser, mobile app).";
31
+ this._httpV2 = new v2.HttpV2(this.#authHookManager, this._getHttpOptions(), options?.restrictionParams);
32
+ this._httpV2.setClientSideWarning(true, warningText);
33
+ this._httpV3 = new v3.HttpV3(this.#authHookManager, this._getHttpOptions(), options?.restrictionParams);
34
+ this._httpV3.setClientSideWarning(true, warningText);
35
+ this._isInit = true;
36
+ }
37
+ // endregion ////
38
+ get auth() {
39
+ return this.#authHookManager;
40
+ }
41
+ // region Core ////
42
+ /**
43
+ * Disables warning about client-side query execution
44
+ */
45
+ offClientSideWarning() {
46
+ versionManager.versionManager.getAllApiVersions().forEach((version) => {
47
+ this.getHttpClient(version).setClientSideWarning(false, "");
48
+ });
49
+ }
50
+ // endregion ////
51
+ // region Get ////
52
+ /**
53
+ * @inheritDoc
54
+ */
55
+ getTargetOrigin() {
56
+ this._ensureInitialized();
57
+ return this.#authHookManager.getTargetOrigin();
58
+ }
59
+ /**
60
+ * @inheritDoc
61
+ */
62
+ getTargetOriginWithPath() {
63
+ this._ensureInitialized();
64
+ return this.#authHookManager.getTargetOriginWithPath();
65
+ }
66
+ // endregion ////
67
+ // region Tools ////
68
+ /**
69
+ * Init Webhook from url
70
+ * - ver2 `https://your_domain.bitrix24.com/rest/{id}/{webhook}`
71
+ * - ver3 `https://your_domain.bitrix24.com/rest/api/{id}/{webhook}`
72
+ *
73
+ * @todo docs
74
+ */
75
+ static fromWebhookUrl(url, options) {
76
+ if (!url.trim()) {
77
+ throw new Error("Webhook URL cannot be empty");
78
+ }
79
+ let parsedUrl;
80
+ try {
81
+ parsedUrl = new URL(url.replace("/rest/api", "/rest"));
82
+ } catch {
83
+ throw new Error("Invalid webhook URL format");
84
+ }
85
+ if (parsedUrl.protocol !== "https:") {
86
+ throw new Error("Webhook requires HTTPS protocol");
87
+ }
88
+ const pathParts = parsedUrl.pathname.split("/").filter(Boolean);
89
+ const isValidFormat = (
90
+ // Format: /rest/{id}/{webhook}
91
+ pathParts.length === 3 && pathParts[0] === "rest" || pathParts.length === 4 && pathParts[0] === "rest" && pathParts[1] === "api"
92
+ );
93
+ if (!isValidFormat) {
94
+ throw new Error("Webhook URL must follow format: /rest/<userId>/<secret> or /rest/api/<userId>/<secret>");
95
+ }
96
+ const userIdIndex = pathParts[1] === "api" ? 2 : 1;
97
+ const secretIndex = pathParts[1] === "api" ? 3 : 2;
98
+ const userIdStr = pathParts[userIdIndex];
99
+ const secret = pathParts[secretIndex];
100
+ if (!/^\d+$/.test(userIdStr)) {
101
+ throw new Error("User ID must be numeric in webhook URL");
102
+ }
103
+ const userId = Number.parseInt(userIdStr, 10);
104
+ return new B24Hook(
105
+ {
106
+ b24Url: parsedUrl.origin,
107
+ userId,
108
+ secret
109
+ },
110
+ options
111
+ );
112
+ }
113
+ // endregion ////
114
+ }
115
+
116
+ exports.B24Hook = B24Hook;
117
+ //# sourceMappingURL=b24.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"b24.cjs","sources":["../../../src/hook/b24.ts"],"sourcesContent":["import type { AuthActions, B24HookParams } from '../types/auth'\nimport type { RestrictionParams } from '../types/limiters'\nimport type { TypeB24, ApiVersion } from '../types/b24'\nimport { AbstractB24 } from '../core/abstract-b24'\nimport { HttpV2 } from '../core/http/v2'\nimport { HttpV3 } from '../core/http/v3'\nimport { AuthHookManager } from './auth'\nimport { versionManager } from '../core/version-manager'\n\n/**\n * B24.Hook Manager.\n *\n * @link https://bitrix24.github.io/b24jssdk/docs/hook/\n *\n * @todo docs\n */\nexport class B24Hook extends AbstractB24 implements TypeB24 {\n readonly #authHookManager: AuthHookManager\n\n // region Init ////\n constructor(\n b24HookParams: B24HookParams,\n options?: {\n restrictionParams?: Partial<RestrictionParams>\n }\n ) {\n super()\n\n this.#authHookManager = new AuthHookManager(\n b24HookParams\n )\n\n const warningText = 'The B24Hook object is intended exclusively for use on the server.\\nA webhook contains a secret access key, which MUST NOT be used in client-side code (browser, mobile app).'\n\n this._httpV2 = new HttpV2(this.#authHookManager, this._getHttpOptions(), options?.restrictionParams)\n this._httpV2.setClientSideWarning(true, warningText)\n this._httpV3 = new HttpV3(this.#authHookManager, this._getHttpOptions(), options?.restrictionParams)\n this._httpV3.setClientSideWarning(true, warningText)\n\n this._isInit = true\n }\n // endregion ////\n\n override get auth(): AuthActions {\n return this.#authHookManager\n }\n\n // region Core ////\n /**\n * Disables warning about client-side query execution\n */\n public offClientSideWarning(): void {\n versionManager.getAllApiVersions().forEach((version) => {\n this.getHttpClient(version).setClientSideWarning(false, '')\n })\n }\n\n // endregion ////\n\n // region Get ////\n /**\n * @inheritDoc\n */\n public override getTargetOrigin(): string {\n this._ensureInitialized()\n return this.#authHookManager.getTargetOrigin()\n }\n\n /**\n * @inheritDoc\n */\n public override getTargetOriginWithPath(): Map<ApiVersion, string> {\n this._ensureInitialized()\n return this.#authHookManager.getTargetOriginWithPath()\n }\n\n // endregion ////\n\n // region Tools ////\n /**\n * Init Webhook from url\n * - ver2 `https://your_domain.bitrix24.com/rest/{id}/{webhook}`\n * - ver3 `https://your_domain.bitrix24.com/rest/api/{id}/{webhook}`\n *\n * @todo docs\n */\n public static fromWebhookUrl(\n url: string,\n options?: { restrictionParams?: Partial<RestrictionParams> }\n ): B24Hook {\n if (!url.trim()) {\n throw new Error('Webhook URL cannot be empty')\n }\n\n let parsedUrl: URL\n\n try {\n parsedUrl = new URL(url.replace('/rest/api', '/rest'))\n } catch {\n // Don't echo the URL — it carries the webhook secret in its path (#43).\n throw new Error('Invalid webhook URL format')\n }\n\n if (parsedUrl.protocol !== 'https:') {\n throw new Error('Webhook requires HTTPS protocol')\n }\n\n const pathParts = parsedUrl.pathname.split('/').filter(Boolean)\n const isValidFormat = (\n // Format: /rest/{id}/{webhook}\n (pathParts.length === 3 && pathParts[0] === 'rest')\n // Format: /rest/api/{id}/{webhook}\n || (pathParts.length === 4 && pathParts[0] === 'rest' && pathParts[1] === 'api')\n )\n\n if (!isValidFormat) {\n throw new Error('Webhook URL must follow format: /rest/<userId>/<secret> or /rest/api/<userId>/<secret>')\n }\n\n // Determine the position of userId and secret depending on the format\n const userIdIndex = pathParts[1] === 'api' ? 2 : 1\n const secretIndex = pathParts[1] === 'api' ? 3 : 2\n\n const userIdStr = pathParts[userIdIndex]!\n const secret = pathParts[secretIndex]!\n\n if (!/^\\d+$/.test(userIdStr)) {\n // Don't echo the segment — in a transposed URL it could be the secret (#43).\n throw new Error('User ID must be numeric in webhook URL')\n }\n const userId = Number.parseInt(userIdStr, 10)\n\n return new B24Hook(\n {\n b24Url: parsedUrl.origin,\n userId,\n secret\n },\n options\n )\n }\n // endregion ////\n}\n"],"names":["AbstractB24","AuthHookManager","HttpV2","HttpV3","versionManager"],"mappings":"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"}