@bitrix24/b24jssdk 1.2.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 +6 -5
- 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 +17 -10
- package/dist/esm/core/actions/v2/call-list.mjs.map +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 +17 -10
- package/dist/esm/core/actions/v2/fetch-list.mjs.map +1 -1
- package/dist/esm/core/actions/v2/manager-v2.mjs +6 -6
- package/dist/esm/core/actions/v2/manager-v2.mjs.map +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 +40 -47
- 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 +34 -44
- 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 +30 -6
- package/dist/esm/core/actions/v3/manager-v3.mjs.map +1 -1
- package/dist/esm/core/http/abstract-http.mjs +96 -21
- 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 +2 -1
- package/dist/esm/core/http/limiters/manager.mjs.map +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 +35 -1
- 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 +3 -3
- package/dist/esm/core/tools/manager.mjs.map +1 -1
- package/dist/esm/core/tools/ping.mjs +1 -1
- package/dist/esm/core/version-manager.mjs +19 -80
- 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 +6 -2
- package/dist/esm/frame/parent.mjs.map +1 -1
- package/dist/esm/frame/placement.mjs +1 -1
- package/dist/esm/frame/slider.mjs +5 -1
- package/dist/esm/frame/slider.mjs.map +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 +501 -49
- package/dist/esm/index.d.ts +501 -49
- 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 +1384 -680
- 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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @package @bitrix24/b24jssdk
|
|
3
|
-
* @version
|
|
3
|
+
* @version 2.0.0
|
|
4
4
|
* @copyright (c) 2026 Bitrix24
|
|
5
5
|
* @license MIT
|
|
6
6
|
* @see https://github.com/bitrix24/b24jssdk
|
|
@@ -9,12 +9,13 @@
|
|
|
9
9
|
import { Type } from '../tools/type.mjs';
|
|
10
10
|
import { Text } from '../tools/text.mjs';
|
|
11
11
|
import { Browser } from '../tools/browser.mjs';
|
|
12
|
+
import { REDACTED_PLACEHOLDER, redactSensitiveUrl, redactSensitiveParams } from '../core/http/redact.mjs';
|
|
12
13
|
import { StorageManager } from './storage-manager.mjs';
|
|
13
14
|
import { JsonRpc } from './json-rpc.mjs';
|
|
14
15
|
import { SharedConfig } from './shared-config.mjs';
|
|
15
16
|
import { ChannelManager } from './channel-manager.mjs';
|
|
16
17
|
import { Receiver, IncomingMessage, RequestBatch, ResponseBatch } from './protobuf/index.mjs';
|
|
17
|
-
import { ConnectionType, PullStatus, CloseReasons,
|
|
18
|
+
import { ConnectionType, PullStatus, CloseReasons, LsKeys, SubscriptionType, RpcMethod, ServerMode, SenderType, SystemCommands } from '../types/pull.mjs';
|
|
18
19
|
import { WebSocketConnector } from './web-socket-connector.mjs';
|
|
19
20
|
import { LongPollingConnector } from './long-polling-connector.mjs';
|
|
20
21
|
import { LoggerFactory } from '../logger/logger-factory.mjs';
|
|
@@ -101,9 +102,15 @@ class PullClient {
|
|
|
101
102
|
_pingWaitTimeout = null;
|
|
102
103
|
// manual stop workaround ////
|
|
103
104
|
_isManualDisconnect = false;
|
|
105
|
+
// set once destroy() has run; gates reconnect / watch / online so a torn-down
|
|
106
|
+
// client never schedules new work (#141) ////
|
|
107
|
+
_disposed = false;
|
|
104
108
|
_loggingEnabled = false;
|
|
105
|
-
// bound event handlers ////
|
|
109
|
+
// bound event handlers, stored so they can be removed in destroy() (#141) ////
|
|
106
110
|
_onPingTimeoutHandler;
|
|
111
|
+
_onBeforeUnloadHandler;
|
|
112
|
+
_onOfflineHandler;
|
|
113
|
+
_onOnlineHandler;
|
|
107
114
|
// [userId] => array of callbacks
|
|
108
115
|
_userStatusCallbacks = {};
|
|
109
116
|
_connectPromise = null;
|
|
@@ -164,6 +171,9 @@ class PullClient {
|
|
|
164
171
|
});
|
|
165
172
|
this._loggingEnabled = this._sharedConfig.isLoggingEnabled();
|
|
166
173
|
this._onPingTimeoutHandler = this.onPingTimeout.bind(this);
|
|
174
|
+
this._onBeforeUnloadHandler = this.onBeforeUnload.bind(this);
|
|
175
|
+
this._onOfflineHandler = this.onOffline.bind(this);
|
|
176
|
+
this._onOnlineHandler = this.onOnline.bind(this);
|
|
167
177
|
}
|
|
168
178
|
setLogger(logger) {
|
|
169
179
|
this._logger = logger;
|
|
@@ -177,11 +187,29 @@ class PullClient {
|
|
|
177
187
|
getLogger() {
|
|
178
188
|
return this._logger;
|
|
179
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Terminal teardown: removes the window listeners, cancels every pending timer,
|
|
192
|
+
* persists the session for a quick re-init, and disconnects. Irreversible — a
|
|
193
|
+
* destroyed client schedules no further work and `start()` rejects with
|
|
194
|
+
* `PULL_DISPOSED`; create a new instance to reconnect.
|
|
195
|
+
*/
|
|
180
196
|
destroy() {
|
|
197
|
+
this._disposed = true;
|
|
181
198
|
this.stop(CloseReasons.NORMAL_CLOSURE, "manual stop");
|
|
182
|
-
|
|
199
|
+
if (typeof window !== "undefined") {
|
|
200
|
+
window.removeEventListener("beforeunload", this._onBeforeUnloadHandler);
|
|
201
|
+
window.removeEventListener("offline", this._onOfflineHandler);
|
|
202
|
+
window.removeEventListener("online", this._onOnlineHandler);
|
|
203
|
+
}
|
|
204
|
+
if (this._storage) {
|
|
205
|
+
this._storage.remove(LsKeys.PullConfig);
|
|
206
|
+
}
|
|
207
|
+
this.persistSession();
|
|
183
208
|
}
|
|
184
209
|
init() {
|
|
210
|
+
if (this._disposed) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
185
213
|
this._connectors.webSocket = new WebSocketConnector({
|
|
186
214
|
parent: this,
|
|
187
215
|
onOpen: this.onWebSocketOpen.bind(this),
|
|
@@ -197,9 +225,11 @@ class PullClient {
|
|
|
197
225
|
onError: this.onLongPollingError.bind(this)
|
|
198
226
|
});
|
|
199
227
|
this._connectionType = this.isWebSocketAllowed() ? ConnectionType.WebSocket : ConnectionType.LongPolling;
|
|
200
|
-
window
|
|
201
|
-
|
|
202
|
-
|
|
228
|
+
if (typeof window !== "undefined") {
|
|
229
|
+
window.addEventListener("beforeunload", this._onBeforeUnloadHandler);
|
|
230
|
+
window.addEventListener("offline", this._onOfflineHandler);
|
|
231
|
+
window.addEventListener("online", this._onOnlineHandler);
|
|
232
|
+
}
|
|
203
233
|
this._jsonRpcAdapter = new JsonRpc({
|
|
204
234
|
connector: this._connectors.webSocket,
|
|
205
235
|
handlers: {
|
|
@@ -351,7 +381,8 @@ class PullClient {
|
|
|
351
381
|
if (this._debug && this._context !== "master") {
|
|
352
382
|
this.getLogger().warning(
|
|
353
383
|
`${Text.getDateForLog()}: Pull.attachCommandHandler: result of handler.getModuleId() is not a string`,
|
|
354
|
-
|
|
384
|
+
// data.params / data.extra are app-defined and may carry a credential key (#43)
|
|
385
|
+
redactSensitiveParams({ data })
|
|
355
386
|
);
|
|
356
387
|
}
|
|
357
388
|
method(data.params, data.extra, data.command);
|
|
@@ -360,9 +391,21 @@ class PullClient {
|
|
|
360
391
|
});
|
|
361
392
|
}
|
|
362
393
|
/**
|
|
394
|
+
* Connects the client and begins receiving events.
|
|
395
|
+
*
|
|
363
396
|
* @param config
|
|
397
|
+
* @throws Rejects with `{ ex: { error: 'PULL_DISPOSED' } }` when called after
|
|
398
|
+
* `destroy()` — a destroyed client cannot be restarted; create a new instance.
|
|
364
399
|
*/
|
|
365
400
|
async start(config = null) {
|
|
401
|
+
if (this._disposed) {
|
|
402
|
+
return Promise.reject({
|
|
403
|
+
ex: {
|
|
404
|
+
error: "PULL_DISPOSED",
|
|
405
|
+
error_description: "PullClient has been destroyed; create a new instance"
|
|
406
|
+
}
|
|
407
|
+
});
|
|
408
|
+
}
|
|
366
409
|
let allowConfigCaching = true;
|
|
367
410
|
if (this.isConnected()) {
|
|
368
411
|
return Promise.resolve(true);
|
|
@@ -429,6 +472,9 @@ class PullClient {
|
|
|
429
472
|
* @param disconnectReason
|
|
430
473
|
*/
|
|
431
474
|
restart(disconnectCode = CloseReasons.NORMAL_CLOSURE, disconnectReason = "manual restart") {
|
|
475
|
+
if (this._disposed) {
|
|
476
|
+
return;
|
|
477
|
+
}
|
|
432
478
|
if (this._restartTimeout) {
|
|
433
479
|
clearTimeout(this._restartTimeout);
|
|
434
480
|
this._restartTimeout = null;
|
|
@@ -471,6 +517,34 @@ class PullClient {
|
|
|
471
517
|
stop(disconnectCode = CloseReasons.NORMAL_CLOSURE, disconnectReason = "manual stop") {
|
|
472
518
|
this.disconnect(disconnectCode, disconnectReason);
|
|
473
519
|
this.stopCheckConfig();
|
|
520
|
+
this.clearAllTimers();
|
|
521
|
+
}
|
|
522
|
+
// Cancel every pending timer so a stopped/destroyed client leaves nothing
|
|
523
|
+
// running. Previously only _checkInterval was cleared, so the other six timers
|
|
524
|
+
// (including the self-rescheduling watch-extend) survived teardown (#141).
|
|
525
|
+
clearAllTimers() {
|
|
526
|
+
for (const timer of [
|
|
527
|
+
this._reconnectTimeout,
|
|
528
|
+
this._restartTimeout,
|
|
529
|
+
this._restoreWebSocketTimeout,
|
|
530
|
+
this._offlineTimeout,
|
|
531
|
+
this._watchUpdateTimeout,
|
|
532
|
+
this._pingWaitTimeout
|
|
533
|
+
]) {
|
|
534
|
+
if (timer) {
|
|
535
|
+
clearTimeout(timer);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
if (this._checkInterval) {
|
|
539
|
+
clearInterval(this._checkInterval);
|
|
540
|
+
}
|
|
541
|
+
this._reconnectTimeout = null;
|
|
542
|
+
this._restartTimeout = null;
|
|
543
|
+
this._restoreWebSocketTimeout = null;
|
|
544
|
+
this._offlineTimeout = null;
|
|
545
|
+
this._watchUpdateTimeout = null;
|
|
546
|
+
this._pingWaitTimeout = null;
|
|
547
|
+
this._checkInterval = null;
|
|
474
548
|
}
|
|
475
549
|
reconnect(disconnectCode, disconnectReason, delay = 1) {
|
|
476
550
|
this.disconnect(disconnectCode, disconnectReason);
|
|
@@ -689,7 +763,10 @@ class PullClient {
|
|
|
689
763
|
let configDump;
|
|
690
764
|
if (this._config && this._config.channels) {
|
|
691
765
|
configDump = {
|
|
692
|
-
|
|
766
|
+
// The private channel id is a subscription secret — mask it here too, not
|
|
767
|
+
// just in `Path` below, so the debug dump never surfaces it (#148). Expiry
|
|
768
|
+
// timestamps are non-sensitive and kept for diagnostics.
|
|
769
|
+
ChannelID: this._config.channels.private?.id ? REDACTED_PLACEHOLDER : "n/a",
|
|
693
770
|
ChannelDie: this._config.channels.private?.end || "n/a",
|
|
694
771
|
ChannelDieShared: this._config.channels.shared?.end || "n/a"
|
|
695
772
|
};
|
|
@@ -706,6 +783,7 @@ class PullClient {
|
|
|
706
783
|
websocketMode = this._connectors.webSocket?.socket?.url.search("binaryMode=true") != -1 ? "protobuf" : "text";
|
|
707
784
|
}
|
|
708
785
|
}
|
|
786
|
+
const connectionPath = this.connector?.connectionPath;
|
|
709
787
|
return {
|
|
710
788
|
"UserId": this._userId + (this._userId > 0 ? "" : "(guest)"),
|
|
711
789
|
"Guest userId": this._guestMode && this._guestUserId !== 0 ? this._guestUserId : "-",
|
|
@@ -717,7 +795,9 @@ class PullClient {
|
|
|
717
795
|
"WebSocket mode": websocketMode,
|
|
718
796
|
"Try connect": this._reconnectTimeout ? "Y" : "N",
|
|
719
797
|
"Try number": this._connectionAttempt,
|
|
720
|
-
|
|
798
|
+
// Mask the push JWT (`token`) and private `CHANNEL_ID`s before exposing
|
|
799
|
+
// the connection path through this developer-facing debug dump (#148).
|
|
800
|
+
"Path": connectionPath ? redactSensitiveUrl(connectionPath, ["CHANNEL_ID"]) : "-",
|
|
721
801
|
...configDump,
|
|
722
802
|
"Last message": this._session.mid || "-",
|
|
723
803
|
"Session history": this._session.history,
|
|
@@ -748,13 +828,10 @@ class PullClient {
|
|
|
748
828
|
params["token"] = this._config?.jwt;
|
|
749
829
|
} else {
|
|
750
830
|
const channels = [];
|
|
751
|
-
if (this._config?.channels?.private) {
|
|
752
|
-
channels.push(this._config.channels.private?.id || "");
|
|
753
|
-
}
|
|
754
|
-
if (this._config?.channels.private?.id) {
|
|
831
|
+
if (this._config?.channels?.private?.id) {
|
|
755
832
|
channels.push(this._config.channels.private.id);
|
|
756
833
|
}
|
|
757
|
-
if (this._config?.channels
|
|
834
|
+
if (this._config?.channels?.shared?.id) {
|
|
758
835
|
channels.push(this._config.channels.shared.id);
|
|
759
836
|
}
|
|
760
837
|
if (channels.length === 0) {
|
|
@@ -1003,7 +1080,8 @@ class PullClient {
|
|
|
1003
1080
|
this.getLogger().warning("PULL ERROR", {
|
|
1004
1081
|
errorType: "broadcastMessages execute error",
|
|
1005
1082
|
errorEvent: error,
|
|
1006
|
-
message
|
|
1083
|
+
// app-defined message.params / extra may carry a credential key (#43)
|
|
1084
|
+
message: redactSensitiveParams(message)
|
|
1007
1085
|
});
|
|
1008
1086
|
}
|
|
1009
1087
|
if (message.extra && message.extra.revision_web) {
|
|
@@ -1233,6 +1311,9 @@ class PullClient {
|
|
|
1233
1311
|
return true;
|
|
1234
1312
|
}
|
|
1235
1313
|
startCheckConfig() {
|
|
1314
|
+
if (this._disposed) {
|
|
1315
|
+
return;
|
|
1316
|
+
}
|
|
1236
1317
|
if (this._checkInterval) {
|
|
1237
1318
|
clearInterval(this._checkInterval);
|
|
1238
1319
|
this._checkInterval = null;
|
|
@@ -1273,7 +1354,7 @@ class PullClient {
|
|
|
1273
1354
|
this.setPublicIds(Object.values(config.publicChannels));
|
|
1274
1355
|
}
|
|
1275
1356
|
this._configTimestamp = Number(config.server.config_timestamp);
|
|
1276
|
-
if (this._storage && allowCaching) {
|
|
1357
|
+
if (this._storage && allowCaching && !this._disposed) {
|
|
1277
1358
|
try {
|
|
1278
1359
|
this._storage.set(LsKeys.PullConfig, config);
|
|
1279
1360
|
} catch (error) {
|
|
@@ -1334,7 +1415,7 @@ class PullClient {
|
|
|
1334
1415
|
* @param connectionDelay
|
|
1335
1416
|
*/
|
|
1336
1417
|
scheduleReconnect(connectionDelay = 0) {
|
|
1337
|
-
if (!this._enabled) {
|
|
1418
|
+
if (this._disposed || !this._enabled) {
|
|
1338
1419
|
return;
|
|
1339
1420
|
}
|
|
1340
1421
|
if (!connectionDelay) {
|
|
@@ -1358,6 +1439,9 @@ class PullClient {
|
|
|
1358
1439
|
}, connectionDelay * 1e3);
|
|
1359
1440
|
}
|
|
1360
1441
|
scheduleRestoreWebSocketConnection() {
|
|
1442
|
+
if (this._disposed) {
|
|
1443
|
+
return;
|
|
1444
|
+
}
|
|
1361
1445
|
this.logToConsole(
|
|
1362
1446
|
`Pull: scheduling restoration of websocket connection in ${RESTORE_WEBSOCKET_TIMEOUT} seconds`
|
|
1363
1447
|
);
|
|
@@ -1373,7 +1457,7 @@ class PullClient {
|
|
|
1373
1457
|
* @returns {Promise}
|
|
1374
1458
|
*/
|
|
1375
1459
|
async connect() {
|
|
1376
|
-
if (!this._enabled) {
|
|
1460
|
+
if (this._disposed || !this._enabled) {
|
|
1377
1461
|
return Promise.reject();
|
|
1378
1462
|
}
|
|
1379
1463
|
if (this.connector?.connected) {
|
|
@@ -1399,6 +1483,9 @@ class PullClient {
|
|
|
1399
1483
|
* @param restartDelay
|
|
1400
1484
|
*/
|
|
1401
1485
|
scheduleRestart(disconnectCode, disconnectReason, restartDelay = 0) {
|
|
1486
|
+
if (this._disposed) {
|
|
1487
|
+
return;
|
|
1488
|
+
}
|
|
1402
1489
|
if (this._restartTimeout) {
|
|
1403
1490
|
clearTimeout(this._restartTimeout);
|
|
1404
1491
|
this._restartTimeout = null;
|
|
@@ -1481,13 +1568,13 @@ class PullClient {
|
|
|
1481
1568
|
if (typeChanel === "private" && this._config?.channels?.private) {
|
|
1482
1569
|
this._config.channels.private = message.params.new_channel;
|
|
1483
1570
|
this.logToConsole(
|
|
1484
|
-
`Pull: new config for ${message.params.channel.type} channel set:
|
|
1571
|
+
`Pull: new config for ${message.params.channel.type} channel set: [updated]`
|
|
1485
1572
|
);
|
|
1486
1573
|
}
|
|
1487
1574
|
if (typeChanel === "shared" && this._config?.channels?.shared) {
|
|
1488
1575
|
this._config.channels.shared = message.params.new_channel;
|
|
1489
1576
|
this.logToConsole(
|
|
1490
|
-
`Pull: new config for ${message.params.channel.type} channel set:
|
|
1577
|
+
`Pull: new config for ${message.params.channel.type} channel set: [updated]`
|
|
1491
1578
|
);
|
|
1492
1579
|
}
|
|
1493
1580
|
this.reconnect(CloseReasons.CONFIG_REPLACED, "config was replaced");
|
|
@@ -1744,7 +1831,10 @@ class PullClient {
|
|
|
1744
1831
|
if (dataArray === null) {
|
|
1745
1832
|
this.getLogger().warning("PULL ERROR", {
|
|
1746
1833
|
errorType: "parseResponse error parsing message",
|
|
1747
|
-
|
|
1834
|
+
// The frame failed the NGINX-delimiter match, so its content is
|
|
1835
|
+
// unparseable anyway and could carry a credential (e.g. a channel
|
|
1836
|
+
// `signature`); log only its size, never the bytes (#43).
|
|
1837
|
+
byteLength: pullEvent.length
|
|
1748
1838
|
});
|
|
1749
1839
|
return [];
|
|
1750
1840
|
}
|
|
@@ -1797,15 +1887,28 @@ class PullClient {
|
|
|
1797
1887
|
// endregion ////
|
|
1798
1888
|
// region Events.Status /////
|
|
1799
1889
|
onOffline() {
|
|
1890
|
+
if (this._disposed) {
|
|
1891
|
+
return;
|
|
1892
|
+
}
|
|
1800
1893
|
this.disconnect(CloseReasons.NORMAL_CLOSURE, "offline");
|
|
1801
1894
|
}
|
|
1802
1895
|
onOnline() {
|
|
1896
|
+
if (this._disposed) {
|
|
1897
|
+
return;
|
|
1898
|
+
}
|
|
1803
1899
|
this.connect().catch((error) => {
|
|
1804
1900
|
this.getLogger().error("onOnline", { error });
|
|
1805
1901
|
});
|
|
1806
1902
|
}
|
|
1807
1903
|
onBeforeUnload() {
|
|
1808
1904
|
this._unloading = true;
|
|
1905
|
+
this.persistSession();
|
|
1906
|
+
this.scheduleReconnect(15);
|
|
1907
|
+
}
|
|
1908
|
+
// Persist the current session (with a short TTL) so a quick reload / re-init can
|
|
1909
|
+
// resume it. Shared by onBeforeUnload and destroy() — destroy() saves WITHOUT
|
|
1910
|
+
// scheduling a reconnect (#141).
|
|
1911
|
+
persistSession() {
|
|
1809
1912
|
const session = Type.clone(this.session);
|
|
1810
1913
|
session.ttl = Date.now() + LS_SESSION_CACHE_TIME * 1e3;
|
|
1811
1914
|
if (this._storage) {
|
|
@@ -1822,7 +1925,6 @@ class PullClient {
|
|
|
1822
1925
|
);
|
|
1823
1926
|
}
|
|
1824
1927
|
}
|
|
1825
|
-
this.scheduleReconnect(15);
|
|
1826
1928
|
}
|
|
1827
1929
|
// endregion ////
|
|
1828
1930
|
// region PullStatus ////
|
|
@@ -1831,6 +1933,9 @@ class PullClient {
|
|
|
1831
1933
|
* @param delay
|
|
1832
1934
|
*/
|
|
1833
1935
|
sendPullStatusDelayed(status, delay) {
|
|
1936
|
+
if (this._disposed) {
|
|
1937
|
+
return;
|
|
1938
|
+
}
|
|
1834
1939
|
if (this._offlineTimeout) {
|
|
1835
1940
|
clearTimeout(this._offlineTimeout);
|
|
1836
1941
|
this._offlineTimeout = null;
|
|
@@ -1876,6 +1981,9 @@ class PullClient {
|
|
|
1876
1981
|
* @param force
|
|
1877
1982
|
*/
|
|
1878
1983
|
updateWatch(force = false) {
|
|
1984
|
+
if (this._disposed) {
|
|
1985
|
+
return;
|
|
1986
|
+
}
|
|
1879
1987
|
if (this._watchUpdateTimeout) {
|
|
1880
1988
|
clearTimeout(this._watchUpdateTimeout);
|
|
1881
1989
|
this._watchUpdateTimeout = null;
|
|
@@ -1916,6 +2024,9 @@ class PullClient {
|
|
|
1916
2024
|
this.connector?.send(JSON_RPC_PONG);
|
|
1917
2025
|
}
|
|
1918
2026
|
updatePingWaitTimeout() {
|
|
2027
|
+
if (this._disposed) {
|
|
2028
|
+
return;
|
|
2029
|
+
}
|
|
1919
2030
|
if (this._pingWaitTimeout) {
|
|
1920
2031
|
clearTimeout(this._pingWaitTimeout);
|
|
1921
2032
|
this._pingWaitTimeout = null;
|
|
@@ -1933,7 +2044,7 @@ class PullClient {
|
|
|
1933
2044
|
}
|
|
1934
2045
|
onPingTimeout() {
|
|
1935
2046
|
this._pingWaitTimeout = null;
|
|
1936
|
-
if (!this._enabled || !this.isConnected()) {
|
|
2047
|
+
if (this._disposed || !this._enabled || !this.isConnected()) {
|
|
1937
2048
|
return;
|
|
1938
2049
|
}
|
|
1939
2050
|
this.getLogger().warning(`No pings are received in ${PING_TIMEOUT * 2} seconds. Reconnecting`);
|
|
@@ -1994,30 +2105,30 @@ class PullClient {
|
|
|
1994
2105
|
if (message.extra?.sender && message.extra.sender.type === SenderType.Client) {
|
|
1995
2106
|
this.getLogger().info(
|
|
1996
2107
|
`onPullClientEvent-${message.module_id}`,
|
|
1997
|
-
{
|
|
2108
|
+
redactSensitiveParams({
|
|
1998
2109
|
command: message.command,
|
|
1999
2110
|
params: message.params,
|
|
2000
2111
|
extra: message.extra
|
|
2001
|
-
}
|
|
2112
|
+
})
|
|
2002
2113
|
);
|
|
2003
2114
|
} else if (message.module_id == "online") {
|
|
2004
2115
|
this.getLogger().info(
|
|
2005
2116
|
`onPullOnlineEvent`,
|
|
2006
|
-
{
|
|
2117
|
+
redactSensitiveParams({
|
|
2007
2118
|
command: message.command,
|
|
2008
2119
|
params: message.params,
|
|
2009
2120
|
extra: message.extra
|
|
2010
|
-
}
|
|
2121
|
+
})
|
|
2011
2122
|
);
|
|
2012
2123
|
} else {
|
|
2013
2124
|
this.getLogger().info(
|
|
2014
2125
|
`onPullEvent`,
|
|
2015
|
-
{
|
|
2126
|
+
redactSensitiveParams({
|
|
2016
2127
|
moduleId: message.module_id,
|
|
2017
2128
|
command: message.command,
|
|
2018
2129
|
params: message.params,
|
|
2019
2130
|
extra: message.extra
|
|
2020
|
-
}
|
|
2131
|
+
})
|
|
2021
2132
|
);
|
|
2022
2133
|
}
|
|
2023
2134
|
}
|