@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.
- package/README-AI.md +3 -2
- package/README.md +2 -0
- package/dist/cjs/_virtual/_commonjsHelpers.cjs +19 -0
- package/dist/cjs/_virtual/_commonjsHelpers.cjs.map +1 -0
- package/dist/cjs/_virtual/protobuf.cjs +20 -0
- package/dist/cjs/_virtual/protobuf.cjs.map +1 -0
- package/dist/cjs/_virtual/protobuf2.cjs +14 -0
- package/dist/cjs/_virtual/protobuf2.cjs.map +1 -0
- package/dist/cjs/core/abstract-b24.cjs +357 -0
- package/dist/cjs/core/abstract-b24.cjs.map +1 -0
- package/dist/cjs/core/actions/abstract-action.cjs +26 -0
- package/dist/cjs/core/actions/abstract-action.cjs.map +1 -0
- package/dist/cjs/core/actions/abstract-batch.cjs +97 -0
- package/dist/cjs/core/actions/abstract-batch.cjs.map +1 -0
- package/dist/cjs/core/actions/manager.cjs +55 -0
- package/dist/cjs/core/actions/manager.cjs.map +1 -0
- package/dist/cjs/core/actions/v2/batch-by-chunk.cjs +95 -0
- package/dist/cjs/core/actions/v2/batch-by-chunk.cjs.map +1 -0
- package/dist/cjs/core/actions/v2/batch.cjs +128 -0
- package/dist/cjs/core/actions/v2/batch.cjs.map +1 -0
- package/dist/cjs/core/actions/v2/call-list.cjs +144 -0
- package/dist/cjs/core/actions/v2/call-list.cjs.map +1 -0
- package/dist/cjs/core/actions/v2/call.cjs +56 -0
- package/dist/cjs/core/actions/v2/call.cjs.map +1 -0
- package/dist/cjs/core/actions/v2/fetch-list.cjs +145 -0
- package/dist/cjs/core/actions/v2/fetch-list.cjs.map +1 -0
- package/dist/cjs/core/actions/v2/manager-v2.cjs +76 -0
- package/dist/cjs/core/actions/v2/manager-v2.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/_keyset-paginate.cjs +69 -0
- package/dist/cjs/core/actions/v3/_keyset-paginate.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/aggregate.cjs +96 -0
- package/dist/cjs/core/actions/v3/aggregate.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/batch-by-chunk.cjs +93 -0
- package/dist/cjs/core/actions/v3/batch-by-chunk.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/batch.cjs +122 -0
- package/dist/cjs/core/actions/v3/batch.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/call-list.cjs +126 -0
- package/dist/cjs/core/actions/v3/call-list.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/call-tail.cjs +118 -0
- package/dist/cjs/core/actions/v3/call-tail.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/call.cjs +51 -0
- package/dist/cjs/core/actions/v3/call.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/fetch-list.cjs +122 -0
- package/dist/cjs/core/actions/v3/fetch-list.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/fetch-tail.cjs +112 -0
- package/dist/cjs/core/actions/v3/fetch-tail.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/manager-v3.cjs +100 -0
- package/dist/cjs/core/actions/v3/manager-v3.cjs.map +1 -0
- package/dist/cjs/core/http/abstract-http.cjs +641 -0
- package/dist/cjs/core/http/abstract-http.cjs.map +1 -0
- package/dist/cjs/core/http/ajax-error.cjs +113 -0
- package/dist/cjs/core/http/ajax-error.cjs.map +1 -0
- package/dist/cjs/core/http/ajax-result.cjs +219 -0
- package/dist/cjs/core/http/ajax-result.cjs.map +1 -0
- package/dist/cjs/core/http/limiters/adaptive-delayer.cjs +137 -0
- package/dist/cjs/core/http/limiters/adaptive-delayer.cjs.map +1 -0
- package/dist/cjs/core/http/limiters/manager.cjs +373 -0
- package/dist/cjs/core/http/limiters/manager.cjs.map +1 -0
- package/dist/cjs/core/http/limiters/operating-limiter.cjs +173 -0
- package/dist/cjs/core/http/limiters/operating-limiter.cjs.map +1 -0
- package/dist/cjs/core/http/limiters/params-factory.cjs +124 -0
- package/dist/cjs/core/http/limiters/params-factory.cjs.map +1 -0
- package/dist/cjs/core/http/limiters/rate-limiter.cjs +404 -0
- package/dist/cjs/core/http/limiters/rate-limiter.cjs.map +1 -0
- package/dist/cjs/core/http/redact.cjs +85 -0
- package/dist/cjs/core/http/redact.cjs.map +1 -0
- package/dist/cjs/core/http/v2.cjs +85 -0
- package/dist/cjs/core/http/v2.cjs.map +1 -0
- package/dist/cjs/core/http/v3.cjs +82 -0
- package/dist/cjs/core/http/v3.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/abstract-interaction-batch.cjs +71 -0
- package/dist/cjs/core/interaction/batch/abstract-interaction-batch.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/parse-row.cjs +69 -0
- package/dist/cjs/core/interaction/batch/parse-row.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/processing/interface-strategy.cjs +87 -0
- package/dist/cjs/core/interaction/batch/processing/interface-strategy.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/processing/v2/abstract-processing.cjs +138 -0
- package/dist/cjs/core/interaction/batch/processing/v2/abstract-processing.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/processing/v2/as-array.cjs +34 -0
- package/dist/cjs/core/interaction/batch/processing/v2/as-array.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/processing/v2/as-object.cjs +34 -0
- package/dist/cjs/core/interaction/batch/processing/v2/as-object.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/processing/v3/abstract-processing.cjs +115 -0
- package/dist/cjs/core/interaction/batch/processing/v3/abstract-processing.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/processing/v3/as-array.cjs +34 -0
- package/dist/cjs/core/interaction/batch/processing/v3/as-array.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/processing/v3/as-object.cjs +34 -0
- package/dist/cjs/core/interaction/batch/processing/v3/as-object.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/v2.cjs +47 -0
- package/dist/cjs/core/interaction/batch/v2.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/v3.cjs +45 -0
- package/dist/cjs/core/interaction/batch/v3.cjs.map +1 -0
- package/dist/cjs/core/language/list.cjs +59 -0
- package/dist/cjs/core/language/list.cjs.map +1 -0
- package/dist/cjs/core/request-id-generator.cjs +44 -0
- package/dist/cjs/core/request-id-generator.cjs.map +1 -0
- package/dist/cjs/core/result.cjs +137 -0
- package/dist/cjs/core/result.cjs.map +1 -0
- package/dist/cjs/core/sdk-error.cjs +85 -0
- package/dist/cjs/core/sdk-error.cjs.map +1 -0
- package/dist/cjs/core/tools/abstract-tool.cjs +26 -0
- package/dist/cjs/core/tools/abstract-tool.cjs.map +1 -0
- package/dist/cjs/core/tools/healthcheck.cjs +50 -0
- package/dist/cjs/core/tools/healthcheck.cjs.map +1 -0
- package/dist/cjs/core/tools/manager.cjs +52 -0
- package/dist/cjs/core/tools/manager.cjs.map +1 -0
- package/dist/cjs/core/tools/ping.cjs +58 -0
- package/dist/cjs/core/tools/ping.cjs.map +1 -0
- package/dist/cjs/core/version-manager.cjs +57 -0
- package/dist/cjs/core/version-manager.cjs.map +1 -0
- package/dist/cjs/frame/auth.cjs +100 -0
- package/dist/cjs/frame/auth.cjs.map +1 -0
- package/dist/cjs/frame/b24.cjs +178 -0
- package/dist/cjs/frame/b24.cjs.map +1 -0
- package/dist/cjs/frame/dialog.cjs +120 -0
- package/dist/cjs/frame/dialog.cjs.map +1 -0
- package/dist/cjs/frame/frame.cjs +103 -0
- package/dist/cjs/frame/frame.cjs.map +1 -0
- package/dist/cjs/frame/message/commands.cjs +39 -0
- package/dist/cjs/frame/message/commands.cjs.map +1 -0
- package/dist/cjs/frame/message/controller.cjs +191 -0
- package/dist/cjs/frame/message/controller.cjs.map +1 -0
- package/dist/cjs/frame/options.cjs +108 -0
- package/dist/cjs/frame/options.cjs.map +1 -0
- package/dist/cjs/frame/parent.cjs +259 -0
- package/dist/cjs/frame/parent.cjs.map +1 -0
- package/dist/cjs/frame/placement.cjs +156 -0
- package/dist/cjs/frame/placement.cjs.map +1 -0
- package/dist/cjs/frame/slider.cjs +162 -0
- package/dist/cjs/frame/slider.cjs.map +1 -0
- package/dist/cjs/helper/abstract-helper.cjs +55 -0
- package/dist/cjs/helper/abstract-helper.cjs.map +1 -0
- package/dist/cjs/helper/app-manager.cjs +39 -0
- package/dist/cjs/helper/app-manager.cjs.map +1 -0
- package/dist/cjs/helper/currency-manager.cjs +215 -0
- package/dist/cjs/helper/currency-manager.cjs.map +1 -0
- package/dist/cjs/helper/helper-manager.cjs +397 -0
- package/dist/cjs/helper/helper-manager.cjs.map +1 -0
- package/dist/cjs/helper/license-manager.cjs +52 -0
- package/dist/cjs/helper/license-manager.cjs.map +1 -0
- package/dist/cjs/helper/options-manager.cjs +205 -0
- package/dist/cjs/helper/options-manager.cjs.map +1 -0
- package/dist/cjs/helper/payment-manager.cjs +35 -0
- package/dist/cjs/helper/payment-manager.cjs.map +1 -0
- package/dist/cjs/helper/profile-manager.cjs +35 -0
- package/dist/cjs/helper/profile-manager.cjs.map +1 -0
- package/dist/cjs/helper/use-b24-helper.cjs +85 -0
- package/dist/cjs/helper/use-b24-helper.cjs.map +1 -0
- package/dist/cjs/hook/auth.cjs +79 -0
- package/dist/cjs/hook/auth.cjs.map +1 -0
- package/dist/cjs/hook/b24.cjs +117 -0
- package/dist/cjs/hook/b24.cjs.map +1 -0
- package/dist/cjs/index.cjs +176 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +6415 -0
- package/dist/cjs/index.d.mts +6415 -0
- package/dist/cjs/index.d.ts +6415 -0
- package/dist/cjs/loader-b24frame.cjs +103 -0
- package/dist/cjs/loader-b24frame.cjs.map +1 -0
- package/dist/cjs/logger/abstract-logger.cjs +71 -0
- package/dist/cjs/logger/abstract-logger.cjs.map +1 -0
- package/dist/cjs/logger/browser.cjs +165 -0
- package/dist/cjs/logger/browser.cjs.map +1 -0
- package/dist/cjs/logger/formatter/abstract-formatter.cjs +36 -0
- package/dist/cjs/logger/formatter/abstract-formatter.cjs.map +1 -0
- package/dist/cjs/logger/formatter/json-formatter.cjs +36 -0
- package/dist/cjs/logger/formatter/json-formatter.cjs.map +1 -0
- package/dist/cjs/logger/formatter/line-formatter.cjs +43 -0
- package/dist/cjs/logger/formatter/line-formatter.cjs.map +1 -0
- package/dist/cjs/logger/formatter/telegram-formatter.cjs +105 -0
- package/dist/cjs/logger/formatter/telegram-formatter.cjs.map +1 -0
- package/dist/cjs/logger/handler/abstract-handler.cjs +41 -0
- package/dist/cjs/logger/handler/abstract-handler.cjs.map +1 -0
- package/dist/cjs/logger/handler/consola-adapter.cjs +64 -0
- package/dist/cjs/logger/handler/consola-adapter.cjs.map +1 -0
- package/dist/cjs/logger/handler/console-handler.cjs +100 -0
- package/dist/cjs/logger/handler/console-handler.cjs.map +1 -0
- package/dist/cjs/logger/handler/console-v2-handler.cjs +53 -0
- package/dist/cjs/logger/handler/console-v2-handler.cjs.map +1 -0
- package/dist/cjs/logger/handler/memory-handler.cjs +50 -0
- package/dist/cjs/logger/handler/memory-handler.cjs.map +1 -0
- package/dist/cjs/logger/handler/stream-handler.cjs +75 -0
- package/dist/cjs/logger/handler/stream-handler.cjs.map +1 -0
- package/dist/cjs/logger/handler/telegram-handler.cjs +159 -0
- package/dist/cjs/logger/handler/telegram-handler.cjs.map +1 -0
- package/dist/cjs/logger/handler/winston-adapter.cjs +59 -0
- package/dist/cjs/logger/handler/winston-adapter.cjs.map +1 -0
- package/dist/cjs/logger/logger-factory.cjs +69 -0
- package/dist/cjs/logger/logger-factory.cjs.map +1 -0
- package/dist/cjs/logger/logger.cjs +78 -0
- package/dist/cjs/logger/logger.cjs.map +1 -0
- package/dist/cjs/logger/null-logger.cjs +34 -0
- package/dist/cjs/logger/null-logger.cjs.map +1 -0
- package/dist/cjs/logger/processor/memory-usage-processor.cjs +22 -0
- package/dist/cjs/logger/processor/memory-usage-processor.cjs.map +1 -0
- package/dist/cjs/logger/processor/pid-processor.cjs +22 -0
- package/dist/cjs/logger/processor/pid-processor.cjs.map +1 -0
- package/dist/cjs/oauth/auth.cjs +214 -0
- package/dist/cjs/oauth/auth.cjs.map +1 -0
- package/dist/cjs/oauth/b24.cjs +119 -0
- package/dist/cjs/oauth/b24.cjs.map +1 -0
- package/dist/cjs/oauth/refresh-token-error.cjs +22 -0
- package/dist/cjs/oauth/refresh-token-error.cjs.map +1 -0
- package/dist/cjs/pullClient/abstract-connector.cjs +80 -0
- package/dist/cjs/pullClient/abstract-connector.cjs.map +1 -0
- package/dist/cjs/pullClient/channel-manager.cjs +91 -0
- package/dist/cjs/pullClient/channel-manager.cjs.map +1 -0
- package/dist/cjs/pullClient/client.cjs +2177 -0
- package/dist/cjs/pullClient/client.cjs.map +1 -0
- package/dist/cjs/pullClient/errors.cjs +34 -0
- package/dist/cjs/pullClient/errors.cjs.map +1 -0
- package/dist/cjs/pullClient/json-rpc.cjs +213 -0
- package/dist/cjs/pullClient/json-rpc.cjs.map +1 -0
- package/dist/cjs/pullClient/long-polling-connector.cjs +159 -0
- package/dist/cjs/pullClient/long-polling-connector.cjs.map +1 -0
- package/dist/cjs/pullClient/protobuf/index.cjs +22 -0
- package/dist/cjs/pullClient/protobuf/index.cjs.map +1 -0
- package/dist/cjs/pullClient/protobuf/model.cjs +1060 -0
- package/dist/cjs/pullClient/protobuf/model.cjs.map +1 -0
- package/dist/cjs/pullClient/protobuf/protobuf.cjs +4655 -0
- package/dist/cjs/pullClient/protobuf/protobuf.cjs.map +1 -0
- package/dist/cjs/pullClient/shared-config.cjs +135 -0
- package/dist/cjs/pullClient/shared-config.cjs.map +1 -0
- package/dist/cjs/pullClient/storage-manager.cjs +74 -0
- package/dist/cjs/pullClient/storage-manager.cjs.map +1 -0
- package/dist/cjs/pullClient/web-socket-connector.cjs +131 -0
- package/dist/cjs/pullClient/web-socket-connector.cjs.map +1 -0
- package/dist/cjs/tools/batch-ref-v3.cjs +54 -0
- package/dist/cjs/tools/batch-ref-v3.cjs.map +1 -0
- package/dist/cjs/tools/browser.cjs +156 -0
- package/dist/cjs/tools/browser.cjs.map +1 -0
- package/dist/cjs/tools/environment.cjs +32 -0
- package/dist/cjs/tools/environment.cjs.map +1 -0
- package/dist/cjs/tools/filter-v3.cjs +139 -0
- package/dist/cjs/tools/filter-v3.cjs.map +1 -0
- package/dist/cjs/tools/formatters/iban.cjs +307 -0
- package/dist/cjs/tools/formatters/iban.cjs.map +1 -0
- package/dist/cjs/tools/formatters/numbers.cjs +68 -0
- package/dist/cjs/tools/formatters/numbers.cjs.map +1 -0
- package/dist/cjs/tools/index.cjs +42 -0
- package/dist/cjs/tools/index.cjs.map +1 -0
- package/dist/cjs/tools/scroll-size.cjs +29 -0
- package/dist/cjs/tools/scroll-size.cjs.map +1 -0
- package/dist/cjs/tools/text.cjs +210 -0
- package/dist/cjs/tools/text.cjs.map +1 -0
- package/dist/cjs/tools/type.cjs +339 -0
- package/dist/cjs/tools/type.cjs.map +1 -0
- package/dist/cjs/tools/use-formatters.cjs +462 -0
- package/dist/cjs/tools/use-formatters.cjs.map +1 -0
- package/dist/cjs/tools/uuidv7.cjs +58 -0
- package/dist/cjs/tools/uuidv7.cjs.map +1 -0
- package/dist/cjs/types/b24-helper.cjs +62 -0
- package/dist/cjs/types/b24-helper.cjs.map +1 -0
- package/dist/cjs/types/b24.cjs +18 -0
- package/dist/cjs/types/b24.cjs.map +1 -0
- package/dist/cjs/types/bizproc/index.cjs +195 -0
- package/dist/cjs/types/bizproc/index.cjs.map +1 -0
- package/dist/cjs/types/catalog/index.cjs +39 -0
- package/dist/cjs/types/catalog/index.cjs.map +1 -0
- package/dist/cjs/types/common.cjs +33 -0
- package/dist/cjs/types/common.cjs.map +1 -0
- package/dist/cjs/types/crm/entity-type.cjs +62 -0
- package/dist/cjs/types/crm/entity-type.cjs.map +1 -0
- package/dist/cjs/types/crm/productrow.cjs +19 -0
- package/dist/cjs/types/crm/productrow.cjs.map +1 -0
- package/dist/cjs/types/logger.cjs +24 -0
- package/dist/cjs/types/logger.cjs.map +1 -0
- package/dist/cjs/types/pull.cjs +94 -0
- package/dist/cjs/types/pull.cjs.map +1 -0
- package/dist/esm/_virtual/_commonjsHelpers.mjs +1 -1
- package/dist/esm/_virtual/protobuf.mjs +1 -1
- package/dist/esm/_virtual/protobuf2.mjs +1 -1
- package/dist/esm/core/abstract-b24.mjs +1 -1
- package/dist/esm/core/actions/abstract-action.mjs +1 -1
- package/dist/esm/core/actions/abstract-batch.mjs +1 -1
- package/dist/esm/core/actions/manager.mjs +1 -1
- package/dist/esm/core/actions/v2/batch-by-chunk.mjs +1 -1
- package/dist/esm/core/actions/v2/batch.mjs +1 -1
- package/dist/esm/core/actions/v2/call-list.mjs +1 -1
- package/dist/esm/core/actions/v2/call.mjs +1 -15
- package/dist/esm/core/actions/v2/call.mjs.map +1 -1
- package/dist/esm/core/actions/v2/fetch-list.mjs +1 -1
- package/dist/esm/core/actions/v2/manager-v2.mjs +1 -1
- package/dist/esm/core/actions/v3/_keyset-paginate.mjs +66 -0
- package/dist/esm/core/actions/v3/_keyset-paginate.mjs.map +1 -0
- package/dist/esm/core/actions/v3/aggregate.mjs +94 -0
- package/dist/esm/core/actions/v3/aggregate.mjs.map +1 -0
- package/dist/esm/core/actions/v3/batch-by-chunk.mjs +1 -1
- package/dist/esm/core/actions/v3/batch.mjs +1 -10
- package/dist/esm/core/actions/v3/batch.mjs.map +1 -1
- package/dist/esm/core/actions/v3/call-list.mjs +30 -44
- package/dist/esm/core/actions/v3/call-list.mjs.map +1 -1
- package/dist/esm/core/actions/v3/call-tail.mjs +116 -0
- package/dist/esm/core/actions/v3/call-tail.mjs.map +1 -0
- package/dist/esm/core/actions/v3/call.mjs +1 -10
- package/dist/esm/core/actions/v3/call.mjs.map +1 -1
- package/dist/esm/core/actions/v3/fetch-list.mjs +24 -41
- package/dist/esm/core/actions/v3/fetch-list.mjs.map +1 -1
- package/dist/esm/core/actions/v3/fetch-tail.mjs +110 -0
- package/dist/esm/core/actions/v3/fetch-tail.mjs.map +1 -0
- package/dist/esm/core/actions/v3/manager-v3.mjs +25 -1
- package/dist/esm/core/actions/v3/manager-v3.mjs.map +1 -1
- package/dist/esm/core/http/abstract-http.mjs +68 -17
- package/dist/esm/core/http/abstract-http.mjs.map +1 -1
- package/dist/esm/core/http/ajax-error.mjs +1 -1
- package/dist/esm/core/http/ajax-result.mjs +9 -8
- package/dist/esm/core/http/ajax-result.mjs.map +1 -1
- package/dist/esm/core/http/limiters/adaptive-delayer.mjs +1 -1
- package/dist/esm/core/http/limiters/manager.mjs +1 -1
- package/dist/esm/core/http/limiters/operating-limiter.mjs +1 -1
- package/dist/esm/core/http/limiters/params-factory.mjs +1 -1
- package/dist/esm/core/http/limiters/rate-limiter.mjs +1 -1
- package/dist/esm/core/http/redact.mjs +41 -13
- package/dist/esm/core/http/redact.mjs.map +1 -1
- package/dist/esm/core/http/v2.mjs +1 -18
- package/dist/esm/core/http/v2.mjs.map +1 -1
- package/dist/esm/core/http/v3.mjs +1 -15
- package/dist/esm/core/http/v3.mjs.map +1 -1
- package/dist/esm/core/interaction/batch/abstract-interaction-batch.mjs +1 -1
- package/dist/esm/core/interaction/batch/parse-row.mjs +1 -1
- package/dist/esm/core/interaction/batch/processing/interface-strategy.mjs +44 -1
- package/dist/esm/core/interaction/batch/processing/interface-strategy.mjs.map +1 -1
- package/dist/esm/core/interaction/batch/processing/v2/abstract-processing.mjs +7 -6
- package/dist/esm/core/interaction/batch/processing/v2/abstract-processing.mjs.map +1 -1
- package/dist/esm/core/interaction/batch/processing/v2/as-array.mjs +3 -3
- package/dist/esm/core/interaction/batch/processing/v2/as-array.mjs.map +1 -1
- package/dist/esm/core/interaction/batch/processing/v2/as-object.mjs +1 -1
- package/dist/esm/core/interaction/batch/processing/v3/abstract-processing.mjs +7 -19
- package/dist/esm/core/interaction/batch/processing/v3/abstract-processing.mjs.map +1 -1
- package/dist/esm/core/interaction/batch/processing/v3/as-array.mjs +3 -3
- package/dist/esm/core/interaction/batch/processing/v3/as-array.mjs.map +1 -1
- package/dist/esm/core/interaction/batch/processing/v3/as-object.mjs +1 -1
- package/dist/esm/core/interaction/batch/v2.mjs +1 -1
- package/dist/esm/core/interaction/batch/v3.mjs +1 -1
- package/dist/esm/core/language/list.mjs +1 -1
- package/dist/esm/core/request-id-generator.mjs +1 -1
- package/dist/esm/core/result.mjs +11 -4
- package/dist/esm/core/result.mjs.map +1 -1
- package/dist/esm/core/sdk-error.mjs +1 -1
- package/dist/esm/core/tools/abstract-tool.mjs +1 -1
- package/dist/esm/core/tools/healthcheck.mjs +1 -1
- package/dist/esm/core/tools/manager.mjs +1 -1
- package/dist/esm/core/tools/ping.mjs +1 -1
- package/dist/esm/core/version-manager.mjs +19 -157
- package/dist/esm/core/version-manager.mjs.map +1 -1
- package/dist/esm/frame/auth.mjs +1 -1
- package/dist/esm/frame/b24.mjs +8 -2
- package/dist/esm/frame/b24.mjs.map +1 -1
- package/dist/esm/frame/dialog.mjs +1 -1
- package/dist/esm/frame/frame.mjs +1 -1
- package/dist/esm/frame/message/commands.mjs +1 -1
- package/dist/esm/frame/message/controller.mjs +17 -6
- package/dist/esm/frame/message/controller.mjs.map +1 -1
- package/dist/esm/frame/options.mjs +1 -1
- package/dist/esm/frame/parent.mjs +1 -1
- package/dist/esm/frame/placement.mjs +1 -1
- package/dist/esm/frame/slider.mjs +1 -1
- package/dist/esm/helper/abstract-helper.mjs +1 -1
- package/dist/esm/helper/app-manager.mjs +1 -1
- package/dist/esm/helper/currency-manager.mjs +1 -1
- package/dist/esm/helper/helper-manager.mjs +1 -1
- package/dist/esm/helper/license-manager.mjs +1 -1
- package/dist/esm/helper/options-manager.mjs +1 -1
- package/dist/esm/helper/payment-manager.mjs +1 -1
- package/dist/esm/helper/profile-manager.mjs +1 -1
- package/dist/esm/helper/use-b24-helper.mjs +1 -1
- package/dist/esm/hook/auth.mjs +1 -1
- package/dist/esm/hook/b24.mjs +3 -3
- package/dist/esm/hook/b24.mjs.map +1 -1
- package/dist/esm/index.d.mts +412 -39
- package/dist/esm/index.d.ts +412 -39
- package/dist/esm/index.mjs +3 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/loader-b24frame.mjs +1 -1
- package/dist/esm/logger/abstract-logger.mjs +1 -1
- package/dist/esm/logger/browser.mjs +1 -1
- package/dist/esm/logger/formatter/abstract-formatter.mjs +1 -1
- package/dist/esm/logger/formatter/json-formatter.mjs +1 -1
- package/dist/esm/logger/formatter/line-formatter.mjs +1 -1
- package/dist/esm/logger/formatter/telegram-formatter.mjs +1 -1
- package/dist/esm/logger/handler/abstract-handler.mjs +1 -1
- package/dist/esm/logger/handler/consola-adapter.mjs +1 -1
- package/dist/esm/logger/handler/console-handler.mjs +1 -1
- package/dist/esm/logger/handler/console-v2-handler.mjs +1 -1
- package/dist/esm/logger/handler/memory-handler.mjs +1 -1
- package/dist/esm/logger/handler/stream-handler.mjs +1 -1
- package/dist/esm/logger/handler/telegram-handler.mjs +1 -1
- package/dist/esm/logger/handler/winston-adapter.mjs +1 -1
- package/dist/esm/logger/logger-factory.mjs +1 -1
- package/dist/esm/logger/logger.mjs +1 -1
- package/dist/esm/logger/null-logger.mjs +1 -1
- package/dist/esm/logger/processor/memory-usage-processor.mjs +1 -1
- package/dist/esm/logger/processor/pid-processor.mjs +1 -1
- package/dist/esm/oauth/auth.mjs +13 -16
- package/dist/esm/oauth/auth.mjs.map +1 -1
- package/dist/esm/oauth/b24.mjs +1 -1
- package/dist/esm/oauth/refresh-token-error.mjs +1 -1
- package/dist/esm/pullClient/abstract-connector.mjs +1 -1
- package/dist/esm/pullClient/channel-manager.mjs +1 -1
- package/dist/esm/pullClient/client.mjs +141 -30
- package/dist/esm/pullClient/client.mjs.map +1 -1
- package/dist/esm/pullClient/errors.mjs +1 -1
- package/dist/esm/pullClient/json-rpc.mjs +5 -4
- package/dist/esm/pullClient/json-rpc.mjs.map +1 -1
- package/dist/esm/pullClient/long-polling-connector.mjs +1 -1
- package/dist/esm/pullClient/protobuf/index.mjs +1 -1
- package/dist/esm/pullClient/protobuf/model.mjs +1 -1
- package/dist/esm/pullClient/protobuf/protobuf.mjs +1 -1
- package/dist/esm/pullClient/shared-config.mjs +1 -1
- package/dist/esm/pullClient/storage-manager.mjs +1 -1
- package/dist/esm/pullClient/web-socket-connector.mjs +1 -1
- package/dist/esm/tools/batch-ref-v3.mjs +52 -0
- package/dist/esm/tools/batch-ref-v3.mjs.map +1 -0
- package/dist/esm/tools/browser.mjs +1 -1
- package/dist/esm/tools/environment.mjs +1 -1
- package/dist/esm/tools/filter-v3.mjs +137 -0
- package/dist/esm/tools/filter-v3.mjs.map +1 -0
- package/dist/esm/tools/formatters/iban.mjs +1 -1
- package/dist/esm/tools/formatters/numbers.mjs +1 -1
- package/dist/esm/tools/index.mjs +1 -1
- package/dist/esm/tools/scroll-size.mjs +1 -1
- package/dist/esm/tools/text.mjs +1 -1
- package/dist/esm/tools/type.mjs +1 -1
- package/dist/esm/tools/use-formatters.mjs +1 -1
- package/dist/esm/tools/uuidv7.mjs +1 -1
- package/dist/esm/types/b24-helper.mjs +1 -1
- package/dist/esm/types/b24.mjs +1 -1
- package/dist/esm/types/bizproc/index.mjs +1 -1
- package/dist/esm/types/catalog/index.mjs +1 -1
- package/dist/esm/types/common.mjs +1 -1
- package/dist/esm/types/crm/entity-type.mjs +1 -1
- package/dist/esm/types/crm/productrow.mjs +1 -1
- package/dist/esm/types/logger.mjs +1 -1
- package/dist/esm/types/pull.mjs +1 -1
- package/dist/umd/index.js +1258 -719
- package/dist/umd/index.js.map +1 -1
- package/dist/umd/index.min.js +26 -26
- package/dist/umd/index.min.js.map +1 -1
- package/dist/umd/package.json +3 -0
- package/package.json +12 -4
|
@@ -0,0 +1,191 @@
|
|
|
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 type = require('../../tools/type.cjs');
|
|
12
|
+
const text = require('../../tools/text.cjs');
|
|
13
|
+
const index = require('../../tools/index.cjs');
|
|
14
|
+
const loggerFactory = require('../../logger/logger-factory.cjs');
|
|
15
|
+
|
|
16
|
+
var __defProp = Object.defineProperty;
|
|
17
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
18
|
+
class MessageManager {
|
|
19
|
+
static {
|
|
20
|
+
__name(this, "MessageManager");
|
|
21
|
+
}
|
|
22
|
+
#appFrame;
|
|
23
|
+
#callbackPromises;
|
|
24
|
+
#callbackSingletone;
|
|
25
|
+
// origins already warned about (#244) — dedup so a peer spamming postMessage
|
|
26
|
+
// from a foreign origin can't flood a wired logger sink
|
|
27
|
+
#rejectedOrigins = /* @__PURE__ */ new Set();
|
|
28
|
+
_logger;
|
|
29
|
+
runCallbackHandler;
|
|
30
|
+
constructor(appFrame) {
|
|
31
|
+
this._logger = loggerFactory.LoggerFactory.createNullLogger();
|
|
32
|
+
this.#appFrame = appFrame;
|
|
33
|
+
this.#callbackPromises = /* @__PURE__ */ new Map();
|
|
34
|
+
this.#callbackSingletone = /* @__PURE__ */ new Map();
|
|
35
|
+
this.runCallbackHandler = this._runCallback.bind(this);
|
|
36
|
+
}
|
|
37
|
+
setLogger(logger) {
|
|
38
|
+
this._logger = logger;
|
|
39
|
+
}
|
|
40
|
+
getLogger() {
|
|
41
|
+
return this._logger;
|
|
42
|
+
}
|
|
43
|
+
// region Events ////
|
|
44
|
+
/**
|
|
45
|
+
* Subscribe to the onMessage event of the parent window
|
|
46
|
+
*/
|
|
47
|
+
subscribe() {
|
|
48
|
+
window.addEventListener("message", this.runCallbackHandler);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Unsubscribe from the onMessage event of the parent window
|
|
52
|
+
*/
|
|
53
|
+
unsubscribe() {
|
|
54
|
+
window.removeEventListener("message", this.runCallbackHandler);
|
|
55
|
+
}
|
|
56
|
+
// endregion ////
|
|
57
|
+
/**
|
|
58
|
+
* Send message to parent window
|
|
59
|
+
* The answer (if) we will get in _runCallback
|
|
60
|
+
*
|
|
61
|
+
* @param command
|
|
62
|
+
* @param params
|
|
63
|
+
*/
|
|
64
|
+
async send(command, params = null) {
|
|
65
|
+
return new Promise((resolve, reject) => {
|
|
66
|
+
let cmd;
|
|
67
|
+
const promiseHandler = {
|
|
68
|
+
resolve,
|
|
69
|
+
reject,
|
|
70
|
+
timeoutId: null
|
|
71
|
+
};
|
|
72
|
+
const keyPromise = this.#setCallbackPromise(promiseHandler);
|
|
73
|
+
let paramsSend = null;
|
|
74
|
+
const optionsSend = index.omit(params || {}, ["singleOption", "callBack", "isSafely", "safelyTime", "requestId"]);
|
|
75
|
+
const { callBack, singleOption, requestId } = params || {};
|
|
76
|
+
if (callBack) {
|
|
77
|
+
this.#callbackSingletone.set(keyPromise, callBack);
|
|
78
|
+
}
|
|
79
|
+
if (singleOption) {
|
|
80
|
+
paramsSend = singleOption;
|
|
81
|
+
} else if (Object.keys(optionsSend).length > 0) {
|
|
82
|
+
paramsSend = { ...optionsSend };
|
|
83
|
+
}
|
|
84
|
+
if (command.toString().includes(":")) {
|
|
85
|
+
cmd = {
|
|
86
|
+
method: command.toString(),
|
|
87
|
+
params: paramsSend || "",
|
|
88
|
+
callback: keyPromise,
|
|
89
|
+
appSid: this.#appFrame.getAppSid(),
|
|
90
|
+
requestId
|
|
91
|
+
};
|
|
92
|
+
} else {
|
|
93
|
+
cmd = command.toString();
|
|
94
|
+
if (params?.isRawValue !== true && paramsSend) {
|
|
95
|
+
paramsSend = JSON.stringify(paramsSend);
|
|
96
|
+
} else if (params?.isRawValue === true && paramsSend && type.Type.isPlainObject(paramsSend) && paramsSend["value"]) {
|
|
97
|
+
paramsSend = paramsSend["value"];
|
|
98
|
+
}
|
|
99
|
+
const listParams = [
|
|
100
|
+
paramsSend || "",
|
|
101
|
+
keyPromise,
|
|
102
|
+
this.#appFrame.getAppSid()
|
|
103
|
+
];
|
|
104
|
+
cmd += ":" + listParams.filter(Boolean).join(":");
|
|
105
|
+
}
|
|
106
|
+
this.getLogger().debug(`send to ${this.#appFrame.getTargetOrigin()}`, {
|
|
107
|
+
command: command.toString(),
|
|
108
|
+
callbackKey: keyPromise,
|
|
109
|
+
origin: this.#appFrame.getTargetOrigin()
|
|
110
|
+
});
|
|
111
|
+
parent.postMessage(cmd, this.#appFrame.getTargetOrigin());
|
|
112
|
+
if (params?.isSafely) {
|
|
113
|
+
const safelyTime = Number.parseInt(String(params?.safelyTime || 900));
|
|
114
|
+
this.#callbackPromises.get(keyPromise).timeoutId = window.setTimeout(
|
|
115
|
+
() => {
|
|
116
|
+
if (this.#callbackPromises.has(keyPromise)) {
|
|
117
|
+
this.getLogger().warning(`action ${command.toString()} stop by timeout`, {
|
|
118
|
+
command: command.toString(),
|
|
119
|
+
safelyTime
|
|
120
|
+
});
|
|
121
|
+
this.#callbackPromises.delete(keyPromise);
|
|
122
|
+
resolve({ isSafely: true });
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
safelyTime
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Fulfilling a promise based on messages from the parent window
|
|
132
|
+
*
|
|
133
|
+
* @param event
|
|
134
|
+
* @private
|
|
135
|
+
*/
|
|
136
|
+
_runCallback(event) {
|
|
137
|
+
if (event.origin !== this.#appFrame.getTargetOrigin()) {
|
|
138
|
+
if (!this.#rejectedOrigins.has(event.origin)) {
|
|
139
|
+
this.#rejectedOrigins.add(event.origin);
|
|
140
|
+
this.getLogger().warning("message rejected: unexpected origin", {
|
|
141
|
+
origin: event.origin,
|
|
142
|
+
expected: this.#appFrame.getTargetOrigin()
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
if (event.data) {
|
|
148
|
+
const tmp = event.data.split(":");
|
|
149
|
+
const cmd = {
|
|
150
|
+
id: tmp[0],
|
|
151
|
+
args: tmp.slice(1).join(":")
|
|
152
|
+
};
|
|
153
|
+
this.getLogger().debug(`get from ${event.origin}`, {
|
|
154
|
+
id: cmd.id,
|
|
155
|
+
origin: event.origin
|
|
156
|
+
});
|
|
157
|
+
if (cmd.args) {
|
|
158
|
+
cmd.args = JSON.parse(cmd.args);
|
|
159
|
+
}
|
|
160
|
+
if (this.#callbackPromises.has(cmd.id)) {
|
|
161
|
+
const promise = this.#callbackPromises.get(cmd.id);
|
|
162
|
+
if (promise.timeoutId) {
|
|
163
|
+
clearTimeout(promise.timeoutId);
|
|
164
|
+
}
|
|
165
|
+
this.#callbackPromises.delete(cmd.id);
|
|
166
|
+
promise.resolve(cmd.args);
|
|
167
|
+
} else if (this.#callbackSingletone.has(cmd.id)) {
|
|
168
|
+
const callBack = this.#callbackSingletone.get(cmd.id);
|
|
169
|
+
if (callBack) {
|
|
170
|
+
callBack.apply(globalThis, [cmd.args]);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Storing a promise for a message from the parent window
|
|
177
|
+
*
|
|
178
|
+
* @param promiseHandler
|
|
179
|
+
* @private
|
|
180
|
+
*
|
|
181
|
+
* @memo We don't use Symbol here, because we need to pass it to the parent and then find and restore it.
|
|
182
|
+
*/
|
|
183
|
+
#setCallbackPromise(promiseHandler) {
|
|
184
|
+
const key = text.Text.getUniqId();
|
|
185
|
+
this.#callbackPromises.set(key, promiseHandler);
|
|
186
|
+
return key;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
exports.MessageManager = MessageManager;
|
|
191
|
+
//# sourceMappingURL=controller.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.cjs","sources":["../../../../src/frame/message/controller.ts"],"sourcesContent":["import type { MessageCommands } from './commands'\nimport type { AppFrame } from '../frame'\nimport type { LoggerInterface } from '../../logger'\nimport { LoggerFactory } from '../../logger'\nimport { Type } from '../../tools/type'\nimport { Text } from '../../tools/text'\nimport { omit } from '../../tools'\n\ninterface PromiseHandlers {\n resolve: (value: any) => void\n reject: (reason?: any) => void\n timeoutId: any\n}\n\n/**\n * Parent Window Request Parameters\n * - `isRawValue?: boolean` if true then JSON.stringify will not be executed\n * - `isSafely?: boolean` auto completion mode Promise.resolve()\n * - `safelyTime?: number` after what time (900 ms) should it be automatically resolved Promise\n * - `callBack?: () => void` for placement event\n * - `requestId?: string` Unique request identifier for tracking. Used for query deduplication and debugging.\n */\nexport interface SendParams {\n isRawValue?: boolean\n isSafely?: boolean\n safelyTime?: number\n callBack?: (...args: any[]) => void\n requestId?: string\n // @todo add this\n // singleOption: any\n [index: string]: any\n}\n\n/**\n * Parent Window Communication Manager at B24\n */\nexport class MessageManager {\n #appFrame: AppFrame\n #callbackPromises: Map<string, PromiseHandlers>\n #callbackSingletone: Map<string, (...args: any[]) => void>\n // origins already warned about (#244) — dedup so a peer spamming postMessage\n // from a foreign origin can't flood a wired logger sink\n #rejectedOrigins: Set<string> = new Set()\n\n protected _logger: LoggerInterface\n\n private readonly runCallbackHandler: OmitThisParameter<(event: MessageEvent) => void>\n\n constructor(appFrame: AppFrame) {\n this._logger = LoggerFactory.createNullLogger()\n this.#appFrame = appFrame\n\n this.#callbackPromises = new Map()\n this.#callbackSingletone = new Map()\n\n this.runCallbackHandler = this._runCallback.bind(this)\n }\n\n setLogger(logger: LoggerInterface): void {\n this._logger = logger\n }\n\n getLogger(): LoggerInterface {\n return this._logger\n }\n\n // region Events ////\n /**\n * Subscribe to the onMessage event of the parent window\n */\n subscribe() {\n window.addEventListener('message', this.runCallbackHandler)\n }\n\n /**\n * Unsubscribe from the onMessage event of the parent window\n */\n unsubscribe(): void {\n window.removeEventListener('message', this.runCallbackHandler)\n }\n\n // endregion ////\n\n /**\n * Send message to parent window\n * The answer (if) we will get in _runCallback\n *\n * @param command\n * @param params\n */\n async send(\n command: string | MessageCommands,\n params: null | SendParams = null\n ): Promise<any> {\n return new Promise((resolve, reject) => {\n let cmd: string | object\n const promiseHandler: PromiseHandlers = {\n resolve,\n reject,\n timeoutId: null\n }\n\n const keyPromise = this.#setCallbackPromise(promiseHandler)\n let paramsSend: null | string | Record<string, any> = null\n\n const optionsSend = omit(params || {}, ['singleOption', 'callBack', 'isSafely', 'safelyTime', 'requestId'])\n const { callBack, singleOption, requestId } = params || {}\n if (callBack) {\n this.#callbackSingletone.set(keyPromise, callBack)\n }\n\n if (singleOption) {\n paramsSend = singleOption\n } else if (Object.keys(optionsSend).length > 0) {\n paramsSend = { ...optionsSend }\n }\n\n if (command.toString().includes(':')) {\n cmd = {\n method: command.toString(),\n params: paramsSend || '',\n callback: keyPromise,\n appSid: this.#appFrame.getAppSid(),\n requestId\n }\n } else {\n cmd = command.toString()\n\n if (\n params?.isRawValue !== true\n && paramsSend\n ) {\n paramsSend = JSON.stringify(paramsSend)\n } else if (\n params?.isRawValue === true\n && paramsSend\n && Type.isPlainObject(paramsSend)\n && paramsSend['value']\n ) {\n paramsSend = paramsSend['value']\n }\n\n const listParams = [\n paramsSend || '',\n keyPromise,\n this.#appFrame.getAppSid()\n ]\n\n cmd += ':' + listParams.filter(Boolean).join(':')\n }\n\n // Log only the command + callback key, never the assembled `cmd` string:\n // for setAppOption / setUserOption it carries the serialised option\n // `value`, which an app may use to store a credential (#43).\n this.getLogger().debug(`send to ${this.#appFrame.getTargetOrigin()}`, {\n command: command.toString(),\n callbackKey: keyPromise,\n origin: this.#appFrame.getTargetOrigin()\n })\n\n parent.postMessage(cmd, this.#appFrame.getTargetOrigin())\n\n if (params?.isSafely) {\n const safelyTime = Number.parseInt(String(params?.safelyTime || 900))\n this.#callbackPromises.get(keyPromise)!.timeoutId = window.setTimeout(\n () => {\n if (this.#callbackPromises.has(keyPromise)) {\n this.getLogger().warning(`action ${command.toString()} stop by timeout`, {\n command: command.toString(),\n safelyTime\n })\n\n this.#callbackPromises.delete(keyPromise)\n resolve({ isSafely: true })\n }\n },\n safelyTime\n )\n }\n })\n }\n\n /**\n * Fulfilling a promise based on messages from the parent window\n *\n * @param event\n * @private\n */\n public _runCallback(event: MessageEvent): void {\n if (event.origin !== this.#appFrame.getTargetOrigin()) {\n // Surface a message from an unexpected origin (a probe, or a misconfigured\n // parent) — log the origins only, never event.data, which may carry the\n // AUTH_ID / REFRESH_ID a foreign sender must not have echoed back (#244).\n // Log once per distinct origin so a spamming peer can't flood the sink.\n if (!this.#rejectedOrigins.has(event.origin)) {\n this.#rejectedOrigins.add(event.origin)\n this.getLogger().warning('message rejected: unexpected origin', {\n origin: event.origin,\n expected: this.#appFrame.getTargetOrigin()\n })\n }\n\n return\n }\n\n if (event.data) {\n const tmp = event.data.split(':')\n\n const cmd: { id: string, args: any } = {\n id: tmp[0],\n args: tmp.slice(1).join(':')\n }\n\n // Log only the callback id and origin — never `event.data` / `cmd.args`.\n // The inbound message carries the auth tokens (AUTH_ID / REFRESH_ID) for\n // refreshAuth / getInitData responses, embedded in the colon-joined\n // payload as an opaque substring a redactor can't see (#43).\n this.getLogger().debug(`get from ${event.origin}`, {\n id: cmd.id,\n origin: event.origin\n })\n\n if (cmd.args) {\n cmd.args = JSON.parse(cmd.args)\n }\n\n if (this.#callbackPromises.has(cmd.id)) {\n const promise = this.#callbackPromises.get(cmd.id) as PromiseHandlers\n if (promise.timeoutId) {\n clearTimeout(promise.timeoutId)\n }\n\n this.#callbackPromises.delete(cmd.id)\n\n promise.resolve(cmd.args)\n // promise.reject(cmd.args) ////\n } else if (this.#callbackSingletone.has(cmd.id)) {\n const callBack = this.#callbackSingletone.get(cmd.id) as (...args: any[]) => void\n if (callBack) {\n callBack.apply(globalThis, [cmd.args])\n }\n }\n }\n }\n\n /**\n * Storing a promise for a message from the parent window\n *\n * @param promiseHandler\n * @private\n *\n * @memo We don't use Symbol here, because we need to pass it to the parent and then find and restore it.\n */\n #setCallbackPromise(promiseHandler: PromiseHandlers): string {\n const key = Text.getUniqId()\n this.#callbackPromises.set(key, promiseHandler)\n return key\n }\n}\n"],"names":["LoggerFactory","omit","Type","Text"],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
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 commands = require('./message/commands.cjs');
|
|
12
|
+
|
|
13
|
+
var __defProp = Object.defineProperty;
|
|
14
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
15
|
+
class OptionsManager {
|
|
16
|
+
static {
|
|
17
|
+
__name(this, "OptionsManager");
|
|
18
|
+
}
|
|
19
|
+
#messageManager;
|
|
20
|
+
#appOptions = null;
|
|
21
|
+
#userOptions = null;
|
|
22
|
+
constructor(messageManager) {
|
|
23
|
+
this.#messageManager = messageManager;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Initializes the data received from the parent window message.
|
|
27
|
+
* @param data
|
|
28
|
+
*/
|
|
29
|
+
initData(data) {
|
|
30
|
+
if (data.APP_OPTIONS) {
|
|
31
|
+
this.#appOptions = data.APP_OPTIONS;
|
|
32
|
+
}
|
|
33
|
+
if (data.USER_OPTIONS) {
|
|
34
|
+
this.#userOptions = data.USER_OPTIONS;
|
|
35
|
+
}
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Getting application option
|
|
40
|
+
*
|
|
41
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/options/bx24-app-option-get.html
|
|
42
|
+
*/
|
|
43
|
+
appGet(option) {
|
|
44
|
+
if (this.#appOptions && !!this.#appOptions[option]) {
|
|
45
|
+
return this.#appOptions[option];
|
|
46
|
+
}
|
|
47
|
+
throw new Error(`app.option.${option} not set`);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Updates application data through the parent window
|
|
51
|
+
*
|
|
52
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/options/bx24-app-option-set.html
|
|
53
|
+
*/
|
|
54
|
+
async appSet(option, value) {
|
|
55
|
+
if (!this.#appOptions) {
|
|
56
|
+
this.#appOptions = [];
|
|
57
|
+
}
|
|
58
|
+
this.#appOptions[option] = value;
|
|
59
|
+
return this.#sendParentMessage(
|
|
60
|
+
commands.MessageCommands.setAppOption,
|
|
61
|
+
option,
|
|
62
|
+
this.#appOptions[option]
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Getting user option
|
|
67
|
+
*
|
|
68
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/options/bx24-user-option-get.html
|
|
69
|
+
*/
|
|
70
|
+
userGet(option) {
|
|
71
|
+
if (this.#userOptions && !!this.#userOptions[option]) {
|
|
72
|
+
return this.#userOptions[option];
|
|
73
|
+
}
|
|
74
|
+
throw new Error(`user.option.${option} not set`);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Updates user data through the parent window
|
|
78
|
+
*
|
|
79
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/options/bx24-user-option-set.html
|
|
80
|
+
*/
|
|
81
|
+
async userSet(option, value) {
|
|
82
|
+
if (!this.#appOptions) {
|
|
83
|
+
this.#appOptions = [];
|
|
84
|
+
}
|
|
85
|
+
if (!this.#appOptions[option]) {
|
|
86
|
+
this.#appOptions[option] = null;
|
|
87
|
+
}
|
|
88
|
+
this.#userOptions[option] = value;
|
|
89
|
+
return this.#sendParentMessage(
|
|
90
|
+
commands.MessageCommands.setUserOption,
|
|
91
|
+
option,
|
|
92
|
+
// @ts-expect-error this code work success
|
|
93
|
+
this.#userOptions[option]
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
async #sendParentMessage(command, option, value) {
|
|
97
|
+
return this.#messageManager.send(command, {
|
|
98
|
+
name: option,
|
|
99
|
+
value,
|
|
100
|
+
isSafely: true
|
|
101
|
+
}).then(() => {
|
|
102
|
+
return Promise.resolve();
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
exports.OptionsManager = OptionsManager;
|
|
108
|
+
//# sourceMappingURL=options.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.cjs","sources":["../../../src/frame/options.ts"],"sourcesContent":["import type { MessageManager } from './message'\nimport { MessageCommands } from './message'\nimport type { MessageInitData } from '../types/auth'\n\n/**\n * Manager for working with application settings via communication with the parent window\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/options/index.html\n */\nexport class OptionsManager {\n #messageManager: MessageManager\n #appOptions: null | Record<string, any> = null\n #userOptions: null | Record<string, any> = null\n\n constructor(messageManager: MessageManager) {\n this.#messageManager = messageManager\n }\n\n /**\n * Initializes the data received from the parent window message.\n * @param data\n */\n initData(data: MessageInitData): OptionsManager {\n if (data.APP_OPTIONS) {\n this.#appOptions = data.APP_OPTIONS as Record<string, any>\n }\n\n if (data.USER_OPTIONS) {\n this.#userOptions = data.USER_OPTIONS as Record<string, any>\n }\n\n return this\n }\n\n /**\n * Getting application option\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/options/bx24-app-option-get.html\n */\n appGet(option: string): any {\n if (this.#appOptions && !!this.#appOptions[option]) {\n return this.#appOptions[option]\n }\n\n throw new Error(`app.option.${option} not set`)\n }\n\n /**\n * Updates application data through the parent window\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/options/bx24-app-option-set.html\n */\n async appSet(option: string, value: any): Promise<void> {\n if (!this.#appOptions) {\n this.#appOptions = []\n }\n\n this.#appOptions[option] = value\n\n return this.#sendParentMessage(\n MessageCommands.setAppOption,\n option,\n this.#appOptions[option]\n )\n }\n\n /**\n * Getting user option\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/options/bx24-user-option-get.html\n */\n userGet(option: string): any {\n if (this.#userOptions && !!this.#userOptions[option]) {\n return this.#userOptions[option]\n }\n\n throw new Error(`user.option.${option} not set`)\n }\n\n /**\n * Updates user data through the parent window\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/options/bx24-user-option-set.html\n */\n async userSet(option: string, value: any): Promise<void> {\n if (!this.#appOptions) {\n this.#appOptions = []\n }\n\n if (!this.#appOptions[option]) {\n this.#appOptions[option] = null\n }\n\n // @ts-expect-error this code work success\n this.#userOptions[option] = value\n\n return this.#sendParentMessage(\n MessageCommands.setUserOption,\n option,\n // @ts-expect-error this code work success\n this.#userOptions[option]\n )\n }\n\n async #sendParentMessage(\n command: string,\n option: string,\n value: any\n ): Promise<void> {\n return this.#messageManager\n .send(command, {\n name: option,\n value: value,\n isSafely: true\n })\n .then(() => {\n return Promise.resolve()\n })\n }\n}\n"],"names":["MessageCommands"],"mappings":"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"}
|
|
@@ -0,0 +1,259 @@
|
|
|
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 scrollSize = require('../tools/scroll-size.cjs');
|
|
12
|
+
const commands = require('./message/commands.cjs');
|
|
13
|
+
|
|
14
|
+
var __defProp = Object.defineProperty;
|
|
15
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
16
|
+
class ParentManager {
|
|
17
|
+
static {
|
|
18
|
+
__name(this, "ParentManager");
|
|
19
|
+
}
|
|
20
|
+
#messageManager;
|
|
21
|
+
constructor(messageManager) {
|
|
22
|
+
this.#messageManager = messageManager;
|
|
23
|
+
}
|
|
24
|
+
get message() {
|
|
25
|
+
return this.#messageManager;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The method closes the open modal window with the application
|
|
29
|
+
*
|
|
30
|
+
* @return {Promise<void>}
|
|
31
|
+
*
|
|
32
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-close-application.html
|
|
33
|
+
*/
|
|
34
|
+
async closeApplication() {
|
|
35
|
+
return this.#messageManager.send(commands.MessageCommands.closeApplication, {
|
|
36
|
+
/**
|
|
37
|
+
* @memo There is no point - everything will be closed, and timeout will not be able to do anything
|
|
38
|
+
*/
|
|
39
|
+
isSafely: false
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Sets the size of the frame containing the application to the size of the frame's content.
|
|
44
|
+
*
|
|
45
|
+
* @return {Promise<void>}
|
|
46
|
+
*
|
|
47
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-fit-window.html
|
|
48
|
+
*
|
|
49
|
+
* @memo in certain situations it may not be executed (placement of the main window after installing the application), in this case isSafely mode will work
|
|
50
|
+
*/
|
|
51
|
+
async fitWindow() {
|
|
52
|
+
const width = "100%";
|
|
53
|
+
const height = this.getScrollSize().scrollHeight;
|
|
54
|
+
return this.#messageManager.send(commands.MessageCommands.resizeWindow, {
|
|
55
|
+
width,
|
|
56
|
+
height,
|
|
57
|
+
isSafely: true
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Sets the size of the frame containing the application to the size of the frame's content.
|
|
62
|
+
*
|
|
63
|
+
* @param {number} width
|
|
64
|
+
* @param {number} height
|
|
65
|
+
*
|
|
66
|
+
* @return {Promise<void>}
|
|
67
|
+
*
|
|
68
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-resize-window.html
|
|
69
|
+
*
|
|
70
|
+
* @memo in certain situations it may not be executed, in this case isSafely mode will be triggered
|
|
71
|
+
*/
|
|
72
|
+
async resizeWindow(width, height) {
|
|
73
|
+
if (width > 0 && height > 0) {
|
|
74
|
+
return this.#messageManager.send(commands.MessageCommands.resizeWindow, {
|
|
75
|
+
width,
|
|
76
|
+
height,
|
|
77
|
+
isSafely: true
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return Promise.reject(
|
|
81
|
+
new Error(`Wrong width:number = ${width} or height:number = ${height}`)
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Automatically resize `document.body` of frame with application according to frame content dimensions
|
|
86
|
+
* If you pass appNode, the height will be calculated relative to it
|
|
87
|
+
*
|
|
88
|
+
* @param {HTMLElement|null} appNode
|
|
89
|
+
* @param {number} minHeight
|
|
90
|
+
* @param {number} minWidth
|
|
91
|
+
*
|
|
92
|
+
* @return {Promise<void>}
|
|
93
|
+
*/
|
|
94
|
+
async resizeWindowAuto(appNode = null, minHeight = 0, minWidth = 0) {
|
|
95
|
+
const body = document.body;
|
|
96
|
+
let width = Math.max(
|
|
97
|
+
body.scrollWidth,
|
|
98
|
+
body.offsetWidth
|
|
99
|
+
// html.clientWidth,
|
|
100
|
+
// html.scrollWidth,
|
|
101
|
+
// html.offsetWidth
|
|
102
|
+
);
|
|
103
|
+
if (minWidth > 0) {
|
|
104
|
+
width = Math.max(minWidth, width);
|
|
105
|
+
}
|
|
106
|
+
let height = Math.max(
|
|
107
|
+
body.scrollHeight,
|
|
108
|
+
body.offsetHeight
|
|
109
|
+
// html.clientHeight,
|
|
110
|
+
// html.scrollHeight,
|
|
111
|
+
// html.offsetHeight
|
|
112
|
+
);
|
|
113
|
+
if (appNode) {
|
|
114
|
+
height = Math.max(appNode.scrollHeight, appNode.offsetHeight);
|
|
115
|
+
}
|
|
116
|
+
if (minHeight > 0) {
|
|
117
|
+
height = Math.max(minHeight, height);
|
|
118
|
+
}
|
|
119
|
+
return this.resizeWindow(width, height);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* This function returns the inner dimensions of the application frame
|
|
123
|
+
*
|
|
124
|
+
* @return {Promise<{scrollWidth: number; scrollHeight: number}>}
|
|
125
|
+
*
|
|
126
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-get-scroll-size.html
|
|
127
|
+
*/
|
|
128
|
+
getScrollSize() {
|
|
129
|
+
return scrollSize.default();
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Scrolls the parent window
|
|
133
|
+
*
|
|
134
|
+
* @param {number} scroll should specify the vertical scrollbar position (0 - scroll to the very top)
|
|
135
|
+
* @return {Promise<void>}
|
|
136
|
+
*
|
|
137
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-scroll-parent-window.html
|
|
138
|
+
*/
|
|
139
|
+
async scrollParentWindow(scroll) {
|
|
140
|
+
if (!Number.isInteger(scroll)) {
|
|
141
|
+
return Promise.reject(new Error("Wrong scroll number"));
|
|
142
|
+
}
|
|
143
|
+
if (scroll < 0) {
|
|
144
|
+
scroll = 0;
|
|
145
|
+
}
|
|
146
|
+
return this.#messageManager.send(commands.MessageCommands.setScroll, {
|
|
147
|
+
scroll,
|
|
148
|
+
isSafely: true
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Reload the page with the application (the whole page, not just the frame).
|
|
153
|
+
*
|
|
154
|
+
* @return {Promise<void>}
|
|
155
|
+
*
|
|
156
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-reload-window.html
|
|
157
|
+
*/
|
|
158
|
+
async reloadWindow() {
|
|
159
|
+
return this.#messageManager.send(commands.MessageCommands.reloadWindow, {
|
|
160
|
+
isSafely: true
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Sets the in-layout page title (the `#pagetitle` element the portal renders around the app).
|
|
165
|
+
*
|
|
166
|
+
* Does NOT change the browser tab title (`document.title`): the portal applies this command to
|
|
167
|
+
* `#pagetitle`, never to the tab. To set the browser tab title, open the view as a slider via
|
|
168
|
+
* `SliderManager.openSliderAppPage` with a `bx24_title` option.
|
|
169
|
+
*
|
|
170
|
+
* @param {string} title
|
|
171
|
+
*
|
|
172
|
+
* @return {Promise<void>}
|
|
173
|
+
*
|
|
174
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-set-title.html
|
|
175
|
+
*/
|
|
176
|
+
async setTitle(title) {
|
|
177
|
+
return this.#messageManager.send(commands.MessageCommands.setTitle, {
|
|
178
|
+
title: title.toString(),
|
|
179
|
+
isSafely: true
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Initiates a call via internal communication
|
|
184
|
+
*
|
|
185
|
+
* @param {number} userId The identifier of the account user
|
|
186
|
+
* @param {boolean} isVideo true - video call, false - audio call. Optional parameter.
|
|
187
|
+
*
|
|
188
|
+
* @return {Promise<void>}
|
|
189
|
+
*
|
|
190
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-call-to.html
|
|
191
|
+
*/
|
|
192
|
+
async imCallTo(userId, isVideo = true) {
|
|
193
|
+
return this.#messageManager.send(commands.MessageCommands.imCallTo, {
|
|
194
|
+
userId,
|
|
195
|
+
video: isVideo,
|
|
196
|
+
isSafely: true
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Makes a call to the phone number
|
|
201
|
+
*
|
|
202
|
+
* @param {string} phone Phone number. The number can be in the format: `+44 20 1234 5678` or `x (xxx) xxx-xx-xx`
|
|
203
|
+
*
|
|
204
|
+
* @return {Promise<void>}
|
|
205
|
+
*
|
|
206
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-phone-to.html
|
|
207
|
+
*/
|
|
208
|
+
async imPhoneTo(phone) {
|
|
209
|
+
return this.#messageManager.send(commands.MessageCommands.imPhoneTo, {
|
|
210
|
+
phone,
|
|
211
|
+
isSafely: true
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Opens the messenger window
|
|
216
|
+
* userId or chatXXX - chat, where XXX is the chat identifier, which can simply be a number.
|
|
217
|
+
* sgXXX - group chat, where XXX is the social network group number (the chat must be enabled in this group).
|
|
218
|
+
*
|
|
219
|
+
* XXXX** - open line, where XXX is the code obtained via the Rest method imopenlines.network.join.
|
|
220
|
+
*
|
|
221
|
+
* If nothing is passed, the chat interface will open with the last opened dialog.
|
|
222
|
+
*
|
|
223
|
+
* @param {number|`chat${number}`|`sg${number}`|`imol|${number}`|undefined} dialogId
|
|
224
|
+
*
|
|
225
|
+
* @return {Promise<void>}
|
|
226
|
+
*
|
|
227
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-open-messenger.html
|
|
228
|
+
* @link https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=20152&LESSON_PATH=7657.7883.8025.20150.20152
|
|
229
|
+
*
|
|
230
|
+
*/
|
|
231
|
+
async imOpenMessenger(dialogId) {
|
|
232
|
+
return this.#messageManager.send(commands.MessageCommands.imOpenMessenger, {
|
|
233
|
+
dialogId,
|
|
234
|
+
isSafely: true
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Opens the history window
|
|
239
|
+
* Identifier of the dialog:
|
|
240
|
+
*
|
|
241
|
+
* userId or chatXXX - chat, where XXX is the chat identifier, which can simply be a number.
|
|
242
|
+
* imol|XXXX - open line, where XXX is the session number of the open line.
|
|
243
|
+
*
|
|
244
|
+
* @param {number|`chat${number}`|`imol|${number}`} dialogId
|
|
245
|
+
*
|
|
246
|
+
* @return {Promise<void>}
|
|
247
|
+
*
|
|
248
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-open-history.html
|
|
249
|
+
*/
|
|
250
|
+
async imOpenHistory(dialogId) {
|
|
251
|
+
return this.#messageManager.send(commands.MessageCommands.imOpenHistory, {
|
|
252
|
+
dialogId,
|
|
253
|
+
isSafely: true
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
exports.ParentManager = ParentManager;
|
|
259
|
+
//# sourceMappingURL=parent.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parent.cjs","sources":["../../../src/frame/parent.ts"],"sourcesContent":["import type { MessageManager } from './message'\nimport { MessageCommands } from './message'\nimport useScrollSize from '../tools/scroll-size'\n\n/**\n * Parent window manager\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/\n */\nexport class ParentManager {\n #messageManager: MessageManager\n\n constructor(messageManager: MessageManager) {\n this.#messageManager = messageManager\n }\n\n get message(): MessageManager {\n return this.#messageManager\n }\n\n /**\n * The method closes the open modal window with the application\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-close-application.html\n */\n async closeApplication(): Promise<void> {\n return this.#messageManager.send(MessageCommands.closeApplication, {\n /**\n * @memo There is no point - everything will be closed, and timeout will not be able to do anything\n */\n isSafely: false\n })\n }\n\n /**\n * Sets the size of the frame containing the application to the size of the frame's content.\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-fit-window.html\n *\n * @memo in certain situations it may not be executed (placement of the main window after installing the application), in this case isSafely mode will work\n */\n async fitWindow(): Promise<any> {\n const width = '100%'\n const height = this.getScrollSize().scrollHeight\n\n return this.#messageManager.send(MessageCommands.resizeWindow, {\n width,\n height,\n isSafely: true\n })\n }\n\n /**\n * Sets the size of the frame containing the application to the size of the frame's content.\n *\n * @param {number} width\n * @param {number} height\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-resize-window.html\n *\n * @memo in certain situations it may not be executed, in this case isSafely mode will be triggered\n */\n async resizeWindow(width: number, height: number): Promise<void> {\n if (width > 0 && height > 0) {\n return this.#messageManager.send(MessageCommands.resizeWindow, {\n width,\n height,\n isSafely: true\n })\n }\n\n return Promise.reject(\n new Error(`Wrong width:number = ${width} or height:number = ${height}`)\n )\n }\n\n /**\n * Automatically resize `document.body` of frame with application according to frame content dimensions\n * If you pass appNode, the height will be calculated relative to it\n *\n * @param {HTMLElement|null} appNode\n * @param {number} minHeight\n * @param {number} minWidth\n *\n * @return {Promise<void>}\n */\n async resizeWindowAuto(\n appNode: null | HTMLElement = null,\n minHeight: number = 0,\n minWidth: number = 0\n ): Promise<void> {\n const body = document.body\n // const html = document.documentElement\n\n let width = Math.max(\n body.scrollWidth,\n body.offsetWidth\n\n // html.clientWidth,\n // html.scrollWidth,\n // html.offsetWidth\n )\n\n if (minWidth > 0) {\n width = Math.max(minWidth, width)\n }\n\n let height = Math.max(\n body.scrollHeight,\n body.offsetHeight\n\n // html.clientHeight,\n // html.scrollHeight,\n // html.offsetHeight\n )\n\n if (appNode) {\n height = Math.max(appNode.scrollHeight, appNode.offsetHeight)\n }\n\n if (minHeight > 0) {\n height = Math.max(minHeight, height)\n }\n\n return this.resizeWindow(width, height)\n }\n\n /**\n * This function returns the inner dimensions of the application frame\n *\n * @return {Promise<{scrollWidth: number; scrollHeight: number}>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-get-scroll-size.html\n */\n getScrollSize(): {\n scrollWidth: number\n scrollHeight: number\n } {\n return useScrollSize()\n }\n\n /**\n * Scrolls the parent window\n *\n * @param {number} scroll should specify the vertical scrollbar position (0 - scroll to the very top)\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-scroll-parent-window.html\n */\n async scrollParentWindow(scroll: number): Promise<void> {\n if (!Number.isInteger(scroll)) {\n return Promise.reject(new Error('Wrong scroll number'))\n }\n\n if (scroll < 0) {\n scroll = 0\n }\n\n return this.#messageManager.send(MessageCommands.setScroll, {\n scroll,\n isSafely: true\n })\n }\n\n /**\n * Reload the page with the application (the whole page, not just the frame).\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-reload-window.html\n */\n async reloadWindow(): Promise<void> {\n return this.#messageManager.send(MessageCommands.reloadWindow, {\n isSafely: true\n })\n }\n\n /**\n * Sets the in-layout page title (the `#pagetitle` element the portal renders around the app).\n *\n * Does NOT change the browser tab title (`document.title`): the portal applies this command to\n * `#pagetitle`, never to the tab. To set the browser tab title, open the view as a slider via\n * `SliderManager.openSliderAppPage` with a `bx24_title` option.\n *\n * @param {string} title\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-set-title.html\n */\n async setTitle(title: string): Promise<void> {\n return this.#messageManager.send(MessageCommands.setTitle, {\n title: title.toString(),\n isSafely: true\n })\n }\n\n /**\n * Initiates a call via internal communication\n *\n * @param {number} userId The identifier of the account user\n * @param {boolean} isVideo true - video call, false - audio call. Optional parameter.\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-call-to.html\n */\n async imCallTo(userId: number, isVideo: boolean = true): Promise<void> {\n return this.#messageManager.send(MessageCommands.imCallTo, {\n userId,\n video: isVideo,\n isSafely: true\n })\n }\n\n /**\n * Makes a call to the phone number\n *\n * @param {string} phone Phone number. The number can be in the format: `+44 20 1234 5678` or `x (xxx) xxx-xx-xx`\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-phone-to.html\n */\n async imPhoneTo(phone: string): Promise<void> {\n return this.#messageManager.send(MessageCommands.imPhoneTo, {\n phone,\n isSafely: true\n })\n }\n\n /**\n * Opens the messenger window\n * userId or chatXXX - chat, where XXX is the chat identifier, which can simply be a number.\n * sgXXX - group chat, where XXX is the social network group number (the chat must be enabled in this group).\n *\n * XXXX** - open line, where XXX is the code obtained via the Rest method imopenlines.network.join.\n *\n * If nothing is passed, the chat interface will open with the last opened dialog.\n *\n * @param {number|`chat${number}`|`sg${number}`|`imol|${number}`|undefined} dialogId\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-open-messenger.html\n * @link https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=20152&LESSON_PATH=7657.7883.8025.20150.20152\n *\n */\n async imOpenMessenger(\n dialogId:\n | number\n | `chat${number}`\n | `sg${number}`\n | `imol|${number}`\n | undefined\n ): Promise<void> {\n return this.#messageManager.send(MessageCommands.imOpenMessenger, {\n dialogId: dialogId,\n isSafely: true\n })\n }\n\n /**\n * Opens the history window\n * Identifier of the dialog:\n *\n * userId or chatXXX - chat, where XXX is the chat identifier, which can simply be a number.\n * imol|XXXX - open line, where XXX is the session number of the open line.\n *\n * @param {number|`chat${number}`|`imol|${number}`} dialogId\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-open-history.html\n */\n async imOpenHistory(\n dialogId: number | `chat${number}` | `imol|${number}`\n ): Promise<void> {\n return this.#messageManager.send(MessageCommands.imOpenHistory, {\n dialogId: dialogId,\n isSafely: true\n })\n }\n}\n"],"names":["MessageCommands","useScrollSize"],"mappings":"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"}
|