Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

botframework-directlinejs-tmp

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

botframework-directlinejs-tmp - npm Package Compare versions

Comparing version 1.0.8 to 1.1.0

lib/directLineStreaming.d.ts

89

CHANGELOG.md
# Changelog
All notable changes to this project will be documented in this file.

@@ -9,7 +10,7 @@

### Added/Changed/Removed
- Added something, by [@johndoe](https://github.com/johndoe), in PR [#XXX](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/XXX)
- Added something, by [@johndoe](https://github.com/johndoe), in PR [#XXX](https://github.com/microsoft/BotFramework-DirectLineJS/pull/XXX)
### Changed (for dependency bumps)
- `core`: Bumps to [`abc@1.2.3`](https://npmjs.com/package/abc/), in PR [#XXX](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/XXX)
- `core`: Bumps to [`abc@1.2.3`](https://npmjs.com/package/abc/), in PR [#XXX](https://github.com/microsoft/BotFramework-DirectLineJS/pull/XXX)
### Fixed
- Fix [#XXX](https://github.com/Microsoft/BotFramework-DirectLineJS/issues/XXX). Patched something, by [@johndoe](https://github.com/johndoe) in PR [#XXX](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/XXX)
- Fix [#XXX](https://github.com/microsoft/BotFramework-DirectLineJS/issues/XXX). Patched something, by [@johndoe](https://github.com/johndoe) in PR [#XXX](https://github.com/microsoft/BotFramework-DirectLineJS/pull/XXX)
-->

@@ -19,11 +20,38 @@

### Changed
- Update DirectLine to rxjs v6 pipeable operators, PR [#102](https://github.com/microsoft/BotFramework-DirectLineJS/pull/102/files)
## [0.13.0] - 2020-08-17
### Added
- Added `conversationStartProperties` and `locale`, by [@zhiwang](https://github.com/zhiwang), in PR [#293](https://github.com/microsoft/BotFramework-DirectLineJS/pull/293)
### Fixed
- Reverting PR [#171](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/171) and PR [#172](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/172), which caused infinite loop of reconnections, by [@compulim](https://github.com/compulim) in PR [#240](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/240)
- Fixed [#287](https://github.com/microsoft/BotFramework-DirectLineJS/issues/287), removed `x-ms-bot-id` header, by [@swagatmishra2007](https://github.com/swagatmishra2007), in PR [#296](https://github.com/microsoft/BotFramework-DirectLineJS/pull/296)
## [0.11.5] - 2019-09-30
## [0.12.0] - 2020-06-04
### Added
- Added support of Direct Line App Service Extension, by [@ckkashyap](https://github.com/ckkashyap), in PR [#183](https://github.com/microsoft/BotFramework-DirectLineJS/pull/183) and [#274](https://github.com/microsoft/BotFramework-DirectLineJS/pull/274)
- Added support for `Retry-After` header and version information to `x-ms-bot-agent` header, by [@swagatmishra2007](https://github.com/swagatmishra2007), in PR [#247](https://github.com/microsoft/BotFramework-DirectLineJS/pull/247)
- Also improved testability of the package
### Changed
- Update DirectLine to rxjs v6 pipeable operators, PR [#102](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/102/files)
- Lock down on version of dependencies, by [@compulim](https://github.com/compulim), in PR [#280](https://github.com/microsoft/BotFramework-DirectLineJS/pull/280)
- [`rxjs@5.5.10`](https://npmjs.com/package/rxjs)
- This version is selected out of the previous commit of `package-lock.json`
- Bumped [`botframework-streaming@4.9.2`](https://npmjs.com/package/botframework-streaming), by [@compulim](https://github.com/compulim), in PR [#285](https://github.com/microsoft/BotFramework-DirectLineJS/pull/285)
## [0.11.6] - 2019-10-25
### Fixed
- Reverting PR [#171](https://github.com/microsoft/BotFramework-DirectLineJS/pull/171) and PR [#172](https://github.com/microsoft/BotFramework-DirectLineJS/pull/172), which caused infinite loop of reconnections, by [@compulim](https://github.com/compulim) in PR [#240](https://github.com/microsoft/BotFramework-DirectLineJS/pull/240)
## [0.11.5] - 2019-09-30
### Breaking Changes

@@ -41,6 +69,6 @@

### Changed
- Bumped dependencies, by [@compulim](https://github.com/compulim), in PR [#195](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/195)
- Bumped dependencies, by [@compulim](https://github.com/compulim), in PR [#195](https://github.com/microsoft/BotFramework-DirectLineJS/pull/195)
- [`@babel/runtime@7.6.0`](https://npmjs.com/package/@babel/runtime)
- [`rxjs@5.0.3`](https://npmjs.com/package/rxjs)
- Bumped dev dependencies, by [@compulim](https://github.com/compulim), in PR [#195](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/195)
- Bumped dev dependencies, by [@compulim](https://github.com/compulim), in PR [#195](https://github.com/microsoft/BotFramework-DirectLineJS/pull/195)
- [`@babel/cli@7.6.0`](https://npmjs.com/package/@babel/cli)

@@ -76,23 +104,22 @@ - [`@babel/core@7.6.0`](https://npmjs.com/package/@babel/core)

### Added
- Fix [#235](https://github.com/Microsoft/BotFramework-DirectLineJS/issues/235). Added metadata when uploading attachments, including `thumbnailUrl`, by [@compulim](https://github.com/compulim), in PR [#236](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/236)
- Fix [#235](https://github.com/microsoft/BotFramework-DirectLineJS/issues/235). Added metadata when uploading attachments, including `thumbnailUrl`, by [@compulim](https://github.com/compulim), in PR [#236](https://github.com/microsoft/BotFramework-DirectLineJS/pull/236)
### Fixed
- Avoid posting an error on intentional end, by [@orgads](https://github.com/orgads) in PR [#172](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/172)
- Surface Web Socket errors, by [@orgads](https://github.com/orgads) in PR [#171](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/171)
- Avoid posting an error on intentional end, by [@orgads](https://github.com/orgads) in PR [#172](https://github.com/microsoft/BotFramework-DirectLineJS/pull/172)
- Surface Web Socket errors, by [@orgads](https://github.com/orgads) in PR [#171](https://github.com/microsoft/BotFramework-DirectLineJS/pull/171)
## [0.11.4] - 2019-03-04
### Changed
- Change reconnect delay to be a random amount between 3s and 15s, by [@mingweiw](https://github.com/mingweiw) in PR [#164](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/164)
- Change reconnect delay to be a random amount between 3s and 15s, by [@mingweiw](https://github.com/mingweiw) in PR [#164](https://github.com/microsoft/BotFramework-DirectLineJS/pull/164)
### Fixed
- Fix [#160](https://github.com/Microsoft/BotFramework-DirectLineJS/issues/160). Removed warning if `pollingInterval` is `undefined`, by [@compulim](https://github.com/compulim) in PR [#161](https://github.com/Microosft/BotFramework-DirectLineJS/pull/161)
- Fix [#160](https://github.com/microsoft/BotFramework-DirectLineJS/issues/160). Removed warning if `pollingInterval` is `undefined`, by [@compulim](https://github.com/compulim) in PR [#161](https://github.com/Microosft/BotFramework-DirectLineJS/pull/161)
## [0.11.2] - 2019-02-05
### Fixed
- Fixed an issue where `pollingInterval` set to `undefined` would cause high polling rate, by [@cwhitten](https://github.com/cwhitten) and [@compulim](https://github.com/compulim), in PR [#157](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/157)
- Fixed an issue where `pollingInterval` set to `undefined` would cause high polling rate, by [@cwhitten](https://github.com/cwhitten) and [@compulim](https://github.com/compulim), in PR [#157](https://github.com/microsoft/BotFramework-DirectLineJS/pull/157)
### Changed
- Used `@babel/preset-typescript` and `webpack@4` to build, in PR [#156](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/156)
- Used `@babel/preset-typescript` and `webpack@4` to build, in PR [#156](https://github.com/microsoft/BotFramework-DirectLineJS/pull/156)
- Moved to inline source map for pre-bundle

@@ -103,28 +130,28 @@ - Added `.editorconfig` and `.vscode` for new line and tab size rules

### Fixed
- Fixed an issue causing a header to be incorrectly generated. [#153](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/153)
- Fixed an issue causing a header to be incorrectly generated. [#153](https://github.com/microsoft/BotFramework-DirectLineJS/pull/153)
## [0.11.0] - 2019-01-28
### Added
- Added protection against user-given pollingInterval values [#129](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/129)
- Added custom user agent and header [#148](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/148)
- Added protection against user-given pollingInterval values [#129](https://github.com/microsoft/BotFramework-DirectLineJS/pull/129)
- Added custom user agent and header [#148](https://github.com/microsoft/BotFramework-DirectLineJS/pull/148)
### Fixed
- `errorConversationEnded` no longer thrown when calling `DirectLine#end`, by [@orgads](https://github.com/orgads), in PR [#133](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/133)
- `errorConversationEnded` no longer thrown when calling `DirectLine#end`, by [@orgads](https://github.com/orgads), in PR [#133](https://github.com/microsoft/BotFramework-DirectLineJS/pull/133)
## [0.10.2] - 2019-01-09
- Added `messageBack` to `CardActionTypes` and updated `CardAction` fields, by [@corinagum](https://github.com/corinagum), in PR [#138](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/138)
- Expand `CardAction`s with specific types, by [@corinagum](https://github.com/corinagum), in PR [#141](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/141)
- Added `messageBack` to `CardActionTypes` and updated `CardAction` fields, by [@corinagum](https://github.com/corinagum), in PR [#138](https://github.com/microsoft/BotFramework-DirectLineJS/pull/138)
- Expand `CardAction`s with specific types, by [@corinagum](https://github.com/corinagum), in PR [#141](https://github.com/microsoft/BotFramework-DirectLineJS/pull/141)
## [0.10.1] - 2018-12-21
### Changed
- Prevents infinite WebSocket reconnection spam on subsequent token expiration signals [#127](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/127)
- Prevents infinite WebSocket reconnection spam on subsequent token expiration signals [#127](https://github.com/microsoft/BotFramework-DirectLineJS/pull/127)
## [0.10.0] - 2018-10-30
### Added
- Add support for watermark in Web Socket, in [#96](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/96)
- Add support for watermark in Web Socket, in [#96](https://github.com/microsoft/BotFramework-DirectLineJS/pull/96)
### Changed
- Delay before retrying Web Socket, in [#97](https://github.com/Microsoft/BotFramework-WebChat/pull/97)
- Slow down polling on congested traffic, in [#98](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/98)
- Bump dependencies, in [#100](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/100)
- Delay before retrying Web Socket, in [#97](https://github.com/microsoft/BotFramework-WebChat/pull/97)
- Slow down polling on congested traffic, in [#98](https://github.com/microsoft/BotFramework-DirectLineJS/pull/98)
- Bump dependencies, in [#100](https://github.com/microsoft/BotFramework-DirectLineJS/pull/100)
- `deep-extend` from `0.4.2` to `0.5.1`

@@ -135,7 +162,7 @@ - `randomatic` from `1.1.7` to `3.1.0`

### Changed
- Add handling of 403/500 for `getSessionId`, in [#87](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/87)
- Add handling of 403/500 for `getSessionId`, in [#87](https://github.com/microsoft/BotFramework-DirectLineJS/pull/87)
## [0.9.16] - 2018-08-14
### Added
- Added optional `role` to `User` interface, must be either `"bot"`, `"channel"`, or `"user"`, in [#79](https://github.com/Microsoft/BotFramework-DirectLineJS/pull/79)
- Added optional `role` to `User` interface, must be either `"bot"`, `"channel"`, or `"user"`, in [#79](https://github.com/microsoft/BotFramework-DirectLineJS/pull/79)

@@ -145,3 +172,3 @@ ## [0.9.15] - 2018-04-24

- OAuthCard and `getSessionId` in PR #67
- Add OAuthCard ([`c7b8af7`](https://github.com/Microsoft/BotFramework-DirectLineJS/commit/c7b8af7be35685c220f2d777daa96f52d757f53f))
- Add `getSessionId` ([`9c87aa3`](https://github.com/Microsoft/BotFramework-DirectLineJS/commit/9c87aa3f54947ea2fee836b41eec8ec45297a57a), [`9a2b2d8`](https://github.com/Microsoft/BotFramework-DirectLineJS/commit/9a2b2d889af48e558f563758aa01d498b2b2cf49), [`df84d00`](df84d0054f784ae5eb36784ef07a2aa38ca6c95b), [`92cc331`](92cc33138dfbdd533b4d14f6be275d1c86ef8db4))
- Add OAuthCard ([`c7b8af7`](https://github.com/microsoft/BotFramework-DirectLineJS/commit/c7b8af7be35685c220f2d777daa96f52d757f53f))
- Add `getSessionId` ([`9c87aa3`](https://github.com/microsoft/BotFramework-DirectLineJS/commit/9c87aa3f54947ea2fee836b41eec8ec45297a57a), [`9a2b2d8`](https://github.com/microsoft/BotFramework-DirectLineJS/commit/9a2b2d889af48e558f563758aa01d498b2b2cf49), [`df84d00`](df84d0054f784ae5eb36784ef07a2aa38ca6c95b), [`92cc331`](92cc33138dfbdd533b4d14f6be275d1c86ef8db4))

@@ -0,1 +1,3 @@

import 'core-js/features/promise';
import 'url-search-params-polyfill';
import { BehaviorSubject, Observable } from 'rxjs';

@@ -7,2 +9,4 @@ import { Activity, DirectLineOptions, Conversation, IBotConnection } from './directLine';

export * from './directline.enum';
import { DirectLineStreaming } from './directLineStreaming';
export { DirectLineStreaming };
export declare class DirectLine implements IBotConnection {

@@ -23,3 +27,5 @@ connectionStatus$: BehaviorSubject<ConnectionStatus>;

referenceGrammarId: string;
private botIdHeader;
private timeout;
private retries;
private localeOnStartConversation;
private pollingInterval;

@@ -26,0 +32,0 @@ private tokenRefreshSubscription;

@@ -19,2 +19,2 @@ "use strict";

})(ConnectionStatus || (exports.ConnectionStatus = ConnectionStatus = {}));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kaXJlY3RsaW5lLmVudW0udHMiXSwibmFtZXMiOlsiQ29ubmVjdGlvblN0YXR1cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7SUFFWUEsZ0I7OztXQUFBQSxnQjtBQUFBQSxFQUFBQSxnQixDQUFBQSxnQjtBQUFBQSxFQUFBQSxnQixDQUFBQSxnQjtBQUFBQSxFQUFBQSxnQixDQUFBQSxnQjtBQUFBQSxFQUFBQSxnQixDQUFBQSxnQjtBQUFBQSxFQUFBQSxnQixDQUFBQSxnQjtBQUFBQSxFQUFBQSxnQixDQUFBQSxnQjtHQUFBQSxnQixnQ0FBQUEsZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGVzZSB0eXBlcyBhcmUgc3BlY2lmaWMgdG8gdGhpcyBjbGllbnQgbGlicmFyeSwgbm90IHRvIERpcmVjdCBMaW5lIDMuMFxuXG5leHBvcnQgZW51bSBDb25uZWN0aW9uU3RhdHVzIHtcbiAgICBVbmluaXRpYWxpemVkLCAgICAgICAgICAgICAgLy8gdGhlIHN0YXR1cyB3aGVuIHRoZSBEaXJlY3RMaW5lIG9iamVjdCBpcyBmaXJzdCBjcmVhdGVkL2NvbnN0cnVjdGVkXG4gICAgQ29ubmVjdGluZywgICAgICAgICAgICAgICAgIC8vIGN1cnJlbnRseSB0cnlpbmcgdG8gY29ubmVjdCB0byB0aGUgY29udmVyc2F0aW9uXG4gICAgT25saW5lLCAgICAgICAgICAgICAgICAgICAgIC8vIHN1Y2Nlc3NmdWxseSBjb25uZWN0ZWQgdG8gdGhlIGNvbnZlcnN0YWlvbi4gQ29ubmVjdGlvbiBpcyBoZWFsdGh5IHNvIGZhciBhcyB3ZSBrbm93LlxuICAgIEV4cGlyZWRUb2tlbiwgICAgICAgICAgICAgICAvLyBsYXN0IG9wZXJhdGlvbiBlcnJvcmVkIG91dCB3aXRoIGFuIGV4cGlyZWQgdG9rZW4uIFBvc3NpYmx5IHdhaXRpbmcgZm9yIHNvbWVvbmUgdG8gc3VwcGx5IGEgbmV3IG9uZS5cbiAgICBGYWlsZWRUb0Nvbm5lY3QsICAgICAgICAgICAgLy8gdGhlIGluaXRpYWwgYXR0ZW1wdCB0byBjb25uZWN0IHRvIHRoZSBjb252ZXJzYXRpb24gZmFpbGVkLiBObyByZWNvdmVyeSBwb3NzaWJsZS5cbiAgICBFbmRlZCAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGJvdCBlbmRlZCB0aGUgY29udmVyc2F0aW9uXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kaXJlY3RsaW5lLmVudW0udHMiXSwibmFtZXMiOlsiQ29ubmVjdGlvblN0YXR1cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7SUFFWUEsZ0I7OztXQUFBQSxnQjtBQUFBQSxFQUFBQSxnQixDQUFBQSxnQjtBQUFBQSxFQUFBQSxnQixDQUFBQSxnQjtBQUFBQSxFQUFBQSxnQixDQUFBQSxnQjtBQUFBQSxFQUFBQSxnQixDQUFBQSxnQjtBQUFBQSxFQUFBQSxnQixDQUFBQSxnQjtBQUFBQSxFQUFBQSxnQixDQUFBQSxnQjtHQUFBQSxnQixnQ0FBQUEsZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGVzZSB0eXBlcyBhcmUgc3BlY2lmaWMgdG8gdGhpcyBjbGllbnQgbGlicmFyeSwgbm90IHRvIERpcmVjdCBMaW5lIDMuMFxuXG5leHBvcnQgZW51bSBDb25uZWN0aW9uU3RhdHVzIHtcbiAgICBVbmluaXRpYWxpemVkLCAgICAgICAgICAgICAgLy8gdGhlIHN0YXR1cyB3aGVuIHRoZSBEaXJlY3RMaW5lIG9iamVjdCBpcyBmaXJzdCBjcmVhdGVkL2NvbnN0cnVjdGVkXG4gICAgQ29ubmVjdGluZywgICAgICAgICAgICAgICAgIC8vIGN1cnJlbnRseSB0cnlpbmcgdG8gY29ubmVjdCB0byB0aGUgY29udmVyc2F0aW9uXG4gICAgT25saW5lLCAgICAgICAgICAgICAgICAgICAgIC8vIHN1Y2Nlc3NmdWxseSBjb25uZWN0ZWQgdG8gdGhlIGNvbnZlcnNhdGlvbi4gQ29ubmVjdGlvbiBpcyBoZWFsdGh5IHNvIGZhciBhcyB3ZSBrbm93LlxuICAgIEV4cGlyZWRUb2tlbiwgICAgICAgICAgICAgICAvLyBsYXN0IG9wZXJhdGlvbiBlcnJvcmVkIG91dCB3aXRoIGFuIGV4cGlyZWQgdG9rZW4uIFBvc3NpYmx5IHdhaXRpbmcgZm9yIHNvbWVvbmUgdG8gc3VwcGx5IGEgbmV3IG9uZS5cbiAgICBGYWlsZWRUb0Nvbm5lY3QsICAgICAgICAgICAgLy8gdGhlIGluaXRpYWwgYXR0ZW1wdCB0byBjb25uZWN0IHRvIHRoZSBjb252ZXJzYXRpb24gZmFpbGVkLiBObyByZWNvdmVyeSBwb3NzaWJsZS5cbiAgICBFbmRlZCAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGJvdCBlbmRlZCB0aGUgY29udmVyc2F0aW9uXG59XG4iXX0=

@@ -292,3 +292,5 @@ import { BehaviorSubject, Observable, SchedulerLike } from "rxjs";

streamUrl?: string;
timeout?: number;
botAgent?: string;
conversationStartProperties?: any;
}

@@ -295,0 +297,0 @@ export interface IBotConnection {

@@ -25,11 +25,5 @@ import * as DirectLineExport from './directLine';

export declare const mockAjax: (server: Server, customAjax?: ajaxType) => AjaxCreationMethod;
export declare const mockWebSocket: (server: Server) => {
new (url: string, protocols?: string | string[]): WebSocket;
prototype: WebSocket;
readonly CLOSED: number;
readonly CLOSING: number;
readonly CONNECTING: number;
readonly OPEN: number;
};
declare type WebSocketConstructor = typeof WebSocket;
export declare const mockWebSocket: (server: Server) => WebSocketConstructor;
export declare const mockServices: (server: Server, scheduler: TestScheduler) => DirectLineExport.Services;
export {};

@@ -20,2 +20,8 @@ "use strict";

function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
// MOCK helpers

@@ -154,8 +160,7 @@ var notImplemented = function notImplemented() {

var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
var _iterator = _createForOfIteratorHelper(server.conversation.sockets),
_step;
try {
for (var _iterator = server.conversation.sockets[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var socket = _step.value;

@@ -165,14 +170,5 @@ socket.play(_start, _after);

} catch (err) {
_didIteratorError = true;
_iteratorError = err;
_iterator.e(err);
} finally {
try {
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
_iterator["return"]();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
_iterator.f();
}

@@ -251,5 +247,3 @@

return _temp = _class =
/*#__PURE__*/
function () {
return _temp = _class = /*#__PURE__*/function () {
function MockWebSocket(url, protocols) {

@@ -352,2 +346,2 @@ var _this = this;

exports.mockServices = mockServices;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kaXJlY3RMaW5lLm1vY2sudHMiXSwibmFtZXMiOlsibm90SW1wbGVtZW50ZWQiLCJFcnJvciIsIm1vY2tBY3Rpdml0eSIsInRleHQiLCJ0eXBlIiwiZnJvbSIsImlkIiwidG9rZW5QcmVmaXgiLCJtb2NrU2VydmVyIiwic2NoZWR1bGVyIiwiY29udmVyc2F0aW9uIiwic29ja2V0cyIsIlNldCIsImNvbnZlcnNhdGlvbklkIiwiaGlzdG9yeSIsInRva2VuIiwidG9rZW5SZXNwb25zZSIsInNlcnZlciIsInJlcXVlc3QiLCJoZWFkZXJzIiwiYXV0aG9yaXphdGlvbiIsInJlc3BvbnNlIiwic3RhdHVzIiwiaW5qZWN0Q2xvc2UiLCJmb3JFYWNoIiwicyIsIm9uY2xvc2UiLCJDbG9zZUV2ZW50IiwiaW5qZWN0TmV3VG9rZW4iLCJzdWZmaXgiLCJOdW1iZXIiLCJwYXJzZUludCIsInN1YnN0cmluZyIsImxlbmd0aCIsImtleVdhdGVybWFyayIsIm1vY2tBamF4IiwiY3VzdG9tQWpheCIsInVyaUJhc2UiLCJVUkwiLCJjcmVhdGVTdHJlYW1VcmwiLCJ3YXRlcm1hcmsiLCJ1cmkiLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJhcHBlbmQiLCJ0b1N0cmluZyIsInNlYXJjaCIsImpheCIsInVybE9yUmVxdWVzdCIsInVybCIsInBhdGhuYW1lIiwic2VhcmNoUGFyYW1zIiwicGFydHMiLCJzcGxpdCIsInN0cmVhbVVybCIsInJlc3BvbnNlVG9rZW4iLCJhY3Rpdml0eSIsImJvZHkiLCJhZnRlciIsInB1c2giLCJzdGFydCIsInNvY2tldCIsInBsYXkiLCJnZXQiLCJtZXRob2QiLCJPYnNlcnZhYmxlIiwic3Vic2NyaWJlciIsIm5leHQiLCJjb21wbGV0ZSIsImVycm9yIiwicHJvcGVydGllcyIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImdldEpTT04iLCJPYmplY3QiLCJhc3NpZ24iLCJtb2NrV2ViU29ja2V0IiwicHJvdG9jb2xzIiwiV2ViU29ja2V0IiwiQ0xPU0VEIiwiQ0xPU0lORyIsIkNPTk5FQ1RJTkciLCJPUEVOIiwic2NoZWR1bGUiLCJyZWFkeVN0YXRlIiwiYWRkIiwib25vcGVuIiwiRXZlbnQiLCJhY3Rpdml0aWVzIiwic2xpY2UiLCJhY3Rpdml0eUdyb3VwIiwibWVzc2FnZSIsIk1lc3NhZ2VFdmVudCIsImRhdGEiLCJKU09OIiwic3RyaW5naWZ5Iiwib25tZXNzYWdlIiwiY29kZSIsInJlYXNvbiIsIm1vY2tTZXJ2aWNlcyIsImFqYXgiLCJyYW5kb20iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUVBOztBQUlBO0FBRUEsSUFBTUEsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixHQUFhO0FBQUUsUUFBTSxJQUFJQyxLQUFKLENBQVUsaUJBQVYsQ0FBTjtBQUFvQyxDQUExRSxDLENBRUE7OztBQUVPLElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFlLENBQUNDLElBQUQ7QUFBQSxTQUE4QztBQUFFQyxJQUFBQSxJQUFJLEVBQUUsU0FBUjtBQUFtQkMsSUFBQUEsSUFBSSxFQUFFO0FBQUVDLE1BQUFBLEVBQUUsRUFBRTtBQUFOLEtBQXpCO0FBQTJDSCxJQUFBQSxJQUFJLEVBQUpBO0FBQTNDLEdBQTlDO0FBQUEsQ0FBckIsQyxDQUVQOzs7O0FBb0JBLElBQU1JLFdBQVcsR0FBRyxPQUFwQjs7QUFFTyxJQUFNQyxVQUFVLEdBQUcsU0FBYkEsVUFBYSxDQUFDQyxTQUFEO0FBQUEsU0FBdUM7QUFDL0RBLElBQUFBLFNBQVMsRUFBVEEsU0FEK0Q7QUFFL0RDLElBQUFBLFlBQVksRUFBRTtBQUNaQyxNQUFBQSxPQUFPLEVBQUUsSUFBSUMsR0FBSixFQURHO0FBRVpDLE1BQUFBLGNBQWMsRUFBRSxpQkFGSjtBQUdaQyxNQUFBQSxPQUFPLEVBQUUsRUFIRztBQUlaQyxNQUFBQSxLQUFLLEVBQUVSLFdBQVcsR0FBRztBQUpUO0FBRmlELEdBQXZDO0FBQUEsQ0FBbkI7Ozs7QUFVUCxJQUFNUyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENB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LEVBNkQyQyxDQUNuRTtBQTlEd0I7QUFBQTtBQUFBLHlDQWdFTjtBQUFFLGNBQU0sSUFBSTdGLEtBQUosRUFBTjtBQUFvQjtBQWhFaEI7QUFBQTtBQUFBLDRDQWlFSDtBQUFFLGNBQU0sSUFBSUEsS0FBSixFQUFOO0FBQW9CO0FBakVuQjtBQUFBO0FBQUEsc0NBa0VBO0FBQUUsY0FBTSxJQUFJQSxLQUFKLEVBQU47QUFBb0I7QUFsRXRCO0FBQUE7QUFBQSwwREFFVDhFLFNBQVMsQ0FBQ0MsTUFGRCx1REFHUkQsU0FBUyxDQUFDRSxPQUhGLDBEQUlMRixTQUFTLENBQUNHLFVBSkwsb0RBS1hILFNBQVMsQ0FBQ0ksSUFMQztBQUFBLENBQXRCLEMsQ0FxRVA7Ozs7O0FBRU8sSUFBTWlCLFlBQVksR0FBRyxTQUFmQSxZQUFlLENBQUNuRixNQUFELEVBQWlCUixTQUFqQjtBQUFBLFNBQTBFO0FBQ3BHQSxJQUFBQSxTQUFTLEVBQVRBLFNBRG9HO0FBRXBHc0UsSUFBQUEsU0FBUyxFQUFFRixhQUFhLENBQUM1RCxNQUFELENBRjRFO0FBR3BHb0YsSUFBQUEsSUFBSSxFQUFFbEUsUUFBUSxDQUFDbEIsTUFBRCxDQUhzRjtBQUlwR3FGLElBQUFBLE1BQU0sRUFBRTtBQUFBLGFBQU0sQ0FBTjtBQUFBO0FBSjRGLEdBQTFFO0FBQUEsQ0FBckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBEaXJlY3RMaW5lRXhwb3J0IGZyb20gJy4vZGlyZWN0TGluZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZXN0U2NoZWR1bGVyIH0gZnJvbSAncnhqcy90ZXN0aW5nJztcbmltcG9ydCB7IFVSTCwgVVJMU2VhcmNoUGFyYW1zIH0gZnJvbSAndXJsJztcbmltcG9ydCB7IEFqYXhSZXF1ZXN0LCBBamF4UmVzcG9uc2UgfSBmcm9tICdyeGpzL2FqYXgnO1xuaW1wb3J0IHsgQWpheENyZWF0aW9uTWV0aG9kIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2RvbS9BamF4T2JzZXJ2YWJsZSc7XG5cbi8vIE1PQ0sgaGVscGVyc1xuXG5jb25zdCBub3RJbXBsZW1lbnRlZCA9ICgpOiBuZXZlciA9PiB7IHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJykgfTtcblxuLy8gTU9DSyBBY3Rpdml0eVxuXG5leHBvcnQgY29uc3QgbW9ja0FjdGl2aXR5ID0gKHRleHQ6IHN0cmluZyk6IERpcmVjdExpbmVFeHBvcnQuQWN0aXZpdHkgPT4gKHsgdHlwZTogJ21lc3NhZ2UnLCBmcm9tOiB7IGlkOiAnc2VuZGVyJyB9LCB0ZXh0IH0pO1xuXG4vLyBNT0NLIERpcmVjdExpbmUgU2VydmVyIChzaGFyZWQgc3RhdGUgdXNlZCBieSBPYnNlcnZhYmxlLmFqYXggYW5kIFdlYlNvY2tldCBtb2NrcylcblxuaW50ZXJmYWNlIEFjdGl2aXR5U29ja2V0IHtcbiAgcGxheTogKHN0YXJ0OiBudW1iZXIsIGFmdGVyOiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIFNvY2tldCA9IFdlYlNvY2tldCAmIEFjdGl2aXR5U29ja2V0O1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnNhdGlvbiB7XG4gIHNvY2tldHM6IFNldDxTb2NrZXQ+O1xuICBjb252ZXJzYXRpb25JZDogc3RyaW5nO1xuICBoaXN0b3J5OiBBcnJheTxEaXJlY3RMaW5lRXhwb3J0LkFjdGl2aXR5PjtcbiAgdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXIge1xuICBzY2hlZHVsZXI6IFRlc3RTY2hlZHVsZXI7XG4gIGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uO1xufVxuXG5jb25zdCB0b2tlblByZWZpeCA9ICd0b2tlbic7XG5cbmV4cG9ydCBjb25zdCBtb2NrU2VydmVyID0gKHNjaGVkdWxlcjogVGVzdFNjaGVkdWxlcik6IFNlcnZlciA9PiAoe1xuICBzY2hlZHVsZXIsXG4gIGNvbnZlcnNhdGlvbjoge1xuICAgIHNvY2tldHM6IG5ldyBTZXQ8U29ja2V0PigpLFxuICAgIGNvbnZlcnNhdGlvbklkOiAnT25lQ29udmVyc2F0aW9uJyxcbiAgICBoaXN0b3J5OiBbXSxcbiAgICB0b2tlbjogdG9rZW5QcmVmaXggKyAnMScsXG4gIH1cbn0pO1xuXG5jb25zdCB0b2tlblJlc3BvbnNlID0gKHNlcnZlcjogU2VydmVyLCByZXF1ZXN0OiBBamF4UmVxdWVzdCk6IEFqYXhSZXNwb25zZSB8IG51bGwgPT4ge1xuICBjb25zdCB7IGhlYWRlcnMgfSA9IHJlcXVlc3Q7XG4gIGNvbnN0IGF1dGhvcml6YXRpb24gPSBoZWFkZXJzWydBdXRob3JpemF0aW9uJ107XG4gIGlmIChhdXRob3JpemF0aW9uID09PSBgQmVhcmVyICR7c2VydmVyLmNvbnZlcnNhdGlvbi50b2tlbn1gKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCByZXNwb25zZTogUGFydGlhbDxBamF4UmVzcG9uc2U+ID0ge1xuICAgIHN0YXR1czogNDAzLFxuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlIGFzIEFqYXhSZXNwb25zZTtcbn1cblxuZXhwb3J0IGNvbnN0IGluamVjdENsb3NlID0gKHNlcnZlcjogU2VydmVyKTogdm9pZCA9PlxuICBzZXJ2ZXIuY29udmVyc2F0aW9uLnNvY2tldHMuZm9yRWFjaChzID0+IHMub25jbG9zZShuZXcgQ2xvc2VFdmVudCgnY2xvc2UnKSkpO1xuXG5leHBvcnQgY29uc3QgaW5qZWN0TmV3VG9rZW4gPSAoc2VydmVyOiBTZXJ2ZXIpOiB2b2lkID0+IHtcbiAgY29uc3QgeyBjb252ZXJzYXRpb24gfSA9IHNlcnZlcjtcbiAgY29uc3Qgc3VmZml4ID0gTnVtYmVyLnBhcnNlSW50KGNvbnZlcnNhdGlvbi50b2tlbi5zdWJzdHJpbmcodG9rZW5QcmVmaXgubGVuZ3RoKSwgMTApICsgMVxuICBjb252ZXJzYXRpb24udG9rZW4gPSB0b2tlblByZWZpeCArIHN1ZmZpeDtcbn1cblxuY29uc3Qga2V5V2F0ZXJtYXJrID0gJ3dhdGVybWFyayc7XG5cbnR5cGUgYWpheFR5cGUgPSAodXJsT3JSZXF1ZXN0OiBzdHJpbmcgfCBBamF4UmVxdWVzdCkgPT4gQWpheFJlc3BvbnNlO1xuXG4vLyBNT0NLIE9ic2VydmFibGUuYWpheCAodXNlcyBzaGFyZWQgc3RhdGUgaW4gU2VydmVyKVxuXG5leHBvcnQgY29uc3QgbW9ja0FqYXggPSAoc2VydmVyOiBTZXJ2ZXIsIGN1c3RvbUFqYXg/OiBhamF4VHlwZSk6IEFqYXhDcmVhdGlvbk1ldGhvZCA9PiB7XG5cbiAgY29uc3QgdXJpQmFzZSA9IG5ldyBVUkwoJ2h0dHBzOi8vZGlyZWN0bGluZS5ib3RmcmFtZXdvcmsuY29tL3YzL2RpcmVjdGxpbmUvJyk7XG4gIGNvbnN0IGNyZWF0ZVN0cmVhbVVybCA9ICh3YXRlcm1hcms6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gICAgY29uc3QgdXJpID0gbmV3IFVSTCgnY29udmVyc2F0aW9ucy9zdHJlYW0nLCB1cmlCYXNlKTtcbiAgICBpZiAod2F0ZXJtYXJrID4gMCkge1xuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgICAgcGFyYW1zLmFwcGVuZChrZXlXYXRlcm1hcmssIHdhdGVybWFyay50b1N0cmluZygxMCkpO1xuICAgICAgdXJpLnNlYXJjaCA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiB1cmkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGNvbnN0IGpheCA9IGN1c3RvbUFqYXggfHwgKCh1cmxPclJlcXVlc3Q6IHN0cmluZyB8IEFqYXhSZXF1ZXN0KTogQWpheFJlc3BvbnNlID0+IHtcbiAgICBpZiAodHlwZW9mIHVybE9yUmVxdWVzdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgIH1cblxuICAgIGNvbnN0IHVyaSA9IG5ldyBVUkwodXJsT3JSZXF1ZXN0LnVybCk7XG5cbiAgICBjb25zdCB7IHBhdGhuYW1lLCBzZWFyY2hQYXJhbXMgfSA9IHVyaTtcblxuICAgIGNvbnN0IHBhcnRzID0gcGF0aG5hbWUuc3BsaXQoJy8nKTtcblxuICAgIGlmIChwYXJ0c1szXSA9PT0gJ3Rva2VucycgJiYgcGFydHNbNF0gPT09ICdyZWZyZXNoJykge1xuXG4gICAgICBjb25zdCByZXNwb25zZTogUGFydGlhbDxBamF4UmVzcG9uc2U+ID0ge1xuICAgICAgICByZXNwb25zZTogeyB0b2tlbjogc2VydmVyLmNvbnZlcnNhdGlvbi50b2tlbiB9XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gcmVzcG9uc2UgYXMgQWpheFJlc3BvbnNlO1xuICAgIH1cblxuICAgIGlmIChwYXJ0c1szXSAhPT0gJ2NvbnZlcnNhdGlvbnMnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICB9XG5cbiAgICBpZiAocGFydHMubGVuZ3RoID09PSA0KSB7XG4gICAgICBjb25zdCBjb252ZXJzYXRpb246IERpcmVjdExpbmVFeHBvcnQuQ29udmVyc2F0aW9uID0ge1xuICAgICAgICBjb252ZXJzYXRpb25JZDogc2VydmVyLmNvbnZlcnNhdGlvbi5jb252ZXJzYXRpb25JZCxcbiAgICAgICAgdG9rZW46IHNlcnZlci5jb252ZXJzYXRpb24udG9rZW4sXG4gICAgICAgIHN0cmVhbVVybDogY3JlYXRlU3RyZWFtVXJsKDApLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzcG9uc2U6IFBhcnRpYWw8QWpheFJlc3BvbnNlPiA9IHtcbiAgICAgICAgcmVzcG9uc2U6IGNvbnZlcnNhdGlvbixcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3BvbnNlIGFzIEFqYXhSZXNwb25zZTtcbiAgICB9XG5cbiAgICBpZiAocGFydHNbNF0gIT09IHNlcnZlci5jb252ZXJzYXRpb24uY29udmVyc2F0aW9uSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgIH1cblxuICAgIGlmIChwYXJ0c1s1XSA9PT0gJ2FjdGl2aXRpZXMnKSB7XG4gICAgICBjb25zdCByZXNwb25zZVRva2VuID0gdG9rZW5SZXNwb25zZShzZXJ2ZXIsIHVybE9yUmVxdWVzdCk7XG4gICAgICBpZiAocmVzcG9uc2VUb2tlbiAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzcG9uc2VUb2tlbjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYWN0aXZpdHk6IERpcmVjdExpbmVFeHBvcnQuQWN0aXZpdHkgPSB1cmxPclJlcXVlc3QuYm9keTtcblxuICAgICAgY29uc3QgYWZ0ZXIgPSBzZXJ2ZXIuY29udmVyc2F0aW9uLmhpc3RvcnkucHVzaChhY3Rpdml0eSk7XG4gICAgICBjb25zdCBzdGFydCA9IGFmdGVyIC0gMTtcblxuICAgICAgZm9yIChjb25zdCBzb2NrZXQgb2Ygc2VydmVyLmNvbnZlcnNhdGlvbi5zb2NrZXRzKSB7XG4gICAgICAgIHNvY2tldC5wbGF5KHN0YXJ0LCBhZnRlcik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlOiBQYXJ0aWFsPEFqYXhSZXNwb25zZT4gPSB7XG4gICAgICAgIHJlc3BvbnNlOiB7IGlkOiAnbWVzc2FnZUlkJyB9LFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzcG9uc2UgYXMgQWpheFJlc3BvbnNlO1xuICAgIH0gZWxzZSBpZiAocGFydHMubGVuZ3RoID09PSA1KSB7XG4gICAgICBjb25zdCByZXNwb25zZVRva2VuID0gdG9rZW5SZXNwb25zZShzZXJ2ZXIsIHVybE9yUmVxdWVzdCk7XG4gICAgICBpZiAocmVzcG9uc2VUb2tlbiAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzcG9uc2VUb2tlbjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgd2F0ZXJtYXJrID0gc2VhcmNoUGFyYW1zLmdldCgnd2F0ZXJtYXJrJyk7XG4gICAgICBjb25zdCBzdGFydCA9IE51bWJlci5wYXJzZUludCh3YXRlcm1hcmssIDEwKTtcblxuICAgICAgY29uc3QgY29udmVyc2F0aW9uOiBEaXJlY3RMaW5lRXhwb3J0LkNvbnZlcnNhdGlvbiA9IHtcbiAgICAgICAgY29udmVyc2F0aW9uSWQ6IHNlcnZlci5jb252ZXJzYXRpb24uY29udmVyc2F0aW9uSWQsXG4gICAgICAgIHRva2VuOiBzZXJ2ZXIuY29udmVyc2F0aW9uLnRva2VuLFxuICAgICAgICBzdHJlYW1Vcmw6IGNyZWF0ZVN0cmVhbVVybChzdGFydCksXG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXNwb25zZTogUGFydGlhbDxBamF4UmVzcG9uc2U+ID0ge1xuICAgICAgICByZXNwb25zZTogY29udmVyc2F0aW9uLFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzcG9uc2UgYXMgQWpheFJlc3BvbnNlO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcigpO1xuICB9KTtcblxuICBjb25zdCBtZXRob2QgPSAodXJsT3JSZXF1ZXN0OiBzdHJpbmcgfCBBamF4UmVxdWVzdCk6IE9ic2VydmFibGU8QWpheFJlc3BvbnNlPiA9PlxuICAgIG5ldyBPYnNlcnZhYmxlPEFqYXhSZXNwb25zZT4oc3Vic2NyaWJlciA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBzdWJzY3JpYmVyLm5leHQoamF4KHVybE9yUmVxdWVzdCkpO1xuICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICB0eXBlIFZhbHVlVHlwZTxULCBWPiA9IHtcbiAgICBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIFYgPyBUW0tdIDogbmV2ZXI7XG4gIH1cblxuICB0eXBlIFByb3BlcnRpZXMgPSBWYWx1ZVR5cGU8QWpheENyZWF0aW9uTWV0aG9kLCBGdW5jdGlvbj47XG5cbiAgY29uc3QgcHJvcGVydGllczogUHJvcGVydGllcyA9IHtcbiAgICBnZXQ6ICh1cmw6IHN0cmluZywgaGVhZGVycz86IE9iamVjdCk6IE9ic2VydmFibGU8QWpheFJlc3BvbnNlPiA9PiBub3RJbXBsZW1lbnRlZCgpLFxuICAgIHBvc3Q6ICh1cmw6IHN0cmluZywgYm9keT86IGFueSwgaGVhZGVycz86IE9iamVjdCk6IE9ic2VydmFibGU8QWpheFJlc3BvbnNlPiA9PiBub3RJbXBsZW1lbnRlZCgpLFxuICAgIHB1dDogKHVybDogc3RyaW5nLCBib2R5PzogYW55LCBoZWFkZXJzPzogT2JqZWN0KTogT2JzZXJ2YWJsZTxBamF4UmVzcG9uc2U+ID0+IG5vdEltcGxlbWVudGVkKCksXG4gICAgcGF0Y2g6ICh1cmw6IHN0cmluZywgYm9keT86IGFueSwgaGVhZGVycz86IE9iamVjdCk6IE9ic2VydmFibGU8QWpheFJlc3BvbnNlPiA9PiBub3RJbXBsZW1lbnRlZCgpLFxuICAgIGRlbGV0ZTogKHVybDogc3RyaW5nLCBoZWFkZXJzPzogT2JqZWN0KTogT2JzZXJ2YWJsZTxBamF4UmVzcG9uc2U+ID0+IG5vdEltcGxlbWVudGVkKCksXG4gICAgZ2V0SlNPTjogKHVybDogc3RyaW5nLCBoZWFkZXJzPzogT2JqZWN0KSA9PiBub3RJbXBsZW1lbnRlZCgpLFxuICB9O1xuXG4gIHJldHVybiBPYmplY3QuYXNzaWduKG1ldGhvZCwgcHJvcGVydGllcyk7XG59XG5cbi8vIE1PQ0sgV2ViU29ja2V0ICh1c2VzIHNoYXJlZCBzdGF0ZSBpbiBTZXJ2ZXIpXG5cbnR5cGUgV2ViU29ja2V0Q29uc3RydWN0b3IgPSB0eXBlb2YgV2ViU29ja2V0O1xudHlwZSBFdmVudEhhbmRsZXI8RSBleHRlbmRzIEV2ZW50PiA9ICh0aGlzOiBXZWJTb2NrZXQsIGV2OiBFKSA9PiBhbnk7XG5cbmV4cG9ydCBjb25zdCBtb2NrV2ViU29ja2V0ID0gKHNlcnZlcjogU2VydmVyKTogV2ViU29ja2V0Q29uc3RydWN0b3IgPT5cbiAgY2xhc3MgTW9ja1dlYlNvY2tldCBpbXBsZW1lbnRzIFdlYlNvY2tldCwgQWN0aXZpdHlTb2NrZXQge1xuICAgIHN0YXRpYyBDTE9TRUQgPSBXZWJTb2NrZXQuQ0xPU0VEO1xuICAgIHN0YXRpYyBDTE9TSU5HID0gV2ViU29ja2V0LkNMT1NJTkc7XG4gICAgc3RhdGljIENPTk5FQ1RJTkcgPSBXZWJTb2NrZXQuQ09OTkVDVElORztcbiAgICBzdGF0aWMgT1BFTiA9IFdlYlNvY2tldC5PUEVOO1xuXG4gICAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcsIHByb3RvY29scz86IHN0cmluZyB8IHN0cmluZ1tdKSB7XG5cbiAgICAgIHNlcnZlci5zY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlYWR5U3RhdGUgPSBXZWJTb2NrZXQuQ09OTkVDVElORztcbiAgICAgICAgc2VydmVyLmNvbnZlcnNhdGlvbi5zb2NrZXRzLmFkZCh0aGlzKTtcbiAgICAgICAgdGhpcy5vbm9wZW4obmV3IEV2ZW50KCdvcGVuJykpO1xuICAgICAgICB0aGlzLnJlYWR5U3RhdGUgPSBXZWJTb2NrZXQuT1BFTjtcbiAgICAgICAgY29uc3QgdXJpID0gbmV3IFVSTCh1cmwpO1xuICAgICAgICBjb25zdCB3YXRlcm1hcmsgPSB1cmkuc2VhcmNoUGFyYW1zLmdldChrZXlXYXRlcm1hcmspXG4gICAgICAgIGlmICh3YXRlcm1hcmsgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBzdGFydCA9IE51bWJlci5wYXJzZUludCh3YXRlcm1hcmssIDEwKTtcbiAgICAgICAgICB0aGlzLnBsYXkoc3RhcnQsIHNlcnZlci5jb252ZXJzYXRpb24uaGlzdG9yeS5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBiaW5hcnlUeXBlOiBCaW5hcnlUeXBlID0gJ2FycmF5YnVmZmVyJztcbiAgICByZWFkb25seSBidWZmZXJlZEFtb3VudDogbnVtYmVyID0gMDtcbiAgICByZWFkb25seSBleHRlbnNpb25zOiBzdHJpbmcgPSAnJztcbiAgICByZWFkb25seSBwcm90b2NvbDogc3RyaW5nID0gJ2h0dHBzJztcbiAgICByZWFkeVN0YXRlOiBudW1iZXIgPSBXZWJTb2NrZXQuQ0xPU0VEO1xuICAgIHJlYWRvbmx5IHVybDogc3RyaW5nID0gJyc7XG4gICAgcmVhZG9ubHkgQ0xPU0VEOiBudW1iZXIgPSBXZWJTb2NrZXQuQ0xPU0VEO1xuICAgIHJlYWRvbmx5IENMT1NJTkc6IG51bWJlciA9IFdlYlNvY2tldC5DTE9TSU5HO1xuICAgIHJlYWRvbmx5IENPTk5FQ1RJTkc6IG51bWJlciA9IFdlYlNvY2tldC5DT05ORUNUSU5HO1xuICAgIHJlYWRvbmx5IE9QRU46IG51bWJlciA9IFdlYlNvY2tldC5PUEVOO1xuXG4gICAgb25jbG9zZTogRXZlbnRIYW5kbGVyPENsb3NlRXZlbnQ+O1xuICAgIG9uZXJyb3I6IEV2ZW50SGFuZGxlcjxFdmVudD47XG4gICAgb25tZXNzYWdlOiBFdmVudEhhbmRsZXI8TWVzc2FnZUV2ZW50PjtcbiAgICBvbm9wZW46IEV2ZW50SGFuZGxlcjxFdmVudD47XG5cbiAgICBwbGF5KHN0YXJ0OiBudW1iZXIsIGFmdGVyOiBudW1iZXIpIHtcblxuICAgICAgY29uc3QgeyBjb252ZXJzYXRpb246IHsgaGlzdG9yeSB9IH0gPSBzZXJ2ZXI7XG4gICAgICBjb25zdCBhY3Rpdml0aWVzID0gaGlzdG9yeS5zbGljZShzdGFydCwgYWZ0ZXIpO1xuICAgICAgY29uc3Qgd2F0ZXJtYXJrID0gaGlzdG9yeS5sZW5ndGgudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IGFjdGl2aXR5R3JvdXA6IERpcmVjdExpbmVFeHBvcnQuQWN0aXZpdHlHcm91cCA9IHtcbiAgICAgICAgYWN0aXZpdGllcyxcbiAgICAgICAgd2F0ZXJtYXJrLFxuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IE1lc3NhZ2VFdmVudCgndHlwZScsIHsgZGF0YTogSlNPTi5zdHJpbmdpZnkoYWN0aXZpdHlHcm91cCkgfSk7XG5cbiAgICAgIHRoaXMub25tZXNzYWdlKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGNsb3NlKGNvZGU/OiBudW1iZXIsIHJlYXNvbj86IHN0cmluZyk6IHZvaWQge1xuICAgICAgdGhpcy5yZWFkeVN0YXRlID0gV2ViU29ja2V0LkNMT1NJTkc7XG4gICAgICB0aGlzLm9uY2xvc2UobmV3IENsb3NlRXZlbnQoJ2Nsb3NlJykpXG4gICAgICBzZXJ2ZXIuY29udmVyc2F0aW9uLnNvY2tldHMuZGVsZXRlKHRoaXMpO1xuICAgICAgdGhpcy5yZWFkeVN0YXRlID0gV2ViU29ja2V0LkNMT1NFRDtcbiAgICB9XG5cbiAgICBzZW5kKGRhdGE6IHN0cmluZyB8IEFycmF5QnVmZmVyTGlrZSB8IEJsb2IgfCBBcnJheUJ1ZmZlclZpZXcpOiB2b2lkIHtcbiAgICB9XG5cbiAgICBhZGRFdmVudExpc3RlbmVyKCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfVxuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIoKSB7IHRocm93IG5ldyBFcnJvcigpOyB9XG4gICAgZGlzcGF0Y2hFdmVudCgpOiBib29sZWFuIHsgdGhyb3cgbmV3IEVycm9yKCk7IH1cbiAgfTtcblxuLy8gTU9DSyBzZXJ2aWNlcyAodG9wLWxldmVsIGFnZ3JlZ2F0aW9uIG9mIGFsbCBtb2NrcylcblxuZXhwb3J0IGNvbnN0IG1vY2tTZXJ2aWNlcyA9IChzZXJ2ZXI6IFNlcnZlciwgc2NoZWR1bGVyOiBUZXN0U2NoZWR1bGVyKTogRGlyZWN0TGluZUV4cG9ydC5TZXJ2aWNlcyA9PiAoe1xuICBzY2hlZHVsZXIsXG4gIFdlYlNvY2tldDogbW9ja1dlYlNvY2tldChzZXJ2ZXIpLFxuICBhamF4OiBtb2NrQWpheChzZXJ2ZXIpLFxuICByYW5kb206ICgpID0+IDAsXG59KTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kaXJlY3RMaW5lLm1vY2sudHMiXSwibmFtZXMiOlsibm90SW1wbGVtZW50ZWQiLCJFcnJvciIsIm1vY2tBY3Rpdml0eSIsInRleHQiLCJ0eXBlIiwiZnJvbSIsImlkIiwidG9rZW5QcmVmaXgiLCJtb2NrU2VydmVyIiwic2NoZWR1bGVyIiwiY29udmVyc2F0aW9uIiwic29ja2V0cyIsIlNldCIsImNvbnZlcnNhdGlvbklkIiwiaGlzdG9yeSIsInRva2VuIiwidG9rZW5SZXNwb25zZSIsInNlcnZlciIsInJlcXVlc3QiLCJoZWFkZXJzIiwiYXV0aG9yaXphdGlvbiIsInJlc3BvbnNlIiwic3RhdHVzIiwiaW5qZWN0Q2xvc2UiLCJmb3JFYWNoIiwicyIsIm9uY2xvc2UiLCJDbG9zZUV2ZW50IiwiaW5qZWN0TmV3VG9rZW4iLCJzdWZmaXgiLCJOdW1iZXIiLCJwYXJzZUludCIsInN1YnN0cmluZyIsImxlbmd0aCIsImtleVdhdGVybWFyayIsIm1vY2tBamF4IiwiY3VzdG9tQWpheCIsInVyaUJhc2UiLCJVUkwiLCJjcmVhdGVTdHJlYW1VcmwiLCJ3YXRlcm1hcmsiLCJ1cmkiLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJhcHBlbmQiLCJ0b1N0cmluZyIsInNlYXJjaCIsImpheCIsInVybE9yUmVxdWVzdCIsInVybCIsInBhdGhuYW1lIiwic2VhcmNoUGFyYW1zIiwicGFydHMiLCJzcGxpdCIsInN0cmVhbVVybCIsInJlc3BvbnNlVG9rZW4iLCJhY3Rpdml0eSIsImJvZHkiLCJhZnRlciIsInB1c2giLCJzdGFydCIsInNvY2tldCIsInBsYXkiLCJnZXQiLCJtZXRob2QiLCJPYnNlcnZhYmxlIiwic3Vic2NyaWJlciIsIm5leHQiLCJjb21wbGV0ZSIsImVycm9yIiwicHJvcGVydGllcyIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImdldEpTT04iLCJPYmplY3QiLCJhc3NpZ24iLCJtb2NrV2ViU29ja2V0IiwicHJvdG9jb2xzIiwiV2ViU29ja2V0IiwiQ0xPU0VEIiwiQ0xPU0lORyIsIkNPTk5FQ1RJTkciLCJPUEVOIiwic2NoZWR1bGUiLCJyZWFkeVN0YXRlIiwiYWRkIiwib25vcGVuIiwiRXZlbnQiLCJhY3Rpdml0aWVzIiwic2xpY2UiLCJhY3Rpdml0eUdyb3VwIiwibWVzc2FnZSIsIk1lc3NhZ2VFdmVudCIsImRhdGEiLCJKU09OIiwic3RyaW5naWZ5Iiwib25tZXNzYWdlIiwiY29kZSIsInJlYXNvbiIsIm1vY2tTZXJ2aWNlcyIsImFqYXgiLCJyYW5kb20iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUVBOzs7Ozs7OztBQUlBO0FBRUEsSUFBTUEsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixHQUFhO0FBQUUsUUFBTSxJQUFJQyxLQUFKLENBQVUsaUJBQVYsQ0FBTjtBQUFvQyxDQUExRSxDLENBRUE7OztBQUVPLElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFlLENBQUNDLElBQUQ7QUFBQSxTQUE4QztBQUFFQyxJQUFBQSxJQUFJLEVBQUUsU0FBUjtBQUFtQkMsSUFBQUEsSUFBSSxFQUFFO0FBQUVDLE1BQUFBLEVBQUUsRUFBRTtBQUFOLEtBQXpCO0FBQTJDSCxJQUFBQSxJQUFJLEVBQUpBO0FBQTNDLEdBQTlDO0FBQUEsQ0FBckIsQyxDQUVQOzs7O0FBb0JBLElBQU1JLFdBQVcsR0FBRyxPQUFwQjs7QUFFTyxJQUFNQyxVQUFVLEdBQUcsU0FBYkEsVUFBYSxDQUFDQyxTQUFEO0FBQUEsU0FBdUM7QUFDL0RBLElBQUFBLFNBQVMsRUFBVEEsU0FEK0Q7QUFFL0RDLElBQUFBLFlBQVksRUFBRTtBQUNaQyxNQUFBQSxPQUFPLEVBQUUsSUFBSUMsR0FBSixFQURHO0FBRVpDLE1BQUFBLGNBQWMsRUFBRSxpQkFGSjtBQUdaQyxNQUFBQSxPQUFPLEVBQUUsRUFIRztBQUlaQyxNQUFBQSxLQUFLLEVBQUVSLFdBQVcsR0FBRztBQUpUO0FBRmlELEdBQXZDO0FBQUEsQ0FBbkI7Ozs7QUFVUCxJQUFNUyxhQUFhLEdBQUcsU0FBaEJBLGFB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QUFKLEVBQU47QUFBb0I7QUEzRGhCO0FBQUE7QUFBQSw0Q0E0REg7QUFBRSxjQUFNLElBQUlBLEtBQUosRUFBTjtBQUFvQjtBQTVEbkI7QUFBQTtBQUFBLHNDQTZEQTtBQUFFLGNBQU0sSUFBSUEsS0FBSixFQUFOO0FBQW9CO0FBN0R0QjtBQUFBO0FBQUEsMERBK0RUOEUsU0FBUyxDQUFDQyxNQS9ERCx1REFnRVJELFNBQVMsQ0FBQ0UsT0FoRUYsMERBaUVMRixTQUFTLENBQUNHLFVBakVMLG9EQWtFWEgsU0FBUyxDQUFDSSxJQWxFQztBQUFBLENBQXRCLEMsQ0FxRVA7Ozs7O0FBRU8sSUFBTWlCLFlBQVksR0FBRyxTQUFmQSxZQUFlLENBQUNuRixNQUFELEVBQWlCUixTQUFqQjtBQUFBLFNBQTBFO0FBQ3BHQSxJQUFBQSxTQUFTLEVBQVRBLFNBRG9HO0FBRXBHc0UsSUFBQUEsU0FBUyxFQUFFRixhQUFhLENBQUM1RCxNQUFELENBRjRFO0FBR3BHb0YsSUFBQUEsSUFBSSxFQUFFbEUsUUFBUSxDQUFDbEIsTUFBRCxDQUhzRjtBQUlwR3FGLElBQUFBLE1BQU0sRUFBRTtBQUFBLGFBQU0sQ0FBTjtBQUFBO0FBSjRGLEdBQTFFO0FBQUEsQ0FBckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBEaXJlY3RMaW5lRXhwb3J0IGZyb20gJy4vZGlyZWN0TGluZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZXN0U2NoZWR1bGVyIH0gZnJvbSAncnhqcy90ZXN0aW5nJztcbmltcG9ydCB7IFVSTCwgVVJMU2VhcmNoUGFyYW1zIH0gZnJvbSAndXJsJztcbmltcG9ydCB7IEFqYXhSZXF1ZXN0LCBBamF4UmVzcG9uc2UgfSBmcm9tICdyeGpzL2FqYXgnO1xuaW1wb3J0IHsgQWpheENyZWF0aW9uTWV0aG9kIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2RvbS9BamF4T2JzZXJ2YWJsZSc7XG5cbi8vIE1PQ0sgaGVscGVyc1xuXG5jb25zdCBub3RJbXBsZW1lbnRlZCA9ICgpOiBuZXZlciA9PiB7IHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJykgfTtcblxuLy8gTU9DSyBBY3Rpdml0eVxuXG5leHBvcnQgY29uc3QgbW9ja0FjdGl2aXR5ID0gKHRleHQ6IHN0cmluZyk6IERpcmVjdExpbmVFeHBvcnQuQWN0aXZpdHkgPT4gKHsgdHlwZTogJ21lc3NhZ2UnLCBmcm9tOiB7IGlkOiAnc2VuZGVyJyB9LCB0ZXh0IH0pO1xuXG4vLyBNT0NLIERpcmVjdExpbmUgU2VydmVyIChzaGFyZWQgc3RhdGUgdXNlZCBieSBPYnNlcnZhYmxlLmFqYXggYW5kIFdlYlNvY2tldCBtb2NrcylcblxuaW50ZXJmYWNlIEFjdGl2aXR5U29ja2V0IHtcbiAgcGxheTogKHN0YXJ0OiBudW1iZXIsIGFmdGVyOiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIFNvY2tldCA9IFdlYlNvY2tldCAmIEFjdGl2aXR5U29ja2V0O1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnNhdGlvbiB7XG4gIHNvY2tldHM6IFNldDxTb2NrZXQ+O1xuICBjb252ZXJzYXRpb25JZDogc3RyaW5nO1xuICBoaXN0b3J5OiBBcnJheTxEaXJlY3RMaW5lRXhwb3J0LkFjdGl2aXR5PjtcbiAgdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXIge1xuICBzY2hlZHVsZXI6IFRlc3RTY2hlZHVsZXI7XG4gIGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uO1xufVxuXG5jb25zdCB0b2tlblByZWZpeCA9ICd0b2tlbic7XG5cbmV4cG9ydCBjb25zdCBtb2NrU2VydmVyID0gKHNjaGVkdWxlcjogVGVzdFNjaGVkdWxlcik6IFNlcnZlciA9PiAoe1xuICBzY2hlZHVsZXIsXG4gIGNvbnZlcnNhdGlvbjoge1xuICAgIHNvY2tldHM6IG5ldyBTZXQ8U29ja2V0PigpLFxuICAgIGNvbnZlcnNhdGlvbklkOiAnT25lQ29udmVyc2F0aW9uJyxcbiAgICBoaXN0b3J5OiBbXSxcbiAgICB0b2tlbjogdG9rZW5QcmVmaXggKyAnMScsXG4gIH1cbn0pO1xuXG5jb25zdCB0b2tlblJlc3BvbnNlID0gKHNlcnZlcjogU2VydmVyLCByZXF1ZXN0OiBBamF4UmVxdWVzdCk6IEFqYXhSZXNwb25zZSB8IG51bGwgPT4ge1xuICBjb25zdCB7IGhlYWRlcnMgfSA9IHJlcXVlc3Q7XG4gIGNvbnN0IGF1dGhvcml6YXRpb24gPSBoZWFkZXJzWydBdXRob3JpemF0aW9uJ107XG4gIGlmIChhdXRob3JpemF0aW9uID09PSBgQmVhcmVyICR7c2VydmVyLmNvbnZlcnNhdGlvbi50b2tlbn1gKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCByZXNwb25zZTogUGFydGlhbDxBamF4UmVzcG9uc2U+ID0ge1xuICAgIHN0YXR1czogNDAzLFxuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlIGFzIEFqYXhSZXNwb25zZTtcbn1cblxuZXhwb3J0IGNvbnN0IGluamVjdENsb3NlID0gKHNlcnZlcjogU2VydmVyKTogdm9pZCA9PlxuICBzZXJ2ZXIuY29udmVyc2F0aW9uLnNvY2tldHMuZm9yRWFjaChzID0+IHMub25jbG9zZShuZXcgQ2xvc2VFdmVudCgnY2xvc2UnKSkpO1xuXG5leHBvcnQgY29uc3QgaW5qZWN0TmV3VG9rZW4gPSAoc2VydmVyOiBTZXJ2ZXIpOiB2b2lkID0+IHtcbiAgY29uc3QgeyBjb252ZXJzYXRpb24gfSA9IHNlcnZlcjtcbiAgY29uc3Qgc3VmZml4ID0gTnVtYmVyLnBhcnNlSW50KGNvbnZlcnNhdGlvbi50b2tlbi5zdWJzdHJpbmcodG9rZW5QcmVmaXgubGVuZ3RoKSwgMTApICsgMVxuICBjb252ZXJzYXRpb24udG9rZW4gPSB0b2tlblByZWZpeCArIHN1ZmZpeDtcbn1cblxuY29uc3Qga2V5V2F0ZXJtYXJrID0gJ3dhdGVybWFyayc7XG5cbnR5cGUgYWpheFR5cGUgPSAodXJsT3JSZXF1ZXN0OiBzdHJpbmcgfCBBamF4UmVxdWVzdCkgPT4gQWpheFJlc3BvbnNlO1xuXG4vLyBNT0NLIE9ic2VydmFibGUuYWpheCAodXNlcyBzaGFyZWQgc3RhdGUgaW4gU2VydmVyKVxuXG5leHBvcnQgY29uc3QgbW9ja0FqYXggPSAoc2VydmVyOiBTZXJ2ZXIsIGN1c3RvbUFqYXg/OiBhamF4VHlwZSk6IEFqYXhDcmVhdGlvbk1ldGhvZCA9PiB7XG5cbiAgY29uc3QgdXJpQmFzZSA9IG5ldyBVUkwoJ2h0dHBzOi8vZGlyZWN0bGluZS5ib3RmcmFtZXdvcmsuY29tL3YzL2RpcmVjdGxpbmUvJyk7XG4gIGNvbnN0IGNyZWF0ZVN0cmVhbVVybCA9ICh3YXRlcm1hcms6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gICAgY29uc3QgdXJpID0gbmV3IFVSTCgnY29udmVyc2F0aW9ucy9zdHJlYW0nLCB1cmlCYXNlKTtcbiAgICBpZiAod2F0ZXJtYXJrID4gMCkge1xuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgICAgcGFyYW1zLmFwcGVuZChrZXlXYXRlcm1hcmssIHdhdGVybWFyay50b1N0cmluZygxMCkpO1xuICAgICAgdXJpLnNlYXJjaCA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiB1cmkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGNvbnN0IGpheCA9IGN1c3RvbUFqYXggfHwgKCh1cmxPclJlcXVlc3Q6IHN0cmluZyB8IEFqYXhSZXF1ZXN0KTogQWpheFJlc3BvbnNlID0+IHtcbiAgICBpZiAodHlwZW9mIHVybE9yUmVxdWVzdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgIH1cblxuICAgIGNvbnN0IHVyaSA9IG5ldyBVUkwodXJsT3JSZXF1ZXN0LnVybCk7XG5cbiAgICBjb25zdCB7IHBhdGhuYW1lLCBzZWFyY2hQYXJhbXMgfSA9IHVyaTtcblxuICAgIGNvbnN0IHBhcnRzID0gcGF0aG5hbWUuc3BsaXQoJy8nKTtcblxuICAgIGlmIChwYXJ0c1szXSA9PT0gJ3Rva2VucycgJiYgcGFydHNbNF0gPT09ICdyZWZyZXNoJykge1xuXG4gICAgICBjb25zdCByZXNwb25zZTogUGFydGlhbDxBamF4UmVzcG9uc2U+ID0ge1xuICAgICAgICByZXNwb25zZTogeyB0b2tlbjogc2VydmVyLmNvbnZlcnNhdGlvbi50b2tlbiB9XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gcmVzcG9uc2UgYXMgQWpheFJlc3BvbnNlO1xuICAgIH1cblxuICAgIGlmIChwYXJ0c1szXSAhPT0gJ2NvbnZlcnNhdGlvbnMnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICB9XG5cbiAgICBpZiAocGFydHMubGVuZ3RoID09PSA0KSB7XG4gICAgICBjb25zdCBjb252ZXJzYXRpb246IERpcmVjdExpbmVFeHBvcnQuQ29udmVyc2F0aW9uID0ge1xuICAgICAgICBjb252ZXJzYXRpb25JZDogc2VydmVyLmNvbnZlcnNhdGlvbi5jb252ZXJzYXRpb25JZCxcbiAgICAgICAgdG9rZW46IHNlcnZlci5jb252ZXJzYXRpb24udG9rZW4sXG4gICAgICAgIHN0cmVhbVVybDogY3JlYXRlU3RyZWFtVXJsKDApLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzcG9uc2U6IFBhcnRpYWw8QWpheFJlc3BvbnNlPiA9IHtcbiAgICAgICAgcmVzcG9uc2U6IGNvbnZlcnNhdGlvbixcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3BvbnNlIGFzIEFqYXhSZXNwb25zZTtcbiAgICB9XG5cbiAgICBpZiAocGFydHNbNF0gIT09IHNlcnZlci5jb252ZXJzYXRpb24uY29udmVyc2F0aW9uSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgIH1cblxuICAgIGlmIChwYXJ0c1s1XSA9PT0gJ2FjdGl2aXRpZXMnKSB7XG4gICAgICBjb25zdCByZXNwb25zZVRva2VuID0gdG9rZW5SZXNwb25zZShzZXJ2ZXIsIHVybE9yUmVxdWVzdCk7XG4gICAgICBpZiAocmVzcG9uc2VUb2tlbiAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzcG9uc2VUb2tlbjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYWN0aXZpdHk6IERpcmVjdExpbmVFeHBvcnQuQWN0aXZpdHkgPSB1cmxPclJlcXVlc3QuYm9keTtcblxuICAgICAgY29uc3QgYWZ0ZXIgPSBzZXJ2ZXIuY29udmVyc2F0aW9uLmhpc3RvcnkucHVzaChhY3Rpdml0eSk7XG4gICAgICBjb25zdCBzdGFydCA9IGFmdGVyIC0gMTtcblxuICAgICAgZm9yIChjb25zdCBzb2NrZXQgb2Ygc2VydmVyLmNvbnZlcnNhdGlvbi5zb2NrZXRzKSB7XG4gICAgICAgIHNvY2tldC5wbGF5KHN0YXJ0LCBhZnRlcik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlOiBQYXJ0aWFsPEFqYXhSZXNwb25zZT4gPSB7XG4gICAgICAgIHJlc3BvbnNlOiB7IGlkOiAnbWVzc2FnZUlkJyB9LFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzcG9uc2UgYXMgQWpheFJlc3BvbnNlO1xuICAgIH0gZWxzZSBpZiAocGFydHMubGVuZ3RoID09PSA1KSB7XG4gICAgICBjb25zdCByZXNwb25zZVRva2VuID0gdG9rZW5SZXNwb25zZShzZXJ2ZXIsIHVybE9yUmVxdWVzdCk7XG4gICAgICBpZiAocmVzcG9uc2VUb2tlbiAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzcG9uc2VUb2tlbjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgd2F0ZXJtYXJrID0gc2VhcmNoUGFyYW1zLmdldCgnd2F0ZXJtYXJrJyk7XG4gICAgICBjb25zdCBzdGFydCA9IE51bWJlci5wYXJzZUludCh3YXRlcm1hcmssIDEwKTtcblxuICAgICAgY29uc3QgY29udmVyc2F0aW9uOiBEaXJlY3RMaW5lRXhwb3J0LkNvbnZlcnNhdGlvbiA9IHtcbiAgICAgICAgY29udmVyc2F0aW9uSWQ6IHNlcnZlci5jb252ZXJzYXRpb24uY29udmVyc2F0aW9uSWQsXG4gICAgICAgIHRva2VuOiBzZXJ2ZXIuY29udmVyc2F0aW9uLnRva2VuLFxuICAgICAgICBzdHJlYW1Vcmw6IGNyZWF0ZVN0cmVhbVVybChzdGFydCksXG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXNwb25zZTogUGFydGlhbDxBamF4UmVzcG9uc2U+ID0ge1xuICAgICAgICByZXNwb25zZTogY29udmVyc2F0aW9uLFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzcG9uc2UgYXMgQWpheFJlc3BvbnNlO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcigpO1xuICB9KTtcblxuICBjb25zdCBtZXRob2QgPSAodXJsT3JSZXF1ZXN0OiBzdHJpbmcgfCBBamF4UmVxdWVzdCk6IE9ic2VydmFibGU8QWpheFJlc3BvbnNlPiA9PlxuICAgIG5ldyBPYnNlcnZhYmxlPEFqYXhSZXNwb25zZT4oc3Vic2NyaWJlciA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBzdWJzY3JpYmVyLm5leHQoamF4KHVybE9yUmVxdWVzdCkpO1xuICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICB0eXBlIFZhbHVlVHlwZTxULCBWPiA9IHtcbiAgICBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIFYgPyBUW0tdIDogbmV2ZXI7XG4gIH1cblxuICB0eXBlIFByb3BlcnRpZXMgPSBWYWx1ZVR5cGU8QWpheENyZWF0aW9uTWV0aG9kLCBGdW5jdGlvbj47XG5cbiAgY29uc3QgcHJvcGVydGllczogUHJvcGVydGllcyA9IHtcbiAgICBnZXQ6ICh1cmw6IHN0cmluZywgaGVhZGVycz86IE9iamVjdCk6IE9ic2VydmFibGU8QWpheFJlc3BvbnNlPiA9PiBub3RJbXBsZW1lbnRlZCgpLFxuICAgIHBvc3Q6ICh1cmw6IHN0cmluZywgYm9keT86IGFueSwgaGVhZGVycz86IE9iamVjdCk6IE9ic2VydmFibGU8QWpheFJlc3BvbnNlPiA9PiBub3RJbXBsZW1lbnRlZCgpLFxuICAgIHB1dDogKHVybDogc3RyaW5nLCBib2R5PzogYW55LCBoZWFkZXJzPzogT2JqZWN0KTogT2JzZXJ2YWJsZTxBamF4UmVzcG9uc2U+ID0+IG5vdEltcGxlbWVudGVkKCksXG4gICAgcGF0Y2g6ICh1cmw6IHN0cmluZywgYm9keT86IGFueSwgaGVhZGVycz86IE9iamVjdCk6IE9ic2VydmFibGU8QWpheFJlc3BvbnNlPiA9PiBub3RJbXBsZW1lbnRlZCgpLFxuICAgIGRlbGV0ZTogKHVybDogc3RyaW5nLCBoZWFkZXJzPzogT2JqZWN0KTogT2JzZXJ2YWJsZTxBamF4UmVzcG9uc2U+ID0+IG5vdEltcGxlbWVudGVkKCksXG4gICAgZ2V0SlNPTjogKHVybDogc3RyaW5nLCBoZWFkZXJzPzogT2JqZWN0KSA9PiBub3RJbXBsZW1lbnRlZCgpLFxuICB9O1xuXG4gIHJldHVybiBPYmplY3QuYXNzaWduKG1ldGhvZCwgcHJvcGVydGllcyk7XG59XG5cbi8vIE1PQ0sgV2ViU29ja2V0ICh1c2VzIHNoYXJlZCBzdGF0ZSBpbiBTZXJ2ZXIpXG5cbnR5cGUgV2ViU29ja2V0Q29uc3RydWN0b3IgPSB0eXBlb2YgV2ViU29ja2V0O1xudHlwZSBFdmVudEhhbmRsZXI8RSBleHRlbmRzIEV2ZW50PiA9ICh0aGlzOiBXZWJTb2NrZXQsIGV2OiBFKSA9PiBhbnk7XG5cbmV4cG9ydCBjb25zdCBtb2NrV2ViU29ja2V0ID0gKHNlcnZlcjogU2VydmVyKTogV2ViU29ja2V0Q29uc3RydWN0b3IgPT5cbiAgY2xhc3MgTW9ja1dlYlNvY2tldCBpbXBsZW1lbnRzIFdlYlNvY2tldCwgQWN0aXZpdHlTb2NrZXQge1xuICAgIGNvbnN0cnVjdG9yKHVybDogc3RyaW5nLCBwcm90b2NvbHM/OiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuXG4gICAgICBzZXJ2ZXIuc2NoZWR1bGVyLnNjaGVkdWxlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZWFkeVN0YXRlID0gV2ViU29ja2V0LkNPTk5FQ1RJTkc7XG4gICAgICAgIHNlcnZlci5jb252ZXJzYXRpb24uc29ja2V0cy5hZGQodGhpcyk7XG4gICAgICAgIHRoaXMub25vcGVuKG5ldyBFdmVudCgnb3BlbicpKTtcbiAgICAgICAgdGhpcy5yZWFkeVN0YXRlID0gV2ViU29ja2V0Lk9QRU47XG4gICAgICAgIGNvbnN0IHVyaSA9IG5ldyBVUkwodXJsKTtcbiAgICAgICAgY29uc3Qgd2F0ZXJtYXJrID0gdXJpLnNlYXJjaFBhcmFtcy5nZXQoa2V5V2F0ZXJtYXJrKVxuICAgICAgICBpZiAod2F0ZXJtYXJrICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3Qgc3RhcnQgPSBOdW1iZXIucGFyc2VJbnQod2F0ZXJtYXJrLCAxMCk7XG4gICAgICAgICAgdGhpcy5wbGF5KHN0YXJ0LCBzZXJ2ZXIuY29udmVyc2F0aW9uLmhpc3RvcnkubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcGxheShzdGFydDogbnVtYmVyLCBhZnRlcjogbnVtYmVyKSB7XG5cbiAgICAgIGNvbnN0IHsgY29udmVyc2F0aW9uOiB7IGhpc3RvcnkgfSB9ID0gc2VydmVyO1xuICAgICAgY29uc3QgYWN0aXZpdGllcyA9IGhpc3Rvcnkuc2xpY2Uoc3RhcnQsIGFmdGVyKTtcbiAgICAgIGNvbnN0IHdhdGVybWFyayA9IGhpc3RvcnkubGVuZ3RoLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBhY3Rpdml0eUdyb3VwOiBEaXJlY3RMaW5lRXhwb3J0LkFjdGl2aXR5R3JvdXAgPSB7XG4gICAgICAgIGFjdGl2aXRpZXMsXG4gICAgICAgIHdhdGVybWFyayxcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBNZXNzYWdlRXZlbnQoJ3R5cGUnLCB7IGRhdGE6IEpTT04uc3RyaW5naWZ5KGFjdGl2aXR5R3JvdXApIH0pO1xuXG4gICAgICB0aGlzLm9ubWVzc2FnZShtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBiaW5hcnlUeXBlOiBCaW5hcnlUeXBlID0gJ2FycmF5YnVmZmVyJztcbiAgICByZWFkb25seSBidWZmZXJlZEFtb3VudDogbnVtYmVyID0gMDtcbiAgICByZWFkb25seSBleHRlbnNpb25zOiBzdHJpbmcgPSAnJztcbiAgICByZWFkb25seSBwcm90b2NvbDogc3RyaW5nID0gJ2h0dHBzJztcbiAgICByZWFkeVN0YXRlOiBudW1iZXIgPSBXZWJTb2NrZXQuQ0xPU0VEO1xuICAgIHJlYWRvbmx5IHVybDogc3RyaW5nID0gJyc7XG4gICAgcmVhZG9ubHkgQ0xPU0VEOiBudW1iZXIgPSBXZWJTb2NrZXQuQ0xPU0VEO1xuICAgIHJlYWRvbmx5IENMT1NJTkc6IG51bWJlciA9IFdlYlNvY2tldC5DTE9TSU5HO1xuICAgIHJlYWRvbmx5IENPTk5FQ1RJTkc6IG51bWJlciA9IFdlYlNvY2tldC5DT05ORUNUSU5HO1xuICAgIHJlYWRvbmx5IE9QRU46IG51bWJlciA9IFdlYlNvY2tldC5PUEVOO1xuXG4gICAgb25jbG9zZTogRXZlbnRIYW5kbGVyPENsb3NlRXZlbnQ+O1xuICAgIG9uZXJyb3I6IEV2ZW50SGFuZGxlcjxFdmVudD47XG4gICAgb25tZXNzYWdlOiBFdmVudEhhbmRsZXI8TWVzc2FnZUV2ZW50PjtcbiAgICBvbm9wZW46IEV2ZW50SGFuZGxlcjxFdmVudD47XG5cbiAgICBjbG9zZShjb2RlPzogbnVtYmVyLCByZWFzb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIHRoaXMucmVhZHlTdGF0ZSA9IFdlYlNvY2tldC5DTE9TSU5HO1xuICAgICAgdGhpcy5vbmNsb3NlKG5ldyBDbG9zZUV2ZW50KCdjbG9zZScpKVxuICAgICAgc2VydmVyLmNvbnZlcnNhdGlvbi5zb2NrZXRzLmRlbGV0ZSh0aGlzKTtcbiAgICAgIHRoaXMucmVhZHlTdGF0ZSA9IFdlYlNvY2tldC5DTE9TRUQ7XG4gICAgfVxuXG4gICAgc2VuZChkYXRhOiBzdHJpbmcgfCBBcnJheUJ1ZmZlckxpa2UgfCBCbG9iIHwgQXJyYXlCdWZmZXJWaWV3KTogdm9pZCB7XG4gICAgfVxuXG4gICAgYWRkRXZlbnRMaXN0ZW5lcigpIHsgdGhyb3cgbmV3IEVycm9yKCk7IH1cbiAgICByZW1vdmVFdmVudExpc3RlbmVyKCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfVxuICAgIGRpc3BhdGNoRXZlbnQoKTogYm9vbGVhbiB7IHRocm93IG5ldyBFcnJvcigpOyB9XG5cbiAgICBzdGF0aWMgQ0xPU0VEID0gV2ViU29ja2V0LkNMT1NFRDtcbiAgICBzdGF0aWMgQ0xPU0lORyA9IFdlYlNvY2tldC5DTE9TSU5HO1xuICAgIHN0YXRpYyBDT05ORUNUSU5HID0gV2ViU29ja2V0LkNPTk5FQ1RJTkc7XG4gICAgc3RhdGljIE9QRU4gPSBXZWJTb2NrZXQuT1BFTjtcbiAgfTtcblxuLy8gTU9DSyBzZXJ2aWNlcyAodG9wLWxldmVsIGFnZ3JlZ2F0aW9uIG9mIGFsbCBtb2NrcylcblxuZXhwb3J0IGNvbnN0IG1vY2tTZXJ2aWNlcyA9IChzZXJ2ZXI6IFNlcnZlciwgc2NoZWR1bGVyOiBUZXN0U2NoZWR1bGVyKTogRGlyZWN0TGluZUV4cG9ydC5TZXJ2aWNlcyA9PiAoe1xuICBzY2hlZHVsZXIsXG4gIFdlYlNvY2tldDogbW9ja1dlYlNvY2tldChzZXJ2ZXIpLFxuICBhamF4OiBtb2NrQWpheChzZXJ2ZXIpLFxuICByYW5kb206ICgpID0+IDAsXG59KTtcbiJdfQ==
{
"name": "botframework-directlinejs-tmp",
"version": "1.0.8",
"version": "1.1.0",
"description": "Client library for the Microsoft Bot Framework Direct Line 3.0 protocol",

@@ -29,39 +29,43 @@ "files": [

"dependencies": {
"@babel/runtime": "^7.7.7",
"rxjs": "6.5.4",
"tslint": "^5.20.1"
"@babel/runtime": "^7.11.2",
"botframework-streaming": "4.10.1",
"core-js": "^3.6.5",
"cross-fetch": "^3.0.5",
"rxjs": "6.6.2",
"url-search-params-polyfill": "^8.1.0",
"tslint": "^6.1.3"
},
"devDependencies": {
"@babel/cli": "^7.7.7",
"@babel/core": "^7.7.7",
"@babel/plugin-proposal-class-properties": "^7.7.4",
"@babel/plugin-proposal-object-rest-spread": "^7.7.7",
"@babel/plugin-transform-runtime": "^7.7.6",
"@babel/preset-env": "^7.7.7",
"@babel/preset-typescript": "^7.7.7",
"@types/jest": "^24.0.25",
"@types/node": "^13.1.2",
"@babel/cli": "^7.11.6",
"@babel/core": "^7.11.6",
"@babel/plugin-proposal-class-properties": "^7.10.4",
"@babel/plugin-proposal-object-rest-spread": "^7.11.0",
"@babel/plugin-transform-runtime": "^7.11.5",
"@babel/preset-env": "^7.11.5",
"@babel/preset-typescript": "^7.10.4",
"@types/jest": "^26.0.13",
"@types/node": "^14.6.4",
"@types/p-defer": "^2.0.0",
"babel-jest": "^24.9.0",
"babel-jest": "^26.3.0",
"babel-plugin-istanbul": "^6.0.0",
"babel-plugin-transform-inline-environment-variables": "^0.4.3",
"concurrently": "^5.0.2",
"concurrently": "^5.3.0",
"dotenv": "^8.2.0",
"get-port": "^5.1.0",
"global-agent": "^2.1.7",
"get-port": "^5.1.1",
"global-agent": "^2.1.12",
"has-resolved": "^1.1.0",
"http-proxy": "^1.18.0",
"jest": "^24.9.0",
"http-proxy": "^1.18.1",
"jest": "^26.4.2",
"jest-environment-jsdom-fourteen": "^1.0.1",
"jsdom": "^15.2.1",
"jsdom": "^16.4.0",
"node-fetch": "^2.6.0",
"on-error-resume-next": "^1.1.0",
"restify": "^8.5.1",
"rimraf": "^3.0.0",
"simple-update-in": "^2.1.1",
"typescript": "^3.7.4",
"webpack": "^4.41.5",
"webpack-cli": "^3.3.10",
"rimraf": "^3.0.2",
"simple-update-in": "^2.2.0",
"typescript": "^4.0.2",
"webpack": "^4.44.1",
"webpack-cli": "^3.3.12",
"webpack-visualizer-plugin": "^0.1.11"
}
}

@@ -80,3 +80,7 @@ ![Bot Framework DirectLineJS](./docs/media/FrameWorkDirectLineJS@1x.png)

webSocket: /* optional: false if you want to use polling GET to receive messages. Defaults to true (use WebSocket). */,
pollingInterval: /* optional: set polling interval in milliseconds. Default to 1000 */,
pollingInterval: /* optional: set polling interval in milliseconds. Defaults to 1000 */,
timeout: /* optional: a timeout in milliseconds for requests to the bot. Defaults to 20000 */,
conversationStartProperties: { /* optional: properties to send to the bot on conversation start */
locale: 'en-US'
}
});

@@ -83,0 +87,0 @@ ```

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc