@bitrix24/b24jssdk 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/README-AI.md +2 -0
  2. package/dist/esm/_virtual/_commonjsHelpers.mjs +1 -1
  3. package/dist/esm/_virtual/protobuf.mjs +1 -1
  4. package/dist/esm/_virtual/protobuf2.mjs +1 -1
  5. package/dist/esm/core/abstract-b24.mjs +1 -1
  6. package/dist/esm/core/actions/abstract-action.mjs +1 -1
  7. package/dist/esm/core/actions/abstract-batch.mjs +1 -1
  8. package/dist/esm/core/actions/manager.mjs +1 -1
  9. package/dist/esm/core/actions/v2/batch-by-chunk.mjs +1 -1
  10. package/dist/esm/core/actions/v2/batch.mjs +1 -1
  11. package/dist/esm/core/actions/v2/call-list.mjs +1 -1
  12. package/dist/esm/core/actions/v2/call.mjs +1 -1
  13. package/dist/esm/core/actions/v2/fetch-list.mjs +1 -1
  14. package/dist/esm/core/actions/v2/manager-v2.mjs +1 -1
  15. package/dist/esm/core/actions/v3/batch-by-chunk.mjs +1 -1
  16. package/dist/esm/core/actions/v3/batch.mjs +1 -1
  17. package/dist/esm/core/actions/v3/call-list.mjs +1 -1
  18. package/dist/esm/core/actions/v3/call.mjs +1 -1
  19. package/dist/esm/core/actions/v3/fetch-list.mjs +1 -1
  20. package/dist/esm/core/actions/v3/manager-v3.mjs +1 -1
  21. package/dist/esm/core/http/abstract-http.mjs +2 -2
  22. package/dist/esm/core/http/ajax-error.mjs +1 -1
  23. package/dist/esm/core/http/ajax-result.mjs +1 -1
  24. package/dist/esm/core/http/limiters/adaptive-delayer.mjs +1 -1
  25. package/dist/esm/core/http/limiters/manager.mjs +70 -38
  26. package/dist/esm/core/http/limiters/manager.mjs.map +1 -1
  27. package/dist/esm/core/http/limiters/operating-limiter.mjs +1 -1
  28. package/dist/esm/core/http/limiters/params-factory.mjs +3 -2
  29. package/dist/esm/core/http/limiters/params-factory.mjs.map +1 -1
  30. package/dist/esm/core/http/limiters/rate-limiter.mjs +1 -1
  31. package/dist/esm/core/http/v2.mjs +2 -2
  32. package/dist/esm/core/http/v3.mjs +2 -2
  33. package/dist/esm/core/interaction/batch/abstract-interaction-batch.mjs +1 -1
  34. package/dist/esm/core/interaction/batch/parse-row.mjs +1 -1
  35. package/dist/esm/core/interaction/batch/processing/interface-strategy.mjs +1 -1
  36. package/dist/esm/core/interaction/batch/processing/v2/abstract-processing.mjs +2 -2
  37. package/dist/esm/core/interaction/batch/processing/v2/abstract-processing.mjs.map +1 -1
  38. package/dist/esm/core/interaction/batch/processing/v2/as-array.mjs +1 -1
  39. package/dist/esm/core/interaction/batch/processing/v2/as-object.mjs +1 -1
  40. package/dist/esm/core/interaction/batch/processing/v3/abstract-processing.mjs +16 -9
  41. package/dist/esm/core/interaction/batch/processing/v3/abstract-processing.mjs.map +1 -1
  42. package/dist/esm/core/interaction/batch/processing/v3/as-array.mjs +1 -1
  43. package/dist/esm/core/interaction/batch/processing/v3/as-object.mjs +1 -1
  44. package/dist/esm/core/interaction/batch/v2.mjs +1 -1
  45. package/dist/esm/core/interaction/batch/v3.mjs +1 -1
  46. package/dist/esm/core/language/list.mjs +1 -1
  47. package/dist/esm/core/request-id-generator.mjs +1 -1
  48. package/dist/esm/core/result.mjs +1 -1
  49. package/dist/esm/core/sdk-error.mjs +1 -1
  50. package/dist/esm/core/tools/abstract-tool.mjs +1 -1
  51. package/dist/esm/core/tools/healthcheck.mjs +1 -1
  52. package/dist/esm/core/tools/manager.mjs +1 -1
  53. package/dist/esm/core/tools/ping.mjs +1 -1
  54. package/dist/esm/core/version-manager.mjs +1 -1
  55. package/dist/esm/frame/auth.mjs +1 -1
  56. package/dist/esm/frame/b24.mjs +1 -1
  57. package/dist/esm/frame/dialog.mjs +1 -1
  58. package/dist/esm/frame/frame.mjs +1 -1
  59. package/dist/esm/frame/message/commands.mjs +1 -1
  60. package/dist/esm/frame/message/controller.mjs +1 -1
  61. package/dist/esm/frame/options.mjs +1 -1
  62. package/dist/esm/frame/parent.mjs +1 -1
  63. package/dist/esm/frame/placement.mjs +1 -1
  64. package/dist/esm/frame/slider.mjs +1 -1
  65. package/dist/esm/helper/abstract-helper.mjs +1 -1
  66. package/dist/esm/helper/app-manager.mjs +1 -1
  67. package/dist/esm/helper/currency-manager.mjs +1 -1
  68. package/dist/esm/helper/helper-manager.mjs +1 -1
  69. package/dist/esm/helper/license-manager.mjs +1 -1
  70. package/dist/esm/helper/options-manager.mjs +1 -1
  71. package/dist/esm/helper/payment-manager.mjs +1 -1
  72. package/dist/esm/helper/profile-manager.mjs +1 -1
  73. package/dist/esm/helper/use-b24-helper.mjs +1 -1
  74. package/dist/esm/hook/auth.mjs +1 -1
  75. package/dist/esm/hook/b24.mjs +1 -1
  76. package/dist/esm/index.d.mts +69 -2
  77. package/dist/esm/index.d.ts +69 -2
  78. package/dist/esm/index.mjs +1 -1
  79. package/dist/esm/loader-b24frame.mjs +1 -1
  80. package/dist/esm/logger/abstract-logger.mjs +1 -1
  81. package/dist/esm/logger/browser.mjs +1 -1
  82. package/dist/esm/logger/formatter/abstract-formatter.mjs +1 -1
  83. package/dist/esm/logger/formatter/json-formatter.mjs +1 -1
  84. package/dist/esm/logger/formatter/line-formatter.mjs +1 -1
  85. package/dist/esm/logger/formatter/telegram-formatter.mjs +1 -1
  86. package/dist/esm/logger/handler/abstract-handler.mjs +1 -1
  87. package/dist/esm/logger/handler/consola-adapter.mjs +1 -1
  88. package/dist/esm/logger/handler/console-handler.mjs +1 -1
  89. package/dist/esm/logger/handler/console-v2-handler.mjs +1 -1
  90. package/dist/esm/logger/handler/memory-handler.mjs +1 -1
  91. package/dist/esm/logger/handler/stream-handler.mjs +1 -1
  92. package/dist/esm/logger/handler/telegram-handler.mjs +1 -1
  93. package/dist/esm/logger/handler/winston-adapter.mjs +1 -1
  94. package/dist/esm/logger/logger-factory.mjs +1 -1
  95. package/dist/esm/logger/logger.mjs +1 -1
  96. package/dist/esm/logger/null-logger.mjs +1 -1
  97. package/dist/esm/logger/processor/memory-usage-processor.mjs +1 -1
  98. package/dist/esm/logger/processor/pid-processor.mjs +1 -1
  99. package/dist/esm/oauth/auth.mjs +1 -1
  100. package/dist/esm/oauth/b24.mjs +1 -1
  101. package/dist/esm/oauth/refresh-token-error.mjs +1 -1
  102. package/dist/esm/pullClient/abstract-connector.mjs +1 -1
  103. package/dist/esm/pullClient/channel-manager.mjs +1 -1
  104. package/dist/esm/pullClient/client.mjs +1 -1
  105. package/dist/esm/pullClient/errors.mjs +1 -1
  106. package/dist/esm/pullClient/json-rpc.mjs +1 -1
  107. package/dist/esm/pullClient/long-polling-connector.mjs +1 -1
  108. package/dist/esm/pullClient/protobuf/index.mjs +1 -1
  109. package/dist/esm/pullClient/protobuf/model.mjs +1 -1
  110. package/dist/esm/pullClient/protobuf/protobuf.mjs +1 -1
  111. package/dist/esm/pullClient/shared-config.mjs +1 -1
  112. package/dist/esm/pullClient/storage-manager.mjs +1 -1
  113. package/dist/esm/pullClient/web-socket-connector.mjs +1 -1
  114. package/dist/esm/tools/browser.mjs +1 -1
  115. package/dist/esm/tools/environment.mjs +1 -1
  116. package/dist/esm/tools/formatters/iban.mjs +1 -1
  117. package/dist/esm/tools/formatters/numbers.mjs +1 -1
  118. package/dist/esm/tools/index.mjs +1 -1
  119. package/dist/esm/tools/scroll-size.mjs +1 -1
  120. package/dist/esm/tools/text.mjs +1 -1
  121. package/dist/esm/tools/type.mjs +1 -1
  122. package/dist/esm/tools/use-formatters.mjs +1 -1
  123. package/dist/esm/tools/uuidv7.mjs +1 -1
  124. package/dist/esm/types/b24-helper.mjs +1 -1
  125. package/dist/esm/types/b24.mjs +1 -1
  126. package/dist/esm/types/bizproc/index.mjs +1 -1
  127. package/dist/esm/types/catalog/index.mjs +1 -1
  128. package/dist/esm/types/common.mjs +1 -1
  129. package/dist/esm/types/crm/entity-type.mjs +1 -1
  130. package/dist/esm/types/crm/productrow.mjs +1 -1
  131. package/dist/esm/types/logger.mjs +1 -1
  132. package/dist/esm/types/pull.mjs +1 -1
  133. package/dist/umd/index.js +91 -51
  134. package/dist/umd/index.js.map +1 -1
  135. package/dist/umd/index.min.js +17 -17
  136. package/dist/umd/index.min.js.map +1 -1
  137. package/package.json +1 -1
