@bitrix24/b24jssdk 0.5.1 → 1.0.2

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 (258) hide show
  1. package/README-AI.md +2 -1
  2. package/dist/esm/_virtual/_commonjsHelpers.mjs +16 -0
  3. package/dist/esm/_virtual/_commonjsHelpers.mjs.map +1 -0
  4. package/dist/esm/_virtual/protobuf.mjs +16 -0
  5. package/dist/esm/_virtual/protobuf.mjs.map +1 -0
  6. package/dist/esm/_virtual/protobuf2.mjs +12 -0
  7. package/dist/esm/_virtual/protobuf2.mjs.map +1 -0
  8. package/dist/esm/core/abstract-b24.mjs +355 -0
  9. package/dist/esm/core/abstract-b24.mjs.map +1 -0
  10. package/dist/esm/core/actions/abstract-action.mjs +24 -0
  11. package/dist/esm/core/actions/abstract-action.mjs.map +1 -0
  12. package/dist/esm/core/actions/abstract-batch.mjs +95 -0
  13. package/dist/esm/core/actions/abstract-batch.mjs.map +1 -0
  14. package/dist/esm/core/actions/manager.mjs +53 -0
  15. package/dist/esm/core/actions/manager.mjs.map +1 -0
  16. package/dist/esm/core/actions/v2/batch-by-chunk.mjs +92 -0
  17. package/dist/esm/core/actions/v2/batch-by-chunk.mjs.map +1 -0
  18. package/dist/esm/core/actions/v2/batch.mjs +126 -0
  19. package/dist/esm/core/actions/v2/batch.mjs.map +1 -0
  20. package/dist/esm/core/actions/v2/call-list.mjs +131 -0
  21. package/dist/esm/core/actions/v2/call-list.mjs.map +1 -0
  22. package/dist/esm/core/actions/v2/call.mjs +68 -0
  23. package/dist/esm/core/actions/v2/call.mjs.map +1 -0
  24. package/dist/esm/core/actions/v2/fetch-list.mjs +132 -0
  25. package/dist/esm/core/actions/v2/fetch-list.mjs.map +1 -0
  26. package/dist/esm/core/actions/v2/manager-v2.mjs +74 -0
  27. package/dist/esm/core/actions/v2/manager-v2.mjs.map +1 -0
  28. package/dist/esm/core/actions/v3/batch-by-chunk.mjs +91 -0
  29. package/dist/esm/core/actions/v3/batch-by-chunk.mjs.map +1 -0
  30. package/dist/esm/core/actions/v3/batch.mjs +129 -0
  31. package/dist/esm/core/actions/v3/batch.mjs.map +1 -0
  32. package/dist/esm/core/actions/v3/call-list.mjs +127 -0
  33. package/dist/esm/core/actions/v3/call-list.mjs.map +1 -0
  34. package/dist/esm/core/actions/v3/call.mjs +58 -0
  35. package/dist/esm/core/actions/v3/call.mjs.map +1 -0
  36. package/dist/esm/core/actions/v3/fetch-list.mjs +125 -0
  37. package/dist/esm/core/actions/v3/fetch-list.mjs.map +1 -0
  38. package/dist/esm/core/actions/v3/manager-v3.mjs +74 -0
  39. package/dist/esm/core/actions/v3/manager-v3.mjs.map +1 -0
  40. package/dist/esm/core/http/abstract-http.mjs +563 -0
  41. package/dist/esm/core/http/abstract-http.mjs.map +1 -0
  42. package/dist/esm/core/http/ajax-error.mjs +107 -0
  43. package/dist/esm/core/http/ajax-error.mjs.map +1 -0
  44. package/dist/esm/core/http/ajax-result.mjs +176 -0
  45. package/dist/esm/core/http/ajax-result.mjs.map +1 -0
  46. package/dist/esm/core/http/limiters/adaptive-delayer.mjs +135 -0
  47. package/dist/esm/core/http/limiters/adaptive-delayer.mjs.map +1 -0
  48. package/dist/esm/core/http/limiters/manager.mjs +309 -0
  49. package/dist/esm/core/http/limiters/manager.mjs.map +1 -0
  50. package/dist/esm/core/http/limiters/operating-limiter.mjs +171 -0
  51. package/dist/esm/core/http/limiters/operating-limiter.mjs.map +1 -0
  52. package/dist/esm/core/http/limiters/params-factory.mjs +121 -0
  53. package/dist/esm/core/http/limiters/params-factory.mjs.map +1 -0
  54. package/dist/esm/core/http/limiters/rate-limiter.mjs +402 -0
  55. package/dist/esm/core/http/limiters/rate-limiter.mjs.map +1 -0
  56. package/dist/esm/core/http/v2.mjs +100 -0
  57. package/dist/esm/core/http/v2.mjs.map +1 -0
  58. package/dist/esm/core/http/v3.mjs +94 -0
  59. package/dist/esm/core/http/v3.mjs.map +1 -0
  60. package/dist/esm/core/interaction/batch/abstract-interaction-batch.mjs +69 -0
  61. package/dist/esm/core/interaction/batch/abstract-interaction-batch.mjs.map +1 -0
  62. package/dist/esm/core/interaction/batch/parse-row.mjs +67 -0
  63. package/dist/esm/core/interaction/batch/parse-row.mjs.map +1 -0
  64. package/dist/esm/core/interaction/batch/processing/interface-strategy.mjs +42 -0
  65. package/dist/esm/core/interaction/batch/processing/interface-strategy.mjs.map +1 -0
  66. package/dist/esm/core/interaction/batch/processing/v2/abstract-processing.mjs +121 -0
  67. package/dist/esm/core/interaction/batch/processing/v2/abstract-processing.mjs.map +1 -0
  68. package/dist/esm/core/interaction/batch/processing/v2/as-array.mjs +32 -0
  69. package/dist/esm/core/interaction/batch/processing/v2/as-array.mjs.map +1 -0
  70. package/dist/esm/core/interaction/batch/processing/v2/as-object.mjs +32 -0
  71. package/dist/esm/core/interaction/batch/processing/v2/as-object.mjs.map +1 -0
  72. package/dist/esm/core/interaction/batch/processing/v3/abstract-processing.mjs +118 -0
  73. package/dist/esm/core/interaction/batch/processing/v3/abstract-processing.mjs.map +1 -0
  74. package/dist/esm/core/interaction/batch/processing/v3/as-array.mjs +32 -0
  75. package/dist/esm/core/interaction/batch/processing/v3/as-array.mjs.map +1 -0
  76. package/dist/esm/core/interaction/batch/processing/v3/as-object.mjs +32 -0
  77. package/dist/esm/core/interaction/batch/processing/v3/as-object.mjs.map +1 -0
  78. package/dist/esm/core/interaction/batch/v2.mjs +44 -0
  79. package/dist/esm/core/interaction/batch/v2.mjs.map +1 -0
  80. package/dist/esm/core/interaction/batch/v3.mjs +42 -0
  81. package/dist/esm/core/interaction/batch/v3.mjs.map +1 -0
  82. package/dist/esm/core/language/list.mjs +56 -0
  83. package/dist/esm/core/language/list.mjs.map +1 -0
  84. package/dist/esm/core/request-id-generator.mjs +42 -0
  85. package/dist/esm/core/request-id-generator.mjs.map +1 -0
  86. package/dist/esm/core/result.mjs +101 -0
  87. package/dist/esm/core/result.mjs.map +1 -0
  88. package/dist/esm/core/sdk-error.mjs +83 -0
  89. package/dist/esm/core/sdk-error.mjs.map +1 -0
  90. package/dist/esm/core/tools/abstract-tool.mjs +24 -0
  91. package/dist/esm/core/tools/abstract-tool.mjs.map +1 -0
  92. package/dist/esm/core/tools/healthcheck.mjs +48 -0
  93. package/dist/esm/core/tools/healthcheck.mjs.map +1 -0
  94. package/dist/esm/core/tools/manager.mjs +50 -0
  95. package/dist/esm/core/tools/manager.mjs.map +1 -0
  96. package/dist/esm/core/tools/ping.mjs +56 -0
  97. package/dist/esm/core/tools/ping.mjs.map +1 -0
  98. package/dist/esm/core/version-manager.mjs +116 -0
  99. package/dist/esm/core/version-manager.mjs.map +1 -0
  100. package/dist/esm/frame/auth.mjs +98 -0
  101. package/dist/esm/frame/auth.mjs.map +1 -0
  102. package/dist/esm/frame/b24.mjs +170 -0
  103. package/dist/esm/frame/b24.mjs.map +1 -0
  104. package/dist/esm/frame/dialog.mjs +78 -0
  105. package/dist/esm/frame/dialog.mjs.map +1 -0
  106. package/dist/esm/frame/frame.mjs +101 -0
  107. package/dist/esm/frame/frame.mjs.map +1 -0
  108. package/dist/esm/frame/message/commands.mjs +37 -0
  109. package/dist/esm/frame/message/commands.mjs.map +1 -0
  110. package/dist/esm/frame/message/controller.mjs +178 -0
  111. package/dist/esm/frame/message/controller.mjs.map +1 -0
  112. package/dist/esm/frame/options.mjs +106 -0
  113. package/dist/esm/frame/options.mjs.map +1 -0
  114. package/dist/esm/frame/parent.mjs +253 -0
  115. package/dist/esm/frame/parent.mjs.map +1 -0
  116. package/dist/esm/frame/placement.mjs +131 -0
  117. package/dist/esm/frame/placement.mjs.map +1 -0
  118. package/dist/esm/frame/slider.mjs +156 -0
  119. package/dist/esm/frame/slider.mjs.map +1 -0
  120. package/dist/esm/helper/abstract-helper.mjs +52 -0
  121. package/dist/esm/helper/abstract-helper.mjs.map +1 -0
  122. package/dist/esm/helper/app-manager.mjs +37 -0
  123. package/dist/esm/helper/app-manager.mjs.map +1 -0
  124. package/dist/esm/helper/currency-manager.mjs +207 -0
  125. package/dist/esm/helper/currency-manager.mjs.map +1 -0
  126. package/dist/esm/helper/helper-manager.mjs +388 -0
  127. package/dist/esm/helper/helper-manager.mjs.map +1 -0
  128. package/dist/esm/helper/license-manager.mjs +50 -0
  129. package/dist/esm/helper/license-manager.mjs.map +1 -0
  130. package/dist/esm/helper/options-manager.mjs +196 -0
  131. package/dist/esm/helper/options-manager.mjs.map +1 -0
  132. package/dist/esm/helper/payment-manager.mjs +33 -0
  133. package/dist/esm/helper/payment-manager.mjs.map +1 -0
  134. package/dist/esm/helper/profile-manager.mjs +33 -0
  135. package/dist/esm/helper/profile-manager.mjs.map +1 -0
  136. package/dist/esm/helper/use-b24-helper.mjs +84 -0
  137. package/dist/esm/helper/use-b24-helper.mjs.map +1 -0
  138. package/dist/esm/hook/auth.mjs +77 -0
  139. package/dist/esm/hook/auth.mjs.map +1 -0
  140. package/dist/esm/hook/b24.mjs +115 -0
  141. package/dist/esm/hook/b24.mjs.map +1 -0
  142. package/dist/esm/index.d.mts +2768 -534
  143. package/dist/esm/index.d.ts +2768 -534
  144. package/dist/esm/index.mjs +70 -14118
  145. package/dist/esm/index.mjs.map +1 -1
  146. package/dist/esm/loader-b24frame.mjs +101 -0
  147. package/dist/esm/loader-b24frame.mjs.map +1 -0
  148. package/dist/esm/logger/abstract-logger.mjs +69 -0
  149. package/dist/esm/logger/abstract-logger.mjs.map +1 -0
  150. package/dist/esm/logger/browser.mjs +162 -0
  151. package/dist/esm/logger/browser.mjs.map +1 -0
  152. package/dist/esm/logger/formatter/abstract-formatter.mjs +34 -0
  153. package/dist/esm/logger/formatter/abstract-formatter.mjs.map +1 -0
  154. package/dist/esm/logger/formatter/json-formatter.mjs +34 -0
  155. package/dist/esm/logger/formatter/json-formatter.mjs.map +1 -0
  156. package/dist/esm/logger/formatter/line-formatter.mjs +41 -0
  157. package/dist/esm/logger/formatter/line-formatter.mjs.map +1 -0
  158. package/dist/esm/logger/formatter/telegram-formatter.mjs +103 -0
  159. package/dist/esm/logger/formatter/telegram-formatter.mjs.map +1 -0
  160. package/dist/esm/logger/handler/abstract-handler.mjs +39 -0
  161. package/dist/esm/logger/handler/abstract-handler.mjs.map +1 -0
  162. package/dist/esm/logger/handler/consola-adapter.mjs +62 -0
  163. package/dist/esm/logger/handler/consola-adapter.mjs.map +1 -0
  164. package/dist/esm/logger/handler/console-handler.mjs +98 -0
  165. package/dist/esm/logger/handler/console-handler.mjs.map +1 -0
  166. package/dist/esm/logger/handler/console-v2-handler.mjs +51 -0
  167. package/dist/esm/logger/handler/console-v2-handler.mjs.map +1 -0
  168. package/dist/esm/logger/handler/memory-handler.mjs +48 -0
  169. package/dist/esm/logger/handler/memory-handler.mjs.map +1 -0
  170. package/dist/esm/logger/handler/stream-handler.mjs +73 -0
  171. package/dist/esm/logger/handler/stream-handler.mjs.map +1 -0
  172. package/dist/esm/logger/handler/telegram-handler.mjs +157 -0
  173. package/dist/esm/logger/handler/telegram-handler.mjs.map +1 -0
  174. package/dist/esm/logger/handler/winston-adapter.mjs +57 -0
  175. package/dist/esm/logger/handler/winston-adapter.mjs.map +1 -0
  176. package/dist/esm/logger/logger-factory.mjs +67 -0
  177. package/dist/esm/logger/logger-factory.mjs.map +1 -0
  178. package/dist/esm/logger/logger.mjs +76 -0
  179. package/dist/esm/logger/logger.mjs.map +1 -0
  180. package/dist/esm/logger/null-logger.mjs +32 -0
  181. package/dist/esm/logger/null-logger.mjs.map +1 -0
  182. package/dist/esm/logger/processor/memory-usage-processor.mjs +20 -0
  183. package/dist/esm/logger/processor/memory-usage-processor.mjs.map +1 -0
  184. package/dist/esm/logger/processor/pid-processor.mjs +20 -0
  185. package/dist/esm/logger/processor/pid-processor.mjs.map +1 -0
  186. package/dist/esm/oauth/auth.mjs +211 -0
  187. package/dist/esm/oauth/auth.mjs.map +1 -0
  188. package/dist/esm/oauth/b24.mjs +117 -0
  189. package/dist/esm/oauth/b24.mjs.map +1 -0
  190. package/dist/esm/oauth/refresh-token-error.mjs +20 -0
  191. package/dist/esm/oauth/refresh-token-error.mjs.map +1 -0
  192. package/dist/esm/pullClient/abstract-connector.mjs +78 -0
  193. package/dist/esm/pullClient/abstract-connector.mjs.map +1 -0
  194. package/dist/esm/pullClient/channel-manager.mjs +89 -0
  195. package/dist/esm/pullClient/channel-manager.mjs.map +1 -0
  196. package/dist/esm/pullClient/client.mjs +2064 -0
  197. package/dist/esm/pullClient/client.mjs.map +1 -0
  198. package/dist/esm/pullClient/errors.mjs +31 -0
  199. package/dist/esm/pullClient/errors.mjs.map +1 -0
  200. package/dist/esm/pullClient/json-rpc.mjs +210 -0
  201. package/dist/esm/pullClient/json-rpc.mjs.map +1 -0
  202. package/dist/esm/pullClient/long-polling-connector.mjs +157 -0
  203. package/dist/esm/pullClient/long-polling-connector.mjs.map +1 -0
  204. package/dist/esm/pullClient/protobuf/index.mjs +17 -0
  205. package/dist/esm/pullClient/protobuf/index.mjs.map +1 -0
  206. package/dist/esm/pullClient/protobuf/model.mjs +1058 -0
  207. package/dist/esm/pullClient/protobuf/model.mjs.map +1 -0
  208. package/dist/esm/pullClient/protobuf/protobuf.mjs +4653 -0
  209. package/dist/esm/pullClient/protobuf/protobuf.mjs.map +1 -0
  210. package/dist/esm/pullClient/shared-config.mjs +133 -0
  211. package/dist/esm/pullClient/shared-config.mjs.map +1 -0
  212. package/dist/esm/pullClient/storage-manager.mjs +72 -0
  213. package/dist/esm/pullClient/storage-manager.mjs.map +1 -0
  214. package/dist/esm/pullClient/web-socket-connector.mjs +129 -0
  215. package/dist/esm/pullClient/web-socket-connector.mjs.map +1 -0
  216. package/dist/esm/tools/browser.mjs +154 -0
  217. package/dist/esm/tools/browser.mjs.map +1 -0
  218. package/dist/esm/tools/environment.mjs +29 -0
  219. package/dist/esm/tools/environment.mjs.map +1 -0
  220. package/dist/esm/tools/formatters/iban.mjs +304 -0
  221. package/dist/esm/tools/formatters/iban.mjs.map +1 -0
  222. package/dist/esm/tools/formatters/numbers.mjs +64 -0
  223. package/dist/esm/tools/formatters/numbers.mjs.map +1 -0
  224. package/dist/esm/tools/index.mjs +37 -0
  225. package/dist/esm/tools/index.mjs.map +1 -0
  226. package/dist/esm/tools/scroll-size.mjs +25 -0
  227. package/dist/esm/tools/scroll-size.mjs.map +1 -0
  228. package/dist/esm/tools/text.mjs +208 -0
  229. package/dist/esm/tools/text.mjs.map +1 -0
  230. package/dist/esm/tools/type.mjs +337 -0
  231. package/dist/esm/tools/type.mjs.map +1 -0
  232. package/dist/esm/tools/use-formatters.mjs +460 -0
  233. package/dist/esm/tools/use-formatters.mjs.map +1 -0
  234. package/dist/esm/tools/uuidv7.mjs +54 -0
  235. package/dist/esm/tools/uuidv7.mjs.map +1 -0
  236. package/dist/esm/types/b24-helper.mjs +56 -0
  237. package/dist/esm/types/b24-helper.mjs.map +1 -0
  238. package/dist/esm/types/b24.mjs +16 -0
  239. package/dist/esm/types/b24.mjs.map +1 -0
  240. package/dist/esm/types/bizproc/index.mjs +187 -0
  241. package/dist/esm/types/bizproc/index.mjs.map +1 -0
  242. package/dist/esm/types/catalog/index.mjs +35 -0
  243. package/dist/esm/types/catalog/index.mjs.map +1 -0
  244. package/dist/esm/types/common.mjs +31 -0
  245. package/dist/esm/types/common.mjs.map +1 -0
  246. package/dist/esm/types/crm/entity-type.mjs +57 -0
  247. package/dist/esm/types/crm/entity-type.mjs.map +1 -0
  248. package/dist/esm/types/crm/productrow.mjs +17 -0
  249. package/dist/esm/types/crm/productrow.mjs.map +1 -0
  250. package/dist/esm/types/logger.mjs +22 -0
  251. package/dist/esm/types/logger.mjs.map +1 -0
  252. package/dist/esm/types/pull.mjs +83 -0
  253. package/dist/esm/types/pull.mjs.map +1 -0
  254. package/dist/umd/index.js +31312 -26912
  255. package/dist/umd/index.js.map +1 -1
  256. package/dist/umd/index.min.js +63 -40
  257. package/dist/umd/index.min.js.map +1 -1
  258. package/package.json +34 -29
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 1.0.2
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ import { AbstractTool } from './abstract-tool.mjs';
10
+
11
+ var __defProp = Object.defineProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ class Ping extends AbstractTool {
14
+ static {
15
+ __name(this, "Ping");
16
+ }
17
+ /**
18
+ * Measures the response speed of the Bitrix24 REST API.
19
+ * Performs a test request and returns the response time in milliseconds.
20
+ * Useful for performance monitoring and diagnosing latency issues.
21
+ *
22
+ * @note The method uses a minimal API request (`server.time`) to check availability.
23
+ * Does not overload the server with large amounts of data.
24
+ *
25
+ * @warning Response time may vary depending on server load, network conditions
26
+ * and HTTP client settings (timeouts, retries).
27
+ *
28
+ * @tip For consistent results, it is recommended to perform multiple measurements
29
+ * and use the median value.
30
+ *
31
+ * @param options Some options for executing
32
+ * - `requestId?: string` - Unique request identifier for tracking. Used for query deduplication and debugging (default: undefined)
33
+ *
34
+ * @returns {Promise<number>} Promise that resolves to a response time in milliseconds:
35
+ * - Positive number: time from sending the request to receiving the response
36
+ * - In case of an error or timeout: `-1`
37
+ *
38
+ * @see {@link HealthCheck} To check API availability
39
+ */
40
+ async make(options) {
41
+ const startTime = Date.now();
42
+ try {
43
+ await this._b24.actions.v2.call.make({
44
+ method: "server.time",
45
+ params: {},
46
+ requestId: options?.requestId
47
+ });
48
+ return Date.now() - startTime;
49
+ } catch {
50
+ return -1;
51
+ }
52
+ }
53
+ }
54
+
55
+ export { Ping };
56
+ //# sourceMappingURL=ping.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ping.mjs","sources":["../../../../src/core/tools/ping.ts"],"sourcesContent":["import type { ToolOptions } from './abstract-tool'\nimport { AbstractTool } from './abstract-tool'\n\n/**\n * Ping `restApi:v2`\n *\n * @todo use apiVer3\n */\nexport class Ping extends AbstractTool {\n /**\n * Measures the response speed of the Bitrix24 REST API.\n * Performs a test request and returns the response time in milliseconds.\n * Useful for performance monitoring and diagnosing latency issues.\n *\n * @note The method uses a minimal API request (`server.time`) to check availability.\n * Does not overload the server with large amounts of data.\n *\n * @warning Response time may vary depending on server load, network conditions\n * and HTTP client settings (timeouts, retries).\n *\n * @tip For consistent results, it is recommended to perform multiple measurements\n * and use the median value.\n *\n * @param options Some options for executing\n * - `requestId?: string` - Unique request identifier for tracking. Used for query deduplication and debugging (default: undefined)\n *\n * @returns {Promise<number>} Promise that resolves to a response time in milliseconds:\n * - Positive number: time from sending the request to receiving the response\n * - In case of an error or timeout: `-1`\n *\n * @see {@link HealthCheck} To check API availability\n */\n public override async make(options?: ToolOptions & { requestId?: string }): Promise<number> {\n const startTime = Date.now()\n try {\n await this._b24.actions.v2.call.make({\n method: 'server.time',\n params: {},\n requestId: options?.requestId\n })\n return Date.now() - startTime\n } catch {\n return -1\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAQO,MAAM,aAAa,YAAA,CAAa;AAAA,EARvC;AAQuC,IAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwBrC,MAAsB,KAAK,OAAA,EAAiE;AAC1F,IAAA,MAAM,SAAA,GAAY,KAAK,GAAA,EAAI;AAC3B,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,EAAA,CAAG,KAAK,IAAA,CAAK;AAAA,QACnC,MAAA,EAAQ,aAAA;AAAA,QACR,QAAQ,EAAC;AAAA,QACT,WAAW,OAAA,EAAS;AAAA,OACrB,CAAA;AACD,MAAA,OAAO,IAAA,CAAK,KAAI,GAAI,SAAA;AAAA,IACtB,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,EAAA;AAAA,IACT;AAAA,EACF;AACF;;;;"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 1.0.2
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ import { ApiVersion } from '../types/b24.mjs';
10
+ import { ParseRow } from './interaction/batch/parse-row.mjs';
11
+ import { SdkError } from './sdk-error.mjs';
12
+
13
+ var __defProp = Object.defineProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
15
+ class VersionManager {
16
+ static {
17
+ __name(this, "VersionManager");
18
+ }
19
+ #supportMethods;
20
+ constructor() {
21
+ this.#supportMethods = [
22
+ "/batch",
23
+ // done
24
+ "/scopes",
25
+ // done
26
+ "/rest.scope.list",
27
+ // done
28
+ "/rest.documentation.openapi",
29
+ "/documentation",
30
+ /** @see /settings/configs/event_log.php */
31
+ "/main.eventlog.list",
32
+ // done
33
+ "/main.eventlog.get",
34
+ // done
35
+ "/main.eventlog.tail",
36
+ // done
37
+ "/tasks.task.chat.message.send",
38
+ "/tasks.task.access.get",
39
+ "/tasks.task.file.attach",
40
+ "/tasks.task.update",
41
+ // done
42
+ "/tasks.task.delete",
43
+ "/tasks.task.add",
44
+ "/tasks.task.get"
45
+ // done
46
+ // @todo When API.v3 arrives - change in AuthOAuthManager.initIsAdmin()
47
+ // '/profile' // waite
48
+ // '/main.message.get' // waite
49
+ // '/main.chat.update' // waite
50
+ // '/main.chat.list' // waite
51
+ // '/main.user.list' // waite
52
+ ];
53
+ }
54
+ static create() {
55
+ return new VersionManager();
56
+ }
57
+ /**
58
+ * List of supported API versions
59
+ * The highest version must be first
60
+ */
61
+ getAllApiVersions() {
62
+ return [ApiVersion.v3, ApiVersion.v2];
63
+ }
64
+ isSupport(version, method) {
65
+ switch (version) {
66
+ case ApiVersion.v3:
67
+ return this.#v3Support(method);
68
+ case ApiVersion.v2:
69
+ return true;
70
+ }
71
+ return false;
72
+ }
73
+ #v3Support(method) {
74
+ return this.#supportMethods.includes(`/${method}`);
75
+ }
76
+ /**
77
+ * Automatically obtain the API version
78
+ */
79
+ automaticallyObtainApiVersion(method) {
80
+ const version = this.getAllApiVersions().find((version2) => versionManager.isSupport(version2, method));
81
+ if (!version) {
82
+ throw new SdkError({
83
+ code: "JSSDK_VERSION_MANAGER_NOT_DETECT_FOR_METHOD",
84
+ description: `No API version found that supports method ${method}.`,
85
+ status: 500
86
+ });
87
+ }
88
+ return version;
89
+ }
90
+ /**
91
+ * Automatically obtain the API version for Batch
92
+ *
93
+ * @todo test methods
94
+ * `[['crm.item.get', { entityTypeId: 3, id: 1 }]]`
95
+ * `[{ method: 'crm.item.get', params: { entityTypeId: 3, id: 1 } }]`
96
+ * `{ cmd1: { method: 'crm.item.get', params: { entityTypeId: 3, id: 1 } }, cmd2: ['crm.item.get', { entityTypeId: 2, id: 2 }] }`
97
+ */
98
+ automaticallyObtainApiVersionForBatch(calls) {
99
+ const commands = ParseRow.getMethodsFromCommands(calls);
100
+ let isAllSupportV3 = true;
101
+ for (const [_, method] of commands.entries()) {
102
+ if (!this.isSupport(ApiVersion.v3, method)) {
103
+ isAllSupportV3 = false;
104
+ break;
105
+ }
106
+ }
107
+ if (isAllSupportV3) {
108
+ return ApiVersion.v3;
109
+ }
110
+ return ApiVersion.v2;
111
+ }
112
+ }
113
+ const versionManager = VersionManager.create();
114
+
115
+ export { versionManager };
116
+ //# sourceMappingURL=version-manager.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-manager.mjs","sources":["../../../src/core/version-manager.ts"],"sourcesContent":["import { ApiVersion } from '../types/b24'\nimport type {\n BatchCommandsArrayUniversal,\n BatchCommandsObjectUniversal,\n BatchNamedCommandsUniversal\n} from '../types/http'\nimport { ParseRow } from './interaction/batch/parse-row'\nimport { SdkError } from './sdk-error'\n\n/**\n * @todo add docs ??\n */\nclass VersionManager {\n #supportMethods: string[]\n\n constructor() {\n /**\n * get from https://{portal}/rest/api/{user_id}/{webhook}/documentation\n * @see https://apidocs.bitrix24.com/api-reference/rest-v3/index.html#openapi\n */\n this.#supportMethods = [\n '/batch', // done\n '/scopes', // done\n '/rest.scope.list', // done\n '/rest.documentation.openapi',\n '/documentation',\n /** @see /settings/configs/event_log.php */\n '/main.eventlog.list', // done\n '/main.eventlog.get', // done\n '/main.eventlog.tail', // done\n '/tasks.task.chat.message.send',\n '/tasks.task.access.get',\n '/tasks.task.file.attach',\n '/tasks.task.update', // done\n '/tasks.task.delete',\n '/tasks.task.add',\n '/tasks.task.get' // done\n // @todo When API.v3 arrives - change in AuthOAuthManager.initIsAdmin()\n // '/profile' // waite\n // '/main.message.get' // waite\n // '/main.chat.update' // waite\n // '/main.chat.list' // waite\n // '/main.user.list' // waite\n ]\n }\n\n static create(): VersionManager {\n return new VersionManager()\n }\n\n /**\n * List of supported API versions\n * The highest version must be first\n */\n public getAllApiVersions(): ApiVersion[] {\n return [ApiVersion.v3, ApiVersion.v2]\n }\n\n public isSupport(version: ApiVersion, method: string): boolean {\n switch (version) {\n case ApiVersion.v3:\n return this.#v3Support(method)\n case ApiVersion.v2:\n return true\n }\n\n return false\n }\n\n #v3Support(method: string): boolean {\n return this.#supportMethods.includes(`/${method}`)\n }\n\n /**\n * Automatically obtain the API version\n */\n public automaticallyObtainApiVersion(method: string): ApiVersion {\n const version = this.getAllApiVersions().find(version => versionManager.isSupport(version, method))\n if (!version) {\n throw new SdkError({\n code: 'JSSDK_VERSION_MANAGER_NOT_DETECT_FOR_METHOD',\n description: `No API version found that supports method ${method}.`,\n status: 500\n })\n }\n\n return version\n }\n\n /**\n * Automatically obtain the API version for Batch\n *\n * @todo test methods\n * `[['crm.item.get', { entityTypeId: 3, id: 1 }]]`\n * `[{ method: 'crm.item.get', params: { entityTypeId: 3, id: 1 } }]`\n * `{ cmd1: { method: 'crm.item.get', params: { entityTypeId: 3, id: 1 } }, cmd2: ['crm.item.get', { entityTypeId: 2, id: 2 }] }`\n */\n public automaticallyObtainApiVersionForBatch(\n calls: BatchCommandsArrayUniversal | BatchCommandsObjectUniversal | BatchNamedCommandsUniversal\n ): ApiVersion {\n const commands = ParseRow.getMethodsFromCommands(calls)\n\n let isAllSupportV3 = true\n for (const [_, method] of commands.entries()) {\n if (!this.isSupport(ApiVersion.v3, method)) {\n isAllSupportV3 = false\n break\n }\n }\n\n if (isAllSupportV3) {\n return ApiVersion.v3\n }\n return ApiVersion.v2\n }\n}\n\nexport const versionManager = VersionManager.create()\n"],"names":["version"],"mappings":";;;;;;;;;;;;;;AAYA,MAAM,cAAA,CAAe;AAAA,EAZrB;AAYqB,IAAA,MAAA,CAAA,IAAA,EAAA,gBAAA,CAAA;AAAA;AAAA,EACnB,eAAA;AAAA,EAEA,WAAA,GAAc;AAKZ,IAAA,IAAA,CAAK,eAAA,GAAkB;AAAA,MACrB,QAAA;AAAA;AAAA,MACA,SAAA;AAAA;AAAA,MACA,kBAAA;AAAA;AAAA,MACA,6BAAA;AAAA,MACA,gBAAA;AAAA;AAAA,MAEA,qBAAA;AAAA;AAAA,MACA,oBAAA;AAAA;AAAA,MACA,qBAAA;AAAA;AAAA,MACA,+BAAA;AAAA,MACA,wBAAA;AAAA,MACA,yBAAA;AAAA,MACA,oBAAA;AAAA;AAAA,MACA,oBAAA;AAAA,MACA,iBAAA;AAAA,MACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOF;AAAA,EACF;AAAA,EAEA,OAAO,MAAA,GAAyB;AAC9B,IAAA,OAAO,IAAI,cAAA,EAAe;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,iBAAA,GAAkC;AACvC,IAAA,OAAO,CAAC,UAAA,CAAW,EAAA,EAAI,UAAA,CAAW,EAAE,CAAA;AAAA,EACtC;AAAA,EAEO,SAAA,CAAU,SAAqB,MAAA,EAAyB;AAC7D,IAAA,QAAQ,OAAA;AAAS,MACf,KAAK,UAAA,CAAW,EAAA;AACd,QAAA,OAAO,IAAA,CAAK,WAAW,MAAM,CAAA;AAAA,MAC/B,KAAK,UAAA,CAAW,EAAA;AACd,QAAA,OAAO,IAAA;AAAA;AAGX,IAAA,OAAO,KAAA;AAAA,EACT;AAAA,EAEA,WAAW,MAAA,EAAyB;AAClC,IAAA,OAAO,IAAA,CAAK,eAAA,CAAgB,QAAA,CAAS,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,CAAA;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA,EAKO,8BAA8B,MAAA,EAA4B;AAC/D,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,iBAAA,EAAkB,CAAE,IAAA,CAAK,CAAAA,QAAAA,KAAW,cAAA,CAAe,SAAA,CAAUA,QAAAA,EAAS,MAAM,CAAC,CAAA;AAClG,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAI,QAAA,CAAS;AAAA,QACjB,IAAA,EAAM,6CAAA;AAAA,QACN,WAAA,EAAa,6CAA6C,MAAM,CAAA,CAAA,CAAA;AAAA,QAChE,MAAA,EAAQ;AAAA,OACT,CAAA;AAAA,IACH;AAEA,IAAA,OAAO,OAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUO,sCACL,KAAA,EACY;AACZ,IAAA,MAAM,QAAA,GAAW,QAAA,CAAS,sBAAA,CAAuB,KAAK,CAAA;AAEtD,IAAA,IAAI,cAAA,GAAiB,IAAA;AACrB,IAAA,KAAA,MAAW,CAAC,CAAA,EAAG,MAAM,CAAA,IAAK,QAAA,CAAS,SAAQ,EAAG;AAC5C,MAAA,IAAI,CAAC,IAAA,CAAK,SAAA,CAAU,UAAA,CAAW,EAAA,EAAI,MAAM,CAAA,EAAG;AAC1C,QAAA,cAAA,GAAiB,KAAA;AACjB,QAAA;AAAA,MACF;AAAA,IACF;AAEA,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,OAAO,UAAA,CAAW,EAAA;AAAA,IACpB;AACA,IAAA,OAAO,UAAA,CAAW,EAAA;AAAA,EACpB;AACF;AAEO,MAAM,cAAA,GAAiB,eAAe,MAAA;;;;"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 1.0.2
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ import { MessageCommands } from './message/commands.mjs';
10
+
11
+ var __defProp = Object.defineProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ class AuthManager {
14
+ static {
15
+ __name(this, "AuthManager");
16
+ }
17
+ #accessToken = null;
18
+ #refreshId = null;
19
+ #authExpires = 0;
20
+ #authExpiresIn = 0;
21
+ #memberId = null;
22
+ #isAdmin = false;
23
+ #appFrame;
24
+ #messageManager;
25
+ constructor(appFrame, messageManager) {
26
+ this.#appFrame = appFrame;
27
+ this.#messageManager = messageManager;
28
+ }
29
+ /**
30
+ * Initializes the data received from the parent window message.
31
+ * @param data
32
+ */
33
+ initData(data) {
34
+ if (data.AUTH_ID) {
35
+ this.#accessToken = data.AUTH_ID;
36
+ this.#refreshId = data.REFRESH_ID;
37
+ this.#authExpiresIn = Number.parseInt(data.AUTH_EXPIRES);
38
+ this.#authExpires = Date.now() + this.#authExpiresIn * 1e3;
39
+ this.#isAdmin = data.IS_ADMIN;
40
+ this.#memberId = data.MEMBER_ID || "";
41
+ }
42
+ return this;
43
+ }
44
+ /**
45
+ * Returns authorization data
46
+ *
47
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-functions/bx24-get-auth.html
48
+ */
49
+ getAuthData() {
50
+ return this.#authExpires > Date.now() ? {
51
+ access_token: this.#accessToken,
52
+ refresh_token: this.#refreshId,
53
+ expires: this.#authExpires / 1e3,
54
+ expires_in: this.#authExpiresIn,
55
+ domain: this.#appFrame.getTargetOrigin(),
56
+ member_id: this.#memberId
57
+ } : false;
58
+ }
59
+ /**
60
+ * Updates authorization data through the parent window
61
+ *
62
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-functions/bx24-refresh-auth.html
63
+ */
64
+ async refreshAuth() {
65
+ return this.#messageManager.send(MessageCommands.refreshAuth, {}).then((data) => {
66
+ this.#accessToken = data.AUTH_ID;
67
+ this.#refreshId = data.REFRESH_ID;
68
+ this.#authExpires = Date.now() + Number.parseInt(data.AUTH_EXPIRES) * 1e3;
69
+ return Promise.resolve(this.getAuthData());
70
+ });
71
+ }
72
+ getUniq(prefix) {
73
+ return [prefix, this.#memberId || ""].join("_");
74
+ }
75
+ /**
76
+ * Determines whether the current user has administrator rights
77
+ *
78
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-is-admin.html
79
+ */
80
+ get isAdmin() {
81
+ return this.#isAdmin;
82
+ }
83
+ /**
84
+ * @inheritDoc
85
+ */
86
+ getTargetOrigin() {
87
+ return this.#appFrame.getTargetOrigin();
88
+ }
89
+ /**
90
+ * @inheritDoc
91
+ */
92
+ getTargetOriginWithPath() {
93
+ return this.#appFrame.getTargetOriginWithPath();
94
+ }
95
+ }
96
+
97
+ export { AuthManager };
98
+ //# sourceMappingURL=auth.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.mjs","sources":["../../../src/frame/auth.ts"],"sourcesContent":["import type { AppFrame } from './frame'\nimport type { MessageManager } from './message'\nimport type { AuthActions, AuthData, RefreshAuthData, MessageInitData } from '../types/auth'\nimport type { ApiVersion } from '../types/b24'\nimport { MessageCommands } from './message'\n\n/**\n * Authorization Manager\n */\nexport class AuthManager implements AuthActions {\n #accessToken: null | string = null\n #refreshId: null | string = null\n #authExpires: number = 0\n #authExpiresIn: number = 0\n #memberId: null | string = null\n\n #isAdmin: boolean = false\n\n #appFrame: AppFrame\n #messageManager: MessageManager\n\n constructor(\n appFrame: AppFrame,\n messageManager: MessageManager\n ) {\n this.#appFrame = appFrame\n this.#messageManager = messageManager\n }\n\n /**\n * Initializes the data received from the parent window message.\n * @param data\n */\n public initData(data: MessageInitData): AuthManager {\n if (data.AUTH_ID) {\n this.#accessToken = data.AUTH_ID\n this.#refreshId = data.REFRESH_ID\n this.#authExpiresIn = Number.parseInt(data.AUTH_EXPIRES)\n this.#authExpires = Date.now() + this.#authExpiresIn * 1_000\n\n this.#isAdmin = data.IS_ADMIN\n this.#memberId = data.MEMBER_ID || ''\n }\n\n return this\n }\n\n /**\n * Returns authorization data\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-functions/bx24-get-auth.html\n */\n public getAuthData(): false | AuthData {\n return this.#authExpires > Date.now()\n ? ({\n access_token: this.#accessToken,\n refresh_token: this.#refreshId,\n expires: this.#authExpires / 1_000,\n expires_in: this.#authExpiresIn,\n domain: this.#appFrame.getTargetOrigin(),\n member_id: this.#memberId\n } as AuthData)\n : false\n }\n\n /**\n * Updates authorization data through the parent window\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-functions/bx24-refresh-auth.html\n */\n public async refreshAuth(): Promise<AuthData> {\n return this.#messageManager\n .send(MessageCommands.refreshAuth, {})\n .then((data: RefreshAuthData) => {\n this.#accessToken = data.AUTH_ID\n this.#refreshId = data.REFRESH_ID\n this.#authExpires = Date.now() + Number.parseInt(data.AUTH_EXPIRES) * 1_000\n\n return Promise.resolve(this.getAuthData() as AuthData)\n })\n }\n\n public getUniq(prefix: string): string {\n return [prefix, this.#memberId || ''].join('_')\n }\n\n /**\n * Determines whether the current user has administrator rights\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-is-admin.html\n */\n get isAdmin(): boolean {\n return this.#isAdmin\n }\n\n /**\n * @inheritDoc\n */\n public getTargetOrigin(): string {\n return this.#appFrame.getTargetOrigin()\n }\n\n /**\n * @inheritDoc\n */\n public getTargetOriginWithPath(): Map<ApiVersion, string> {\n return this.#appFrame.getTargetOriginWithPath()\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 1.0.2
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ import { AbstractB24 } from '../core/abstract-b24.mjs';
10
+ import { HttpV2 } from '../core/http/v2.mjs';
11
+ import { HttpV3 } from '../core/http/v3.mjs';
12
+ import { AppFrame } from './frame.mjs';
13
+ import { AuthManager } from './auth.mjs';
14
+ import { ParentManager } from './parent.mjs';
15
+ import { OptionsManager } from './options.mjs';
16
+ import { DialogManager } from './dialog.mjs';
17
+ import { SliderManager } from './slider.mjs';
18
+ import { PlacementManager } from './placement.mjs';
19
+ import { MessageManager } from './message/controller.mjs';
20
+ import { MessageCommands } from './message/commands.mjs';
21
+
22
+ var __defProp = Object.defineProperty;
23
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
24
+ class B24Frame extends AbstractB24 {
25
+ static {
26
+ __name(this, "B24Frame");
27
+ }
28
+ #isInstallMode = false;
29
+ #isFirstRun = false;
30
+ #appFrame;
31
+ #messageManager;
32
+ #authManager;
33
+ #parentManager;
34
+ #optionsManager;
35
+ #dialogManager;
36
+ #sliderManager;
37
+ #placementManager;
38
+ #restrictionParams;
39
+ // region Init ////
40
+ constructor(queryParams, options) {
41
+ super();
42
+ this.#restrictionParams = options?.restrictionParams;
43
+ this.#appFrame = new AppFrame(queryParams);
44
+ this.#messageManager = new MessageManager(this.#appFrame);
45
+ this.#messageManager.subscribe();
46
+ this.#authManager = new AuthManager(
47
+ this.#appFrame,
48
+ this.#messageManager
49
+ );
50
+ this.#parentManager = new ParentManager(this.#messageManager);
51
+ this.#optionsManager = new OptionsManager(this.#messageManager);
52
+ this.#dialogManager = new DialogManager(this.#messageManager);
53
+ this.#sliderManager = new SliderManager(
54
+ this.#appFrame,
55
+ this.#messageManager
56
+ );
57
+ this.#placementManager = new PlacementManager(this.#messageManager);
58
+ this._isInit = false;
59
+ }
60
+ setLogger(logger) {
61
+ super.setLogger(logger);
62
+ this.#messageManager.setLogger(this.getLogger());
63
+ }
64
+ get isFirstRun() {
65
+ this._ensureInitialized();
66
+ return this.#isFirstRun;
67
+ }
68
+ get isInstallMode() {
69
+ this._ensureInitialized();
70
+ return this.#isInstallMode;
71
+ }
72
+ get parent() {
73
+ this._ensureInitialized();
74
+ return this.#parentManager;
75
+ }
76
+ get auth() {
77
+ this._ensureInitialized();
78
+ return this.#authManager;
79
+ }
80
+ get slider() {
81
+ this._ensureInitialized();
82
+ return this.#sliderManager;
83
+ }
84
+ get placement() {
85
+ this._ensureInitialized();
86
+ return this.#placementManager;
87
+ }
88
+ get options() {
89
+ this._ensureInitialized();
90
+ return this.#optionsManager;
91
+ }
92
+ get dialog() {
93
+ this._ensureInitialized();
94
+ return this.#dialogManager;
95
+ }
96
+ async init() {
97
+ const data = await this.#messageManager.send(MessageCommands.getInitData, {});
98
+ this.getLogger().debug("init data", { data });
99
+ this.#appFrame.initData(data);
100
+ this.#authManager.initData(data);
101
+ this.#placementManager.initData(data);
102
+ this.#optionsManager.initData(data);
103
+ this.#isInstallMode = data.INSTALL;
104
+ this.#isFirstRun = data.FIRST_RUN;
105
+ this._httpV2 = new HttpV2(this.#authManager, this._getHttpOptions(), this.#restrictionParams);
106
+ this._httpV3 = new HttpV3(this.#authManager, this._getHttpOptions(), this.#restrictionParams);
107
+ this._isInit = true;
108
+ if (this.#isFirstRun) {
109
+ return this.#messageManager.send(MessageCommands.setInstall, { install: true });
110
+ }
111
+ return Promise.resolve();
112
+ }
113
+ /**
114
+ * Destructor.
115
+ * Removes an event subscription
116
+ */
117
+ destroy() {
118
+ this.#messageManager.unsubscribe();
119
+ super.destroy();
120
+ }
121
+ // endregion ////
122
+ // region Core ////
123
+ /**
124
+ * Signals that the installer or application setup has finished running.
125
+ *
126
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-functions/bx24-install-finish.html
127
+ */
128
+ async installFinish() {
129
+ if (!this.isInstallMode) {
130
+ return Promise.reject(new Error("Application was previously installed. You cannot call installFinish"));
131
+ }
132
+ return this.#messageManager.send(MessageCommands.setInstallFinish, {});
133
+ }
134
+ // endregion ////
135
+ // region Get ////
136
+ /**
137
+ * @inheritDoc
138
+ */
139
+ getTargetOrigin() {
140
+ this._ensureInitialized();
141
+ return this.#authManager.getTargetOrigin();
142
+ }
143
+ /**
144
+ * @inheritDoc
145
+ */
146
+ getTargetOriginWithPath() {
147
+ this._ensureInitialized();
148
+ return this.#authManager.getTargetOriginWithPath();
149
+ }
150
+ /**
151
+ * Returns the sid of the application relative to the parent window like this `9c33468728e1d2c8c97562475edfd96`
152
+ */
153
+ getAppSid() {
154
+ this._ensureInitialized();
155
+ return this.#appFrame.getAppSid();
156
+ }
157
+ /**
158
+ * Returns the localization of the B24 interface
159
+ *
160
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-get-lang.html
161
+ */
162
+ getLang() {
163
+ this._ensureInitialized();
164
+ return this.#appFrame.getLang();
165
+ }
166
+ // endregion ////
167
+ }
168
+
169
+ export { B24Frame };
170
+ //# sourceMappingURL=b24.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"b24.mjs","sources":["../../../src/frame/b24.ts"],"sourcesContent":["import type { LoggerInterface } from '../logger'\nimport type { B24LangList } from '../core/language/list'\nimport type { AuthActions, MessageInitData, B24FrameQueryParams } 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 { AppFrame } from './frame'\nimport { MessageManager, MessageCommands } from './message'\nimport { AuthManager } from './auth'\nimport { ParentManager } from './parent'\nimport { OptionsManager } from './options'\nimport { DialogManager } from './dialog'\nimport { SliderManager } from './slider'\nimport { PlacementManager } from './placement'\n\n/**\n * B24 Manager. Replacement api.bitrix24.com\n *\n * @link https://api.bitrix24.com/api/v1/\n * @link https://bitrix24.github.io/b24jssdk/docs/frame/\n * @see /bitrix/js/rest/applayout.js\n *\n * @todo add docs\n */\nexport class B24Frame extends AbstractB24 implements TypeB24 {\n #isInstallMode: boolean = false\n #isFirstRun: boolean = false\n\n readonly #appFrame: AppFrame\n readonly #messageManager: MessageManager\n readonly #authManager: AuthManager\n readonly #parentManager: ParentManager\n readonly #optionsManager: OptionsManager\n readonly #dialogManager: DialogManager\n readonly #sliderManager: SliderManager\n readonly #placementManager: PlacementManager\n\n readonly #restrictionParams: undefined | Partial<RestrictionParams>\n\n // region Init ////\n constructor(\n queryParams: B24FrameQueryParams,\n options?: {\n restrictionParams?: Partial<RestrictionParams>\n }\n ) {\n super()\n\n this.#restrictionParams = options?.restrictionParams\n\n this.#appFrame = new AppFrame(queryParams)\n\n this.#messageManager = new MessageManager(this.#appFrame)\n this.#messageManager.subscribe()\n\n this.#authManager = new AuthManager(\n this.#appFrame,\n this.#messageManager\n )\n this.#parentManager = new ParentManager(this.#messageManager)\n this.#optionsManager = new OptionsManager(this.#messageManager)\n this.#dialogManager = new DialogManager(this.#messageManager)\n this.#sliderManager = new SliderManager(\n this.#appFrame,\n this.#messageManager\n )\n this.#placementManager = new PlacementManager(this.#messageManager)\n\n this._isInit = false\n }\n\n public override setLogger(logger: LoggerInterface): void {\n super.setLogger(logger)\n this.#messageManager.setLogger(this.getLogger())\n }\n\n get isFirstRun(): boolean {\n this._ensureInitialized()\n return this.#isFirstRun\n }\n\n get isInstallMode(): boolean {\n this._ensureInitialized()\n return this.#isInstallMode\n }\n\n get parent(): ParentManager {\n this._ensureInitialized()\n return this.#parentManager\n }\n\n override get auth(): AuthActions {\n this._ensureInitialized()\n return this.#authManager\n }\n\n get slider(): SliderManager {\n this._ensureInitialized()\n return this.#sliderManager\n }\n\n get placement(): PlacementManager {\n this._ensureInitialized()\n return this.#placementManager\n }\n\n get options(): OptionsManager {\n this._ensureInitialized()\n return this.#optionsManager\n }\n\n get dialog(): DialogManager {\n this._ensureInitialized()\n return this.#dialogManager\n }\n\n public override async init(): Promise<void> {\n const data: MessageInitData = await this.#messageManager.send(MessageCommands.getInitData, {})\n\n this.getLogger().debug('init data', { data })\n\n this.#appFrame.initData(data)\n this.#authManager.initData(data)\n this.#placementManager.initData(data)\n this.#optionsManager.initData(data)\n\n this.#isInstallMode = data.INSTALL\n this.#isFirstRun = data.FIRST_RUN\n\n this._httpV2 = new HttpV2(this.#authManager, this._getHttpOptions(), this.#restrictionParams)\n this._httpV3 = new HttpV3(this.#authManager, this._getHttpOptions(), this.#restrictionParams)\n\n this._isInit = true\n\n /**\n * @memo Writes the fact of the 1st launch to `app_options`\n */\n if (this.#isFirstRun) {\n return this.#messageManager.send(MessageCommands.setInstall, { install: true })\n }\n\n return Promise.resolve()\n }\n\n /**\n * Destructor.\n * Removes an event subscription\n */\n public override destroy() {\n this.#messageManager.unsubscribe()\n super.destroy()\n }\n // endregion ////\n\n // region Core ////\n /**\n * Signals that the installer or application setup has finished running.\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-functions/bx24-install-finish.html\n */\n public async installFinish(): Promise<any> {\n if (!this.isInstallMode) {\n return Promise.reject(new Error('Application was previously installed. You cannot call installFinish'))\n }\n\n return this.#messageManager.send(MessageCommands.setInstallFinish, {})\n }\n // endregion ////\n\n // region Get ////\n /**\n * @inheritDoc\n */\n public override getTargetOrigin(): string {\n this._ensureInitialized()\n return this.#authManager.getTargetOrigin()\n }\n\n /**\n * @inheritDoc\n */\n public override getTargetOriginWithPath(): Map<ApiVersion, string> {\n this._ensureInitialized()\n return this.#authManager.getTargetOriginWithPath()\n }\n\n /**\n * Returns the sid of the application relative to the parent window like this `9c33468728e1d2c8c97562475edfd96`\n */\n public getAppSid(): string {\n this._ensureInitialized()\n return this.#appFrame.getAppSid()\n }\n\n /**\n * Returns the localization of the B24 interface\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-get-lang.html\n */\n public getLang(): B24LangList {\n this._ensureInitialized()\n return this.#appFrame.getLang()\n }\n // endregion ////\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 1.0.2
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ import { MessageCommands } from './message/commands.mjs';
10
+
11
+ var __defProp = Object.defineProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ class DialogManager {
14
+ static {
15
+ __name(this, "DialogManager");
16
+ }
17
+ #messageManager;
18
+ constructor(messageManager) {
19
+ this.#messageManager = messageManager;
20
+ }
21
+ /**
22
+ * Method displays the standard single user selection dialog
23
+ * It only shows company employees
24
+ *
25
+ * @return {Promise<null|SelectedUser>}
26
+ *
27
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-user.html
28
+ */
29
+ async selectUser() {
30
+ return this.#messageManager.send(MessageCommands.selectUser, {
31
+ mult: false
32
+ });
33
+ }
34
+ /**
35
+ * Method displays the standard multiple user selection dialog
36
+ * It only shows company employees
37
+ *
38
+ * @return {Promise<SelectedUser[]>}
39
+ *
40
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-users.html
41
+ */
42
+ async selectUsers() {
43
+ return this.#messageManager.send(MessageCommands.selectUser, {
44
+ mult: true
45
+ });
46
+ }
47
+ /**
48
+ * Method displays a standard access permission selection dialog
49
+ *
50
+ * @param {string[]} blockedAccessPermissions
51
+ * @return {Promise<SelectedAccess[]>}
52
+ *
53
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-access.html
54
+ */
55
+ async selectAccess(blockedAccessPermissions = []) {
56
+ return this.#messageManager.send(MessageCommands.selectAccess, {
57
+ value: blockedAccessPermissions
58
+ });
59
+ }
60
+ /**
61
+ * Method invokes the system dialog for selecting a CRM entity
62
+ *
63
+ * @param {SelectCRMParams} params
64
+ * @return {Promise<SelectedCRM>}
65
+ *
66
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-crm.html
67
+ */
68
+ async selectCRM(params) {
69
+ return this.#messageManager.send(MessageCommands.selectCRM, {
70
+ entityType: params?.entityType,
71
+ multiple: params?.multiple,
72
+ value: params?.value
73
+ });
74
+ }
75
+ }
76
+
77
+ export { DialogManager };
78
+ //# sourceMappingURL=dialog.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.mjs","sources":["../../../src/frame/dialog.ts"],"sourcesContent":["import type { MessageManager } from './message'\nimport { MessageCommands } from './message'\nimport type { NumberString } from '../types/common'\n\nexport type SelectedUser = {\n /**\n * user identifier\n */\n id: NumberString\n\n /**\n * formatted username\n */\n name: string\n\n photo: string\n\n position: string\n\n url: string\n\n /**\n * The flag indicates that the selected user is a subordinate of the current user\n */\n sub: boolean\n\n /**\n * The flag indicates that the selected user is the manager of the current user\n */\n sup: boolean\n}\n\nexport type SelectedAccess = {\n /**\n * access permission identifier. Examples of identifiers:\n * - U1 — user with identifier 1\n * - IU1 — employees with identifier 1\n * - DR2 — all department and subdepartment employees with identifier 2\n * - D6 — all department employees with identifier 6\n * - G2 — group with identifier 2 (all visitors)\n * - SG4 — social network group with identifier 4\n * - AU — all authorized users\n * - CR — current user\n */\n id:\n | `AU`\n | `CR`\n | `U${number}`\n | `IU${number}`\n | `DR${number}`\n | `D${number}`\n | `G${number}`\n | `SG${number}`\n\n /**\n * name of the access permission\n */\n name: string\n}\n\nexport type SelectCRMParamsEntityType\n = | 'lead'\n | 'contact'\n | 'company'\n | 'deal'\n | 'quote'\n\nexport type SelectCRMParamsValue = {\n lead?: number[]\n contact?: number[]\n company?: number[]\n deal?: number[]\n quote?: number[]\n}\n\nexport type SelectCRMParams = {\n /**\n * Which types of objects to display in the dialog. Possible values:\n * - lead — Leads\n * - contact — Contacts\n * - company — Companies\n * - deal — Deals\n * - quote — Estimates\n */\n entityType: SelectCRMParamsEntityType[]\n\n /**\n * Whether multiple objects can be selected. Default is `false`\n */\n multiple: boolean\n\n /**\n * Which objects to initially add to the selected in the dialog. Works only if `multiple = true`\n */\n value?: SelectCRMParamsValue\n}\n\nexport type SelectedCRMEntity = {\n id: string\n type: SelectCRMParamsEntityType\n place: string\n title: string\n desc: string\n url: string\n}\n\nexport type SelectedCRM = {\n lead?: (SelectedCRMEntity & { id: `L_${number}` })[]\n contact?: (SelectedCRMEntity & { id: `C_${number}`, image: string })[]\n company?: (SelectedCRMEntity & { id: `CO_${number}`, image: string })[]\n deal?: (SelectedCRMEntity & { id: `D_${number}` })[]\n quote?: (SelectedCRMEntity & { id: `Q_${number}` })[]\n}\n\n/**\n * Select dialog manager\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/index.html\n */\nexport class DialogManager {\n #messageManager: MessageManager\n\n constructor(messageManager: MessageManager) {\n this.#messageManager = messageManager\n }\n\n /**\n * Method displays the standard single user selection dialog\n * It only shows company employees\n *\n * @return {Promise<null|SelectedUser>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-user.html\n */\n async selectUser(): Promise<null | SelectedUser> {\n return this.#messageManager.send(MessageCommands.selectUser, {\n mult: false\n })\n }\n\n /**\n * Method displays the standard multiple user selection dialog\n * It only shows company employees\n *\n * @return {Promise<SelectedUser[]>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-users.html\n */\n async selectUsers(): Promise<SelectedUser[]> {\n return this.#messageManager.send(MessageCommands.selectUser, {\n mult: true\n })\n }\n\n /**\n * Method displays a standard access permission selection dialog\n *\n * @param {string[]} blockedAccessPermissions\n * @return {Promise<SelectedAccess[]>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-access.html\n */\n async selectAccess(\n blockedAccessPermissions: string[] = []\n ): Promise<SelectedAccess[]> {\n return this.#messageManager.send(MessageCommands.selectAccess, {\n value: blockedAccessPermissions\n })\n }\n\n /**\n * Method invokes the system dialog for selecting a CRM entity\n *\n * @param {SelectCRMParams} params\n * @return {Promise<SelectedCRM>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-dialogues/bx24-select-crm.html\n */\n async selectCRM(params?: SelectCRMParams): Promise<SelectedCRM> {\n return this.#messageManager.send(MessageCommands.selectCRM, {\n entityType: params?.entityType,\n multiple: params?.multiple,\n value: params?.value\n })\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAuHO,MAAM,aAAA,CAAc;AAAA,EAvH3B;AAuH2B,IAAA,MAAA,CAAA,IAAA,EAAA,eAAA,CAAA;AAAA;AAAA,EACzB,eAAA;AAAA,EAEA,YAAY,cAAA,EAAgC;AAC1C,IAAA,IAAA,CAAK,eAAA,GAAkB,cAAA;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,UAAA,GAA2C;AAC/C,IAAA,OAAO,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,eAAA,CAAgB,UAAA,EAAY;AAAA,MAC3D,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,WAAA,GAAuC;AAC3C,IAAA,OAAO,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,eAAA,CAAgB,UAAA,EAAY;AAAA,MAC3D,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,YAAA,CACJ,wBAAA,GAAqC,EAAC,EACX;AAC3B,IAAA,OAAO,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,eAAA,CAAgB,YAAA,EAAc;AAAA,MAC7D,KAAA,EAAO;AAAA,KACR,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,UAAU,MAAA,EAAgD;AAC9D,IAAA,OAAO,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,eAAA,CAAgB,SAAA,EAAW;AAAA,MAC1D,YAAY,MAAA,EAAQ,UAAA;AAAA,MACpB,UAAU,MAAA,EAAQ,QAAA;AAAA,MAClB,OAAO,MAAA,EAAQ;AAAA,KAChB,CAAA;AAAA,EACH;AACF;;;;"}