@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,210 @@
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 luxon = require('luxon');
12
+ const uuidv7 = require('./uuidv7.cjs');
13
+ const type = require('./type.cjs');
14
+
15
+ var __defProp = Object.defineProperty;
16
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
17
+ const reEscape = /[&<>'"]/g;
18
+ const reUnescape = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34)/g;
19
+ const escapeEntities = {
20
+ "&": "&amp",
21
+ "<": "&lt",
22
+ ">": "&gt",
23
+ "'": "&#39",
24
+ '"': "&quot"
25
+ };
26
+ const unescapeEntities = {
27
+ "&amp": "&",
28
+ "&#38": "&",
29
+ "&lt": "<",
30
+ "&#60": "<",
31
+ "&gt": ">",
32
+ "&#62": ">",
33
+ "&apos": "'",
34
+ "&#39": "'",
35
+ "&quot": '"',
36
+ "&#34": '"'
37
+ };
38
+ class TextManager {
39
+ static {
40
+ __name(this, "TextManager");
41
+ }
42
+ getRandom(length = 8) {
43
+ return [...Array(length)].map(() => Math.trunc(Math.random() * 36).toString(36)).join("");
44
+ }
45
+ /**
46
+ * Generates UUID
47
+ */
48
+ getUniqId() {
49
+ return "xxxxxxxx-xlsx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
50
+ const r = Math.trunc(Math.random() * 16);
51
+ const v = c === "x" ? r : r & 3 | 8;
52
+ return v.toString(16);
53
+ });
54
+ }
55
+ /**
56
+ * Generate uuid v7
57
+ * @return {string}
58
+ */
59
+ getUuidRfc4122() {
60
+ return uuidv7.default();
61
+ }
62
+ /**
63
+ * Encodes all unsafe entities
64
+ * @param {string} value
65
+ * @return {string}
66
+ */
67
+ encode(value) {
68
+ if (type.Type.isString(value)) {
69
+ return value.replace(reEscape, (item) => escapeEntities[item]);
70
+ }
71
+ return value;
72
+ }
73
+ /**
74
+ * Decodes all encoded entities
75
+ * @param {string} value
76
+ * @return {string}
77
+ */
78
+ decode(value) {
79
+ if (type.Type.isString(value)) {
80
+ return value.replace(reUnescape, (item) => unescapeEntities[item]);
81
+ }
82
+ return value;
83
+ }
84
+ toNumber(value) {
85
+ const parsedValue = Number.parseFloat(value);
86
+ if (type.Type.isNumber(parsedValue)) {
87
+ return parsedValue;
88
+ }
89
+ return 0;
90
+ }
91
+ toInteger(value) {
92
+ return this.toNumber(Number.parseInt(value, 10));
93
+ }
94
+ toBoolean(value, trueValues = []) {
95
+ const transformedValue = type.Type.isString(value) ? value.toLowerCase() : value;
96
+ return ["true", "y", "1", 1, true, ...trueValues].includes(transformedValue);
97
+ }
98
+ toCamelCase(str) {
99
+ if (!type.Type.isStringFilled(str)) {
100
+ return str;
101
+ }
102
+ const regex = /[-_\s]+(.)?/g;
103
+ if (!regex.test(str)) {
104
+ return str.match(/^[A-Z]+$/) ? str.toLowerCase() : str[0].toLowerCase() + str.slice(1);
105
+ }
106
+ str = str.toLowerCase();
107
+ str = str.replace(
108
+ regex,
109
+ (_match, letter) => letter ? letter.toUpperCase() : ""
110
+ );
111
+ return str[0].toLowerCase() + str.substring(1);
112
+ }
113
+ toPascalCase(str) {
114
+ if (!type.Type.isStringFilled(str)) {
115
+ return str;
116
+ }
117
+ return this.capitalize(this.toCamelCase(str));
118
+ }
119
+ toKebabCase(str) {
120
+ if (!type.Type.isStringFilled(str)) {
121
+ return str;
122
+ }
123
+ const matches = str.match(
124
+ /[A-Z]{2,}(?=[A-Z][a-z]+\d*|\b)|[A-Z]?[a-z]+\d*|[A-Z]|\d+/g
125
+ );
126
+ if (!matches) {
127
+ return str;
128
+ }
129
+ return matches.map((x) => x.toLowerCase()).join("-");
130
+ }
131
+ capitalize(str) {
132
+ if (!type.Type.isStringFilled(str)) {
133
+ return str;
134
+ }
135
+ return str[0].toUpperCase() + str.substring(1);
136
+ }
137
+ numberFormat(number, decimals = 0, decPoint = ".", thousandsSep = ",") {
138
+ const n = !Number.isFinite(number) ? 0 : number;
139
+ const fractionDigits = !Number.isFinite(decimals) ? 0 : Math.abs(decimals);
140
+ const toFixedFix = /* @__PURE__ */ __name((n2, fractionDigits2) => {
141
+ const k = Math.pow(10, fractionDigits2);
142
+ return Math.round(n2 * k) / k;
143
+ }, "toFixedFix");
144
+ const s = (fractionDigits ? toFixedFix(n, fractionDigits) : Math.round(n)).toString().split(".");
145
+ if (s[0] && s[0].length > 3) {
146
+ s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, thousandsSep);
147
+ }
148
+ if ((s[1] || "").length < fractionDigits) {
149
+ s[1] = s[1] || "";
150
+ s[1] += new Array(fractionDigits - s[1].length + 1).join("0");
151
+ }
152
+ return s.join(decPoint);
153
+ }
154
+ /**
155
+ * Convert string to DateTime from ISO 8601 or self template
156
+ *
157
+ * @param {string} dateString
158
+ * @param {string} template
159
+ * @param opts
160
+ * @returns {DateTime} Convert string to DateTime from ISO 8601 or self template
161
+ *
162
+ * @link https://moment.github.io/luxon/#/parsing?id=parsing-technical-formats
163
+ */
164
+ toDateTime(dateString, template, opts) {
165
+ if (!(typeof template === "undefined") && type.Type.isStringFilled(template)) {
166
+ return luxon.DateTime.fromFormat(dateString, template, opts);
167
+ }
168
+ return luxon.DateTime.fromISO(dateString, opts);
169
+ }
170
+ /**
171
+ * Convert Date to Bitrix24 REST API FORMAT Y-m-d\TH:i:sP
172
+ * @param date
173
+ */
174
+ toB24Format(date) {
175
+ if (typeof date === "string") {
176
+ return date;
177
+ } else if (date instanceof Date) {
178
+ return this.toB24Format(luxon.DateTime.fromJSDate(date));
179
+ }
180
+ return date.toFormat("yyyy-MM-dd'T'HH:mm:ssZZ");
181
+ }
182
+ getDateForLog() {
183
+ const now = luxon.DateTime.now();
184
+ return now.toFormat("y-MM-dd HH:mm:ss");
185
+ }
186
+ buildQueryString(params) {
187
+ let result = "";
188
+ for (const key in params) {
189
+ if (!Object.prototype.hasOwnProperty.call(params, key)) {
190
+ continue;
191
+ }
192
+ const value = params[key];
193
+ if (type.Type.isArray(value)) {
194
+ value.forEach((valueElement, index) => {
195
+ result += encodeURIComponent(key + "[" + index + "]") + "=" + encodeURIComponent(valueElement) + "&";
196
+ });
197
+ } else {
198
+ result += encodeURIComponent(key) + "=" + encodeURIComponent(value) + "&";
199
+ }
200
+ }
201
+ if (result.length > 0) {
202
+ result = result.substring(0, result.length - 1);
203
+ }
204
+ return result;
205
+ }
206
+ }
207
+ const Text = new TextManager();
208
+
209
+ exports.Text = Text;
210
+ //# sourceMappingURL=text.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.cjs","sources":["../../../src/tools/text.ts"],"sourcesContent":["import type { DateTimeOptions } from 'luxon'\nimport { DateTime } from 'luxon'\nimport uuidv7 from './uuidv7'\nimport { Type } from './type'\n\nconst reEscape = /[&<>'\"]/g\nconst reUnescape = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34)/g\n\nconst escapeEntities: Record<string, string> = {\n '&': '&amp',\n '<': '&lt',\n '>': '&gt',\n '\\'': '&#39',\n '\"': '&quot'\n}\n\nconst unescapeEntities: Record<string, string> = {\n '&amp': '&',\n '&#38': '&',\n '&lt': '<',\n '&#60': '<',\n '&gt': '>',\n '&#62': '>',\n '&apos': '\\'',\n '&#39': '\\'',\n '&quot': '\"',\n '&#34': '\"'\n}\n\n/**\n * The `Text` class provides a set of utility methods for working with text data.\n * It includes functions for encoding and decoding HTML entities, generating random strings,\n * converting values to different data types, and changing the case and format of strings\n *\n * @see bitrix/js/main/core/src/lib/text.js\n */\nclass TextManager {\n getRandom(length = 8): string {\n return [...Array(length)]\n .map(() => Math.trunc(Math.random() * 36).toString(36))\n .join('')\n }\n\n /**\n * Generates UUID\n */\n getUniqId(): string {\n return 'xxxxxxxx-xlsx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = Math.trunc(Math.random() * 16)\n const v = c === 'x' ? r : (r & 0x3) | 0x8\n return v.toString(16)\n })\n }\n\n /**\n * Generate uuid v7\n * @return {string}\n */\n getUuidRfc4122(): string {\n return uuidv7()\n }\n\n /**\n * Encodes all unsafe entities\n * @param {string} value\n * @return {string}\n */\n encode(value: string): string {\n if (Type.isString(value)) {\n return value.replace(reEscape, item => escapeEntities[item]!)\n }\n\n return value\n }\n\n /**\n * Decodes all encoded entities\n * @param {string} value\n * @return {string}\n */\n decode(value: string): string {\n if (Type.isString(value)) {\n return value.replace(reUnescape, item => unescapeEntities[item]!)\n }\n\n return value\n }\n\n toNumber(value: any): number {\n const parsedValue = Number.parseFloat(value)\n\n if (Type.isNumber(parsedValue)) {\n return parsedValue\n }\n\n return 0.0\n }\n\n toInteger(value: any): number {\n return this.toNumber(Number.parseInt(value, 10))\n }\n\n toBoolean(value: any, trueValues: string[] = []): boolean {\n const transformedValue = Type.isString(value) ? value.toLowerCase() : value\n return ['true', 'y', '1', 1, true, ...trueValues].includes(transformedValue)\n }\n\n toCamelCase(str: string): string {\n if (!Type.isStringFilled(str)) {\n return str\n }\n\n const regex = /[-_\\s]+(.)?/g\n if (!regex.test(str)) {\n return str.match(/^[A-Z]+$/)\n ? str.toLowerCase()\n : str[0]!.toLowerCase() + str.slice(1)\n }\n\n str = str.toLowerCase()\n str = str.replace(regex, (_match: string, letter) =>\n letter ? letter.toUpperCase() : ''\n )\n\n return str[0]!.toLowerCase() + str.substring(1)\n }\n\n toPascalCase(str: string): string {\n if (!Type.isStringFilled(str)) {\n return str\n }\n\n return this.capitalize(this.toCamelCase(str))\n }\n\n toKebabCase(str: string): string {\n if (!Type.isStringFilled(str)) {\n return str\n }\n\n const matches = str.match(\n /[A-Z]{2,}(?=[A-Z][a-z]+\\d*|\\b)|[A-Z]?[a-z]+\\d*|[A-Z]|\\d+/g\n )\n if (!matches) {\n return str\n }\n\n return matches.map(x => x.toLowerCase()).join('-')\n }\n\n capitalize(str: string): string {\n if (!Type.isStringFilled(str)) {\n return str\n }\n\n return str[0]!.toUpperCase() + str.substring(1)\n }\n\n numberFormat(\n number: number,\n decimals: number = 0,\n decPoint: string = '.',\n thousandsSep: string = ','\n ): string {\n const n = !Number.isFinite(number) ? 0 : number\n\n const fractionDigits = !Number.isFinite(decimals) ? 0 : Math.abs(decimals)\n\n const toFixedFix = (n: number, fractionDigits: number): number => {\n const k = Math.pow(10, fractionDigits)\n return Math.round(n * k) / k\n }\n\n const s = (fractionDigits ? toFixedFix(n, fractionDigits) : Math.round(n))\n .toString()\n .split('.')\n\n if (s[0] && s[0].length > 3) {\n s[0] = s[0].replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, thousandsSep)\n }\n\n if ((s[1] || '').length < fractionDigits) {\n s[1] = s[1] || ''\n // eslint-disable-next-line\n s[1] += new Array(fractionDigits - s[1].length + 1).join('0')\n }\n\n return s.join(decPoint)\n }\n\n /**\n * Convert string to DateTime from ISO 8601 or self template\n *\n * @param {string} dateString\n * @param {string} template\n * @param opts\n * @returns {DateTime} Convert string to DateTime from ISO 8601 or self template\n *\n * @link https://moment.github.io/luxon/#/parsing?id=parsing-technical-formats\n */\n toDateTime(\n dateString: string,\n template?: string,\n opts?: DateTimeOptions\n ): DateTime {\n if (!(typeof template === 'undefined') && Type.isStringFilled(template)) {\n return DateTime.fromFormat(dateString, template, opts)\n }\n\n return DateTime.fromISO(dateString, opts)\n }\n\n /**\n * Convert Date to Bitrix24 REST API FORMAT Y-m-d\\TH:i:sP\n * @param date\n */\n toB24Format(\n date: string | DateTime | Date\n ): string {\n if (typeof date === 'string') {\n return date\n } else if (date instanceof Date) {\n return this.toB24Format(DateTime.fromJSDate(date))\n }\n return date.toFormat('yyyy-MM-dd\\'T\\'HH:mm:ssZZ')\n }\n\n getDateForLog(): string {\n const now = DateTime.now()\n return now.toFormat('y-MM-dd HH:mm:ss')\n }\n\n buildQueryString(params: any): string {\n let result = ''\n for (const key in params) {\n if (!Object.prototype.hasOwnProperty.call(params, key)) {\n continue\n }\n\n const value = params[key]\n if (Type.isArray(value)) {\n value.forEach((valueElement: any, index: any) => {\n result\n += encodeURIComponent(key + '[' + index + ']')\n + '='\n + encodeURIComponent(valueElement)\n + '&'\n })\n } else {\n result\n += encodeURIComponent(key) + '=' + encodeURIComponent(value) + '&'\n }\n }\n\n if (result.length > 0) {\n result = result.substring(0, result.length - 1)\n }\n\n return result\n }\n}\n\nexport const Text = new TextManager()\n"],"names":["uuidv7","Type","n","fractionDigits","DateTime"],"mappings":"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"}
@@ -0,0 +1,339 @@
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 OBJECT_CONSTRUCTOR_STRING = Function.prototype.toString.call(Object);
14
+ class TypeManager {
15
+ static {
16
+ __name(this, "TypeManager");
17
+ }
18
+ getTag(value) {
19
+ return Object.prototype.toString.call(value);
20
+ }
21
+ /**
22
+ * Checks that value is string
23
+ * @param value
24
+ * @return {boolean}
25
+ *
26
+ * @memo get from pull.client.Utils
27
+ */
28
+ isString(value) {
29
+ return typeof value === "string" || value instanceof String;
30
+ }
31
+ /**
32
+ * Returns true if a value is not an empty string
33
+ * @param value
34
+ * @returns {boolean} Returns true if a value is not an empty string
35
+ */
36
+ isStringFilled(value) {
37
+ return this.isString(value) && value !== "";
38
+ }
39
+ /**
40
+ * Checks that value is function
41
+ * @param value
42
+ * @return {boolean}
43
+ *
44
+ * @memo get from pull.client.Utils
45
+ */
46
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
47
+ isFunction(value) {
48
+ return value === null ? false : typeof value === "function" || value instanceof Function;
49
+ }
50
+ /**
51
+ * Checks that value is an object
52
+ * @param value
53
+ * @return {boolean}
54
+ */
55
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
56
+ isObject(value) {
57
+ return !!value && (typeof value === "object" || typeof value === "function");
58
+ }
59
+ /**
60
+ * Checks that value is object like
61
+ * @param value
62
+ * @return {boolean}
63
+ */
64
+ isObjectLike(value) {
65
+ return !!value && typeof value === "object";
66
+ }
67
+ /**
68
+ * Checks that value is plain object
69
+ * @param value
70
+ * @return {boolean}
71
+ */
72
+ isPlainObject(value) {
73
+ if (!this.isObjectLike(value) || this.getTag(value) !== "[object Object]") {
74
+ return false;
75
+ }
76
+ const proto = Object.getPrototypeOf(value);
77
+ if (proto === null) {
78
+ return true;
79
+ }
80
+ const ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor;
81
+ return typeof ctor === "function" && Function.prototype.toString.call(ctor) === OBJECT_CONSTRUCTOR_STRING;
82
+ }
83
+ isJsonRpcRequest(value) {
84
+ return typeof value === "object" && value && "jsonrpc" in value && this.isStringFilled(value.jsonrpc) && "method" in value && this.isStringFilled(value.method);
85
+ }
86
+ isJsonRpcResponse(value) {
87
+ return typeof value === "object" && value && "jsonrpc" in value && this.isStringFilled(value.jsonrpc) && "id" in value && ("result" in value || "error" in value);
88
+ }
89
+ /**
90
+ * Checks that value is boolean
91
+ * @param value
92
+ * @return {boolean}
93
+ */
94
+ isBoolean(value) {
95
+ return value === true || value === false;
96
+ }
97
+ /**
98
+ * Checks that value is number
99
+ * @param value
100
+ * @return {boolean}
101
+ */
102
+ isNumber(value) {
103
+ return typeof value === "number" && !Number.isNaN(value);
104
+ }
105
+ /**
106
+ * Checks that value is integer
107
+ * @param value
108
+ * @return {boolean}
109
+ */
110
+ isInteger(value) {
111
+ return Number.isInteger(value);
112
+ }
113
+ /**
114
+ * Checks that value is float
115
+ * @param value
116
+ * @return {boolean}
117
+ */
118
+ isFloat(value) {
119
+ return this.isNumber(value) && !this.isInteger(value);
120
+ }
121
+ /**
122
+ * Checks that value is nil
123
+ * @param value
124
+ * @return {boolean}
125
+ */
126
+ isNil(value) {
127
+ return value === null || value === void 0;
128
+ }
129
+ /**
130
+ * Checks that value is an array
131
+ * @param value
132
+ * @return {boolean}
133
+ */
134
+ isArray(value) {
135
+ return !this.isNil(value) && Array.isArray(value);
136
+ }
137
+ /**
138
+ * Returns true if a value is an array, and it has at least one element
139
+ * @param value
140
+ * @returns {boolean} Returns true if a value is an array, and it has at least one element
141
+ */
142
+ isArrayFilled(value) {
143
+ return this.isArray(value) && value.length > 0;
144
+ }
145
+ /**
146
+ * Checks that value is array like
147
+ * @param value
148
+ * @return {boolean}
149
+ */
150
+ isArrayLike(value) {
151
+ return !this.isNil(value) && !this.isFunction(value) && value.length > -1 && value.length <= Number.MAX_SAFE_INTEGER;
152
+ }
153
+ /**
154
+ * Checks that value is Date
155
+ * @param value
156
+ * @return {boolean}
157
+ */
158
+ isDate(value) {
159
+ return value instanceof Date;
160
+ }
161
+ /**
162
+ * Checks that is a DOM node
163
+ * @param value
164
+ * @return {boolean}
165
+ */
166
+ isDomNode(value) {
167
+ return this.isObjectLike(value) && !this.isPlainObject(value) && "nodeType" in value;
168
+ }
169
+ /**
170
+ * Checks that value is element node
171
+ * @param value
172
+ * @return {boolean}
173
+ */
174
+ isElementNode(value) {
175
+ return this.isDomNode(value) && value.nodeType === Node.ELEMENT_NODE;
176
+ }
177
+ /**
178
+ * Checks that value is a text node
179
+ * @param value
180
+ * @return {boolean}
181
+ */
182
+ isTextNode(value) {
183
+ return this.isDomNode(value) && value.nodeType === Node.TEXT_NODE;
184
+ }
185
+ /**
186
+ * Checks that value is Map
187
+ * @param value
188
+ * @return {boolean}
189
+ */
190
+ isMap(value) {
191
+ return this.isObjectLike(value) && this.getTag(value) === "[object Map]";
192
+ }
193
+ /**
194
+ * Checks that value is Set
195
+ * @param value
196
+ * @return {boolean}
197
+ */
198
+ isSet(value) {
199
+ return this.isObjectLike(value) && this.getTag(value) === "[object Set]";
200
+ }
201
+ /**
202
+ * Checks that value is WeakMap
203
+ * @param value
204
+ * @return {boolean}
205
+ */
206
+ isWeakMap(value) {
207
+ return this.isObjectLike(value) && this.getTag(value) === "[object WeakMap]";
208
+ }
209
+ /**
210
+ * Checks that value is WeakSet
211
+ * @param value
212
+ * @return {boolean}
213
+ */
214
+ isWeakSet(value) {
215
+ return this.isObjectLike(value) && this.getTag(value) === "[object WeakSet]";
216
+ }
217
+ /**
218
+ * Checks that value is prototype
219
+ * @param value
220
+ * @return {boolean}
221
+ */
222
+ isPrototype(value) {
223
+ return (typeof (value && value.constructor) === "function" && value.constructor.prototype || Object.prototype) === value;
224
+ }
225
+ /**
226
+ * Checks that value is regexp
227
+ * @param value
228
+ * @return {boolean}
229
+ */
230
+ isRegExp(value) {
231
+ return this.isObjectLike(value) && this.getTag(value) === "[object RegExp]";
232
+ }
233
+ /**
234
+ * Checks that value is null
235
+ * @param value
236
+ * @return {boolean}
237
+ */
238
+ isNull(value) {
239
+ return value === null;
240
+ }
241
+ /**
242
+ * Checks that value is undefined
243
+ * @param value
244
+ * @return {boolean}
245
+ */
246
+ isUndefined(value) {
247
+ return typeof value === "undefined";
248
+ }
249
+ /**
250
+ * Checks that value is ArrayBuffer
251
+ * @param value
252
+ * @return {boolean}
253
+ */
254
+ isArrayBuffer(value) {
255
+ return this.isObjectLike(value) && this.getTag(value) === "[object ArrayBuffer]";
256
+ }
257
+ /**
258
+ * Checks that value is typed array
259
+ * @param value
260
+ * @return {boolean}
261
+ */
262
+ isTypedArray(value) {
263
+ const regExpTypedTag = /^\[object (?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)\]$/;
264
+ return this.isObjectLike(value) && regExpTypedTag.test(this.getTag(value));
265
+ }
266
+ /**
267
+ * Checks that value is Blob
268
+ * @param value
269
+ * @return {boolean}
270
+ */
271
+ isBlob(value) {
272
+ return this.isObjectLike(value) && this.isNumber(value.size) && this.isString(value.type) && this.isFunction(value.slice);
273
+ }
274
+ /**
275
+ * Checks that value is File
276
+ * @param value
277
+ * @return {boolean}
278
+ */
279
+ isFile(value) {
280
+ return this.isBlob(value) && this.isString(value.name) && (this.isNumber(value.lastModified) || this.isObjectLike(value.lastModifiedDate));
281
+ }
282
+ /**
283
+ * Checks that value is FormData
284
+ * @param value
285
+ * @return {boolean}
286
+ */
287
+ isFormData(value) {
288
+ if (typeof FormData !== "undefined" && value instanceof FormData) {
289
+ return true;
290
+ }
291
+ return this.isObjectLike(value) && this.getTag(value) === "[object FormData]";
292
+ }
293
+ clone(obj, bCopyObj = true) {
294
+ let _obj, i, l;
295
+ if (this.isNil(obj) || typeof obj !== "object") {
296
+ return obj;
297
+ }
298
+ if (this.isDomNode(obj)) {
299
+ _obj = obj.cloneNode(bCopyObj);
300
+ } else if (typeof obj == "object") {
301
+ if (this.isArray(obj)) {
302
+ _obj = [];
303
+ for (i = 0, l = obj.length; i < l; i++) {
304
+ if (typeof obj[i] == "object" && bCopyObj) {
305
+ _obj[i] = this.clone(obj[i], bCopyObj);
306
+ } else {
307
+ _obj[i] = obj[i];
308
+ }
309
+ }
310
+ } else {
311
+ _obj = {};
312
+ if (obj.constructor) {
313
+ if (this.isDate(obj)) {
314
+ _obj = new Date(obj);
315
+ } else {
316
+ _obj = new obj.constructor();
317
+ }
318
+ }
319
+ for (i in obj) {
320
+ if (!Object.prototype.hasOwnProperty.call(obj, i)) {
321
+ continue;
322
+ }
323
+ if (typeof obj[i] === "object" && bCopyObj) {
324
+ _obj[i] = this.clone(obj[i], bCopyObj);
325
+ } else {
326
+ _obj[i] = obj[i];
327
+ }
328
+ }
329
+ }
330
+ } else {
331
+ _obj = obj;
332
+ }
333
+ return _obj;
334
+ }
335
+ }
336
+ const Type = new TypeManager();
337
+
338
+ exports.Type = Type;
339
+ //# sourceMappingURL=type.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.cjs","sources":["../../../src/tools/type.ts"],"sourcesContent":["const OBJECT_CONSTRUCTOR_STRING = Function.prototype.toString.call(Object)\n\ninterface BlobLike {\n readonly size: number\n readonly type: string\n slice(start?: number, end?: number, contentType?: string): Blob\n}\n\ninterface FileLike extends BlobLike {\n name: string\n lastModified?: number\n lastModifiedDate?: object\n}\n\n/**\n * The `Type` class is designed to check and determine data types\n *\n * @see bitrix/js/main/core/src/lib/type.js\n */\nclass TypeManager {\n getTag(value: any): string {\n return Object.prototype.toString.call(value)\n }\n\n /**\n * Checks that value is string\n * @param value\n * @return {boolean}\n *\n * @memo get from pull.client.Utils\n */\n isString(value: any): value is string {\n return typeof value === 'string' || value instanceof String\n }\n\n /**\n * Returns true if a value is not an empty string\n * @param value\n * @returns {boolean} Returns true if a value is not an empty string\n */\n isStringFilled(value: any): value is string {\n return this.isString(value) && value !== ''\n }\n\n /**\n * Checks that value is function\n * @param value\n * @return {boolean}\n *\n * @memo get from pull.client.Utils\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n isFunction(value: any): value is Function {\n return value === null\n ? false\n : typeof value === 'function' || value instanceof Function\n }\n\n /**\n * Checks that value is an object\n * @param value\n * @return {boolean}\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n isObject(value: any): value is object | Function {\n return !!value && (typeof value === 'object' || typeof value === 'function')\n }\n\n /**\n * Checks that value is object like\n * @param value\n * @return {boolean}\n */\n isObjectLike<T>(value: any): value is T {\n return !!value && typeof value === 'object'\n }\n\n /**\n * Checks that value is plain object\n * @param value\n * @return {boolean}\n */\n isPlainObject(value: any): value is Record<string | number, any> {\n if (!this.isObjectLike(value) || this.getTag(value) !== '[object Object]') {\n return false\n }\n\n const proto = Object.getPrototypeOf(value)\n if (proto === null) {\n return true\n }\n\n const ctor = Object.prototype.hasOwnProperty.call(proto, 'constructor') && proto.constructor\n\n return (\n typeof ctor === 'function'\n && Function.prototype.toString.call(ctor) === OBJECT_CONSTRUCTOR_STRING\n )\n }\n\n isJsonRpcRequest(value: any): boolean {\n return (\n typeof value === 'object'\n && value\n && 'jsonrpc' in value\n && this.isStringFilled(value.jsonrpc)\n && 'method' in value\n && this.isStringFilled(value.method)\n )\n }\n\n isJsonRpcResponse(value: any): boolean {\n return (\n typeof value === 'object'\n && value\n && 'jsonrpc' in value\n && this.isStringFilled(value.jsonrpc)\n && 'id' in value\n && ('result' in value || 'error' in value)\n )\n }\n\n /**\n * Checks that value is boolean\n * @param value\n * @return {boolean}\n */\n isBoolean(value: any): value is boolean {\n return value === true || value === false\n }\n\n /**\n * Checks that value is number\n * @param value\n * @return {boolean}\n */\n isNumber(value: any): value is number {\n return typeof value === 'number' && !Number.isNaN(value)\n }\n\n /**\n * Checks that value is integer\n * @param value\n * @return {boolean}\n */\n isInteger(value: any): value is number {\n return Number.isInteger(value)\n }\n\n /**\n * Checks that value is float\n * @param value\n * @return {boolean}\n */\n isFloat(value: any): value is number {\n return this.isNumber(value) && !this.isInteger(value)\n }\n\n /**\n * Checks that value is nil\n * @param value\n * @return {boolean}\n */\n isNil(value: any): value is null | undefined {\n return value === null || value === undefined\n }\n\n /**\n * Checks that value is an array\n * @param value\n * @return {boolean}\n */\n isArray(value: any): value is any[] {\n return !this.isNil(value) && Array.isArray(value)\n }\n\n /**\n * Returns true if a value is an array, and it has at least one element\n * @param value\n * @returns {boolean} Returns true if a value is an array, and it has at least one element\n */\n isArrayFilled(value: any): value is any[] {\n return this.isArray(value) && value.length > 0\n }\n\n /**\n * Checks that value is array like\n * @param value\n * @return {boolean}\n */\n isArrayLike(value: any): value is ArrayLike<any> {\n return (\n !this.isNil(value)\n && !this.isFunction(value)\n && value.length > -1\n && value.length <= Number.MAX_SAFE_INTEGER\n )\n }\n\n /**\n * Checks that value is Date\n * @param value\n * @return {boolean}\n */\n isDate(value: any): value is Date {\n return value instanceof Date\n }\n\n /**\n * Checks that is a DOM node\n * @param value\n * @return {boolean}\n */\n isDomNode(value: any): value is Node {\n return (\n this.isObjectLike<{\n nodeType?: any\n }>(value)\n && !this.isPlainObject(value)\n && 'nodeType' in value\n )\n }\n\n /**\n * Checks that value is element node\n * @param value\n * @return {boolean}\n */\n isElementNode(value: any): value is HTMLElement {\n return this.isDomNode(value) && value.nodeType === Node.ELEMENT_NODE\n }\n\n /**\n * Checks that value is a text node\n * @param value\n * @return {boolean}\n */\n isTextNode(value: any): value is Text {\n return this.isDomNode(value) && value.nodeType === Node.TEXT_NODE\n }\n\n /**\n * Checks that value is Map\n * @param value\n * @return {boolean}\n */\n isMap(value: any): value is Map<unknown, unknown> {\n return this.isObjectLike(value) && this.getTag(value) === '[object Map]'\n }\n\n /**\n * Checks that value is Set\n * @param value\n * @return {boolean}\n */\n isSet(value: any): value is Set<unknown> {\n return this.isObjectLike(value) && this.getTag(value) === '[object Set]'\n }\n\n /**\n * Checks that value is WeakMap\n * @param value\n * @return {boolean}\n */\n isWeakMap(value: any): value is WeakMap<object, unknown> {\n return this.isObjectLike(value) && this.getTag(value) === '[object WeakMap]'\n }\n\n /**\n * Checks that value is WeakSet\n * @param value\n * @return {boolean}\n */\n isWeakSet(value: any): value is WeakSet<object> {\n return this.isObjectLike(value) && this.getTag(value) === '[object WeakSet]'\n }\n\n /**\n * Checks that value is prototype\n * @param value\n * @return {boolean}\n */\n isPrototype(value: any): value is object {\n return (\n (\n (\n typeof (value && value.constructor) === 'function'\n && value.constructor.prototype\n ) || Object.prototype\n ) === value\n )\n }\n\n /**\n * Checks that value is regexp\n * @param value\n * @return {boolean}\n */\n isRegExp(value: any): value is RegExp {\n return this.isObjectLike(value) && this.getTag(value) === '[object RegExp]'\n }\n\n /**\n * Checks that value is null\n * @param value\n * @return {boolean}\n */\n isNull(value: any): value is null {\n return value === null\n }\n\n /**\n * Checks that value is undefined\n * @param value\n * @return {boolean}\n */\n isUndefined(value: any): value is undefined {\n return typeof value === 'undefined'\n }\n\n /**\n * Checks that value is ArrayBuffer\n * @param value\n * @return {boolean}\n */\n isArrayBuffer(value: any): value is ArrayBuffer {\n return (\n this.isObjectLike(value) && this.getTag(value) === '[object ArrayBuffer]'\n )\n }\n\n /**\n * Checks that value is typed array\n * @param value\n * @return {boolean}\n */\n isTypedArray(value: any): value is\n | Int8Array\n | Uint8Array\n | Uint8ClampedArray\n | Int16Array\n | Uint16Array\n | Int32Array\n | Uint32Array\n | Float32Array\n | Float64Array {\n const regExpTypedTag\n = /^\\[object (?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)\\]$/\n return this.isObjectLike(value) && regExpTypedTag.test(this.getTag(value))\n }\n\n /**\n * Checks that value is Blob\n * @param value\n * @return {boolean}\n */\n isBlob(value: any): value is BlobLike {\n return (\n this.isObjectLike(value)\n && this.isNumber((value as BlobLike).size)\n && this.isString((value as BlobLike).type)\n && this.isFunction((value as BlobLike).slice)\n )\n }\n\n /**\n * Checks that value is File\n * @param value\n * @return {boolean}\n */\n isFile(value: any): value is FileLike {\n return (\n this.isBlob(value)\n && this.isString((value as FileLike).name)\n && (this.isNumber((value as FileLike).lastModified) || this.isObjectLike((value as FileLike).lastModifiedDate))\n )\n }\n\n /**\n * Checks that value is FormData\n * @param value\n * @return {boolean}\n */\n isFormData(value: any): value is FormData {\n if (typeof FormData !== 'undefined' && value instanceof FormData) {\n return true\n }\n\n return this.isObjectLike(value) && this.getTag(value) === '[object FormData]'\n }\n\n clone(obj: any, bCopyObj: boolean = true): any {\n let _obj, i, l\n\n if (this.isNil(obj) || typeof obj !== 'object') {\n return obj\n }\n\n if (this.isDomNode(obj)) {\n _obj = obj.cloneNode(bCopyObj)\n } else if (typeof obj == 'object') {\n if (this.isArray(obj)) {\n _obj = []\n for (i = 0, l = obj.length; i < l; i++) {\n if (typeof obj[i] == 'object' && bCopyObj) {\n _obj[i] = this.clone(obj[i], bCopyObj)\n } else {\n _obj[i] = obj[i]\n }\n }\n } else {\n _obj = {}\n if (obj.constructor) {\n if (this.isDate(obj)) {\n _obj = new Date(obj)\n } else {\n _obj = new obj.constructor()\n }\n }\n\n for (i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n continue\n }\n if (typeof obj[i] === 'object' && bCopyObj) {\n _obj[i] = this.clone(obj[i], bCopyObj)\n } else {\n _obj[i] = obj[i]\n }\n }\n }\n } else {\n _obj = obj\n }\n\n return _obj\n }\n}\n\nexport const Type = new TypeManager()\n"],"names":[],"mappings":"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"}