package/dist/umd/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @package @bitrix24/b24jssdk
3
- * @version 1.1.0
3
+ * @version 1.1.1
4
4
  * @copyright (c) 2026 Bitrix24
5
5
  * @license MIT
6
6
  * @see https://github.com/bitrix24/b24jssdk
@@ -10843,7 +10843,8 @@ ${this.stack}`;
10843
10843
  maxDelay: 7e3
10844
10844
  },
10845
10845
  maxRetries: 3,
10846
- retryDelay: 1e3
10846
+ retryDelay: 1e3,
10847
+ retryOnNetworkError: true
10847
10848
  };
10848
10849
  }
10849
10850
  /**
@@ -11735,49 +11736,81 @@ ${this.stack}`;
11735
11736
  ].includes(answerError.code) || (answerError.description ?? "").includes("Could not find value for parameter");
11736
11737
  }
11737
11738
  /**
11738
- * These exceptions will be thrown
11739
+ * Built-in hard error codes (always throw, never retry).
11740
+ *
11741
+ * Includes authorization and fatal codes that must never be silently retried.
11742
+ * Use `RestrictionParams.hardErrorCodes` to extend this list with custom codes.
11743
+ */
11744
+ static BUILT_IN_HARD_ERROR_CODES = [
11745
+ "ERR_BAD_REQUEST",
11746
+ "JSSDK_UNKNOWN_ERROR",
11747
+ "100",
11748
+ "INTERNAL_SERVER_ERROR",
11749
+ "ERROR_UNEXPECTED_ANSWER",
11750
+ "PORTAL_DELETED",
11751
+ "ERROR_BATCH_METHOD_NOT_ALLOWED",
11752
+ "ERROR_BATCH_LENGTH_EXCEEDED",
11753
+ "NO_AUTH_FOUND",
11754
+ "INVALID_REQUEST",
11755
+ "OVERLOAD_LIMIT",
11756
+ "expired_token",
11757
+ "ACCESS_DENIED",
11758
+ "INVALID_CREDENTIALS",
11759
+ "user_access_error",
11760
+ "insufficient_scope",
11761
+ "ERROR_MANIFEST_IS_NOT_AVAILABLE",
11762
+ "allowed_only_intranet_user",
11763
+ "NOT_FOUND",
11764
+ "INVALID_ARG_VALUE"
11765
+ ];
11766
+ /**
11767
+ * Built-in soft error codes (returned as `AjaxResult` with error, never thrown).
11768
+ *
11769
+ * Use `RestrictionParams.softErrorCodes` to extend this list with custom codes.
11770
+ */
11771
+ static BUILT_IN_SOFT_ERROR_CODES = [
11772
+ "ERROR_ENTITY_NOT_FOUND",
11773
+ "BITRIX_REST_V3_EXCEPTION_ACCESSDENIEDEXCEPTION",
11774
+ "BITRIX_REST_V3_EXCEPTION_INVALIDJSONEXCEPTION",
11775
+ "BITRIX_REST_V3_EXCEPTION_INVALIDFILTEREXCEPTION",
11776
+ "BITRIX_REST_V3_EXCEPTION_INVALIDSELECTEXCEPTION",
11777
+ "BITRIX_REST_V3_EXCEPTION_ENTITYNOTFOUNDEXCEPTION",
11778
+ "BITRIX_REST_V3_EXCEPTION_METHODNOTFOUNDEXCEPTION",
11779
+ "BITRIX_REST_V3_EXCEPTION_UNKNOWNDTOPROPERTYEXCEPTION",
11780
+ "BITRIX_REST_V3_EXCEPTION_VALIDATION_REQUESTVALIDATIONEXCEPTION",
11781
+ "BITRIX_REST_V3_EXCEPTION_VALIDATION_DTOVALIDATIONEXCEPTION"
11782
+ ];
11783
+ /**
11784
+ * Codes that cause the SDK to throw immediately.
11785
+ *
11786
+ * Composed of:
11787
+ * - `BUILT_IN_HARD_ERROR_CODES` (always included)
11788
+ * - `NETWORK_ERROR` and `REQUEST_TIMEOUT` when `retryOnNetworkError === false`
11789
+ * - `RestrictionParams.hardErrorCodes` (user-provided extensions)
11739
11790
  */
11740
11791
  get exceptionCodeForHard() {
11741
- return [
11742
- "ERR_BAD_REQUEST",
11743
- "JSSDK_UNKNOWN_ERROR",
11744
- // 'REQUEST_TIMEOUT', 'NETWORK_ERROR',
11745
- "100",
11746
- "INTERNAL_SERVER_ERROR",
11747
- "ERROR_UNEXPECTED_ANSWER",
11748
- "PORTAL_DELETED",
11749
- "ERROR_BATCH_METHOD_NOT_ALLOWED",
11750
- "ERROR_BATCH_LENGTH_EXCEEDED",
11751
- "NO_AUTH_FOUND",
11752
- "INVALID_REQUEST",
11753
- "OVERLOAD_LIMIT",
11754
- "expired_token",
11755
- "ACCESS_DENIED",
11756
- "INVALID_CREDENTIALS",
11757
- "user_access_error",
11758
- "insufficient_scope",
11759
- "ERROR_MANIFEST_IS_NOT_AVAILABLE",
11760
- "allowed_only_intranet_user",
11761
- "NOT_FOUND",
11762
- "INVALID_ARG_VALUE"
11763
- ];
11792
+ const codes = [...RestrictionManager.BUILT_IN_HARD_ERROR_CODES];
11793
+ if (this.#config.retryOnNetworkError === false) {
11794
+ codes.push("NETWORK_ERROR", "REQUEST_TIMEOUT");
11795
+ }
11796
+ if (this.#config.hardErrorCodes && this.#config.hardErrorCodes.length > 0) {
11797
+ codes.push(...this.#config.hardErrorCodes);
11798
+ }
11799
+ return codes;
11764
11800
  }
11765
11801
  /**
11766
- * These exceptions will be thrown into `AjaxResult` as `AjaxError`
11802
+ * Codes returned as `AjaxResult` with an `AjaxError` payload instead of thrown.
11803
+ *
11804
+ * Composed of:
11805
+ * - `BUILT_IN_SOFT_ERROR_CODES` (always included)
11806
+ * - `RestrictionParams.softErrorCodes` (user-provided extensions)
11767
11807
  */
11768
11808
  get exceptionCodeForSoft() {
11769
- return [
11770
- "ERROR_ENTITY_NOT_FOUND",
11771
- "BITRIX_REST_V3_EXCEPTION_ACCESSDENIEDEXCEPTION",
11772
- "BITRIX_REST_V3_EXCEPTION_INVALIDJSONEXCEPTION",
11773
- "BITRIX_REST_V3_EXCEPTION_INVALIDFILTEREXCEPTION",
11774
- "BITRIX_REST_V3_EXCEPTION_INVALIDSELECTEXCEPTION",
11775
- "BITRIX_REST_V3_EXCEPTION_ENTITYNOTFOUNDEXCEPTION",
11776
- "BITRIX_REST_V3_EXCEPTION_METHODNOTFOUNDEXCEPTION",
11777
- "BITRIX_REST_V3_EXCEPTION_UNKNOWNDTOPROPERTYEXCEPTION",
11778
- "BITRIX_REST_V3_EXCEPTION_VALIDATION_REQUESTVALIDATIONEXCEPTION",
11779
- "BITRIX_REST_V3_EXCEPTION_VALIDATION_DTOVALIDATIONEXCEPTION"
11780
- ];
11809
+ const codes = [...RestrictionManager.BUILT_IN_SOFT_ERROR_CODES];
11810
+ if (this.#config.softErrorCodes && this.#config.softErrorCodes.length > 0) {
11811
+ codes.push(...this.#config.softErrorCodes);
11812
+ }
11813
+ return codes;
11781
11814
  }
11782
11815
  /**
11783
11816
  * Delay due to unknown errors
@@ -18130,7 +18163,7 @@ ${JSON.stringify({
18130
18163
  this._logger = LoggerFactory.createNullLogger();
18131
18164
  const defaultHeaders = {};
18132
18165
  if (this.isServerSide()) {
18133
- defaultHeaders["User-Agent"] = "b24-js-sdk/1.1.0";
18166
+ defaultHeaders["User-Agent"] = "b24-js-sdk/1.1.1";
18134
18167
  }
18135
18168
  this._authActions = authActions;
18136
18169
  this._requestIdGenerator = new RequestIdGenerator();
@@ -19225,7 +19258,7 @@ ${JSON.stringify({
19225
19258
  answer: {
19226
19259
  error: resultError ? typeof resultError === "string" ? resultError : resultError.error : void 0,
19227
19260
  error_description: resultError ? typeof resultError === "string" ? void 0 : resultError.error_description : void 0,
19228
- result: resultData ?? {},
19261
+ result: resultData,
19229
19262
  total: Number.parseInt(this._getBatchResultByIndex(responseResult.result_total, index) || "0"),
19230
19263
  next: Number.parseInt(this._getBatchResultByIndex(responseResult.result_next, index) || "0"),
19231
19264
  time: resultTime
@@ -19383,7 +19416,7 @@ ${JSON.stringify({
19383
19416
  }
19384
19417
  const queryParams = new URLSearchParams({
19385
19418
  [this._requestIdGenerator.getQueryStringParameterName()]: requestId,
19386
- [this._requestIdGenerator.getQueryStringSdkParameterName()]: "1.1.0",
19419
+ [this._requestIdGenerator.getQueryStringSdkParameterName()]: "1.1.1",
19387
19420
  [this._requestIdGenerator.getQueryStringSdkTypeParameterName()]: "b24-js-sdk"
19388
19421
  });
19389
19422
  return `${baseUrl}${methodUrl}?${queryParams.toString()}`;
@@ -19454,21 +19487,28 @@ ${JSON.stringify({
19454
19487
  return results;
19455
19488
  }
19456
19489
  /**
19457
- * @todo ! api ver3 waite docs
19490
+ * In `restApi:v3`, `response.getData().result` is the array/record of per-command
19491
+ * results directly (no `result_error`/`result_time`/`result_total`/`result_next`
19492
+ * split as in v2). Per-command errors do not exist in this format.
19493
+ *
19494
+ * The per-command `result` value is forwarded as-is, including `null` when the
19495
+ * underlying REST method returns `null` (see issue #23).
19458
19496
  */
19459
19497
  async _processResponseItem(command, index, responseHelper, results) {
19460
19498
  const responseResult = responseHelper.response.getData().result;
19461
19499
  const resultData = this._getBatchResultByIndex(responseResult, index);
19462
- const methodName = command.method;
19463
- const resultError = void 0;
19464
- const resultTime = responseHelper.response.getData().time;
19465
- if (typeof resultTime !== "undefined") {
19466
- await responseHelper.restrictionManager.updateStats(responseHelper.requestId, `batch::${methodName}`, resultTime);
19500
+ if (typeof resultData === "undefined") {
19501
+ throw new SdkError({
19502
+ code: "JSSDK_INTERACTION_BATCH_STRATEGY_V3_EMPTY_COMMAND_RESPONSE",
19503
+ description: `There were difficulties parsing the response for batch { index: ${index}, method: ${command.method} }`,
19504
+ status: 500
19505
+ });
19467
19506
  }
19507
+ const resultTime = responseHelper.response.getData().time;
19468
19508
  const result = new AjaxResult({
19469
19509
  answer: {
19470
- result: resultData ?? {},
19471
- error: resultError,
19510
+ result: resultData,
19511
+ error: void 0,
19472
19512
  time: resultTime
19473
19513
  },
19474
19514
  query: {
@@ -19630,7 +19670,7 @@ ${JSON.stringify({
19630
19670
  const methodUrl = `/${encodeURIComponent(method)}`;
19631
19671
  const queryParams = new URLSearchParams({
19632
19672
  [this._requestIdGenerator.getQueryStringParameterName()]: requestId,
19633
- [this._requestIdGenerator.getQueryStringSdkParameterName()]: "1.1.0",
19673
+ [this._requestIdGenerator.getQueryStringSdkParameterName()]: "1.1.1",
19634
19674
  [this._requestIdGenerator.getQueryStringSdkTypeParameterName()]: "b24-js-sdk"
19635
19675
  });
19636
19676
  return `${baseUrl}${methodUrl}?${queryParams.toString()}`;